196の日記

セキュリティ系の勉強、その他開発メモとか雑談、忘れそうな計算式などを書き溜める場所になっています. githhubはUnity触っていた頃ものがメイン https://github.com/196kakinuma [twitter https://twitter.com/196Ikuchil]

【レビュー】セキュリティコンテンストチャレンジブック

今回のレビューは以下の本です。ただし、完全な初心者のレビューなのでそこだけ注意です。後読みやすいように短めにします。



必須な知識

全体を通じて情報系にある程度慣れていれば大丈夫。挙げるとするなら、、
C言語の知識
Linuxの知識
・ネットワーク系の知識(基本情報やLPIC等をやったことがあれば、まぁ大丈夫)
・データベース
・やる気
・若干Pythonの知識(なくても最悪大丈夫)

ぐらいだったかな?分からなくても調べれば理解できるぐらいの前知識は必要かなと思います。


良かった点

CTF初めての人にとってはありがたい網羅量

ctfでは問題としてどのようなものが扱われているか、それをどう解いていくのか、これが書籍1つで説明されているのがとてもありがたかったです。初めてCTFをやるにも何をすればいいのか分からないと思うので、とっかかりにはベストな本だと思います。

コンソールのキャプチャ付き解説がわかりやすい

これも、実際に何をやっているかを把握する上でとても重宝しました。しっかり初心者向けを意識していて、内容を追いやすかったです。

悪かった点

サンプルコードだけでは環境を準備できない

これを言ったらわがままな気もしますが、ネットワーク系の問題になると、自分で対象のサーバやページ等を準備しなければ、実際に紹介されている手法を試すことはできません。ですが、その構築等はこの本では説明がないため自分でどうにかするしかありません。せっかくならそこらへんも解説があれば、と思いました。バイナリ解析あたりはこの本で完結しているので大丈夫です。

後一押し説明

手順と理屈は一通り説明がありますが、後一押しが欲しくなります。ほんと個人的な感想。なんでだろ。。まぁ、手順等の説明はしっかりしているので、理解ができないということはないです。



注意点

実行環境に注意してください。

私が確認した中では、ubuntu14.04.5 でなら本の手順通りに進めることができます。それ以降のubuntuではセキュリティ対策か何かで、main関数の部分が複雑になっていたり、アドレスの配置方法が違ったりと、初めてでは対処できないことが起こりました。ubuntu14では、アドレスが多少本と違うことはありますが、計算方法等はそのまま使用できるので、むしろいい練習環境になりました。私は特にバイナリ解析あたりを細かく読んでいたので、ubuntu14の使用を本当にお勧めいたします。


結論

初めてCTFを目指すのであれば、この本は買うべきだと思います。全範囲について解き方と、問題傾向が知れるだけで十分な価値だと思います。まだこの本は新しい部類に入るので、環境が進んでこの本が使えなくなる前に、ぜひ読んで追いて欲しいと思います。


下に、バイナリ解析あたりの私の苦労をまとめたので良かったら参考にしてください。

セキュリティコンテストチャレンジブック pwn ASLR回避〜ブルートフォースの誤植 - 196の日記

GOT Overwrite - %hhnを使ってみる - 196の日記

Return to libc (ret2libc) system関数を呼び出すメモ - 196の日記

CTF練習用環境の初期設定メモ - 196の日記

スタックベースバッファオーバーフローがうまくいかない(ネズミ本) - 196の日記