いろんなまとめ

IT技術系のことを気が向くままに書いていきます。勉強会の感想とか

CTFを通じた学習ロードマップを考えた。 その2

はじめに

以前CTFを通じた学習ロードマップを少しだけ考えていきます。
では、目的を達成するために、具体的にどのような手順にしていくのがよいのでしょうか。

今回はそれを少し掘り下げてみようと思います。

まずは私が学習に使っている本をいくつか紹介します。

学習に使った本、資料

CTF入門者におすすめされるのは、この本。まずはこの本
CTFのルールの説明書みたいな本、ハリネズミ

セキュリティコンテストのためのCTF問題集
https://www.amazon.co.jp/s/ref=nb_sb_noss_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&url=search-alias%3Dstripbooks&field-keywords=CTF&rh=n%3A465392%2Ck%3ACTF


各ジャンルごとに私が学習に使った本は以下のとおり

  • 暗号

暗号技術入門
https://www.amazon.co.jp/%E6%9A%97%E5%8F%B7%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88-%E7%B5%90%E5%9F%8E-%E6%B5%A9/dp/4797382228/ref=sr_1_1?s=books&ie=UTF8&qid=1548553406&sr=1-1&keywords=%E6%9A%97%E5%8F%B7%E6%8A%80%E8%A1%93


たのしいバイナリの歩き方
https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E6%84%9B%E7%94%B2-%E5%81%A5%E4%BA%8C/dp/4774159182/ref=sr_1_1?s=books&ie=UTF8&qid=1548553445&sr=1-1&keywords=%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA

  • Web

徳丸本
https://www.amazon.co.jp/%E4%BD%93%E7%B3%BB%E7%9A%84%E3%81%AB%E5%AD%A6%E3%81%B6-%E5%AE%89%E5%85%A8%E3%81%AAWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E7%AC%AC2%E7%89%88-%E8%84%86%E5%BC%B1%E6%80%A7%E3%81%8C%E7%94%9F%E3%81%BE%E3%82%8C%E3%82%8B%E5%8E%9F%E7%90%86%E3%81%A8%E5%AF%BE%E7%AD%96%E3%81%AE%E5%AE%9F%E8%B7%B5-%E5%BE%B3%E4%B8%B8/dp/4797393165/ref=sr_1_1?s=books&ie=UTF8&qid=1548514046&sr=1-1&keywords=%E5%BE%B3%E4%B8%B8

  • ネットワーク

パケットキャプチャの教科書 (Informatics&IDEA)
https://www.amazon.co.jp/%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-Informatics-IDEA-%E3%81%BF%E3%82%84%E3%81%9F-%E3%81%B2%E3%82%8D%E3%81%97/dp/4797390719/ref=sr_1_1?s=books&ie=UTF8&qid=1548553476&sr=1-1&keywords=%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3


マスタリングTCP/IP 入門編 第5版
https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP-%E5%85%A5%E9%96%80%E7%B7%A8-%E7%AC%AC5%E7%89%88-%E7%AB%B9%E4%B8%8B/dp/4274068765/ref=sr_1_1?s=books&ie=UTF8&qid=1548553511&sr=1-1&keywords=TCP%2FIP


これに関しては、いい本を見つけることが出来ませんでした。
そのため、基本ネットに流れている問題を解いていました。

exploitを組んだり、コードを組む必要があるので、以下の言語はある程度扱えるように学習しました。
Python
C
C++

上記の言語は、入門書、参考サイト等あふれているので、興味のあるもので学習しました。


ただ、上記の本をくまなく理解しても、CTFの問題が解けるわけではないと思う。
なぜなら、複数のジャンルにまたがる問題だったり、問題を解くにあたっての着眼点が磨かれたりするわけではないから。

学習プロセス

ここで、学習プロセスを考えてみる。
基本、自主的な学習がメインになるので、学習進捗に応じた資料や問題を提示していく。
定期的に集合学習を開き、全体の進捗確認とベクトルの修正を行う。
まとめると以下の通りになります。

1. ハリネズミ本の輪読(CTFのルールの説明、興味のある分野の調査)
2. 興味のあるジャンルに応じた学習プロセスの提示(この時、興味のあるジャンルが複数ある場合、優先順位をつける)
3. 定期的に進捗確認を行う為の集合学習


上記のプロセスでいったんシミュレートをして、有効性の検証をしてみたいですね。

今後の課題

今後の課題は、「ジャンルに応じた学習プロセスの提示」と「集合学習」を開催した際の内容のブレイクダウンです。
今回はここまで。

もっとこうした方がいい、こんな風に学習会を進めたよ!という経験がありましたら、ぜひコメントください。