超入門者のバグバウンティ・CTFの学習法メモ【備忘録】
こんにちは。最近CTFやバグバウンティに興味を持って最近初級者向けCTFや脆弱性を学習中のサイバーセキュリティ初心者です。
セキュリティをはじめとしてネットワークもCTFもまだまだ勉強中の身ですが、一か月ほど集中的に学習して色々やってきたので、学習方法をちょっと備忘録として残しておきます。
(いろんなツールや手法を学び過ぎてこんがらがってきたので……)
学習にあたっての(超)入門ガイドとして「何から始めたらいいかさっぱりわからん」という方の役に立ったら嬉しいです。
注意
これを書いているのは「ELFファイルがどういった場面で生成されるかさえわからなかった超初心者が頑張ってデコンパイラやローカルプロキシを使った通信の傍受ができるようになった」レベルの人間です。
正確な情報を心掛けて情報収集に努めていますが、理解の浅い部分もあるので効率的ではない方法の紹介になってしまうかもしれないことをご了承頂ければと思います……。
バグバウンティとは、CTFとは
はじめにバグバウンティとCTFについて簡単に。
- 「バグバウンティ」は脆弱性報奨金制度(脆弱性を発見・報告して報奨金を受け取る)
- 「CTF」はセキュリティ技術を競うコンテスト、またはゲーム(システムを乗っ取ってFLAGと呼ばれる文字列を探す…など)
一応このふたつは別物ですが、どちらも幅広い分野の知識と技術、そして時として攻撃者としての発想を求められるという点では学習法や考え方は自ずと似てくると思うので学習法としては一緒くたに書いて行こうと思います。
詳しい説明はここでは省きます。
具体的に何から始めるか
三つの方法があります。ひとつは書籍を読んでIT知識をつける。二つめはどこかのサイトに登録してCTFの問題を解いたり、解法(Write-up)を確認したり、演習をしたりして経験を積む。三つめは実際にバグハンターとして活躍している人やTwitterなどで呟いている人の情報を見て見習う。
どちらにせよ全部やっていくことになると思うので(三つめはやらない人もいるかもですが…)気が向いたものからやって行けばいいと思います。
以下私が取り組んでいった順番に参考にしたサイトや資料を書いていきます。
IPAの資料とツール
超初心者の方はCFTやバグバウンティに取り組む前に基礎を固めるのがおすすめです。
正直、セキュリティ関連の情報はレベルが高すぎ/英語のものが多いなどとっつきにくいものが多いのですが、IPA提供の資料やツールならば安心して
■おすすめ資料
脆弱性の発見・報告に関する勉強会~初めての脆弱性調査~(IPA)
■おすすめツール
脆弱性体験学習ツール AppGoat(IPA)
→AppGoatは個人学習向けツールが使用可能です。
私は「サーバ・デスクトップアプリケーション用学習ツール」を利用したのですが2022/11/4で公開終了となってしまっているようです……残念。このツールではC言語を使ったバッファオーバーフローや権限奪取のコードの解説、ファジングツールを使った演習、対策方法などが学べてとても良かったです。特にC言語のことをちっとも知らなかったので、勉強になりました。
→ウェブアプリケーション用学習ツールは利用申請メールをIPAに送付する必要があるのでちょっと気後れするかもしれませんが、実コードに触れる機会の少ない人にとっては価値があるのではないかなと思います。
基本の「き」の書籍
もし身近な人がセキュリティの勉強をしたいと言ったら以下の本をすすめると思います。
サイバー攻撃 ネット世界の裏側で起きていること (ブルーバックス)
(補足)もし上記2つの内容がさっぱりわからなかったら
もし上の二つの内容が理解できなかったら情報セキュリティマネジメント試験の参考書等による勉強がおすすめです。
実際に受験するかどうかはともかく、情報セキュリティマネジメント試験ではセキュリティに関する全般的な知識を体系的に詰め込めるので決して無駄にはならないと思います!!
ちなみに試験としてのレベルはそこまで高くはないものの、油断したら落ちる・長文が苦手だったらきついかも……くらいの感覚です。
バグハンターのインタビューを読む
脆弱性というものがどんな感じなのかなんとなくわかった。じゃあどうやって脆弱性を知るんだろう、と気になった時に読んだのが以下のページ。
■おすすめページ
思えば私がCTFというものの存在を知ったのもこのページでした。
「いろいろな技術が必要なんだなあ」ということが分かると思います。
初心者向けCTFについて知る
さらにいろんなページを読んで勉強しました。
■おすすめページ
CTFをやってみる
上記の学習と並行しつつCTFをやりました。
■おすすめサイト(日本語)
CpawCTF 初心者向けCTF。初めてならこれがおすすめ。
→全部日本語なので安心。
→途中からLinux環境(WindowsならWsl2利用可)が必要になったり、WireShark、IDA、Ghidra等の各種ツールを使ったりしますがそれがとっても勉強になります!
■おすすめサイト(英語)
HackerOne バグバウンティのプラットフォームとして有名な海外のサイト
→初心者用コンテンツとして「HackerOne101(動画コンテンツとCTF問題集)」があります。
→初めてなら「Hacker Success Guide」を読むのもおすすめ(といいつつ実はまだ全然使いこなせていない……)
インストールしたもの
CFTを解いていく中でいろいろインストールしました。
- Linux環境(Linux用Windowsサブシステム)
- Burp Suite Community Edition
- Firefox(ローカルプロキシ試行用)
- IDA Freeware
- Wireshark
- ffufなどのコマンドをいろいろ
- Go言語とかJDKとかの環境
- そのほかいろいろ
今使用しているローカルディスクが56GBで容量がギリギリでディスク増設を検討中です。
以上です。
現状はCpawCTFの問題をすべて終えたので、HackerOne やHackeme、WebSecurityAcademyなどと書籍を使ってさらに知識を深めていきたいなと考えているところ。
CTF、難しかったりそもそもツールを知らなかったりしてWrite-upを見てしまうことも多いんですがとにかく新しいことを学べるのは楽しいとともにITに強い人はすごいなあ……強くなりたいなあ……と思う今日この頃です。
おわり