本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。
はじめに
こんにちは、岩崎利己と申します。 私はMBSDに中途入社して2年目で、普段はWebアプリケーション脆弱性診断を行っております。
このブログでは私が受験した、OffSec社が提供する「OffSec Defense Analyst」 (以下OSDA)の受験記をお送りします。 MBSDではこのブログの他にもたくさんの方が自己研鑽のために資格取得に取り組んでいます。過去に公開された受験記もいろいろありますので興味がある方は是非ご覧いただければと思います。
SANSトレーニング「SEC575」 および GIAC「GMOB」受験記 | 技術者ブログ | 三井物産セキュアディレクション株式会社 Offensive Security Exploit Developer (OSED) 受験記 | 技術者ブログ | 三井物産セキュアディレクション株式会社 Offensive Security Web Expert (OSWE) 受験記 | 技術者ブログ | 三井物産セキュアディレクション株式会社 Certified Red Team Professional受験記 | 技術者ブログ | 三井物産セキュアディレクション株式会社
また、MBSDではこれらの資格取得費用を全額会社が負担しています。加えて私の所属するプロフェッショナルサービス事業部では資格試験などの自己研鑽においては、申請すれば勤務扱いになるという研鑽Dayという制度があるため有休を消費しなくて済みます。
「自己研鑽のために資格受験を考えているけどセキュリティ系の資格は費用がネック」という方は是非弊社へ…。
リファラル採用制度もあり、書類選考が免除されますのでお近くにMBSD社員がいる場合はお声がけください!
MBSD_リファラル(社員紹介専用) | 三井物産セキュアディレクション株式会社
OSDAについて
業界で有名なセキュリティ資格を提供するOffSec社が公開した認定資格です。
Get your OSDA certification with SOC-200 | OffSec
OffSec社と言えば「OSCP」という攻撃側の初級レベルに位置する資格が有名ですが、OSDAはそれとは異なり、防御の技術を問う資格です。
侵害された環境において、残されたログから攻撃者がどのような活動を行ったか、どの攻撃手法が使用されたかをSIEMを用いて調査することが求められます。
この残されたログというのが重要で、時にはログに明確な痕跡が残っていない攻撃活動も存在するため、観測された事象と事象の間を推測でつなぎ合わせながら、攻撃の全体像を再構築していく必要があります。
OSDAはこの攻撃がどのようにログに残るかという知識と推論力を鍛えられる資格試験だと考えています。
私は普段Webアプリケーションの脆弱性診断を行っておりますが、脅威アクターによる侵害の痕跡調査のような、OSDAがカバーする範囲にマッチした業務に参画させていただけることになり、この分野は全くの素人だったので基礎知識を得るために受験しました。
試験形式
OSDAはOSCPと同じレベルの試験なので23時間45分の実技 + 24時間のレポート作成で構成されます。
試験環境のSIEMを操作してどのような侵害が行われたかを調査していきます。
SIEMには事前に定義されたPhaseという時間幅が10Phase存在し、1Phase10点を満点として各Phaseを調査していきます。
なお、OSCPなどとは異なり、フラグの提出が無いため、レポートが全ての採点基準となります。 また、「フラグを全て提出したからちょっと安心…」ということが無いので合格通知を受け取るまで油断できません。
学習コンテンツ
OffSec社の資格試験は購入するプランによって教材にアクセスできる期間が異なります。 今回私は90日間アクセスできる「Course + Cert Bundle」($1749)を購入しました。 OSDAにおいては事前知識がない私でも90日で余裕があったため、ほとんどの方はこのプランで十分ではないでしょうか。 少なくともOSDAのために「Learn One」(1年間のアクセスができるコース)を購入する必要はないと思います。
OSDAのコースを購入すると以下の教材にアクセスすることができます。
SOC-200 Modules
メインのコンテンツです。シラバスは以下から参照できます。
SOC-200のモジュールは全19章あり、1~3章でモジュール概要や攻撃者の攻撃手法解説、4~16章までで個別の攻撃手法に関する説明とその検知手法を解説しています。最後に16~17章でSIEMによってそれらを検知する方法を学びLabsに進む、といった流れになっています。
4~16章でシェルスクリプトやPowerShellスクリプトを用いたログ解析を学びますが、試験においてはSIEMのみを使用するため、スクリプトの作成に注力しすぎない方が良いと思いました。攻撃の痕跡がどのログにどのように残るか、またそれをどうやって攻撃と判断するかが解説されていますのでそれが理解できれば試験においては十分かなと思います。
Labs
Labsは実際の企業環境を模したネットワークとSIEMが用意されており、事前に残されたログからどのような侵害が行われたかを調査するための練習環境です。受講者はSIEMにログインし、事前に定義されたPhaseという時間幅の中で当該Phaseではどのような侵害が行われたかを調査していきます。
筆者が受験した時点ではLabは13環境用意されており、後半のLabになるにつれて攻撃のPhase数が増え、調査のボリュームが増えるようになっています。
試験の準備
Neo4jを用いたグラフ分析基盤の構築
試験の準備としてLabsに取り組んでいる中で、SIEMでの調査において課題と感じる点が浮上しました。
試験で扱うSIEMではログを表データとして扱うためログとログのつながりを表現できず、一連の攻撃の一部を見落とすことが多々ありました。
そんな中、プライベートで読んでいた以下の書籍の中で「グラフデータベースを用いてクレジットカードの不正利用を検知する」例が記載されており、OSDAにおけるログ分析にも応用できるのではないかと考えました。
例えば試験環境のWindowsではSysmonが動作しており、ログにSysmonイベントが出力されます。
Sysmonイベントは30個程度定義されており、ほぼ全てのイベントにProcessGuidというプロパティが定義されています。このProcessGuidは、循環するProcessIdとは異なり、基本的にはグローバルに一意なIDが格納されています。そのため、そのイベントを発生させたプロセスを一意に追跡し関係性をつなげることができます。また同様に一部イベントにはParentProcessGuidやSourceIpなど異なる関連を調査することのできるプロパティが存在しています。
これらの関係性をグラフデータベースにより分析することで侵害の痕跡を見落とす可能性を低減できるのではと考えて、実際にやってみました。
まずSIEMのログをNeo4jに取り込み、データに対して以下の処理を行います。
- ユーザやホスト、ソースIPなどのノード作成
ParentProcessGuidやProcessGuidなどのプロパティに基づいたエッジの作成(Sysmonイベントログに限り)
以下は処理後のデータを描画したものです。(Labs内のデータですがネタバレになるので詳細情報は表示しません。)

