Column
Ajaxのセキュリティ――悪用防止の5つの対策
Webアプリケーション内でAjaxを利用すると、その全体的な複雑性は大幅に増大し、サーバ側の各機能が攻撃者にとって新たなターゲットになる。こういった脅威を軽減するための5つの対策を示す。
グーグルのGmailは最近、Ajax(Asynchronous JavaScript and XML)の可能性をめぐってWeb開発者コミュニティーの間で関心を集めた。Ajaxは、ブラウザの機能を拡張するために組み合わせて用いられる技術セットであり、ユーザーとアプリケーションがコンテンツにアクセスし、それを共有、編集することを可能にする。このWeb開発手法は特に新しいものではないが、Web 2.0(次世代のWebサービス)の一部と見なされている。Ajaxはすべてのインターネットベースのサービスと同様、独自のセキュリティ問題を抱えている。Ajaxの仕組み、それを悪用する手口、そして攻撃を防ぐための対策をみることにしよう。
Ajaxの仕組み
Ajaxアプリケーションは基本的に、ユーザーのマシン上で実行される。これらのアプリケーションは、Webページ全体をリロードしなくても済むように、ユーザーに意識されることなくサーバと少量のデータをやりとりする。これにより、Webページに機能が付加され、応答性が高くなったように感じられる(その例としては、Gmailのリアルタイムスペルチェック機能などがある)。Ajaxは、CSS(Cascading Style Sheet)、DOM(Document Object Model)、DHTML(Dynamic HTML)などの技術を使用するが、その主要な原動力となっているのはJavaScriptのXMLHttpRequestオブジェクトである。XMLHttpRequestは陰で非同期に動作し、ユーザーのキー入力やタイマーなどのイベントによって起動するように設定することが可能だ。これはつまり、Webページ上のJavaScriptコードがユーザーから独立してWebサーバに接続し、クロスドメインコンテンツを取り込めることを意味する。
ハッカーがAjaxを悪用する方法
Webアプリケーションは一般に、同じオリジン(配信元)ポリシーを使用するため、ベースページを配信したサーバだけに接続するように制限されている。しかしこれはAjaxスクリプトには当てはまらないので、悪質なスクリプトや改ざんされたスクリプトは、cookieに保存されたデータを盗み出したり、配信元サーバに直接アクセスしたりすることができるのだ。例えば、攻撃者はクロスサイトスクリプティングの脆弱性をひそかに悪用する可能性がある。Ajaxを利用したアプリケーションは、複数のリクエストをバックグラウンドで実行でき、しかもユーザーには普通の機能のように見えるからだ。
Ajaxの悪用を防ぐには
Webアプリケーション内でAjaxを利用すると、その全体的な複雑性は大幅に増大し、サーバ側の各機能が攻撃者にとって新たなターゲットになる。こういった脅威を軽減するための5つの対策を以下に示す。
1. クライアントを信用しない
クライアントを決して信用してはならないというコーディングの基本原則はAjaxにも当てはまり、セキュリティコントロールはすべてサーバに実装すべきであり、決してユーザーがコントロールできるようにしてはならない。
2. アプリケーションは単純に
最初はアプリケーションを単純なものにしておく。Ajaxコールを削減し、簡素化すれば、セキュリティテストの際に、Webページまたはアプリケーションによって生成される可能性があるすべてのタイプのリクエストを評価するのが容易になる。
3. アプリケーションの動作を文書化する
アプリケーションがサーバとどのように通信し、サーバから受け取る応答をどう処理するかに関する説明を文書化する。センシティブな情報用のSLLコネクションなどの問題も含めること。
4. オンライン化前に必ずセキュリティテストを
アプリケーションをオンラインに移行する前に、セキュリティテストを完了する。テストでは、アクセスコントロールと入力内容の検証にかかわる欠陥のチェックを特に重点を置く。
5. 常に情報収集を
Web Application Security Projectのサイトにアクセスし、セキュアなAjaxアプリケーションの開発に役立つ情報を得る。
忘れてはならないのは、XMLHttpRequestのセキュリティモデルは、長期的にはWe b2.0アプリケーションで生き残れないということだ。このため、クロスドメイン問題を解決する可能性がある新たなソリューションの動向を常に注視することが重要である。例えば、JSONRequest(JavaScript Object Notation Request)は、リクエスト時にcookieのやりとりを許可しないのに対し、アドビのFlex ActionScriptでは、どのサイトがスクリプトでクロスドメイン操作を可能にするかをサーバ側でコントロールできるようにしている。
最後に、アプリケーションのセキュリティ評価を自動化するツールを探しているのであれば、Ajaxを使用するWebアプリケーションをサポートするものを選択すべきだ。こういったツールとしては、センジックのHailstormやSPIダイナミクスのWebInspectなどがある。
本稿筆者のマイケル・コッブ氏は、データセキュリティおよび解析に関するトレーニングやサポートを提供するITコンサルティング会社、コッブウェブアプリケーションズの創業者兼マネージングディレクター。CISSP-ISSAP(公認情報システムセキュリティプロフェッショナル―情報システムセキュリティアーキテクチャプロフェッショナル)の資格を持つ。共著書として「IIS Security」があり、主要なIT出版物に多くの技術記事を寄稿している。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
新着ホワイトペーパー PR
-
市場調査・トレンド
データ侵害の被害は平均440万米ドル、Linux環境のリスクはどう軽減する? -
製品資料
ハイブリッドクラウド環境の管理を単純化するために知りたい「4つの方法」 -
市場調査・トレンド
「OSの選択」が戦略的な課題に? 次世代のLinux基盤に求められる機能や要件 -
製品資料
SaaS企業のカスタマーサクセス、少人数で成果を上げる運用体制をどう作る? -
製品資料
カスタマーサポートの投資効果が見えない? 実態把握から始める改善方法とは
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
AI全部入り「Microsoft 365 E7」に企業が二の足を踏む訳 移行意向はわずか4%
-
2
なぜ人はいるのにDXが進まない? ライオンも直面した“老害”レガシーシステム
-
3
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
4
「VMware離れ」は本当か 3000社がVCF 9にかじを切った現実的な理由
-
5
エンジニアが選考を辞退する本当の理由 7割が隠す“面接の違和感”とは
-
6
「業務改善とツール活用」に関するアンケート
-
7
「新リース会計基準対応」に関するアンケート
-
8
「にゃんこ大戦争」インフラ“大引っ越し”の理由 なぜAWSからGoogle Cloudに?
-
9
「ネットワークインフラの現状と課題」に関するアンケート
-
10
「ERP(統合基幹業務システム)の導入・活用」に関するアンケート
ホワイトペーパーランキング PR
-
1
属人化や仕様バグはなぜ起きる? AI時代に必須のドキュメント文化の作り方
-
2
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
3
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
4
5分で分かる「AI駆動開発エージェント」 要件定義から設計・実装・テストまで
-
5
コスト分析で見る「デバイス復旧」の代償 損失額から導きだされた投資戦略とは
-
6
マンガで解説:「ゼロトラスト」「SASE」の必要性とメリット
-
7
“あのファイル転送”で暗躍するノーウェアランサム
-
8
オープンウェイトLLMの推論最適化事例:ローカル環境で応答速度を約15分の1へ
-
9
「結局、一部の人しか使わない」 AI活用が業務に定着しない根本的な理由
-
10
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー