検索
連載

多様化するWebアプリケーションへの攻撃Webアプリケーションファイアウォールの必要性(2)(3/4 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

Brokenアクセスコントロール(Broken Access Control)

 「Brokenアクセスコントロール」とは、不完全なアクセス制御メカニズムによって発生する脆弱性のことだ。ユーザーIDとパスワードによる認証の後、あるコンテンツや機能を、特定のユーザーのみに提供し、ほかのユーザーには見えないようにすることをアクセス制御というが、この制御メカニズムに欠陥があったときに発生する。

 以下はある情報提供サイトの構造のサンプルである。認証が通った会員には、会員のみが閲覧可能な特別な情報を提供している。

図3 CGIを使って会員認証を実施しているWebサイトの例
図3 CGIを使って会員認証を実施しているWebサイトの例

 会員限定の情報にアクセスするには認証プログラムを経なければならないという想定だが、会員限定オブジェクトのアクセス権限設定を行っていない、もしくは適切ではないため直接入力によりたやすくアクセスできてしまう。

図4 適切なアクセス権限を設定していない
図4 適切なアクセス権限を設定していない

 Brokenアクセスコントロールは、以下の方法で防御できる。

  • 認証フェイズでCookieを発行し、特定のディレクトリ以下のアクセスにはCookieのチェックを行う

クロスサイトスクリプティング(Cross Site Scripting)

 攻撃者が送り込んだコードを、そのページを閲覧したほかのユーザーにスクリプトとして実行させるのが「クロスサイトスクリプティング(XSSと略すこともある)」だ。ユーザーからの入力データを表示する仕組みになっている掲示板のようなWebアプリケーションにおいて、この脆弱性は発生しやすい。

 Webアプリケーションにおいて、入力データの十分な検証がなされないとき、攻撃者は悪意のあるコードをほかのユーザーが閲覧する場所に配置することができる。そのページを閲覧したほかのユーザーは、そのスクリプトが信頼できるものであるか否かを判断するすべがなく、実行してしまう。その結果、簡単にそのユーザーがサイト内で使用していたCookieやセッション情報を盗み出すことができる。

 この攻撃は性質上、広範囲に広がりやすい。掲示板サイトなど、自分が書き込んだHTMLをほかの人が閲覧できるようなサイトを利用してクロスサイトスクリプティングを仕掛けることができる。以下のフォームは閲覧者にダイアログボックスを表示させるためのスクリプトである。

図5 閲覧者にダイアログボックスを表示させるスクリプト
図5 閲覧者にダイアログボックスを表示させるスクリプト

【編集部より】

当記事公開時に、クロスサイトスクリプティングと「Nimda」を関連付けた記述がありましたが、誤認識であることが分かりましたので該当部分を削除しました。お詫びして訂正させていただきます(2005年11月25日)


 この書き込みが行われた後にサイトにスクリプトの実行を許可しているブラウザからアクセスすると、以下のダイアログが表示される。

 この例では単純なダイアログボックス表示のスクリプトであるが、この仕組みを応用して攻撃者が用意したWebサイトにアクセスさせてCookieの送信などを行わせることができる。

 アプリケーション側でクロスサイトスクリプティングを防御するには、送信されたリクエストのサニタイジングが有効である。サニタイジングとはある環境で制御文字となるものを制御文字ではなく単なる文字として扱わせることである。上記の場合であれば、送信された内容をサーバに書き込む前、もしくはレスポンスデータを返す際に「<」を「<」、「>」を「>」に変換してしまえばスクリプトは実行されない。また、記号など使える文字の種類を制限してしまうのも有効な対処となり得る。

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  2. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  3. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  4. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  5. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
  6. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  7. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  8. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  9. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  10. CrowdStrikeが引き起こした大規模障害の根本原因はメモリアクセス違反、Microsoftが確認
ページトップに戻る