図中心のコロナウイルスみたいなノードの集合は正規ユーザが配置したPowerShellスクリプトを定期実行しているログがグラフで表現されたものです。
赤枠内を見ると中心に描画されたノードとエッジの集合から1箇所だけエッジが伸びていることが分かります。この部分は上記のPowerShellスクリプトが攻撃者によって改ざんされ、それが自動実行された結果、そこから更なる侵害が行われているというログがグラフに現れたものです。
また、右上のエッジが長くつながっている部分に注目すると、Meterpreterによって確立されたシェルからプロセス生成が行われていき最終的に大量のノードが生成されています。このノードは内部IPの存在確認を行うpingコマンドを総当たりで実行した結果です。

上記のように表形式のデータでは表現できない攻撃の一連のつながりをグラフデータベースによって可視化することができたため、試験本番でもこの分析基盤を使用して調査することにしました。
しかし、「試験環境のデータをローカルにダウンロードすることは許可されているのか…?」と不安に思い、試験前日にDiscordで問合せたところ、以下のように回答をもらったため残念ながら試験環境で使用することは叶いませんでした…。

注意事項:試験環境のデータをローカルにダウンロードすることは許可されていません。グラフDBなどの外部分析ツールは使用しないでください。
試験当日の詳細
実技
当たり前ですがOffSecが公開している試験ガイドを穴が開くほど読んでおきます。特に禁止事項やレポートの要件は致命的な減点になり得るので注意します。
私は日本時間の09:00から試験を開始しました。 試験の15分前から試験環境にログインし、部屋の撮影、IDの提示を済ませ、試験開始時刻に送付されるメールから環境にアクセスします。
他の方々が公開しているOSDAの受験記を見ると、各Phaseの攻撃開始タイミングは試験ポータルから受験者が能動的に制御できるようでしたが、私の受験時はLabsと同様、SIEMに事前に各Phaseの時間幅が定義されていました。過去に攻撃の痕跡が意図した通りにログに出力されないなどのトラブルがあったようなので恐らくその対策かと思います。各Phaseの攻撃開始タイミングを記録しておく必要が無くなったのでかなり楽でした。
試験の内容はLabsと比べて1段階難しい印象でしたが、Moduleをしっかりやっていれば問題ないと思います。7時間ほどで全てのPhaseの調査を終えました。
一部Phase間の攻撃のつながりが不透明な箇所があったのでその部分を追加調査、推測しながらレポートを書き進め、19:00頃にその日の調査を終えました。
翌朝07:30頃に試験を再開し、見逃したログは無いか、レポートに欠けているスクリーンショットやクエリは無いか再確認し、そのまま試験終了の08:45を迎えました。
| 日程 | 時刻 | 状況 |
|---|---|---|
| 1日目 | 8:45 | プロクタリングソフトへログイン、部屋の撮影とIDの提示を済ませる |
| 1日目 | 9:00 | VPN接続、試験環境へログイン |
| 1日目 | 9:30 | Phase1調査終了 |
| 1日目 | 10:00 | Phase2調査終了 |
| 1日目 | 10:30 | Phase3調査終了 |
| 1日目 | 11:00 | Phase4調査終了 |
| 1日目 | 12:00 | Phase5調査終了、昼休憩 |
| 1日目 | 13:00 | 昼休憩終了 |
| 1日目 | 13:30 | Phase6調査終了 |
| 1日目 | 14:30 | Phase7調査終了 |
| 1日目 | 15:30 | Phase8調査終了 |
| 1日目 | 16:00 | Phase9調査終了 |
| 1日目 | 16:30 | Phase10調査終了 |
| 1日目 | 19:00 | 怪しいPhaseの再調査、1日目の調査終了 |
| 2日目 | 07:30 | 怪しいPhaseの再調査、レポートの再確認 |
| 2日目 | 08:45 | 試験終了 |
| 2日目 | 09:30 | レポート提出 |
レポート
レポートはObsidianとPandocプラグインを用いて書き上げました。 テンプレートは有志の方が用意しているMarkdownがGithubにありますのでそれを使用しました。
前述しましたがこの試験は提出したレポートが全てですのでしつこいほど再確認した方が良いです。 レポート要件を確認し、以下の情報は各Phaseに必ず記載するようにしました。
- 攻撃の痕跡を表すSIEMのスクリーンショット(重要なフィールドが見えるように)
- 調査に使用したSIEMのクエリ
- 各Phaseにおいて攻撃者が取得した環境へのアクセスの種類(おそらくユーザ権限、ローカル管理者権限、ドメイン管理者権限などのことだと思います。)
レポートは試験時間中に書き終えられていたので試験終了後にそのまま提出しました。
結果とフィードバック
試験終了から3日後に合格通知を受け取りました。

