はじめに
先日、Certified Az Red Team Professional(以下、CARTP)という資格を取得しました。
本記事では、CARTPとその関連トレーニング、そして私がCARTPを取得するまでの道のりについて解説します。
CARTPとは
CARTPは、サイバーセキュリティの教育企業であるPentester Academyによって認定される、MicrosoftのAzure Active Directory(以下、Azure AD)導入環境に対するペネトレーションテストの資格です。Pentester AcademyのAttacking and Defending Azure AD Cloud: Beginner's Editionというトレーニングを受講することで、CARTPの受験資格が得られます。
CARTPを取得するには、Microsoft Azure(以下、Azure)上にある試験環境内の全リソースを24時間以内に攻略し、その後48時間以内に報告書を提出して審査で合格となる必要があります。つまり、単なる選択回答形式の試験ではなく実際に手を動かすハンズオン形式の試験というわけです。
実を言うと、上記のトレーニング受講当初はCARTPを受験するつもりはありませんでした。2年前に取得したCertified Red Team Expert(CRTE)の試験が自分にとってあまりにも辛く、「しばらくはハンズオン形式の試験は受けなくていいかな」と思っていたためです。ですが、同じトレーニング受講料を払うなら少しでも多くのAzure環境に触れられた方がお得だろうという不純な動機から受験することにしました。
トレーニング受講
CARTP受験の前提となるトレーニングでは、1回あたり4時間弱のオンライン講義が週1回、4週にわたって行われました。下記のような内容について、講師の実演を交えながら講義が進められていくのですが、このトレーニングの別名のAzure AD Bootcampのとおり毎回講義の内容が濃いため、各回の内容を1週間で復習するのはかなり大変でした。
- Azure ADの仕組み
- 標的テナントの事前調査
- リソース情報の取得
- アプリケーションの脆弱性やフィッシングを利用した初期アクセス
- リソースを横断しての権限昇格
- テナント間やクラウド・オンプレミス環境間での横展開
- 防御および監視手法
講義の内容についての質問などはDiscordのチャンネルに書き込むようになっており、講義中に書き込まれた質問にはその場で講師が回答されていました。私はこれまでにいくつかのオンライントレーニングを受けてきましたが、このようなトレーニングでは、Zoomなどのオンライン会議ツールで講義を進めながら質問はDiscordやSlackのチャンネルに書き込んでいく、というスタイルが一般的になっているように感じました。
なおトレーニングの模様は録画されており、講義終了後に録画ファイルが公開されます。どうしても予定が合わずにリアルタイムで受講できなかったときや、復習したいときにはこの録画ファイルが役立ちます。
ラボ実習
トレーニングの受講者は、VPN経由で各受講者専用のWindows仮想マシン(以下、VM)にログオンすることで、講義で解説されるのと同じラボ環境にアクセスできます。
ラボ環境にアクセスできる期間は初回講義日の前日から1カ月間です。私の場合は初回講義日が1/8だったので、1/7から2/7までラボ環境を利用できました。トレーニング教材として、講義で使われたスライドに加えてラボ環境での操作方法を記載したハンズオンマニュアルも提供されるので、受講者はそのマニュアルを見ながら自分の手で1つ1つの操作を確認しながら理解を深めていけるようになっています。
ハンズオンマニュアルは全26章で128ページもあり、書かれている内容をそのままトレースするだけでも非常に時間が掛かりました。私はマニュアルの内容をトレースしつつ、後で楽に見返せるように自分用のメモをまとめていきました。メモ作成の際、マニュアルに書かれている各種コマンドをコピー&ペーストせず丹精込めて手打ちしていたおかげか、完成する頃には各種コマンドにかなり慣れ親しむことができていたように思えます。
CARTP受験
CARTPの試験は、初回の講義日から4カ月以内であればいつでも受験できます。私は受験日を2/11に決め、ラボ環境の最終利用日だった2/7までひたすら手を動かしながら講義内容を復習しました。
CARTPの試験環境へのアクセスはラボ環境と同様に受験者用のVMから行うのですが、ラボ環境と違ってVMには各種ツールがインストールされておらず、自分で初期設定を行う必要がありました。
試験内容について、講義のDiscordチャンネル情報によれば「ラボを真面目にやっていれば大丈夫」とのことでした。たしかにそのとおりで、試験開始当初は順調にリソースを攻略できていたのですが、途中でどうしても先に進めなくなりました。私は「試験環境の設定ミスだろう」と思い、試験環境を再構成する操作を実行したのですが、先ほどと同じところで行き詰まってしまいました(泣)
さんざん考えても先に進めなかったので、ひと眠りして再度トライしたところ、すんなりと先に進めました。はじめに取り組んだときも、よくよく考えれば解法に気づけたはずなのですが、私の思い込みが強すぎたようです。この手のハンズオン試験では解法と別の方向に進まされてしまう状態を「rabbit holeにはまる」と表現したりしますが、私の場合は「自分で掘ったrabbit holeにはまっていた」ようです。
そこからはするすると進んでいき、最終的に全リソースを攻略できました。ここまでに睡眠時間をふくめて約20時間経っており、残りの4時間では操作を最初からやり直しながら操作画面などのスクリーンショットを取得していきました。すべてのスクリーンショットを取り終わったのが終了1時間前だったので、かなり危ない橋を渡っていたようです。いくつかある試験合格者のレビューを読むと「数時間くらいで終わるよ」と書かれていたりしたので、私のように制限時間ギリギリで終了するケースは珍しいのかもしれません。
なお受験中は試験環境についてのマインドマップを作成しながら試験に取り組んでいました。マインドマップはCertified Red Team Expert(以下、CRTE)の受験時にも利用しましたが、今回も気づき事項を追記しながら攻略を進めていくことで、試験環境を俯瞰的に見ることができたので非常に便利でした。
スクリーンショットの取得後、報告書の作成に取り掛かりました。報告書は英語で作成するのですが、CRTEの受験時に作成した報告書をテンプレートとして活用することで、それほど苦労せずに作成することができました。
受験結果
締め切り前日の2/13に報告書を試験事務局に提出し、4日後の2/17に合格通知メールを受け取ってめでたく合格となりました。そしてその翌日、認定証の掲載URLが送られてきました。自前のrabbit holeにはまったときはどうしようかと思いましたが、無事合格できて良かったです。
おわりに
私は今回、Azure AD導入環境に対するペネトレーションテストに関するトレーニングとしてPentester Academyの「Attacking and Defending Azure AD Cloud: Beginner's Edition」を受講し、関連資格としてCARTPを取得しました。
ゼロトラストセキュリティの導入が今後進んでいくと、アイデンティティ管理などの用途でAzure ADを採用する組織も増えてくると考えられます。そのような組織のセキュリティ対策について適切に支援していくためにも、今回のトレーニングでAzure AD環境のペネトレーションテストに関する知識や技術を得られたことは非常に有益でした。
ちなみに前回受けたハンズオン形式の試験は2年前のCRTEでした。こちらの記事中で私は「CRTEが日本でもメジャーになってくれたらいいなぁ」と書いていたのですが、現状はまだまだのようです。今回私が取得したCARTPも今後メジャーになってくれるかは微妙なところですが、Azure AD環境のペネトレーションテストを気軽に体験できる場として多くの方々に活用されるといいなぁと思います。
おまけ
2020年6月のCRTE取得から約2年が過ぎ、自宅の作業環境もだいぶ様変わりしました。キーボードは変わっていませんが、トレーニングの受講環境はノートPCからデスクトップPCへ、オーディオ環境はディスプレイ付属のスピーカーから写真のようなPCオーディオ環境へと強化されました。このような充実した在宅勤務環境のもと、今後も技術力向上に向けて励んでいきたいと思います。


記事の著者
セキュリティ診断業務に10年間従事後、2016年よりシニアセキュリティアナリストとしてペネトレーションテスト業務に従事。
診断業務開始当初は社内イントラサイトの脆弱性に対する過激な指摘により物議を醸したが、
現在はだいぶおとなしくなっている。好きな周波数は13.56MHz。
GXPN、GAWN、GREM、GPEN、GDAT、GCPN、GCFA、GCFE、CRTE、CARTP、CEH
関連記事
RELATED ARTICLE