
はじめに
DP部のもたもたです。
本日は、今年度中に取った資格2つについて合格体験記を書いていきたいと思います。
今年取得したのはOffensive Security社のOSDAと、SANS InstituteのGXPNの二つになります。弊社では資格支援が充実しているので、SANSもOffsec資格も割と受け放題ということもあり、まだ手を付けていなかった分野へと踏み出してみようと色々試して、結果としてこの二つを受験しました。
OSDAについて
まず最初に、OSDA(OffSec Defense Analyst)に関してです。こちらはSOC向けの資格となります。ログ解析について学び、知見を広げたいという思いと、Offensive Securityの資格全取得を目指す目標があったことから受験しました。
攻撃者が仕掛けてくる攻撃が、WindowsやLinuxにおいてログ分析ソフトウェアにどのような痕跡を残すのかについて学び、そこから発生した影響について分析・考察していくというものです。
Offensive Security社の資格の例にもれず、ラボが付属しており、ここで勉強した後試験に臨もう、という配置です。
ラボの特徴について
ラボのトピックは公式シラバス*1を参照していただきたいのですが、基本的にはWindowsやLinuxなどにおいて著名なソースから得られるログを解析していく形となります。
また、いくつかのchallenge labがあり、これを介して試験に備えた実習を行うことができます。
一つ注意点として、具体的な目標を提示され、それを達成できれば正解と言える他のOffensive Securityのchallenge labと異なり、ログ解析には明確な正答が提供されません。Discordに専用のbotが存在するのである程度正解の方向性を知ることはできるのですが、「攻撃に使用されたコマンド」「多数あるうちの正答となるログ」等を確認できるレベルではありません。なので、ログ分析に関する経験がない場合は、明確に解けた問題を実績として自信に変えられる他の資格と比べると、少し地に足が付かない状態で受験することになるのは覚悟しておくべきかもしれません。
(一応、Discordで他の受講者に聞いたり、過去の投稿を調べたりすることでかなり核心に近い情報を入手できる可能性はあります。)
試験に向けての勉強について
基本的にはラボに付属する練習問題のchallenge labを解くだけで十分だと思います。
私はテキストは1周程度サクッと読むだけ、extra mileは飛ばして、何週かchallenge labをやった後はひたすらSIEMの検知ルールを作成すること、及び著名な攻撃が残す痕跡がどのようなものであるか実習することに時間を費やしていました。
他のOffensive Security資格と比べると、あらかじめ作っておいたルールやアラートを即座に使用できるので、準備しやすいと思います。
後は(シラバスにも載っているし、他の方の受験記でも触れられているので言及して大丈夫だとは思うのですが)、OSquery*2をうまく使えるとログ以外にも直接的にある程度システムを調べることが出来て便利だと思ったので、ファイル情報やサービス、ユーザなどを列挙するクエリをいくつか作っていました。
試験について
試験の具体的な内容に関してはさすがに話せないのですが、challenge labより1段階難しい印象でした。
また、OSEPやOSEDなどの300レベルの資格と違い、OSDAに関しては24時間の試験だったのですが、朝7時を開始時間にして「24時間くらいなら休憩なしの通しでも頑張れるだろう」と調子に乗ったことを考えた結果、試験の終わる前後で疲労が蓄積して思考力が一気に落ちてしまい、ボロボロの状態でレポートを必死に書かなければならなくなるという大ポカをしてしまいました。
24時間試験であってもちゃんと寝るべきということと、試験開始の時間はそれを前提としてしっかり考えるべきだということが教訓になりました。
試験結果
個人的には思っていたより難しかった印象で、攻撃同士の繋がりがよく分からなかったところがいくつかあったのと、先述の通り明確な目標が提示されないので、大丈夫かな...と思っていたのですが、無事合格していました。
どのくらいの点数かは不明なのですが、割とギリギリだったのではないかとも思います。

