分12日常的に繰り返されているWebアプリケーションへの攻撃Webアプリケーションの脆弱性を利用して行われる個人情報の窃取(せっしゅ)やコンテンツの改ざんといった攻撃は,もはや珍しいことではありません。昨年,日本の大手エレクトロニクスメーカーが提供するWebサービスに対して攻撃がしかけられ,1億人強のユーザの個人情報が流出し,大きな騒ぎとなったのは記憶に新しいところです。この状況は今年になっても改善されておらず,毎月のように情報漏えいのニュースが聞こえてきます。したWebアプリケーションへの攻撃には,さまざまな手法が使われています。代表的な攻撃手法として「SQLインジェクション」があります。これはフォームにSQL文を直接入力し,開発者が意図していない動作をWebアプリケーションに行わせるというもの。これにより,ユーザ認証をすり抜けたり,権限がなくてもデータベース内の全データを窃取することが可能になります。ほかにも,Webアプリケーションの脆弱性を突いて攻撃する手法は数多く存在します。ユーザを特定するためのセッションIDを悪用する「クロスサイトスクリプティング」や,ユーザに意図しない書き込みや変更をさせる「クロスサイトリクエストフォージェリ⁠」⁠,WebサーバのOS上でコマンドを実行する「OSコマンドインジェクション」などが有名です。Webアプリケーション開発の際は,こうした攻撃手法について意識し,脆弱性を作り込まないようにする必要があります。それでは,Webアプリケーションはどの程度安全に構築されているのでしょうか。「⁠ウェブアプリケーション診断の結果(2010⁠)⁠」⁠(⁠図1)によると,実に98%のWebサイトが何らかの脆弱性を抱えており,さらに,危険度の特に高い脆弱性が存在するWebサイトは全体の2/3以上だと指摘しています。これらのWebサイトは自ら費用を支払って脆弱性診断を行ったもので,検査を行っていないWebサイトで脆弱性が作り込まれている可能性はもっと高くなると推測されます。多くのWebサイトで何らかの脆弱性が残されている可能性があるわけです。Firewall)を導入しているWebアプリケーションに対して昨年1年間でどの程度の攻撃があったのかを調査したところ,45万回以上の攻撃が行われていたことがわかりました(図2,※1⁠)⁠。攻撃回数が多かったのはSQLインジェクションで,次いで不正なコンテンツのスキャン,コマンドインジェクション,パスワードが保存されている「/etc/passwd」への攻撃,開発者が意図していないパスを参照する「パスの乗り換え」(⁠パストラバーサル)などが続いています。WAFを導入した約200サイトのWebアプリケーションに対する攻撃回数。※1)セキュアスカイ・テクノロジー調査。Webアプリケーションの脆弱性を解消できない理由こうした攻撃に対処するには,Webアプリケーションの設計/実装/テストの各フェーズにおいてセキュリティを考慮する必要があります。短納期,低予算で進められることが多いWebアプリケーション開発の現状を考えると,十分にセキュリティに配慮して開発することは現実的に難しいケースが大半でしょう。具体的な対応の1つとして,テストフェーズで行う脆弱性診断が挙げられますが,それも相応のコストと期間が必要であり,納期や予算の問題から見送られる場合が少なくありません。Webアプリケーションが攻撃された場合,極めて甚大な被害を受ける恐れがあります。個人情報が漏えいすれば,サービスを提供する企業の信用失墜につながるほか,情報が漏えいした個人への賠償問題やサービス再開までの売り上げ停止も発生します。受託開発企業にとっては,発注側の企業から損害賠償を求められることもあるでしょう。調査によれば,脆弱性が判明したWebアプリケーションの半数以上で,その改修に1ヵ月以上かかったとしています。サービスを提供している場合,脆弱性を放置したままの運用はリスクが高いことを考えると,サービスの停止,あるいは当該機能の削除といった対応をせざるを得ません。改修に時間がかかれば,それだけ収益に大きな影響の出る恐れがあるわけです。ファイアウォールやIPSでは防げない攻撃を遮断するWAFこうしたWebアプリケーションの脆弱性に対する解決策として活用したいのがWAFです。Webサーバの前面に配置することでWebアプリケーションに対する入力内容をチェックし,攻撃と判断される内容が含まれていれば通信を遮断,あるいはログとして記録するセキュリティソリューションです。これにより,Webアプリケーションに脆弱性が残っていたとしても,情報漏えいなどの被害を避けられます。Webサーバを構成するOSやミドルウェア,その他のWebサービスで新たな脆弱性が発見されている現状を考慮すると,Webサイトの脆弱性対策はサービス提供の時点で終わるものではなく,常に対策を行う必要があります。そのため,新たに発見された脆弱性にもシグネチャの追加で対応できるWAFへの期待は高いものがあります。System)といったポートごとの通信を防御するセキュリティ装置では検知が難しい攻撃でも対策が可能です。手軽に無償で試せるベリサインのクラウド型WAFこうしたWAFの1つとして,ベリサインから提供されているのが「クラウド型WAF」です。名前のとおりクラウドサービスとして提供されているため,指定のOS環境に(必要に応じてパッチをあてて)ソフトウェアをインストールしたり,ネットワーク構成を変更してアプライアンスを設置したりする必要はありません。導入時に必要な作業はDNSの設定変更だけで,Webアプリケーションで使っているドメイン名をクラウド型WAFのアドレスに紐付ければ完了です。これで,クライアントとの通信は必ずWAFを経由することになり,攻撃を意図した通信は自動的に遮断されます(図3⁠)⁠。ベリサインが提供する「クラウド型WAF」のしくみ。WAFがプロキシになるため,ソースIPアドレスでWebの表示を変える場合は,Webアプリケーションの設定変更が必要になります。ベリサインでは,クラウド型WAFを1ヵ月間無償で試せるトライアルサービスを提供しています。今回は,実際にトライアルサービスを利用し,WAFの機能を試してみました(※2⁠)⁠。トライアルサービスを利用する際は,まず同社から提示されるヒアリングシートにWebサイトの情報(URLやIPアドレスなど)を記入して提出します。Webアプリケーションが稼働しているWebサーバのIPアドレスをベリサインに登録してもらえばトライアルの準備は完了です。テスト用PCのhostsファイルを書き換え,テストサイトをWAF経由で接続して,攻撃者の視点を実体験してみます。※2)テスト方法としては,本番サービスの場合と同様にDNSを書き換えてWebサイトへのすべての通信をWAF経由にする方法と,テスト用PCのhostsファイルを書き換えて擬似的にWAF経由の通信を体験する方法の2種類があります。今回はhostsファイルを書き換える方法でテストしました。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。