セキュリティブログ

OSEP合格体験記 - ペネトレーションテストサービス品質のベースラインを作る取り組み

OSEP合格体験記 - ペネトレーションテストサービス品質のベースラインを作る取り組み

更新日:2024.04.04

はじめに

オフェンシブセキュリティ部の安里 悠矢です。
普段は組織内の社内ITインフラやクラウド環境上に構築されたインフラに対するペネトレーションテスト業務に従事しています。

突然ですが、皆さんはレッドチーム演習やペネトレーションテストサービスをセキュリティベンダーに依頼する際、ベンダーを選定する基準はどのようにお考えでしょうか。

テストをご依頼するお客様はさまざまなご事情を抱えていますが、弊社にお声がけいただいたお客様で共通しているのは 「テスターがテストを遂行する上で十分なスキルセットを有していること」 という点でした。

レッドチーム演習では、一般的には攻撃スコープが組織全体となり、我々テスターは組織の敵対者として活動する必要があります。
そのため、実務者にはより広範囲なスキルセットが要求されます。
スキルセットの例としては、 OSINT(Open Source Intelligence)による組織従業員情報の収集やフィッシング、物理環境においてはカードキーの複製やエアギャップネットワークの調査、Web、リバースエンジニアリングによるエクスプロイト開発、アンチウィルス/EDR製品のバイパス手法の確立、クラウド環境への侵害、社内ネットワーク内に深く侵入していくための技術など多岐にわたります。

弊チームでは、チームメンバーがそれぞれ得意なスキルを有しており、個々が得意とする技術を活かし広範囲なスキルセットが要求される業務をカバーし合っています。

一方で、メンバー個人が得意とするスキルを活かすだけでなく、業務を遂行する上で チームメンバー全員が最低限持つべきスキル を合わせておく必要があります。
これは、全ての診断サービスに言えることですが、ペネトレーションテストサービスの品質は実務者の知見や経験に大きく左右されます。
そのため、全員がある程度同じ技術の土台を持たせて、サービスの品質を維持することも大切な要素となります。

サービスの品質を維持するための取り組みの1つとして、Offsec社が提供する認定資格 OSEPのトレーニング(PEN-300)を全員が受講しており、ほぼ全員が試験に合格しています。
この記事では、弊チームメンバー全員が受講しているトレーニングであるPEN-300や認定資格のOSEPについて紹介します。

OSEP(PEN-300)について

OSEPは、Offsec社が提供するペネトレーションテストの民間資格です。
今回紹介するPEN-300は、「Evasion Techniques and Breaching Defenses」がテーマとなり、「セキュリティ製品の防御技術の回避手法と突破」の技術を中心に実際のオンプレミスなネットワークで構成された環境に対するペネトレーションテストを遂行するのに必要な技術を深く学ぶトレーニングとなっています。
PEN-300のトレーニングを受講後、試験に合格してOSEP(Offsec Experienced Pentester)を取得することが可能です。
参考リンク: OffSec Experienced Pentester (OSEP) certification - Offsec

OSEPは、巷では難関セキュリティ資格と言われているOSCP(Offsec Certified Professional)の上位資格となります。弊社社員がOSCPを受験した際の合格体験記も公開していますので、興味がある方はこちらも合わせてご確認ください。
参考リンク: 未経験からOSCP保持者へ 私のOSCP受験記

トレーニングの詳細・学べる内容

トレーニングのシラバスについては以下から入手できます。
参考リンク: PEN-300 Syllabus - Offsec

PEN-300は、Active Directoryを使用した組織内でのペネトレーションテストを実施する上で必要な技術が詰まっており、攻撃を自動的にブロックするようなセキュリティ製品のバイパスに重点を置いています。

トレーニングの資料について

このトレーニングの前半では、クライアント側のコード実行攻撃 / ウイルス対策の回避技術 / アプリケーションのホワイトリストのバイパス / ネットワーク制限のバイパスなどの技術について学びます。
Initial Accessを確立するために必要なWordマクロを作成するほかexe,jscriptを作成することは勿論、AMSI等のウイルス対策技術やAppLockerが導入された環境でいかにマルウェアを実行させるかといったことを最初に学びます。

トレーニングの後半では、ネットワーク内の横方向の移動(Lateral Movement)、Windows周りの仕組みやActive Directory (Linux / Windows)に対する攻撃手法を中心に学びます。
他にもキオスク端末の制限回避やDevOps環境でよく使われるAnsibleツールの悪用やソフトウェアリポジトリの侵害についても触れられており非常にボリュームが多いです。

演習用ラボ

組織のネットワークを模倣した演習用ラボがいくつかあり、Initial Accessの確立から目的のフラグの取得まで実施できます。

トレーニングをやってみた感想

トレーニング資料

トレーニングに扱うトピック全てが非常に丁寧に解説されていて、すごく分かりやすい内容になっていました。
一方で、.NetやVBAに関連したプログラミング経験が全くなかったので、最初は戸惑いも多く時間をかなり使いましたが、動画も提供されているので、理解が深まりました。

演習用ラボ

Initial Accessの確立からLateral Movement, ドメイン管理者権限の取得やドメインフォレスト間の横移動など一通り手を動かしながら学ぶことができます。
リアルな環境では、フィッシングからのInitial Accessは失敗したら警戒されちゃうので成功率が下がりますが、演習用環境だと何回でも失敗できるので良いですね!
実際の環境と同じ様にLabのマシン同士の繋がりがあり、Active Directoryで構成された環境で実際に侵入に利用するテクニックも学べるし、Lateral Movementのテクニックやアンチウィルス Bypassのコードを実際に組み立てて侵入を試みたりと非常にワクワクするものばかりでした。

