未経験からOSCP保持者へ 私のOSCP受験記
はじめに
初めまして!イエラエセキュリティの教育サービス、「イエラエアカデミー」を担当している、出家(いでや)と申します。今年の1月に、ペネトレーションテストの難関資格であるOffensive Security Certified Professional(OSCP)を取得することができました。本記事では、同資格の取得を志望する方の参考になるよう、勉強・受験の軌跡や所感を共有したいと思います。私はサイバーセキュリティ分野の実務未経験で資格を取得できたので、スキルや経験に不安のある方にもぜひ読んでいただきたいです!
この投稿の目的
- OSCPの取得を志す方々の参考となる情報の共有
- セキュリティ未経験から見たOSCPのレベル感の共有
- スキルレベル等様々な理由でOSCPにチャレンジする自信がない方々の背中を押す
※本記事の内容は基本的に初心者向けの個人の見解や感想が中心です。技術的な試験対策に関する情報は別記事に掲載予定です。
読んでほしい方
- OSCPの取得を志す全ての方
- OSCPが雲の上の資格だとチャレンジを諦めている方
- セキュリティ関連の難関資格を取得し、セキュリティ業界へのキャリアチェンジを狙っている方
OSCPとは?
OSCP(Offensive Security Certified Professional)とは、Offensive Security社(通称Offsec)が提供する、ペネトレーションテストの民間資格です。国際的に難関資格とされており、英語圏ではペネトレーションテスター(ペンテスター)を志す者の登竜門と捉えられることが多いです。
OSCPの試験を受けるためには、PWK(Penetration Testing with Kali Linux)という、ペネトレーションテストのトレーニングコースを受講する必要があります。コースのコンテンツとして、PDFとWeb形式で提供されるペネトレーションテストの基礎知識が網羅されたコース資料/ビデオと、実戦形式で技術を身に着けるためのラボ環境(70台以上マシンで構成される)が提供されます。
OSCPとPWKの関係性は、大学の講義と単位のそれとほぼ同様のものだと考えていただけるとイメージしやすいかと思います。コンテンツは基本的に英語で提供されるため、日本語圏では敷居の高い試験とされることも多いです。
OSCP取得を志したきっかけ
1年ほど前、SIerでセキュリティとは縁遠い仕事をしていた私は、とある方のブログ投稿をきっかけに、Hack The BoxやTryHackMeという、ペネトレーションテスト(ペンテスト)の学習サービスに熱中していました。
ゲームをやっているような気分で楽しく勉強できたので、漠然と「これを仕事に繋げられたら毎日が楽しいのでは?」と考えるようになりました。そんな中で、先に上げた学習サービスに関連した、「OSCP」という資格の存在を知りました。
「日本で取得している人は少ないし、難関資格っぽいから、これを取ればセキュリティの仕事ができるかもしれない!あとなんかカッコ良さそう!」という、非常に安直な考えのもと、取得を決意しました。
私の事前スキルレベル
- セキュリティの実務経験: ゼロ(Burpやnmapも知りませんでした)
- 持ってる資格: 基本情報技術者
- コーディングの経験: 申し訳程度にJavaとJavaScriptが書ける
- コンピューターサイエンスのバックグラウンド: なし。バリバリ文系大学出身でした。
- 英語スキル: TOEIC700点ぐらい。ネイティブの前でアワアワして苦笑されてました。
- OSCPの要求事前知識と私の受講前スキルレベル
- TCP/IPネットワークに関する確かな理解: ナシ。
- WindowsおよびLinuxの管理経験: ほぼナシ。一応メインの開発機はUbuntuだったのでちょっとだけ慣れてました。
- 基本的なBash/Pythonスクリプトに精通していること: 一度も書いたことがありませんでした。
書いてて恥ずかしくなってきたのでもっと勉強します…。
学習期間・学習の軌跡
ここからは、私が資格取得までにどのような勉強をしてきたのかを時系列順に記載したいと思います。合格までの学習期間はTryHackMeの開始から数えると約1年です。試験は1発で合格できました。
PWK受講前①: TryHackMe期(3か月弱)
最初に、Hack The Boxに挑戦するために、TryHackMeというセキュリティ学習サービスに登録しました。この時点では、OSCPという資格の存在は知りませんでした。
TryHackMeは、セキュリティの学習にゲーミフィケーションを取り入れたサービスで、ゲームのチュートリアルのようなイメージで与えられたタスクを少しずつこなしていくと、自然と知識が身につくようになっています。セキュリティの学習でネックになりがちな「やられ環境」の構築もクリック一つで完了でき、VPN経由でリモート接続して攻略するので、環境構築で挫折したり、自前のセキュリティホールを作ってクラウド破産するような心配もなく、初心者に優しい設計になっていました。
基本的にコンテンツは英語ですが、Webベースなので、Google翻訳やDeepLを駆使すれば何とかなります。現在はOSCPもWebベースで資料を提供しているので(意外に知られていませんがここ1年弱で資料をPDFのみならずWebベースでも提供するようになりました)、このフェーズでGoogle翻訳職人としてのスキルを身に着けられたのは良かったです。
サービスでは、利用者の多様なニーズに応えるため、複数のコンテンツをひとまとめにした、「Learning Path」というものがあります。この中にいかにもペンテスター向けのものがあり、それを受講していました。振り返ってみると、全く専門知識が無い状態から「何を言っているかはわかる」ぐらいのレベルにはなれたので、最初期の学習リソースにTryHackMeを選んだのはファインプレーだったと思います。
PWK受講前②: Hack The Box初期(1か月)
TryHackMeでペンテスター向けのLearning Pathと関連コンテンツを3ヵ月弱で終え、Hack The Boxでの学習を開始しました。
Hack The Boxは、TryHackMeのテキストやガイド部分を取り除いたようなサービスです。ランキングやポイントの概念の存在感がTryHackMeよりも強く、射幸心が煽られる&難易度がTryHackMeより高いというイメージを持ちました。
攻略対象のマシンは2種類あります。ポイントやランキングに影響する代わりに、Writeup(有志による模範解答)の投稿が禁止されているActive Machinesと、Writeupの投稿が許されている代わりに、ポイントはゼロのRetired Machinesです。Retired Machinesに関しては月額課金をしないと利用できません。
Hack The Boxでの学習を始めた1週間後あたりで、OSCPの存在を知りました。また、Hack The Boxの中には、OSCPの試験マシンによく似た「OSCP Like Machines」というRetired Machine群があること、そしてその一覧をスプレッドシートにまとめて公開している人がいることを知りました。一覧にあるマシーンをすべて消化し、OSCPを受験することが当面の目標になりました。
しかし、私は弱い人間でした。Hack The Boxの射幸性に負け、ポイント欲しさにActive Machinesを夜通し攻略していました。サービス登録から一か月ほどで及第点的なランクであるHackerランクに到達できましたが、WebAssemblyやコンテナ等比較的新しい題材のマシンを攻略することになり、OSCP向けの知識がついたとは言えませんでした。
このフェーズで身についたスキルを強いて挙げるなら、「根性」だったかなと思います。PWKのラボマシンには、全力で人の心を折りに来るものがいくつかあります。また、OSCPの試験は約24時間ぶっ通しで監視付きの試験を受けるため、多少のことでは動じない、精神的なタフさが重要になってきます。朝までイライラしながらマシン攻略をする経験を事前に積めたのは良かったと思います。
PWK受講前④: Hack The Box中~後期、または低迷期(2か月)
何とかActive Machines中毒を脱し、OSCP Like Machinesに取り組み始めました。ですが、攻略対象は少なくとも70台程度あったので、単純作業の繰り返しで飽きが出てきました。また、前職(SIer)で周囲にペンテストの勉強をしている人はほぼ皆無だったので、自分が熱意を持っていることを理解してもらえる場が得られず、孤独感もあり、モチベーションが低下していました。「それでも一応勉強はしているし…。」と、単純作業から何も学ばないままHack The Boxに閉じこもり、状況はなにも改善せず…という悪循環に陥っていました。
あくまで個人的な意見ですが、OSCPの合格を最終目標とするなら、Hack The Boxは不要だと思います。合格に全く寄与しないという意味ではなく、無くても困らないということです。また、PWKの受講経験が無い中で、OSCP取得者からの又聞きの情報だけを頼りに準備を進めると、実体験に基づく有用な経験や知識が得られず、心理的なハードルばかりが上がってしまう気がします。
PWK受講開始
進捗の低迷&孤独を感じていた私は、Twitterに活路を見出だそうとします。
Hack The BoxのトップランカーにいきなりDMを送り「普通に鍛錬が足りないだろ」という至極真っ当なアドバイスをもらったり、イエラエセキュリティのPWKの事前知識をおさらいする勉強会に参加したりしていました。また、先ほど記載したトップランカーの方が「フルタイムでセキュリティの仕事をしていて、それも知識拡充の一助となっている」と仰っていたので、「OSCP取得後に転職する」という当初の予定を変更し、セキュリティを専業とする企業を対象に転職活動を始めました。
その中でイエラエの社長である牧田さんとお話しする機会を頂き、私の学習意欲やスキルレベル的にOSCPにチャレンジ可能であること等、様々なアドバイスを頂きました(今まで技術的なモチベーションが高い方と話す経験が無かったのでめちゃくちゃ感動しました)。そこで自信をつけた私は、なけなしの賞与をはたき、PWKの受講を開始する決意をしました。
PWK受講①: 資料の読み込み(10日程度)
PWKの受講を開始しました。コース期間は3ヵ月です。
まず、ラボ攻略の事前知識が網羅されている提供資料を読み込みました。体感で全体の30~40%程度の知識はTryHackMeでカバーできていたので、そこまで苦ではありませんでした。また、不安要素だった英語に関しても、過去の情報と異なりPDFのみならずWebベースでも資料が提供されていたので、Google翻訳を使えばそこまで困ることはありませんでした。
宣伝:イエラエアカデミーでは、Offensive Security社との提携の下、弊社作成でPDFの和訳版も提供しています!!!ぜひ受講をご検討ください!(現在サポートは法人のみ対応)
TryHackMeやHack The Boxの経験でペンテストに習熟するには座学よりも実践だと身に染みていたので、読み込みはほどほどにラボ攻略に移っていきます。
PWK受講②: ラボ攻略初期(2週間)
ラボ攻略を始めました。が、開始数分で泣きました。PWKでは、初心者が最初に攻略すべき11台のマシンをLearning Pathとして公開しています。
このページのLP-1、LP-2のマシンは公式がWalkthrough(Writeupのもうちょっと詳しい版みたいなイメージ?)を公開しているのですが、裏を返せば公式が答えを出す程初心者向けのマシンということなので、学習サービスで知識をつけた自分なら余裕だろうと高を括っていました。しかし、LP-1に少し取り組んだ時点でその考えが間違いであることに気づきました。今思い返せばマシンの難易度は決して高くありませんでしたが、Hack The Boxのマシン群とは少しだけ攻略手法の毛色が違っていて、そこが躓きのポイントだったと思います。
出鼻をくじかれましたが、そこでOffsec公式のDiscordサーバー等でマシンのヒントを集めるフローを学び、何とか最初のマシンを攻略することが出来ました。この経験をきっかけに、初心に帰ってラボを通じた学習を進めていきました。2週間程度でLearning Pathを終え、13台程度攻略できました。
PWK受講③: ラボ攻略中期(1か月)
ここからひたすらにラボ攻略をしていました。謙虚に学ぶ気持ちを取り戻したのが大きかったのか、知識的な躓きにはあまり直面しなくなりました。
この時に大変だったことは、日常生活とラボ攻略の両立です。前職で退職をすることが周知の事実となり、立つ鳥跡を濁さずということで残業で引継ぎ作業をできる限り減らしながら、毎日最低2時間はラボ攻略も行うという生活をしていました。たまたま自分が若年層かつ単身の社会人で、体力的にも時間的にも余裕があったので耐えられましたが、一歩間違えれば挫折していたと思います。
実際、イエラエアカデミーに携わる中で、ご家庭の事情だったり、組織の要職としての業務量が理由で勉強がなかなか進まないと悩まれている社内外の方々を複数見てきました。このあたりは現在色々と対応策があるので後述します。
PWK受講④: ラボ攻略後期(1か月)
イエラエセキュリティに入社し、引き続きラボ攻略を進めながら、イエラエアカデミーのお手伝いをしていました。
牧田さんはじめ上司の方々に「君の仕事はまず勉強することだから」と、給料を頂きながら長時間OSCPの勉強をさせていただきました。正直ここからのフェーズはイエラエにいるからこそ経験できる、良くも悪くもチートの状態だったと思います。(「エンジニアの楽園」は嘘ではなかった…!)
宣伝: イエラエセキュリティでは、一緒に働く社員を募集しています!
このあたりからの攻略はかなり順調でした。わからないところは同僚に質問できるし、そもそも時間があるので余裕をもって知識をつけられました。最終的に50台弱程度のマシンを攻略出来ました。
PWK受講⑤: ラボ期間終了、延長
ラボのアクセス期間が終了し、去年の12月中旬あたりに試験の予約をしました。「あとは本番を待つだけだ~」となっていたところ、突如Offensive Securityから、1月中旬からの試験内容変更が発表されました。私の受験日は試験変更の影響を受けないため本来関係のない話ですが、教育サービスに携わる者として受験の必要性を感じ、ラボ延長&受験日の後ろ倒しを行いました。
Offensive Securityは、こういったコンテンツや試験形式の変更を定期的に行うので、しばしばコミュニティ内で議論が巻き起こります。ですが、基本的にコンテンツ作成者は「使えるセキュリティ知識を、できる限り効率的に伝えたい」という熱意を持っています。個人的な感想ですが、総じて意地悪な変更というよりは、顧客として付加価値向上を十分に感じられる変更が多いです。変更された試験の感想も後述します。
PWK受講⑥: ラボ攻略延長期間(1か月)
変更された試験の対策を重点的に行っていました。
変更された試験で新たに要求される知識はActive Directory(AD)です。ADの技術的説明は割愛します。
変更前の試験形式や内容はほぼ公然の事実となっており、ラボマシンとして登場するADの環境は試験では出題されないというのが受講者の間での共通認識でした。私もその例に漏れず、コース資料のADの章を自信満々に読み飛ばし、ラボマシンの攻略もサボっていました。
公式の発表では、公式が提供するコンテンツをしっかりやれば試験で得点できると記載されていたので、各コミュニティのヒントを頼りにラボのAD環境をリストアップし、攻略していました。慣れてしまえば定型作業の積み上げだけでクリアできるため、そこまで難しくありませんでした。
最終的に、65台程マシンを攻略することができました。
試験準備(1週間)
ラボ環境内のドメインを全て攻略し、試験準備に移りました。この時期は主にレポート記述の練習を行っていました。
試験本番では、「マシンにどのように侵入し、権限昇格したか」をフォーマットが定められたレポートにまとめ、提出する必要があります。攻略中の画面をスクリーンショットに収めることもあるので、攻略とレポート記述を並行して行う自分なりのフローを試験前に確立しておかないと、レポートの記述不足で思わぬ失点をしてしまうことがあります。
このレポート記述の練習はもう少し早めに行うべきだったと反省しています。自分の受験環境で起こりうる受験~レポート作成時のトラブルを早めに洗い出しておかないと、何かあったときに確実にパニックになります(なりました)。
例えば、私はレポート作成にMarkdownのレポートフォーマットをPDFに出力できる有志のGitHubリポジトリを利用していたのですが、その際細かい記法に習熟していなかったせいで添付したコードブロック内のコードがめちゃくちゃになったり、リポジトリのReadmeをよく読まなかったせいでファイル出力を行うのに数時間手間取ったりと散々でした。「試験を受ける→レポートを書く→提出する」という流れは何度もシミュレーションしておくのがオススメです。
それと、OSCPの試験では部屋を監視されると聞いていたので、大掃除もしました。ですが、試験監督は匿名かつ顔や声がこちらからは確認できないので、無駄な時間だった気がしています。ここは個人の価値観にもよるとは思いますが、試験前で追い詰められているのであれば、掃除はほどほどでいいと思います。
試験本番
ここからは、試験当日について記載したいと思います。試験内容に関しては言及できないので、当日の雰囲気を掴む目的で読んでいただければと思います。
試験概要
OSCP試験は今年1月中旬から内容が大幅に変更されたので、ここで試験概要を軽く整理しておきます。
試験では、
- 3台のマシンで構成されたADドメイン(全マシンのproof.txt(高特権でないと読み書きできないフラグ)取得で40ポイント)
- 3台のスタンドアロンマシン(各マシンにuser.txt(低特権で読み書きできるフラグ)10ポイントとproof.txt10ポイントが存在)
の計6台、100ポイント分のマシンを、23時間45分以内に攻略し(Webcamによる監視あり)、その後の24時間でその攻略過程をレポートにまとめて提出することが求められます(監視なし)。合格するためには、70ポイント分のフラグを取得する必要があります。
当日マシンを攻略する以外にも、ラボマシン攻略の過程をレポートにまとめることでもボーナスポイントが取得できます。詳しくは公式の試験概要をご覧ください。
詳しくは公式の試験概要をご覧ください。
当日のタイムライン
合格ラインに到達したのが開始9時間後の18時でした。その後開始13時間後の22時まで攻略を続け、合計80点を取得しました。
試験は午前9時に受験しました。基本的に夜型なので寝坊しないか不安でしたが、前日は特に勉強などをせず早めに寝たので、万全の状態で試験に望めました。
最初にADマシンに取り組みました。開始5,6時間程度で大体攻略でき、40ポイント取得がほぼ確定したので心理的余裕が得られました。その後、残り3台の非ADマシンに取り組みました。全台分の初期シェルさえ取得できていれば合格確定だったので、初期シェルを取ったら深入りせず別のマシンを攻略するようにしていました。その戦略がうまくいき、前述の通り9時間程度で合格圏に達することができました。3台のうち一台はほぼ自明な権限昇格方法だったので、少々手間でしたが2時間程度で昇格を成功させました。
ここまで攻略したところで大きなミスに気が付きます。思いのほか攻略が上手くいき舞い上がってしまい、全くスクリーンショットを取得していませんでした。せっかくフラグを取得したのにこれでは不合格になってしまうと焦ってマシンに侵入しなおし情報をかき集めました。試験に限らず、AD等は性質上マシン間にコンテキストがあることが多いので、侵入の過程を再現するのに非常に苦労しました。こんな形で試験に落ちるのは流石に恥ずかしいので、不安から寝ずにスクショを撮りまくり、試験中にレポートもある程度仕上げていました。
そうこうしているうちに開始後23時間後の朝8時あたりになっていることに気づき、そこから少しして試験が終了しました。
その後6時間ほど眠り、眠い目をこすりながらレポートの残りの部分を仕上げました。消耗している中でファイル名やフォーマットが規則通りになっているかという不安を抱えながら作業していたので、いつまで経ってもレポートが提出できず、結局提出期限の2時間ほど前まで粘ってレポートを修正していました。
5日後、試験合格の通知が届く
レポート提出後、試験の結果通知を今か今かと待ちわびていました。
周囲の合格者の方々は遅くても3日以内に結果通知を受け取っていたので、通知の遅い自分は落ちたのではないかとナーバスになっていました。
そんな中、受験から5日後に合格通知が届きました。自分が目標としていた資格に合格でき、とても嬉しかったです!
新形式の試験を受けた感想
たまたま簡単なマシンに当たった可能性もありますが、少なくとも合格点に到達することを目標とするならば、試験はそこまで難しくありませんでした(個人の感想です)。コース内容をしっかり理解しているか、提供されているコンテンツを有効活用しているかを問うような印象で、大学の期末試験と似ていると感じました(細かく板書を取ったり真面目に受講している学生は楽に単位が取れるように設計されている講義ってありませんでしたか?)。
今回の試験で新たに問われたActive Directoryに関しても同様です。公式が提供している環境をしっかり攻略すれば、道が開けます(これは公式発表と同様の見解です)。
ADの基礎知識を身に着けるためにTryHackMe等を併用するのはアリかもしれませんが、PWK外の環境でADラボマシンを攻略する必要は現状無いと思います。
我々の立場上、読者の方々はセールス/ポジショントークに感じるかもしれませんが、個人でライセンスを購入する場合でもしっかりと公式コンテンツをやりこむことが大切だという見解は変わりません。
社会人がOSCPの学習に3ヵ月間集中して取り組めるか?
以上が私のPWK受講から合格までの経緯です。全体的に余裕な雰囲気が感じられるかもしれませんが、セキュリティ専業の企業で周りに応援されながらもPWK開始から合格まで4か月かかってしまったので、一人で受講していたらもっと時間を要していたでしょうし、最悪資格取得を諦めていたかもしれません。
いくつか前の章でも記載しましたが、実際、3ヵ月でコース受講を開始したものの、家庭の事情や社内業務で学習時間が取れず、合格が遠のくことに悩みを抱える社内外の方を多く見てきました。若年層の社会人として自由時間の多い私ですら3か月で50台程度しかマシンを攻略できなかったので、多くの人にとって3ヵ月で与えられるコンテンツを利用しつくすのは無理があると思います。
そういった方には、Learn Oneという、最近リリースされた1年間で特定の1コースを集中して学習できるプランを強くお勧めします。
2022年2月現在、Learn Oneは2499ドルとなっています。
こちらを購入すると、1年分のラボアクセス+試験2回分が提供されるので、勉強時間が確保できなかったり、知識に不安がある方も、自分のペースで学習を進めることができます。
例えば3ヵ月のコースで学習が間に合わず、ラボアクセスをさらに3ヵ月延長する場合、現在だと2298ドルかかります。プライベートの時間と精神をすりへらして何とか学習を間に合わせたり、勉強時間が捻出できず、ラボアクセス延長をされる方は少なくありません。ぜひ検討してみてください。
宣伝: 弊社が提供するイエラエアカデミーは基本的に3ヵ月でのPWK受講に関する技術的サポートを行っていますが、Learn Oneを用いたサポートプランに関してもご相談いただければ柔軟に対応可能ですので、お気軽にお問い合わせください(現在は法人のみサポート対象です)。
おわりに
以上、長くなりましたが私のOSCP受験記をお届けしました。「自分なんかがOSCPを取れるわけがない…。」と悩んでいる方は、私のような未経験者でも合格できたことを思い出して、PWKの受講に踏み出していただければ幸いです!
また、これからもOSCPに関する情報を弊社ブログで複数回提供予定ですので、ぜひご覧ください!
最後にダイレクトな宣伝です。
「イエラエアカデミー オフェンシブセキュリティ資格取得コース」では、私をはじめ、弊社のOSCP取得者がPWK受講をサポートするサービスを提供しています。
実務経験豊富な資格取得者や、私のようにゼロから資格取得を実現した社員などのメンバーが資格取得をサポートします。Offsecとの提携の下、PWKのテキストを和訳したPDFもサポートに含まれています。ご興味のある方は以下リンクからぜひお問い合わせください!(現在は法人のみサポート対象です。)