2023年にOSCE3を取得したので、弊社の福利厚生制度にも触れつつ感想を記事にします。
OSCE3について
OSCE3はOffsec社(Kali Linuxをリリースしている会社)の資格の1つです。この資格自体には試験等はなく、以下の3つの資格を取得することで自動的に認定されます。
- OffSec Web Expert (OSWE)
- OffSec Experienced Pentester (OSEP)
- OffSec Exploit Developer (OSED)
いずれも約48時間の(監視付きの)実技の試験を受け、その後24時間以内にレポートを提出して合格する必要があります。OSEP、OSWE、OSEDの順で取得しました。
記事を書いている人について
普段は主に以下のような業務をやっています。
- Webアプリケーションの脆弱性診断
- スマートフォンアプリのAPIとクライアント側の脆弱性診断
- IoT機器の脆弱性診断
資格取得費用補助の制度
弊社には福利厚生制度の1つとして、資格取得費用補助の制度があります。ざっくり書くと以下のような条件の制度です。
- 上長や社長の承認を事前に取得する必要がある
- 合格した場合に支払われる
- 補助が出るのは試験1回分
私はOSWEとOSEDでこの制度の補助を受けました。
OSEP
OSEPはPEN-300: Advanced Evasion Techniques and Breaching Defensesを受講して試験に合格すると取得できる資格です。大きく分けると以下の2つの内容が含まれています。
- Antivirus Bypass
- Active Directory Exploitation
公式サイトのWho is this course for?
には以下のように書かれており、
PEN-300 is an advanced course designed for OSCP-level penetration testers who want to develop their skills against hardened systems
OSEPはOSCP(PEN-200)のより難易度が上がったものと解釈することができます。実際にOSCE3の3つの資格の中でOSCPに内容が最も近い(言い換えると、OSCPの知識が最も役に立つ)のがOSEPなので、OSCPを取得後に受講するのであればOSEPが有力な候補になると思います。
受講期間の選択肢は以下の2つです。
- 90日(Course & Cert Exam Bundle)
- 2023年時点では1599ドル、2024年からは1649ドル
- 試験を1回受けることができます
- 1年(Learn One)
- 2023年時点では2499ドル、2024年からは2599ドル
- 試験を2回受けることができます
- 他にも90日の方には無い特典がいくつかあります
OSEPは私の普段の業務内容とはあまり重ならない領域であり、90日で終わる気がしなかったので1年(Learn One)を選択しました。(Learn Oneは11月のBlack Fridayの時期に20%オフの割引が行われているので、時期が合えばこの割引を狙っていくと良いと思います。)
Learn Oneを受講した感想ですが、1年は期間が長いのでやる気の維持が課題になると思いました。私は締切に追われないと手が動かなくなる傾向があり、Learn Oneの購入後の数週間は真面目にやっていたものの、ある日「明日やればいいか」と思った日を境に毎日「明日やればいいか」と思うようになって空白の期間ができてしまいました。これはまずいということで、先に試験の予約を入れてそこを締め切りとすることでなんとか手を動かすようにしました。
試験について
OSEP Exam Guideにある通り、複数のマシンからなる1つのネットワークに侵入し、最終的にsecret.txtを取得することがゴールです。secret.txtに至るパスは複数存在します。また、道中のマシンにはlocal.txtやproof.txtが存在し、それらを取得することでポイントになります。ポイントについては試験中にアクセスできるコントロールパネルに具体的な数値の説明があります。
試験に合格するには以下のどちらかを達成する必要があります。
- secret.txtを取得する
- 100ポイント以上取得する
試験を受けた感想としては、OSCPと同様にrabbit holeが割とあるなという印象でした。1つの対象に固執せずに、ダメなら他を当たる姿勢が重要な気がします。
結果について
secret.txtを取得して合格しました。取得したフラグはsecret.txtを含めて全部で10で、レポートのページ数は約55ページでした。レポートの提出から4日後に合格の通知が届きました。
OSWE
OSWEはWEB-300: Advanced Web Attacks and Exploitationを受講して試験に合格すると取得できる資格です。
OSWEはWebアプリケーションに関するコースで、基本的には脆弱なWebアプリケーションのソースコード(またはそれに準ずる情報)が入手可能な状況を前提として、ソースコードを読んで脆弱性を探すことになります。ホワイトボックス型のテスト手法を学ぶコースである、という言い方もできると思います。
OSWEは私の普段の業務内容と重なる部分が多かったので、あまり詰まること無くコースを完了することができました。OSCPとは内容にそこまで強い関連性は無いので、普段Webアプリケーションの診断をしている人であれば、Offsec社の資格の最初の選択肢としてOSWEを選んでも特に問題が無いと感じています。
試験について
WEB-300: Advanced Web Attacks and Exploitation OSWE Exam Guideにある通り、(100点満点中)85点を取得すれば合格です。具体的な配点は試験中にアクセスできるコントロールパネルに記載があります。
レポートに含める証跡に関してもコントロールパネルに記載されています。OSCPとOSEPはレポートに含める証跡がかなり似ているのですが、それらと比較するとOSWEで要求される証跡には違いがあります。コントロールパネルの内容をよく読んで、見落としが無いように気をつけた方がよいと思います。
試験環境についてですが、これは運悪く偶然そうだっただけかもしれませんが、対象マシンの中でGUIの反応がかなり悪いものがありました。もっさりしている程度で全く操作できないというわけではなかったのですが、試験の残り時間が少なくなってくるとストレスを感じる程度には遅く、悪い意味で印象深かったです。他の対象は快適に操作できていたので自宅のネットワーク環境の問題ではなかったはずと考えています。CUIの方はそこまで遅さを感じなかったので、その対象ではできる限りCUIを使うようにして乗り切りました。
試験を受けた感想としては、ラボ環境のマシンと比較すると難易度が高かったように感じました。
結果について
85点分を解いて合格しました。レポートのページ数は約40ページで、レポートの提出から2日後に合格の通知が届きました。
OSED
OSEDはEXP-301: Windows User Mode Exploit Developmentを受講して試験に合格すると取得できる資格です。
OSEDはWindowsのユーザーモードの32bitプログラムを対象とする、Exploit開発の基本を学ぶコースです。扱う脆弱性はバッファオーバーフローのみですが、DEPやASLRといった緩和策のバイパス方法はこのコースの内容に含まれます。
Exploit開発という観点では限定された領域を学ぶことになりますが、それでもかなりのボリュームになります。OSEP・OSWE・OSEDのそれぞれのコースを完全に初見の状態で受講した場合に、コースの内容を完了するのに必要な時間が最も長いのがOSEDだと思います(もちろん個人差は大きいです)。私が受講していた頃はポータルサイトに各コースに必要な推定時間が記載されていて、3つの中でOSEDの推定時間が最も大きかったと記憶しています(探したところヘルプのページにOSEDの推定時間のスクリーンショットが残っていて、OSEDは882時間と分かります)。逆に、Linux環境などでROPによるシェルコード実行をしたことがあればその経験が非常に役に立つため、その場合はかなりスムーズにコースを完了することができると思います。
OSEDではディスアセンブラとしてIDAのfree版を使用します。また、デコンパイラの機能は使用が禁止されています。私は普段の業務の中でIDAを使用することがありますが、その際には基本的にデコンパイラの機能を使用するので、デコンパイラのありがたみを噛み締めながら受講することになりました。たまにデコンパイル結果が間違っていて泣かされることもありますが、やはりデコンパイラは偉大です。
試験について
EXP-301: Windows User Mode Exploit Development OSED Exam Guideにある通り、独立した課題が3つ与えられ、2つ以上解くことで合格できます。課題の内容は試験中にアクセスできるコントロールパネルに記載があります。コントロールパネルに向き合う時間は、おそらくOSEDが一番長くなるはずです。ある課題固有の制限事項が存在する場合もあるので、しっかりと読んで見落としが無いように気をつけると良いと思います。
また、OSEDではレポートと一緒にpythonファイルを提出する必要があります。この点も他と異なるので気をつけましょう。
試験を受けた感想としては、コースの内容が身についていれば合格点を取得できるように試験が設計されていると感じました。
結果について
課題を2つ解いて合格しました。レポートのページ数は約80ページで、レポートの提出から3日後に合格の通知が届きました。
その他
休憩は頻繁に取りましょう
レポート作成を含めると3日間の長丁場なので、休憩をしっかりと取って息切れしないようにすると良いと思います。休憩中に思いついたことが詰まっていた箇所の突破口になるという経験を何度もしたので、積極的に休憩を取っていくことが大切だと感じました。同様に、睡眠時間をしっかりと確保することも重要です。
レポートの締切時間に気をつけましょう
試験時間は正確には47時間45分なので9:00開始の試験を申し込んだ場合、レポートの締切は9:00ではなく8:45です。場合によっては締切ギリギリに提出することになったりすることもあると思いますが、この15分の違いに泣くことにならないように気をつけましょう。
レポート提出システムには早い段階でログインの確認をしておきましょう
レポートの提出システムでは、記憶が正しければ、認証情報を間違えてログインに失敗した際に「このアカウントでは提出する資格がない」というようなメッセージが表示されます。締め切りギリギリで提出しようと焦っている時にこのメッセージに遭遇すると血の気が引きます。早い段階でログインの確認をしておくと良いと思います。