C/C++プログラマにオススメの一冊です。
C/C++プログラミングで作りこんでしまいがちなソフトウェアの欠陥と、それがどのように脆弱性として発現し攻撃されるかを幅広く、かつ分かりやすく解説しています。WindowsとUnix系の両方を対象とした包括的な内容になっています。
注意点としては、包括的な解説のトレードオフとして理論解説の比重が高くなり、実際に手を動かして確認する実践的な内容が薄くなっている点があります。やはり自分で試してみないと気が済まない方は、JPCERT/CC主催の"C/C++ セキュアコーディングセミナー"に参加してみてはいかがでしょうか。
遠方であったりして日時の都合が取れず参加できない・・・そのような場合でも、実践に重点を置いた書籍もありますし、教材としてわざと脆弱性を作りこんだプログラムがIPAで公開されています。そうしたリソースも活用してみて下さい。
特にWindowsで実践する場合は、WinDBGの使い方と合わせてスタック・ヒープの破壊やメモリアロケータの内部動作、Windowsの提供するクリティカルセクションやmutexなど競合・ロック関連のトラブルなどを解説した "Advanced Windows Debugging" の一読をお薦めします。