トレーニング全体を通しての感想

教科書と演習用ラボは全てが連動しているわけではないので、どちらから進めるかは人それぞれかなと思います。私の場合は、1ヶ月くらいは教科書をざっと読み返しつつVBAやアンチウィルス Bypass用のコード作成に時間を使って、残りは演習用ラボを進めて迷ったら教科書を見直すといった感じでやっていました。
演習用ラボを進める過程で、メモを残しながら、試験に向けてコマンドのチートシートの作成も合わせてやっていました。
(画像は試行錯誤してたときのもの)

実務でペネトレーションテストをやっている身としては、特にActive Directory部分の侵入は、リアルな場面でも実際に利用する技術や考え方が多いと感じました。AppLockerやMSSQLを使いこなしている環境はあまり見たことがないのでその点でも勉強になりました。
Active Directory環境を扱うような社内ネットワークのペネトレーションテストの流れと実際の悪用手法が理解できるので、ペネトレーションテストサービスの品質向上に貢献できるよう非常に良いトレーニングだと感じました。

トレーニングに関しては、実際のリアルな環境と比較すると少し古いというレビューも見かけたことがあります。確かに、ADCSについて触れられていなかったり、最近のリアルな環境だとEDRが導入されていたりするのでリアルな環境でテストをやるためには、別で知見を深めていく必要はあります。ただ、防御を回避するための観点については記載されているので、知見を貯めていくための土台は作れると思います。

試験について

試験時間は合計で約72時間あり、約48時間かけて試験用のラボを攻略し、その後24時間以内に報告書を作成して提出する必要があります。

試験用のラボには、演習用ラボのように複数のマシンが用意されています。
脆弱性を悪用して侵入できた際に取れるフラグが用意されており、各フラグに10点ずつ得点が割り当てられています。試験時間に全てのフラグを取る必要は無く、100点以上を取得するか、最終フラグのsecrets.txtを取ることで合格になります。試験用のコントロールパネルが用意されていて、どのマシンでどのようなフラグを取ったのかを試験時間内に登録していきます。

試験に関しては公式のガイドもあるので、細かいルールに関しては把握できると思いますのでご興味があればこちらもご確認ください。
参考リンク: https://help.offsec.com/hc/en-us/articles/360050293792-OSEP-Exam-Guide

受験してみた結果としては、13時間くらいでは合格点は超えていました。
残念なことに、途中で体調を崩してしまい集中できなくなってしまったため、報告書に記載するスクリーンショットの確認と簡単な流れだけ作成してあとはほぼ寝込んでしまいました。
一旦仮眠を取った後に4-5時間くらいかけてレポートを作成して提出しました。
一週間くらいして合格通知のメールが届き、無事合格することができました。

受験してみた感想としては、演習用ラボをある程度攻略した上で、Word MacroやPowerShellコード, アンチウィルスのBypass用のプログラムをきちんと準備してから挑まないと、合格はできない試験だなと感じました。
試験で躓いたらその場で一から作るという形でもいけるとは思いますが、あまりおすすめしません。
試験では、実際に手を動かして脆弱性を悪用して侵入を繰り返していくし、報告書も脆弱性を再現できるように作成していく必要があります。
なので、よくある選択式の資格試験と比較すると知識のみでは攻略できないので難易度が高いなと感じました。
実際に動いている環境に対してどのような観点で脆弱性を探していくのかを自分で仮説を立てて、検証を繰り返し行うので全てが教科書通りというわけにはいきませんでした。
Offsecの試験が難しいと言われているのはここなんだろうなと思いましたが、ペンテスターは手を動かして脆弱性や問題点を見つけていくのがお仕事の1つなので、この難しさも乗り越えていくのは大事ですね。
脆弱性に対する考え方や手法をどう組み合わせるかを考えていけば合格はできる試験なので、理不尽なほど難しくもなく、手を動かす試験なので非常に楽しめる良い試験だなと思いました。

さいごに & 宣伝

PEN-300のトレーニングを受講し試験を受けてみました。体調崩して試験のラボは最後まで攻略はできませんでしたが、無事合格できてよかったです。
実際の環境では、さまざまなセキュリティ対策製品が使用されているほか、クラウド関連の知見も求められるので、もっと研鑽を積んでいきたいと思います。

弊社では、ペネトレーションテストによってお客様の利用する環境の脆弱性や運用上の問題点を様々な観点で調査・ご報告しています。
自組織のセキュリティ対策の有効性がどの程度なのか、テストを通して擬似インシデントが発生した際にSOCやCSIRTが適切に動けるかといった観点での評価も実施しております。
弊社のペネトレーションテストやレッドチーム演習サービスにご興味がありましたら是非お問い合わせください。

・ペネトレーションテストサービスページ
https://gmo-cybersecurity.com/service/assessment/pentest-nw/
・レッドチーム演習サービスページ
https://gmo-cybersecurity.com/service/assessment/redteam/

セキュリティ診断のことなら
お気軽にご相談ください
セキュリティ診断で発見された脆弱性と、具体的な内容・再現方法・リスク・対策方法を報告したレポートのサンプルをご覧いただけます。

関連記事

経験豊富なエンジニアが
セキュリティの不安を解消します

Webサービスやアプリにおけるセキュリティ上の問題点を解消し、
収益の最大化を実現する相談役としてぜひお気軽にご連絡ください。

疑問点やお見積もり依頼はこちらから

お見積もり・お問い合わせ

セキュリティ診断サービスについてのご紹介

資料ダウンロード
RECRUIT

私たちと一緒に、
脆弱性のない世界を創っていきませんか