乗車日記

自転車ときのこ

Hacking 美しき策謀 読了

月曜日に読了。半分ぐらいはプログラムコードだったので挫折することなく、意外に早く読めた。ハッキングの抽象的な話を聞いたことはあっても、具体的な手法を知るのは始めて。手法がきちんと詳細まで記述してあり、こんな穴があるのかと驚かされることばかり。

基本はなんらかの入力を受け付けるプログラムで、入力バッファよりも多くのデータを注入することでオーバーフローさせ、バッファの下にスタックされている戻りアドレスを上書きする。これによって、ルーティン終了後にバッファに注入した機械語プログラムに動作を飛ばし、あとはシェルを立ち上げるなどなど。
少ない容量のバッファだけでプログラムを書くため、1バイトでも削りながらコードを書く。メモリーを何Gバイトも積んでいるコンピュータが動いている中で、そんな世界が残っていたとはびっくり。メインメモリ1.85Kバイトのポケットコンピューターで1ビット単位でデータを詰め込んでいた頃を思い出して感動した。
現代のマシンの機械語は余程複雑なのだろうと思っていたが、32bitCPUの機械語も昔の8bitマシンのそれとそれほど変わるわけでもないことを知り、一安心。また、通信でのポートの開き方なども、詳細レベルで勉強できて大変ためになった。
それにしても、この本、教科書として素晴らしい。ハッキングの素人に高度な予備知識なしで誤魔化さず、逃げずに詳細まで理解させる筋立てと、例の示し方、解説の仕方。只々、感嘆しました。
それと感じたのはハッキングと本格探偵小説の類似。どちらもロジカルな世界で思いもよらない抜け道を編み出すという点で共通している。ただ、ハッキングには衒学的な衣はなく、かつ、その方法が実行可能かどうかの白黒がはっきりしているというあたりが違う。
それはともかく、知的興味だけでなく、自分の管理するコンピューターのセキュリティ強化にも役立ちました。OpenSSLの問題の時も、対処しやすかったです。やはり、基本を少しでも知っているのと知らないのでは大違いです。色々な意味でためになる本でした。
f:id:tasano-kona:20140325231416j:plain