セキュアコーディング勉強会第参回レポート

資料の詳細は、http://securecode.g.hatena.ne.jp/azurestone/20080718/1216389132にて、間もなく公開される予定ですので、そちらを見てください。

実は、前日くらいまで参加者が3名だったのでドキドキしていました
蓋を開けてみると8名も参加いただいてありがとうございましたm(_ _)m

今回は、AzureStoneさん一人で発表をされました。

お題は、「PerlのTaintモードについて Vol.2 − それってつまりサニタイズしろってこと? −」でした

AzureStoneさんの以下の発表後に、AzureStoneさんの仮想サーバを公開されて、LAN経由でみんなで実験をするというハンズオン的な内容で参加者も色々触ることができる勉強会でした。
ただ、ハンズオンであればハンズオンらしく、課題と解答例とかがあったら、よかったかもしれませんね。
ハンズオンで、どうぞ!って放置されたら、参加者も困りますね。

Webアプリ脆弱性対策方法について

「前回のレポートを読んだ人」の反応について、調査して報告(AzureStone)

XSS

  • 出力側で対策
  • 最近は、Templateエンジンにフィルタ機能が付いている

OSコマンドインジェクション

  • system()の使い方及び直接引数を渡さない
  • 最近は、OSコマンドを実行することは少なくなった

perl -Uを意識し始めた経緯

SetUIDとSetGIDのファイルを実行時に自動的にTaintモードに切り替わる

  • Shutdownコマンドはrootユーザで実行する必要がある
  • Taintモードについては、動くことを優先させてしまいせっかくの保護機能を無効にしてしまったのではないか・・・

実際にTaintモードはオープンソースなアプリで使われているのか?

  • Bugzillaで使われている
  • Taintモードを活用されていることは少ない

まとめ

  • 何のために、Taintモードを使うか決めておく
  • Taintモードは万能ではない
  • いやでもTaintモードを意識しなければならない時がある
  • 容易に-Uにしない
  • スピードは、あんまり気にならない程度
  • ぶっちゃけ、SQLクエリの結果の方が遅いんじゃね?

screenshot