今回の試験では自分が獲得した点数の予想が全くつかなかったため、OffSec社のサポートに試験のフィードバックをお願いしてみました。 すると、以下のように各Phaseにおける得点と合計点を教えていただけました。 (Phase毎のAction数でネタバレになる可能性があるので最小限の情報のみ記載しています。)

中略

フィードバックにはいくつか0ポイントのActionがあり、完全に攻撃の痕跡を見逃していた可能性があります。 提出したレポートを再度確認すると、記載ができていたActionについては全てポイントをもらえていたため 全く攻撃に気づけていなかったことになります。
自身でこの見逃しの原因を分析すると、おそらく以下です。
- 試験ではまず
初期侵害があり、最終的にはドメインが掌握されるというシナリオがなんとなくわかる - そのため各Phaseでドメイン掌握に向けた侵害の痕跡を見つけると
このPhaseで発生した侵害はこれだと思ってしまう - ドメイン掌握のシナリオに沿った痕跡が見つけられたので満足して次のPhaseの調査へ
試験環境へアクセスすることができないので確かなことは言えませんがおそらく見逃した痕跡は直接的にドメイン侵害に向けた攻撃の痕跡ではないのではと思っています。(永続化やデータの外部持ち出しなど)
合格した場合においても、必要な場合にフィードバックをもらえるのは自身の弱点を分析できてとても良い試験体験となりました。
役に立ったリソース
試験へ向けた学習においてOffSec社が推奨する学習プランが存在します。 私はこの通りに学習を進めたわけではなく、このプラン自体が有用であるというわけではありませんが、以下の資料の中で特定のLabを動画で解説してくれるリソースがあり、これが非常に有用だと思います。
OffSec SOC-200 Learning Plan - 24 Week – OffSec Support Portal
SIEMの細かい使い方や、侵害の判断における考え方を講師が解説してくれています。 Labsが一通り終わったら目を通しておくと良いかもしれません。
まとめ
今回はOSDAの受験記をお送りしました。 普段はどちらかというと攻撃側の業務に従事しているためこの分野は門外漢でしたが、学ぶことが非常に多く、攻撃側にもフィードバックがあるような体験になりました。
しつこいようですが、MBSDではこのような資格取得支援制度が充実しており、自己研鑽が奨励されます。 弊社に興味のある方は是非、採用ページをご覧ください。
また、弊社ではリファラル採用も行っております。 お近くにMBSDの社員がいる場合はそちらからのエントリーもございますので是非ご検討ください!
岩崎 利己
おすすめ記事