
近年急成長を見せるサイバーセキュリティ業界ですが、それに伴いサイバーセキュリティ関連の資格も、転職の際に有利になる資格として注目が高まっています。日本でサイバーセキュリティ関連の資格と言えば「情報処理安全確保支援士」が最も一般的ですが、こちらは難易度が高くないことから、ペンテスターなど、サイバーセキュリティ業界のテクニカルな部分を担う方の多くが持っている資格と言えます。そこで差別化のためにOffensive Security Certified Professional(OSCP)という難関資格を取得を検討する方もいるかと思いますが、日本語でのOSCPの試験情報や対策法に関するリソースはまだ限られており、対策法が見つからないことから頭を悩ませている方も多いのではないでしょうか。
今回の記事では、OSCPに関する基本情報と、対策のコツについて詳しく解説します。
OSCPとは-試験内容
OSCPとは、Offensive Security社が開発・運営するペネトレーションテストの認定試験で、資格取得により、攻撃対象への侵入や特権昇格の技術力を証明することができます。
この試験の最大の特徴としては、実際にターゲットとなるシステムに脆弱性を突いた攻撃を実施し、侵入するという、実技のみの試験法である点が挙げられます。
[OSCP試験の特徴]
・実技のみ
・試験時間は約48時間で、初めの23時間45分で試験サーバー(基本的に5ホスト)への攻撃を行い、残りの24時間で攻撃結果をレポートにまとめます。PDFで提出することが求められます。
・オンライン受験可(試験中はPC画面共有とWebカメラによる監視が実施されます)
・試験は全て英語で実施されます。100点満点、85点以上で合格。
・申し込みはOSCPの公式サイトから可能。練習用サーバーの貸し出し期間(1~3か月から選択可能)により料金は左右しますが、初めてであれば2か月以上の申し込みが推奨されます。
受講資格
OSCPの受講資格は特にありませんが、最低限、試験前に下記の条件を揃えておくことが望まれます。
-
情報処理安全確保支援士程度の知識
クラッキング技術の実技試験となるため、基本的なセキュリティ知識を保持していることが必須条件となります。
-
最低200時間程度の勉強時間
前述の通り、試験では膨大な量の課題を約48時間という時間制限付きで与えられます。必要な知識を一通りカバーし、実際に本番の試験に備えるための実践練習を行うには最低限200時間程度の勉強時間が必要となるでしょう。
-
プログラミングスキル
OSCPでは、インターネットに公開されたエクスプロイットコードを理解し、カスタマイズする技能が問われます。扱われるプログラミング言語は多岐にわたり、Java、C、Python、PHP、Rubyなどの一通りの言語は、ドキュメントを参照すれば理解できる程度の能力が必要となるでしょう。
-
研究・検証できる能力
OSCPの試験では明確な答えがあるわけではなく、教科書を暗記して試験に合格できるものではありません。そのため、自分で答えを模索し、それらを検証する能力が求められます。
-
集中力・忍耐力
こちらは、なかなか自力で伸ばすことが難しいスキルでもありますが、48時間という決められた時間の中で膨大な課題をこなしていくためには、相当の集中力が要されます。また、OSCPでは攻撃対象が広く、その脆弱性がどこにあるのかを知ることが一番の難しいポイントでもあります。そのため、単純な技術力だけではなく、脆弱性の発見に至るまでの列挙や探索といった過程の中で、新しい可能性にトライし続けることのできる忍耐力が必要とされます。
OSCPのおすすめ勉強法
ここからは、OSCPの勉強方法の手順とコツをご紹介します。OSCPの対策として主にすべきこととしては、「教科書による基礎」「練習用サーバー」「課題レポート」の3つに分けられます。
教科書による基礎
OSCPの申し込み後、受験者はPDFの教科書と、練習用サーバーへのアクセス権が渡されます。PDFは18章構成で数百ページにわたり、クラッキングの経験がないエンジニアが体系的に技術を学ぶには非常に優れた教科書となっています。内容を丸暗記する必要はなく、あくまで書かれていることが基礎であり、試験ではPDFに書かれていない応用の技術を使う必要があることを頭の片隅に置いた上で、全ての章をを読み込むための50時間程の時間を確保しましょう。
練習用サーバー
教科書を一通り理解したら、次は練習用サーバーに取り掛かりましょう。ここでは用意されたサーバーのroot権限を取ることが目的となり、教科書とGoogleなどを駆使してあらゆる可能性の列挙、そして検証していくことになります。練習用サーバーは約50~60程用意されており、どのサーバーから始めても構いませんが、初心者の場合1サーバーあたり約5~20時間程かかるため、非常に時間のかかる作業となるでしょう。目安としては、10~15サーバーを攻略できれば、試験に受ける見込みが出てきたと言えます。
課題レポート
OSCPの後半では課題レポートの作成が求められます。このレポートでは「教科書内の課題すべての答え」と「練習用サーバー10台の政略手順を記載する必要があり、完成させることで最大5ポイントほどの加点がもらえます。採点がシビアなOSCPの試験の中で数ポイントでも加算されるのは大きく、課題自体も試験と比較して簡単であるので、練習の意味もこめて取り掛かってみると良いでしょう。
OSCP学習の流れ
ここからは、OSCPの試験対策の流れについて、「受験申込前」と「受験申込後(ラボ環境攻略)」に分けて解説します。
受験申込前
ペンテスト初心者で、バッファオーバーフローの悪用について知識が浅い人は、受験申込前に以下ポイントをカバーする必要があります。
① Linux
まず、Linuxを使いこなせるようにしましょう。例えば、Linuxの基本的なコマンドについて一通り覚える必要があります。もし時間に余裕があり、Linuxのコマンドを楽しく学びたいのであれば、ゲーム形式でのオンライン学習プラットフォームを活用してみても良いでしょう。
おすすめオンラインゲーム(英語)
また、プログラミング言語についてもまだ知識が浅いのであれば、Pythonなどの言語の知識を強化することをおすすめします。Web上や、YouTubeでは、ポートスキャン、ウェブアプリケーションテストなどの基本を学ぶことができるリソースが多数存在しています。これらの基本的な概念について学ぶことで、SSHの仕組みや、ポート上でサービスが実行される仕組み、また、ソケットが動作する仕組みについてなどの、エニュメレーションについてのより広い知見を得られるでしょう。
② Metasploit
ペンテスターとして働くために非常に重要なツールの一つとして、Metasploitがあります。OSCPの試験の際にはMetasploitの使用は一台のみに制限されていますが、このタイミングでMetasploitの使い方について深く学んでみても良いかもしれません。
おすすめオンラインチュートリアル(英語)
③ バッファオーバーフロー
バッファオーバーフローとは、コンピュータプログラムの動作異常の一つで、あるデータの受け取りや保管のために用意された領域(バッファ)に想定以上の長さのデータを書き込んでしまい、溢れたデータが隣接する領域を不正に書き換えてしまうことを表します。
OSCPの試験におけるエクスプロイトの中で、バッファオーバーフローが使用されるのは一度のみであるため、多くの人はこのバッファオーバーフローの学習を疎かにしてしまいがちです。ただし、そのために試験でミスをしてしまうというパターンも少なくはなく、また、この概念は試験だけでなく実際の業務において非常に重要となるため、試験前に100%自分の力だけでバッファオーバーフローによるエクスプロイトが出来るようになる程度まで学習を進められると良いでしょう。
おすすめオンラインチュートリアル
受験申込後 - PWKコース教材を進める
コース教材の進め方としては、「最初にコース教材を使い学習してからLab環境に飛び込む」方法と、「いきなりLab環境に飛び込み、Labマシンを攻略しながら適宜コース教材を進める」方法が考えられます。
PWKコース学習のコツ
- ペネトレーションテストに関する事前知識がない方は、まず送られてきたコース教材をじっくり進めることが推奨されています。
- 一方、ある程度ペネトレーションテストに関する知識がある方は、PWK Labs Learning Pathを参考に進めてみると良いでしょう。こちらは、Offensive Securityが公式で公開しているLabマシンの攻略ガイドです。Labマシンの中から11台がピックアップされており、各マシンの攻略手順とコツを見ることが出来ます。
- Labマシンの直接的な解法を知る手段は用意されていませんが、受験者のみアクセス可能なOffensive Security Forumでは、受験者同士のディスカッションが可能となっています。完全に行き詰ったタイミングで、断片的なヒントを得るために活用してみると良いでしょう。
- Labマシンの攻略中にメモを取る練習をしておくことをおすすめします。OSCPの試験では、攻略中にレポート作成のための情報を漏れなく記録しておく必要があります。具体的には、侵入に必要なコマンドを実行結果ごとまとめてコピー&ペーストで記録し、必要であればスクリーンショットと共に保存しておく方法が、手間もかからず良いでしょう。メモを失うことのないようクラウドサービスでバックアップも忘れずに。
- Public Networkの他に受講者がアクセスできるネットワーク、「IT Department Network」「Development Department Network」「Administrator Department Network」も適宜活用しましょう。
OSCPに関するよくある質問
ここからは、OSCPに関するよくある質問とその回答をまとめました。
CTFとOSCPの違いは何ですか?
CTF(Capture The Flag)は、情報セキュリティのスキルを競い合うコンテストとして有名ですが、CTFプレイヤーの中にもOSCPに興味を持たれる方も多いことと思います。どちらも同じハッキング技術を証明する資格ではありますが、それぞれ問われるハッキング技術の方向性に相違点が見られます。
- CTF - CTFでは、出題される技術領域がジャンル分けされているため、1問あたりの攻撃対象のスコープは狭いことが多いです。脆弱性の特定よりも、出題されたシステムの仕組みを深く理解する能力と、複雑なExploitコードを書く能力が求められる課題の作りとなっています。
- OSCP - 出題される技術領域は細かくジャンル分けされていないため、膨大な候補の中から脆弱性を特定する能力が求められます。一方で、脆弱性の攻撃部分は出回っている攻撃コードを活用するだけで済んでしまうことがほとんどなので、システムの仕組みを深く理解している必要はないと言えるでしょう。
攻撃対象のスコープが広いOSCPの試験では、その脆弱性がどこにあるのかを見つけ出すことが非常に難しいポイントです。そのため、CTFと比較しても、脆弱性の発見のためにトライし続ける心構えと忍耐力がより問われる試験内容となっています。
こちらの記事では、CTFに関する基本情報と、対策のコツについて詳しく解説しています。
日本語でのOSCP学習コースはありますか?
2022年5月現在、日本語でのOSCP学習コースは、株式会社イエラセキュリティが提供する「イエラアカデミー」のみとなっています。
OSCP以外に、ペンテスターもしくはセキュリティ関連の資格はありますか?
日本におけるセキュリティ関連の資格としては、情報処理推進機構(IPA)が主催する情報処理安全確保支援士試験があります。
海外のペンテスト関連資格としては、下記が挙げられます。
- CEH(Certified Ethical Hacker):国際的に有名なアメリカの資格で、3年ごとに更新が必要です。
- GIAC(Global Information Assurance Certification):アメリカの資格で、特定領域ごとの資格がありますが、比較的高額 となっています。
OSCPとは-まとめ
OSCPの試験は難易度が非常に高いだけでなく、学習法に関する日本語での情報が少ないことから、受験へのハードルが高いと感じる方も多いかもしれません。しかし、ペンテスト初心者の方にとっては対策により基礎から応用まで網羅できますし、経験者の方にとっては取得によって周りとの差別化が可能となるなどのメリットが期待でき、ペンテスターとしてのキャリアアップをお考えの方は、おすすめの資格と言えるでしょう。
ペンテスターへの転職をご検討の場合はページ下部のフォームからお気軽にご相談ください。サイバーセキュリティ領域に特化したコンサルタントがお力添えをいたします。現在の求人情報をチェックしたい方は、下記のボタンから求人検索をご利用いただくか、お問い合わせフォームよりご相談ください。