GXPNについて
もう一つ受験したのは、GXPN(GIAC Certified Exploit Researcher and Advanced Penetration Tester)という資格です。
こちらはSANS InstituteにおけるSecurity 660という講座と一体となっており、講座を受講してから資格を取得というのが基本のパターンとなっています。SANSコースは400番台、500番台、600番台、700番台と分けられ、上位のコースほど専門性や難易度が高い内容となっています。今回は600番台のコースということで内容は上級レベルであり、これまで手を出したことの無い多くの技術に触れ、新たな知見を得ることが出来ました。
講義の特徴について
講義ではあらかじめ配られたVMを使って様々なトピックの実習を行っていきます。内容についてはシラバス*3を参照していただきたいのですが、ルーティングプロトコル(OSPFなど)やスイッチに対するネットワーク攻撃、CBC bit flipingなどの古い暗号化方式への脆弱性攻撃の原理、Linux及びWindowsに対するスタックオーバーフローを用いたexploitなど、様々な分野での攻撃のガイダンスと呼ぶべきものでした。正直レベル高めの資格なのでもっと意味の分からない単語が飛び交うことを想像していたのですが、実際はかなり基礎から丁寧に教えてくださったので、これまで用語が多くいまいちよく分かっていなかった暗号及び低レイヤのネットワーク攻撃も理解しやすかったです。また、最終日には学んだことを試すCTFがありました。私はそこまで大きな貢献はできなかったのですが、同じチームの方々が凄腕だったこともあって、運よく優勝チームに配られるコインを手に入れることが出来ました。

他の方が仰っていたとおり、裏には意味深な暗号らしきものがありましたがさすがにこれは秘密で...
試験の特徴について
重要なのはオープンブック試験であるということです。そのため、講座の教材や参考書、自分で作った印刷資料を持ち込むことができます。
私は多くの資料を持ち込むのはちょっと怖かったので教材だけを持ち込みましたが、受験する場合は単語やトピックからすぐに開けるインデックスを作るのが定番のようです。
なお、教材に書き込みをした場合どうなるのかはよく分かりませんでした。もしテキスト自体に書き込みが可能なら、難易度がだいぶ下がるのではないかと個人的には思うのですが...
(さすがに鉛筆が多少擦った程度であれば問題ないようです。)
試験はテストセンターで行うか、リモートで行うかを選ぶことができるようです。
リモートで行う場合は専用のブラウザを入れる必要があるということで私はテストセンターで行いましたが、当然試験室には他の試験を受ける方がいるので完全に集中したい場合はリモートにした方が良いかもしれません、
また、試験中は10問まで問題を後回しにすることができます。
便利な機能ではあるのですが、これが原因で本番で結構厄介なことに...
試験に向けての勉強について
基本的には講義テキストを読んで、内容を実践することが一番の勉強になると思います。ただ、今思うと完全に記憶しなくても本番で何を問われているのかを思い出すことができる程度でよかったのかな、とも思います。
また、講義に配られるハンズオン用のVMは講義テキストの内容を試すうえで非常に便利です。講座において実施されるハンズオンの内容以外もこの試験ではかなり重要になってくるので、可能な限りは試していくのが理想かなと思います。ただシラバスをご覧いただければわかる通り、1日目の一部の内容に関しては手元で再現するのはちょっと面倒かもしれませんが...
また、一部のハンズオン内容は当日限定になってしまっていたため、私は自前でプログラムを組んで原理を再現できるか試しました。
試験本番について
試験そのものの詳細な内容はさすがに言えないのでこちらも伏せさせていただきます。
本番で一つやってしまったミスとして、序盤に不安な問題を後回しにし続けた結果、終盤のハンズオン問題に辿り着く前にストック限界の10問まで溜まってしまいました。しかもこの資格試験では、「後回しにした問題を解く際は、選択して解くのではなく後回しにしていた問題全てを順番に連続して解く必要がある」「一度でも10問溜まってしまうと、以降はもう後回し機能が一切使用できない」という形になっています。
他の資格と混同してこの辺りのルールを完全に勘違いしてしまったため、ハンズオン問題を解くときには後回しを使うことができなくなってしまいました。
一部の問題に関しては、ハンズオンのVMを使って答え合わせするという攻略法が使えるのではないか...と期待していた部分があったため、ちょっと戦略をミスしたなとは思いました。
ただ、時間的にはだいぶ余裕をもって作られていると思います。30分前後は余りました。
試験結果
いろいろとありましたが、終わってみると正答率92%で合格でした。模擬試験の1回目が80%台、2回目でも90%台だったので、全体の難易度的には極端に模擬試験と大きな差はないのではないかと思います。

今後について
OSDA、GXPNともに難易度的には極端に高いというわけではないのですが、普段触れないような分野で非常にためになるものでした。
今後はOffensive Securityの資格コンプリート(電波法が厄介なOSWPや申し込むハードルがかなり高いとされるOSEEが立ちはだかりますが)、もしくはSecurity 660の延長線上としてexploitを扱うもののさらに専門性の高い、SANSの700番台資格であるSecurity 760に挑んでいきたいと考えています。
どちらにしてもkernel exploitの技術を身に着ける必要があるので、今から少しずつ勉強していこうかなと思っています。