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
-
製品資料
[ファインディ株式会社] AI利用率だけでは説明できない成果 開発組織の競争力を生む「開発資本」とは? -
製品資料
[ニュータニックス・ジャパン合同会社] AI活用を成功へ導く、シンプルで費用対効果に優れたクラウド基盤とは? -
製品資料
[ニュータニックス・ジャパン合同会社] マネージドKubernetesには限界も――メリットをフル活用する新たな選択肢とは? -
技術文書・技術解説
[ニュータニックス・ジャパン合同会社] 決断の日が迫る「vSphere 8」サポート終了問題 考慮すべきリスクと選択肢は? -
製品資料
[サイバーソリューションズ株式会社] メール誤送信対策のルールが肥大化 苦しむ情シスはどうすれば救われるのか?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
2
「アップグレードできないJava」をどう守る IBMとRed HatがAIで400件超修正
-
3
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
4
「恥を知るべきだ」 AIデータセンター反対運動を招いた事業者の秘密主義
-
5
パッチなしで「今すぐサーバを落とせ」 Kiteworks異例警告の波紋
-
6
kintoneで実践 製造業のための「見積もり管理」改善のヒント
-
7
【基本情報技術者試験】メモリ不足でもアプリが動くのはなぜ? OSを支える「仮想記憶」
-
8
「企業におけるAI導入検討度とIT投資優先度」に関するアンケート
-
9
「IoT通信環境の構築・運用」に関するアンケート
-
10
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
4
システムの保守がモダン化を阻む? 「変えない判断」から脱却する方法とは
-
5
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
6
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
7
「IT史に名を残すシステム障害」8選
-
8
Linux初心者でも知らないとまずい「RHEL」「SLES」の違いとは?
-
9
東大教授と考える、AI時代の「データ主権」「信頼性」「ガバナンス」の在り方
-
10
マンガで学ぶXDR/MDRのメリット、中小企業のセキュリティ強化になぜ有効か?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー