カンファレンスから動画の再生障害のお知らせ:動画の一部が再生できない事象が発生しています。カンファレンスから高橋信頼2005.07.08コピーしましたPR「Strutsを使ってもセキュリティ・ホールはできる。Securityフォーラムの第2回カンファレンスが開催され,Webアプリケーションで発生しうる問題についてパネル・ディスカッションなどで活発な意見が交わされた。パネル・ディスカッションは「フレームワークの光と影」と題し行われた。StrutsなどのWebアプリケーション・フレームワークは,大規模な開発では標準的な開発環境になっている。アーキテクト,グリー取締役の藤本真樹氏は「フレームワークの開発者が全員がセキュリティを意識して開発しているわけではない。協力会社の開発者が,必ずフレームワークの意図どおりに開発してくれるわけではない」と指摘する。賀戸大輔氏は,代表的なJavaのWebアプリケーション・フレームワークであるStrutsを例に,起こり得る問題を指摘した。「例えば,Strutsのtaglibは,本当に危険な入力データをサニタイジング(無効化)してくれるのかどうか検証したところ,alt属性とtitle属性はほぼ全滅。サニタイジングは行われなかった。value属性も一部サイニタイジングされない場合があった」(賀戸氏)。StrutsのActionクラスはスレッド・セーフではない。そのためタイミングによっては同時にアクセスした他人の情報が見えてしまったり,書き換えられてしまったりする恐れがある。「しかしドキュメントにはスレッド・セーフではないとしか書かかれていない」(同)。起き得る危険については書かれていないため,開発者が問題を認識しないままアプリケーションを作成してしまうことになる。「また,Strutsにはcancelボタン機能がある。この機能を使用すると,入力データのチェックvalidateをスキップしてプログラムをを呼ぶことができる。リクエスト中に,あるパラメータが含まれているとcancelボタンと判断するため,この機能を使われると入力チェックを回避して実行されてしまう」(同)。賀戸氏は「ActionFormクラスをデータの格納に使用しているプログラムを見かけるが,ユーザーからの入力を受け取る以外の目的で使ってはいけない。プロパティ名がわかれば,ブラウザから値を上書きできてしまう」と警告した。いえ,フレームワークを使わない場合よりも,使ったほうが一般的にセキュリティは向上する。主任研究員の高木浩光氏は「昔はCookieにユーザーIDを格納するという,危険なセッション管理を行っているサイトが多く,大手ECサイトにもあった。フレームワークや,言語にセッション管理機能を備えたPHPなどの普及によるところが大きい」と見る。フレームワークの多くは画面遷移やセッション管理,入力データ・チェックなどの機能を提供する。そのため,これらの欠陥から発生するセキュリティ・ホールへの対策になる。重要なのは妄信せずに正しく使用することだ。高木氏は,現状の問題点として「開発者とセキュリティ対策のコミュニテイが分断されてしまっている」と指摘する。それを象徴するのが「サニタイジング」という言葉だ。直訳すれば無毒化,前述のように不正アクセスに悪用される特殊な記号を無効化する処理を指す言葉だが,高木氏はこの言葉を使うべきはでないと語る。セキュリティ技術者から問題を指摘されると多くの開発技術者は反感をおぼえる。そもそも,本来行うべき正しいプログラミングを行えば,自然にセキュリティ対策にもなる。「コア・ダンプしないようなプログラミングを実行していれば,バッファ・オーバーフローは発生しない」(高木氏)。開発者とセキュリティ技術者の分断を埋めていく方法として,日本IBMの賀戸氏は「開発者に最初からセキュリティを教育していくべき。すれば意識せずにセキュアなコードを書けるようになる」と指摘する。門林雄基氏は「フレームワークのセキュリティ側面を文書化したり教育したりすることは可能だろうか」と問題提起,「今後フレームワークやデータベースなどの開発コミュニティとの連携を深めていきたい」と語った。現場の負担軽減を!医療界でのAWS活用法500万社が導入。情報銀行の成り立ち、事例、現状課題やその行方を網羅。経営戦略である以上、「会計」の知識やスキルが欠かせません。