Iron Mongrel: Fuzzing, Auditing, Thrashing, Risk and The Ways Of Mongrel Destruction

  • Posted by Nick Sieger

http://blog.nicksieger.com/articles/2006/10/21/rubyconf-zed-shaw-fuzzing


Speaker: Zed Shaw

  • Fuzzingとは
    • 悪意のある巧みな入力をもって、アプリが壊れるまで何でもいいからもの(random stuff)を投げてみろ。それがでたらめさだ。
    • 攻撃のためのモデルを創造し、
    • 生存時間解析と平均故障間隔(MTBF)を採取しろ。
  • 限界
    • 浅い - エラーは起きるが、とてもまれである
    • 賢くない
    • 常に必要ではない
  • 欠点
    • 破壊的 - productionレベルのシステムに繰り返すな
    • 潜在的に高コスト
  • 利点
    • 開発者を狂気に走らせて楽しめる
    • ソースの公開されてないソフトウェア(mean-time-between-failures)であってさえバグを見つける
    • 正しいツールをもっていれば簡単
    • リグレッション/負荷/分散サービス妨害/脆弱性テスト(regression/load/DDOS/pen testing)より優れている
    • 巨大な現存するツールの宝庫(Zedのサイトからリンクあり)
  • デモ/使い方
    • すべてのHTTPオブジェクトに対してシンプルなデータコンテナであるように設計されている。結果、簡単にリクエストを格納し、再生することができる
    • 乱数エンジン(RC4 ciper)は任意のバイト、数字、文字、base64などを生成する
    • データ収集(10のサンプルの10の実行?、csvファイルへの出力)
    • セッション管理(不要なcookieの管理)
    • Railsセキュリティテスト(以下を参照)
    • まとまったエンコーディングテスト
    • Mongrel test suite - パフォーマンスの違いをみるためのGET vs. PUT test