今回はペネトレーションテスター(ペンテスター)の勉強ガイドを紹介します。
勉強ガイドでは、学生や未経験者に向けて「ペンテスターになるまでのステップ」を紹介しています。そのため、今まで何も勉強してこなかった方も安心してください!
また、ただキャリアに就くだけではなく、よりハイレベルな人材になるための勉強方法をまとめているので、既に勉強を始めている方もぜひ参考にしてみてください!
ペンテスターに必要なスキルと勉強方法について、
わかりやすく紹介しているよ!
はじめに
まず、未経験者や文系出身の方で「ペンテスターになりたいけど具体的にどうすれば良いか分からない」というを悩みを抱えている方は多いのではないでしょうか。
でも安心してください。私もゼロからスタートしペンテスターになりましたし、文系出身の方がチームを率いて、テックリーダーとなっている事例も多く見てきました。
本記事では、初心者の方に向けて、楽しく技術を学びながらペンテスターになるためのステップを紹介しているのでぜひ参考にしてみてください。
執筆者の情報
本記事はFSC編集長のteTuが執筆しています。
簡単な経歴としては、新卒で外資系コンサルティングファームに入社し、ペンテストやレッドチームオペレーション等の業務を行ってきました。国内の名だたる大企業に対して、サイバー、人、物理の観点で攻撃者の立場からセキュリティ評価を行ってきた経験があります。
本記事では、未経験(新卒)からペンテスターになった経験をもとに、おすすめの学習方法を紹介していきます!
企業目線から重視されるスキルや実績の分析
ペンテスターを目指す上でまず重要なのは、企業目線になり「どのような人材が求められているか」、「どのようなスキルや実績が重要視されているのか」を知ることです。まずはゴールから考えて、ゴール達成に必要なことを1つずつ洗い出していきましょう。
複数の国内企業を調査したところ、新卒や未経験者には次のようなスキルを重視している企業が多いようです。
必須スキル | コンピュータサイエンスの基礎スキル(OS、ネットワーク、プログラミング) |
サイバーセキュリティの基礎スキル(脆弱性、攻撃手法、対策) | |
サイバー攻撃の技術的な基礎スキル | |
論理的思考力、コミュニケーションスキル、プレゼンテーションスキル | |
歓迎スキル | ソフトウェア開発経験 |
セキュリティ業務経験 | |
CTF、セキュリティコンテストでの上位入賞経験 | |
脆弱性の報告経験 | |
OSCP、GIAC、CEH、情報処理安全確保支援士等のセキュリティ専門資格 | |
研究成果の対外発表経験 |
上記の結果から、基礎的な技術スキルやビジネススキルが必須スキルであるようです。また、業務経験や技術的な実績があれば歓迎スキルとして見なされることが分かりました。そのため、ペンテスターを目指す際には、必須スキルを抑えた上で歓迎スキルもあると安心です。
歓迎スキルの中でも、セキュリティ専門資格の取得を目指すのが初心者に一番オススメです。なぜなら、資格取得はCTFや研究よりもずっと簡単で、初心者が取り組みやすいからです。さらに、資格勉強の中で実務レベルのスキルを磨くことが可能なので、ペンテスターになった後も即戦力として活躍することができます。
※ もちろん、CTFなどに挑戦するのは凄く良いです。ただし、ここでは「ペンテスターのキャリアになること」を第一優先で考えているので、初心者にとっても再現性が高い方法をご紹介していることをご了承ください。
まとめると、必須スキルを独学で習得した後、セキュリティ専門資格を取得することで、技術的な実績をつくり、ペンテスターを目指すことをオススメします。
「CTFや研究は苦手・・・」って人は資格取得がオススメだよ!
特にペンテスターの専門資格を持っていれば、強力なアピールポイントになるよ!
コンピュータサイエンスの基礎スキル
ペンテスターを目指す上でスタート地点となるのは、コンピュータサイエンスの基礎スキルを勉強することです。「いやいや、資格の勉強から始めたいんだけど」と思われる方もいるかもしれませんが、いきなり後述するOSCPなどの専門資格に取り組んでしまうと直ぐに挫折してしまう可能性が高いです。専門資格の学習ハードルを少しでも下げるためにも、まずは基礎スキルをさっと勉強しておくことが重要です。
ペンテスターに必要なコンピュータサイエンスの基礎スキルとは次の3つです。
・ネットワークの基礎スキル
・オペレーティングシステムの基礎スキル
・プログラミングの基礎スキル
以降では、これらのスキルがペンテスターに必要な理由や、効率的な勉強方法を紹介しています。
ネットワークの基礎スキル
ペンテスターに必要な理由と学習方針
ペンテスターにはネットワークの基礎レベルが求められます。例えば、評価時にはネットワークスキャンやポートスキャンを通じて評価対象の調査を行います。また、ネットワーク上の通信内容を解析し脆弱性を調査する時もあります。こういった際には、調査用のツールを使用して通信内容を収集したり、データを分析する必要がありますが、ネットワークの基本的な知識が必要になります。ネットワークエンジニアのようにネットワーク設計や構築スキルまでは求められないものの、ネットワークの基礎知識(IPアドレス、OSI7階層、主要プロトコルなど)や調査用ツール(Wireshark、Nmapなど)の使用に慣れておくことが重要です。
初心者におすすめの勉強方法
次の記事では、ネットワーク基礎の勉強方法を紹介しています。
その他オススメの勉強方法
Try Hack MeのPre Securityコースもオススメです。Try Hack Meとは、初心者向けのセキュリティ学習サイトです。手を動かして実践的に学ぶことができ、目的に応じてたくさんの学習コース(初心者用コース、ペンテスター用コースなど)が用意されています。
ネットワークの基礎学習は、Pre Securityコースの「Network Fundamentals」や「How The Web Works」が良いでしょう。こちらは、ネットワークの基礎知識をペンテスターの文脈に沿って解説されており、より実践的な内容を学ぶことができます。
ネットワークエンジニアからペンテスターになる人も多くいるね。
それくらいネットワークに関する技術は重要だよ!
オペレーティングシステム(OS)の基礎
ペンテスターに必要な理由と学習方針
ペンテスターは一般的にKali LinuxやArch LinuxなどのLinuxマシンを利用してシステムに対する攻撃を行います。そのため、Linuxやコマンドの操作を自由に行えることは前提となります。また、OSの脆弱性を調査したり、攻撃するためのスキルも求められます。ただし、OSの脆弱性や攻撃手法に関しては、OSCPなどの後のフェーズで十分に学習できるので、初めはLinuxの操作に慣れることを目指しましょう。
初心者におすすめの勉強方法
次の記事では、OS基礎の勉強方法を紹介しています。
プログラミングの基礎
ペンテスターに必要な理由と学習方針
意外かもしれませんが、ペンテスターを目指す上で高度なプログラミングスキルは必須ではありません。プログラミングが苦手なペンテスターも多くいます。なぜなら、一般的なペネトレーションテストは、商用ツールやOSSを組み合わせて実施されることが多いからです。また、OSCPでもゼロからプログラミングが求められることはなく、既存コードを簡単に理解したり、一部の設定値(攻撃対象のIPアドレスやポート番号など)を編集するスキルがあれば十分です。そのため、まずは基礎スキルの習得を目指しましょう。
ペンテスターになるためには高度なプログラミングスキルは要求されないものの、より現場で活躍したり、キャリアを発展させる上ではスキルがあった方が良いです。例えば、攻撃ツールや独自マルウェアの開発、攻撃環境(C2サーバやラボ環境など)の構築を自動化していく上ではプログラミングスキルが必要になってきます。そのため、自身のキャリアプランに応じて、ペンテスターとしてよりキャリアアップしていきたい場合には、高度なプログラミングスキルを学んでいくことが良いでしょう。
初心者におすすめの勉強方法:
プログラミング基礎スキル習得にあたり、重要なのはプログラミング言語の選定です。結論、初心者におすすめのプログラミング言語はPythonになります。理由としては、ペンテスターの勉強を行う上で、Pythonはとても多く登場するからです。例えば、攻撃ツールもPythonで作られていることが多く、Pythonを読めるとコードが理解できたり、ちょっとした編集ができたりと凄く便利です。最近だとGoやNimも流行ってきていますが、Pythonは初心者にも分かりやすく、様々な用途で利用できるのでおすすめです。
初心者におすすめな勉強方法や教材の紹介:
Progateは初心者がプログラミング言語を楽しく学ぶことができるWebサイトです。Webブラウザ上でプログラミングができるため、お手軽に勉強することができます。ここでPythonを一通り学習し、次のステップに進むのが良いでしょう。
書籍での勉強が好きな人はこちらがおすすめです。イラストを用いて分かりやすく解説されており、プログラミングやったことがない人の1冊目としてオススメです。
以下では、初心者がつまづきやすいポイントを考慮して、目的別におすすめの書籍や学習方法を紹介しています。ペンテストの勉強を進める上でより領域毎の理解を深めたいと思った時に参考にしてみてください。
・サイバーセキュリティプログラミング 第2版 ―Pythonで学ぶハッカーの思考
こちらは、Pythonでネットワークキャプチャやマルウェア等の攻撃用ツールをプログラミングして学ぶことができる書籍です。1つ1つのツールに対して、開発方法が分かりやすく解説されているので、Pythonの基礎を学び、開発スキルを鍛えてみたい人には凄くおすすめです。
高度なプログラミングスキルがあれば、評価で利用するマルウェアや攻撃用ツールの作成ができるし、かなり活躍の場が広がるよ!
サイバー攻撃の基礎スキルの習得する
次はサイバー攻撃の基礎スキルを勉強する方法を紹介していきます!
ここでは、OSCPなどの専門資格を取得するための事前準備として効率的な勉強方法を紹介していきます。
初心者におすすめな勉強方法や教材の紹介
・Try Hack Me (Offensive Pentestingコース)
Try Hack MeのOffensive Pentestingコースは、サイバー攻撃の基礎スキルを習得する上で凄くおすすめです。一つ一つガイダンスに従って、手を動かしながら攻撃活動を体験することができるので、初心者にピッタリです。また、本コースはOSCPの内容に重複しているので、OSCPの事前学習として利用されていることが多く、ユーザから非常に好評を得ています。ただし、分量が多いので(学習目安時間:47時間)、飽きてしまったら他の勉強方法に切り替えたり、またはOSCPに進んで見たりと、色々と試しながらスキルを強化していきましょう。
Hack The Boxも人気な学習サイトで、実践的なハンズオン学習を通じてペンテストのスキルを磨くことができます。ただし、Try Hack Meよりも難易度が格段に高くなるため、初心者にはハードルが高いかもしれません。少し初めてみて、自分には合わないと感じたら、辞めて他の勉強に切り替えるのも良いでしょう。凄く人気のあるサイトですが、ここに固執して、挫折してしまうのは良くありません。自分にとって楽しい勉強方法を見つけることが、努力を継続できる鍵であり、最も重要です。
もし、Hack The Boxに取り組んで見たい方は、以下のRetiredマシンから始めてみることが良いでしょう。以下は、OSCPに似たマシンが一覧化されているので、やっておいて損はありません。(私も試験で似たマシンに出会い、やっておいてよかった思っています。)
こういったマシン攻略に取り組む際は、難しければ直ぐにWriteUpを見ても良いと思います。ここでのポイントは攻撃テクニックの引き出しを1つでも多く増やすことです。そのため、「どういう脆弱性があって、どうやって攻撃したのか」を一つ一つノートで記録しておき、後で使えるようにしておくことが重要です。記録しておくこで、OSCPなどで同じようなマシンに出会った際に、直ぐにコマンドを引っ張ってきて、攻撃を行うことができます。
ただし、上記リストに基づく勉強は単純作業になりやすいので、飽きた段階で他の勉強方法に切り替えたり、OSCPをスタートすることもオススメです。
・ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習
こちらの書籍はTry Hack MeやHTBのようにOSCPに直結するものではないものの、凄く役に立つ情報が載っています。タイトル通り、ハッキングラボの構築方法が学べるのですが、それ以外にもWindowsハッキング(第4章)、マルウェア作成や実行(第5章)、中間者攻撃(第6章)、など実務でも役に立つスキルが多く学べます。分量が多いので、目次を見て自分の興味のある部分から始めるのが良いでしょう。
こちらの書籍もオススメです。本書はより実務よりの視点で、ペネトレーションテストの手法が紹介されています。また、利用されている技術情報も新しいので、実務のイメージを深める上では凄く良い書籍です。また、同シリーズの「ハッカーの学校やハッカーの技術書シリーズ」は第一線で活躍されている専門家たちが書かれているので、より実践的な技術を学びたい人にオススメです。
その他、おすすめの書籍は次の記事で解説しているので、もっと知りたい方はぜひ参考にしてみてください。
以上が特に初心者におすすめしたい教材となります。基本的にはTry Hack Meで学習することで、サイバー攻撃手法やツールの使い方を一通り学べます。そこから、自分の興味関心に応じて、特定分野の深掘りをしたり、後述する専門資格に向けた勉強を始めていきましょう!
この辺りは自身の興味に応じて、勉強方法を選択してね!
もし勉強方法に悩むなら、次の資格取得に進んでも大丈夫!
ペンテスター専門資格を取得する
ここからは、ペンテスター専門資格の取得を目指していきましょう。
結論から言うと、ペンテスターを目指す場合は、OSCPに向けて勉強することが最もおすすめです。なぜなら、OSCPはペンテスターの資格の中では最もポピュラーであり、国内でも広く認知されているため、自身の技術力の証明として確実に使えるからです。時々、「資格を持っていても意味ない」と言う人もいますが、OSCPは実技試験があるので、持っているだけで技術力を証明できます。そのため、就職活動でも確実に武器になります。
ただし、OSCPは取得ハードルが高いのも事実です。どれだけ早くても2~3ヶ月、長引けば1年以上は必要です。そのため、OSCP以外にも初心者にオススメできる資格を紹介します。(OSCPよりも難易度が高い資格や、SANS等の100万円以上するような資格は除外しています。)
OSCP (Offensive Security Certified Professional)
- 難易度 : ★★★★☆
- オススメ度 : ★★★★★
- 試験形式 : 実践演習形式
- 費用 : $1599~
- 特徴① : ペンテスター資格の中で最も知名度があり、技術力の証明として使える
- 特徴② : 試験は100%実技のため、実践的なスキルを習得できる
- 特徴③ : かなり高額であるため、初心者には費用面でのハードルが高い
OSCPはペネトレーションテストに特化した認定資格です。日本国内においても知名度があり、ペンテスターとしての技術力を証明することができます。また、ペンテスターの専門資格の中でもかなりの人気があり、ペンテスターを目指す人や、ペンテスターになった人が目指す資格としても浸透しています。
試験は24時間の実技試験を通じて、ネットワークやアプリケーションに対する模擬的なペネトレーションテストを行います。また、試験終了後から24時間以内に、実技試験で行ったテストの結果をレポートにまとめて提出する必要があります。かなり過酷な試験ですが、取得できれば自身の実績になり、周りにアピールできますし、苦労に見合うだけの価値はあると思います。
eJPT(eLearnSecurity Junior Penetration Tester)
- 難易度 : ★★☆☆☆
- オススメ度 : ★★★☆☆
- 試験形式 : 実践演習形式
- 費用 : $200~
- 特徴① : OSCPよりも難易度が低く、初心者には取り組みやすい
- 特徴② : 国際資格の中では費用が安い
eJPTはeLearnSecurityが提供する初心者向けのペネトレーションテストの認定資格です。難易度は比較的低いため、OSCPの前段階で受験される人もいます。試験範囲としては、仮想環境内での脆弱性スキャン、エクスプロイトの実行、ハッキング手法の理解など基本的な攻撃技術と手法が含まれるため、ペネトレーションテストの基礎を学ぶための入門資格としておすすめです。
CEH(Certified Ethical Hacker)
- 難易度 : ★★★☆☆
- オススメ度 : ★★★★☆
- 試験形式 : 選択肢形式
- 費用 : 580,800円(日本語版でトレーニングを含めた費用。)
- 特徴① : 知名度があり、特に外資系企業では就活時に優位に働くことが多い
- 特徴② : 日本語で試験を受ける場合にはかなり高額になってしまう
CEHとは、EC-Counsil(電子商法取引コンサルタント国際評議会)による認定資格です。日本語版CEHの最大の魅力は、トレーニングプログラムで講師による指導のもと実践的にスキルを向上できる点です。
CEHのトレーニングプログラムでは、ネットワークセキュリティ、システムセキュリティ、ウェブアプリケーションセキュリティ、暗号化技術など、セキュリティに関連するさまざまなトピックが網羅されているため、攻撃技術を体系的に学びやすいです。
ただし、上記記載の通り約58万円とかなり高額です。よほどお金に余裕がある人でないと難しいと思うのですが、業界では名が通っているのと、企業の募集要項でもよく記載があるので、ここで紹介しました。
Comptia Pentest+
- 難易度 : ★★☆☆☆
- オススメ度 : ★★☆☆☆
- 試験形式 : 選択肢形式
- 費用 : 40,644円(日本語版でトレーニングを含めた費用。)
- 特徴① : ペンテスター資格の中では珍しく理論学習形式
- 特徴② : 他の資格よりも知名度は低いものの、難易度は低めのため、
CompTIA PenTest+は、CompTIAが提供するペネトレーションテストに関連する認定資格です。試験範囲としては、主にペネトレーションテストやレッドチームオペレーションの基本的な概念や手法が対象となります。また、ネットワーク、システム、アプリケーション、クラウドなどのさまざまな環境でのペネトレーションテストに関する知識を勉強することができます。
実践形式で手を動かして学ぶスタイルではなく理論学習となるので、実践的な技術力は身につきづらいですが、その分短時間で取得でき、ペンテスターの基礎的な知識を持っていることの証明としては使えると思います。
情報処理安全確保支援士
- 難易度 : ★★★★☆
- オススメ度 : ★★★☆☆
- 試験形式 : 選択肢形式、記述形式
- 費用 : 7,500円(日本語版でトレーニングを含めた費用。)
- 特徴① : ペンテスターに特化した資格ではないものの、セキュリティの技術力を証明できる
- 特徴② : 維持費が高額であるため、個人負担では手が出ずらい資格
情報セキュリティに関する専門的な知識とスキルを持つ人材を認定するための国家資格です。情報処理推進機構(IPA)が運営しており、日本国内で広く認知されています。こちらは、ペンテスターに特化した資格ではなく、実践的な攻撃技術を学べるわけではありませんが、セキュリティ技術者としての知見を証明することができます。
そのため、ペンテスターになるために取得するというよりも、セキュリティ全般の知見を深めるために、余裕があれば取得されるのが良いかと思います。本資格で勉強することは、セキュリティキャリアにおいて役に立つ情報ばかりなので、個人的にはおすすめしたい資格です。
OSCPの取得は決して簡単ではないよ!
だから、焦らずに自身のペースで、他の勉強と並行して進めるのがおすすめだよ!
技術スキルの習得後、ビジネススキルを習得する
ペンテスターには、技術スキルだけではなく、ビジネススキルも重要です。ただし、ビジネススキルは業務を遂行する上で必要になるスキルなので、優先順位としては「技術スキル>ビジネススキル」となります。
そのため、ここでも詳しくは解説しませんが、ビジネススキルの中でも特に重要なスキルを2つだけ紹介しておきます。
論理的思考力
ペンテスターにとって論理的思考力は凄く重要です。なぜなら、技術的で複雑なことをお客様に分かりやすく説明する必要があるからです。お客様に専門用語で説明しても、到底理解してもらえません。そのため、自分達がやったこと、見つけたことを順序立てて、分かりやすく論理的に説明する必要があります。また、ペネトレーションテスト中は常に仮説を立てて検証するプロセスがあります。「XXXに脆弱性がありそうだから重点的に見てみよう」とか「XXXとXXXを繋ぐことで侵入できそう」など、仮説を立てて検証していきます。限られた時間の中で効率的に仮説検証を回していくことがポイントになります。こういった際には、やはり論理的思考が重要になります。
おすすめは次のような書籍で理論を学び、後はひらすらアウトプットをすることです。おすすめの書籍を紹介します。
・書く技術・伝える技術(論理的思考の基礎から学べる)
・ロジカル・プレゼンテーション(プレゼンテーションに特化して学べる)
論理的思考力は理論だけ学んでも習得することはできません。そのため、日々の活動(研究活動やアルバイトなど)での発表を通じて積極的に実践していきましょう。継続的に実践していくことで、論理的思考力が身につくだけではなく、自身の成果物に対する自信にもつながります。
英語力
英語力は必須ではありませんが、あれば凄く活躍の場が広がります。例えば、外資系企業の場合は特にペンテスターの半分が外国人だったりすることもあります。その中で上手くやっていくためにも、英語でコミュニケーションできるレベルにはなっておいた方が良いでしょう。勉強方法はお好きなもので良いですが、個人的には英会話オンラインレッスンで毎日30分継続して英語を話すことが最も効果がありました。なので、ペンテスターとして活躍するためにも、ぜひ英語の勉強にも取り組んでみてください。
まとめ
今回は、ペンテスターになるためのステップを紹介しました!
基礎学習や専門資格の取得など道のりは決して楽なものではありませんが、それだけ努力してでもペンテスターになってみる価値はあると思います。
FSC運営企業では、脆弱性診断・ペネトレーションテストの担当者も募集しているので、ご興味あればぜひ以下のリンクをご覧ください。
今日もいっぱい勉強したね!✨✨
コメント