入門セキュリティコンテスト-ーーCTFを解きながら学ぶ実戦技術
CTFとは
Capture The Flagの略で、情報セキュリティ技術を競う競技。
CTFの種類
さまざまな種類があるが代表的なものは以下の2つ。
- クイズ形式(Jeopardy形式)
- 攻防戦形式(Attack & Defense形式)
著名なCTF
- DEF CON CTF
- picoCTF
- Google CTF
- SECCON
問題のジャンル
- Reversing(リバースエンジニアリング)
- Crypt(暗号関連)
- Forensics
- Web
- Network
- Pwnable(Exploit)
- Misc(雑多)
リバースエンジニアリング
SECCON 2018の「runme.exe」という問題が取り上げられている。
リバースエンジニアリング技術が問われ、逆アセンブラやデバッグなどを利用してい解析を行うので、低レイヤの知識が必要。
暗号
SECCON 2015の「Unzip the file」という問題が取り上げられている。
古典暗号や現代暗号の暗号アルゴリズムの知識が必要。
フォレンジック
SECCON 2018の「History」という問題が取り上げられている。
必要とされる知識が多岐にわたる。
各OSのファイルシステム、TCP/IPなどのネットワークなど。
Webセキュリティ
SECCON 令和CTFの「reiwaVote」という問題が取り上げられている。
Webアプリケーションとその周辺知識が必要。
ネットワーク
SECCON 2013の「Find the key!」という問題が取り上げられている。 パケット解析や各プロトコルの知識が必要。
Pwnable
SECCON 2017の「baby_stack」という問題が取り上げられている。 プログラミングの知識、プログラム解析のスキルが必要。
Misc
SECCON 2019の「Sandstorm」という問題が取り上げられている。
上記ジャンルに分類できない、その他雑多な問題。
感想など
私のような初心者でも、解説の文章を読めば何とか理解できるレベルの問題が取り上げられているので、タイトルどおりCTFの『入門』にぴったりの内容です。
今後の学習
以下で紹介する書籍で学習するのと、本書で紹介されていた入門者用のCTF(picoCTF)をやってみようと思う。
書籍紹介
私が持っている書籍の中から各ジャンルごとに役立ちそうなものを紹介します。
本書内に著者が「さらに勉強したい人に向けて」として各ジャンルのおすすめ書籍を紹介しているのですが、そこに記載されていたものと結構ダブってます。
Reversing(リバースエンジニアリング)
著者が紹介している書籍で私が所持しているものはなかったが、関連しそうな書籍を何冊紹介する。
以前からこの分野に興味はあったので、購入はしているがまだ読めてない。
リバースエンジニアリングツールGhidra実践ガイド (Compass Booksシリーズ)
Crypt(暗号関連)
こちらもかなり購入はしているがすべては読めてない。
読んだ中では、結城浩さんの「暗号技術入門 第3版」が分かりやすかった(著者のおすすめ本でもあります)
図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書
現代暗号入門 いかにして秘密は守られるのか (ブルーバックス)
Forensics
おすすめ本として紹介されている「インシデントレスポンス 第3版」については、過去記事で読書メモを書いてます。 shin569.hatenablog.com
また、インシデントレスポンス関連では以下も評価が良いので購入してますがこちらは未読。
詳解 インシデントレスポンス ―現代のサイバー攻撃に対処するデジタルフォレンジックの基礎から実践まで
Web
おすすめ本として紹介されている 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践 は、一度読んでるが完全には理解できてない。
CTFを実際に解きながら見返す感じで学習するのが良いと思う。
Network
一番業務で扱う分野に近いので、逆に紹介する書籍が難しい。
パケット解析という点だけに絞れば、著者がおすすめしている本もいいいが、
パケットキャプチャの教科書 (Informatics&IDEA)
もわかりやすかったのでおすすめ。
Pwnable(Exploit)
著者もおすすめしているが、
Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際
は今まで読んできたセキュリティ関係の書籍の中で一番面白かった。
ただかなり前の書籍になるので今見ると少し内容が古くなっている部分があるかも。
プログラム例がperlで書かれてたりするので、pythonで書き直してみたら勉強になるかもしれません。