404 Found――Webをセキュアに、ネットをセキュアに:OWASP AppSec APAC 2014レポート(2/2 ページ)
Webサーバーを構成するソフトウェアやWebアプリケーションは頻繁に外部からの攻撃にさらされ、新たな脆弱性も発見されている。3月に開催された「OWASP AppSec APAC 2014」では、Webをセキュアなものにしていくために何が必要で、どんなポイントに注意すべきかといった知見が共有された。
おなじみの問題が並んだ「OWASP TOP 10」
Webアプリケーションのセキュリティに興味を抱いたことのある人ならば、おそらく、「OWASP TOP 10」のリストを見たことがあるだろう。代表的なWebアプリケーションの脆弱性と、それがもたらすリスクや攻撃例、対策方法とリファレンスをコンパクトにまとめた文書で、3年おきにアップデートされている(関連記事)。
続くセッションでは、2013年にリリースされた最新版「OWASP Top 10 2013」について、筆者のデイブ・ウィッカーズ氏自身が解説を行った。
最も広く知られているWebアプリケーションの脆弱性といえば、XSSか、情報漏えいの原因となり得る「SQLインジェクション」だろう。2013年にリリースされた最新版でも、「Webアプリケーションにとって最大のリスクは、SQLをはじめとする『コードインジェクションだ』」(ウィッカーズ氏)という。
コードインジェクションは古くから知られる脆弱性であり、インタープリターを用いるAPIを避けるなどすれば簡単に避けられるはずの問題だが、「開発者の間では、まだ啓蒙が不足している」(ウィッカーズ氏)という。
2つ目の問題は認証およびセッション管理に関するものだ。「何度も同じ(認証)メカニズムを書くとミスが生まれるので、単一のコントロールを設計して、認証はそこで集約して行うような形に設計すべき」(ウィッカーズ氏)。パスワード保存の仕組みも含め、アーキテクチャ全体のセキュリティを高めていかなければならないと述べた。
3つ目はおなじみ、「XSS(クロスサイトスクリプティング)」だ。ウィッカーズ氏は、「これは最も深刻な欠陥で、他の問題を全部足したよりも数が多い。ときには1つのアプリに何百、何千と含まれていることがある」と述べた。ただこの脆弱性も、修正すること自体は比較的簡単だという。「問題は、何百、何千と存在する脆弱性をいかに見付けるかがポイントで、そのためのチートシートを用意している」という(関連記事)。
一方、これも広く知られている脆弱性である「CSRF(クロスサイトリクエストフォージェリ)」だが、「多くの開発者が利用しているフレームワークの中に、CSRFへの対策が埋め込み済み」(同氏)であるという理由から、ランクは8位となった(関連記事)。
ウィッカーズ氏は「OWASP Top 10の脆弱性全てが、このようにフレームワークで自動的に対策できればいいのに」と述べている。
避けられるはずの「ライブラリの脆弱性」
ウィッカーズ氏がこれらトップ3とは別に特に言及したのは、2013年版で初めてリスト入りした「既知の脆弱性を持つコンポーネントの利用」だ。
アプリケーションの大型化に伴い、サードパーティ製のフレームワークを使ったり、ライブラリを組み入れたりするケースも増えている。「これらは無料だが、『そのライブラリにセキュリティの保証がないというリスク』という税金が付いてくる」(同氏)。中にはコード実行につながるような危険性の高い脆弱性が含まれているケースもある。
一方、脆弱性を修正したバージョンが公開されているにもかかわらず、開発者側が、脆弱性が存在するバージョンをダウンロードしてしまうケースも少なくないそうだ。ある調査によると、実に4分の1以上のケースで、脆弱性が存在するバージョンのライブラリがわざわざダウンロードされ、使われている。「注意を払えば避けられるはずの脆弱性が生み出されている」(同氏)。
ウィッカーズ氏は、この問題の解決にも、手作業やこれまでの経験に頼るのではなく、自動化の余地があると述べた。例えば、既知の脆弱性が存在するコンポーネントを分析して知らせてくれるツールや依存性チェックツールなどを活用し、脆弱性の存在しないライブラリを用いて開発してほしいと述べた。
OWASP TOP 10のドキュメントは、対策をまとめた「チートシート」と対になっている他、コーディングやテストのためのガイドラインも用意されている。これらを活用し、「良貨で悪貨を駆逐してほしい」とウィッカーズ氏は述べた。
モバイルアプリへのリバースエンジニアリングに警鐘
ウィッカーズ氏によると、OWASPではWebアプリケーションの脆弱性をまとめたリストに加え、モバイルアプリケーションの脆弱性を対象とした「Mobile Top 10 2014」の作成も進めているという。
OWASP AppSec APAC 2014では、参加者が話したい内容を提案し、来場者の投票によってセッション内容を決定するアンカンファレンス形式の「Open Mic」も行われた。このOpen Micの1つで、ジョナサン・カーター氏が「OWASP Mobile Top10」とモバイル完全性のリスクについて説明を行った。
カーター氏は、モバイルアプリに対するリバースエンジニアリングツールやデバッガーのリスクが高まっていることに触れ、「リバースエンジニアリングやコード改変に対して、完全性に対する違反がないか多層的にチェックすべき」という。
同氏が主張したのは、攻撃者がアプリを改変しようとする試みを「面倒なもの」にするというアプローチだ。「バイナリ攻撃が増えている。ぜひMobile Top 10のリストを参考にし、リバースエンジニアリングとコード改変への対策を実施してほしい」と述べている。
そのWordPressプラグイン、使う前にリスクの評価を
セッションの1つ「次の大きな攻撃の波に準備しろ! :CMSシステムへのハッキング」では、最も広く使われているCMS「WordPress」のプラグインの脆弱性を取り上げた。チェックマークのヘレン・ブラボ氏によると、2013年1月の時点で、WordPressのプラグイントップ50のうち30%にSQLインジェクションやXSSなどの脆弱性が発見された。
さらに米アカマイの調査によると、これらWordPressのプラグインをターゲットとした攻撃も多数検出されているそうだ。1週間に4万3000件もの攻撃が行われたとの報告もある。「脆弱なWPプラグインを導入しているサイトを見付けるのは非常に簡単で、数分でてきてしまう」とブラボ氏は警告する。
「有償のプラグインの方が脆弱性が少ない」という事実を踏まえ、リスクを回避する策の1つとしてブラボ氏が挙げるのが、「できれば有償のプラグインを使う」ということ。そしてもう1つは、最新版を用いるということだ。プラグインについても、「せっかく脆弱性が修正されていても、Webサイトオーナーがアップデートしていないケースがある」という。
「プラグインをダウンロードし、インストールする前に、どんな脆弱性が存在するかを知っておく必要がある。そしてそのリスクを許容できるか、できないかを判断することが重要だ」(ブラボ氏)。
Webアプリケーションセキュリティのスリートップが勢ぞろい
また「XSS オールスター・フローム・ジャパン」のセッションでは、日本のWebアプリケーションセキュリティ分野のスリートップといえる、ma.la氏、Masato Kinugawa氏、はせがわようすけ氏が登場し、それぞれ「気になる」脆弱性を紹介した。
ma.la氏が紹介したのは、「HTMLパーサーの挙動の違いで発生するXSS」。サーバー側とブラウザー側とで、HTMLメールなどに含まれる特殊文字に対する解釈が違っていることが原因となって、無害なコメントに見せかけた攻撃コードが実行されてしまうという問題だ。ma.la氏は、HTMLメールの他、WYISWIGを採用しているCMSの幾つかにこの問題があることを発見し、報告したという。対策は、正しいHTMLを出力するようフィルタすること、それもブラックリストではなくホワイトリストによってタグや属性を制限することだという。また、自力で新たにHTMLパーサーを記述するのではなく、基本的にブラウザー側のパーサーを使うようにすることも対策という。
Masato Kinugawa氏は、エンコーディングに関わるセキュリティ問題を徹底調査した結果について説明した。過去にも、エンコーディング(charset)を明確にしていないWebアプリケーションで、Webブラウザー側と解釈の違いに起因するXSSの問題はたびたび指摘されてきた。Kinugawa氏はこの問題を網羅すべく、まず主要なブラウザーがサポートしているエンコーディングの種類を調べた上で、文字列ファジングテスト風にバイト列をランダムに表示させ、どんな挙動が生じるかを調べたそうだ。この結果、ブラウザーに実装されているAnti-XSS機能がバイパスされてしまう問題や、エンコーディング切り替えによるセルフXSSといった問題が見つかった。いずれも対応が難しい問題で、「古くからあるエンコーディングを利用した攻撃は、Anti-XSSなどの新しい技術に対しても起き得る」とKinugawa氏は述べている。
はせがわようすけ氏のプレゼンテーションは、XSS以外の問題に関するものだった。1つは、JSONをVBScriptのエラーメッセージに含めてしまい、エラーハンドラーとして読み込ませることで情報漏えいにつながるという問題。もう1つは、IEでデフォルトでオンになっているTabluar Data Control(TDC)を用いるケースだ。「IEにはまだまだ、“面白い”機能がある」(はせがわ氏)。
セッション後の質疑応答で、「どのようにして脆弱性を見つけているのか」という会場からの質問に対し、Kinugawa氏が「趣味で音楽を聴くのと同じように、脆弱性を見つけている」と答えたことが印象的だった。
OWASP Japanの活動はまだまだ広がっている。既に関西で「OWASP Kansai」が活動を開始している他、今後「OWASP Fukushima」も立ち上げる予定だ。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- OWASPを関西にも、カジュアル勉強会「OWASP Kansai」が発足
Webサービスに携わるあらゆる人にセキュリティを啓発したい――セキュリティの研究活動を行うOWASPの支部が関西で発足した。 - 深刻な「ブラインドSQLインジェクション」の脅威
- 無償かつ高機能な「ModSecurity」をもっと活用しよう!