プログラミングの基礎体力強化に - PHPサイバーテロの技法 攻撃と防御の実際

XOOPSプロジェクトに参加しているという、GIJOE氏の著書です。

最近なかなか本が手に付かず、ゴールデンウィーク中にやっと読み終えました(苦笑)

PHPサイバーテロの技法―攻撃と防御の実際

PHPサイバーテロの技法―攻撃と防御の実際

■目次
1 Webアプリケーションのセキュリティとは
2 Webアプリケーションを実際に攻撃してみよう
3 攻撃方法14種類総ざらえ
4 Webアプリケーションセキュリティの理論
5 HTTPセッションから攻撃の本質を知る
6 脆弱性スキャナーを利用する
7 チャート式:脆弱性の見つけ方

『アプリケーションの基礎体力』ともいうべきアプリケーションセキュリティについて、ここまで噛み砕いた説明を見たのは初めてで、とてもタメになりました。

PHPのコード、特にセッション変数やサーバ変数のことを理解しておいた方がいいと思いますが、個人的にはPHPの経験が無くてもOKだと思います。

自分の使っている言語やフレームワークでは大丈夫なのか?という観点で読んで、アウトプットに反映することができればベストです。


重要だなと思ったのは、変数が何のために利用されるのかをキチンと意識すること。

「用途」というステータスを明文化し、使い分けについて厳密なルールを適用することで、SQLサニタイズや表示用サイニタズを忘れた、もしくはその逆に、SQLサニタイズや表示用サイニタズが二重にかかってしまった、という人為的なミスを防ぐことができるのです。

4-3-2 「用途」というステータス

本書では、用途に合わせて明示的に変換し、命名規則で区別する方法が紹介されています。


紹介されている攻撃方法は以下の通り。やっぱり知らないのもありました...(汗

  • Script Insertion
  • XLL
  • SQL Injection
  • CSRF
  • ヌルバイト攻撃
  • Directory Traversal
  • 変数汚染攻撃
  • HTTPレスポンス分割攻撃
  • インクルード攻撃
  • eval利用攻撃
  • 外部コマンド実行攻撃
  • ファイルアップロード攻撃
  • セッションハイジャック
  • スパムメール踏み台攻撃


脆弱性スキャナーを利用して検査しておくことも紹介されています。
知らないツールばかりで、いい情報が得られました。

これ以外に知っているのは、iLogScanner(http://www.ipa.go.jp/security/vuln/iLogScanner/index.html)ですか。


関連のブログも併せて読んでおくべきでしょう。