ただのにっき
2012-12-12(水) [長年日記]
■
Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際(Jon Erickson)
オンラインCTFをやるようになって、いろいろとバイナリアン的な技能が必要になったので、知人に紹介してもらった本書を読んだ。最近読書メモがなかったのはずーっとこいつを読んでいたからなんだけど、それでも咀嚼しきれてないという。ムズカシー。
年寄りのプログラマが集まると「最近の若いプログラマはコンピュータの動作原理も知らない」的な話になることが少なくないのだけど(自分は年寄りだけど知らない方なので肩身が狭い)、本書は半導体レベルまでは下りないまでもアセンブラ・マシン語レベルまではがっつりと低レベルな話ばかりだ。
冒頭はプログラムの基本的な制御構造なんかの話から入るので「なんだ初心者向けか、楽勝じゃん」と甘く見ていたら、基礎的なプログラムをC言語で書いたら即座にデバッガにかけて、コンピュータの中で何が起きているのか追いかけるという、いきなりハードな内容になる。
以降、自作のプログラムに潜むスタックオーバーフローに対して攻撃をしかけるコードを書き、実際にrootのシェルをとってみたり、最近のセキュアなカーネールの裏をかいたり、ネットワークプロトコルの穴をついたりやりたい放題。Perlなんかも登場するけど、あくまでシェルコードを生成するために使うツールに過ぎなかったりして。網羅性があって、実用度も高い。攻撃者の手口をひととおり知るにはかなり良い教科書だと思う。
それにしても、スクリプト言語で鈍った頭にはきわめて難しい。ちゃんと理解するには念入りな写経が必要だなぁ。