▶はじめに
今回は「WEBアプリケーションの脆弱性について」自身の復習もかねてまとめてみました。
▶WEBアプリケーションへの攻撃
Webアプリケーションへの攻撃は『HTTPリクエストメッセージに攻撃コードを載せて』行われます。
クエリーやフォーム、HTTPヘッダー、Cookie等を経由して送り込まれ、Webアプリケーションに脆弱性があった場合には情報が盗まれたり、権限が取られたりすることがあります。
《WEBアプリケーションへの攻撃パターン》
●能動的攻撃
●受動的攻撃
▶能動的攻撃
能動的攻撃とは『攻撃者が直接Webアプリケーションに対してアクセスをし、攻撃コードを送るタイプの攻撃』です。
能動的攻撃の代表的な攻撃には『SQLインジェクション』や『コマンドインジェクション』等があります。
▶受動的攻撃
受動的攻撃とは『罠を利用してユーザーに攻撃コードを実行させる攻撃』です。
攻撃者はWebアプリケーションにアクセスして攻撃を行います。
受動的攻撃の代表的な攻撃には『クロスサイトスクリプティング』や『クロスサイトリクエストフォージェリ』等があります。
✖罠タイプ型は2つ✖
(攻撃用の罠となるスクリプトをどこに配置するかによって型が異なる)
●反射型・・・攻撃用のスクリプトが攻撃対象のWEBページとは別のところにある場合(罠サイトやメールに記載)
●持続型・・・攻撃用のスクリプトが攻撃対象のWEBサイトのデーターベースなどに保存される場合
受動的攻撃を利用すると『イントラネット』などの攻撃者が直接アクセスすることができないネットワークに対しての攻撃を行うことも可能!
攻撃者はイントラネット向けに内部のIPアドレス等を攻撃コードとして罠を用意し、それがユーザーがアクセス可能なネットワークであれば、イントラネットに対してでも『受動的攻撃』を行うことが可能になります。
※イントラネット・・・『内部ネットワーク』インターネットに対して、企業や研究所など内部ネットワークのことを指す。
▶インジェクション
Webアプリケーションでは処理が終わった後に、様々なシステムに『出力処理』を行うことがあります。
👆
この出力先に共通するのは、何らかの文字列のデータを出力し、出力先に送っているというところです。(それぞれのインターフェースに文字列を送っている)
操作 | 種類 |
---|---|
データーベース処理 | -SQLインジェクション |
OSコマンド処理 | -コマンドインジェクション |
メール送信 | -メールヘッダーインジェクション |
HTTPメッセージ表示 | -クロスサイトスクリプティング |
-HTTPヘッダーインジェクション | |
これらの出力に起因する脆弱性がインジェクションに分類されます。 |
▶SQLインジェクション
データーベースを利用しているWebアプリケーションで、**”SQLの呼び出し方に不備がある場合”**発生する脆弱性!
《SQLインジェクションにより受ける可能性のある影響》
●データーベース内のデータの不正な閲覧や改ざん
●認証の回避
●データーベースサーバーを経由したプログラムの実行等
▶コマンドインジェクション
OSのシェルで動作するコマンドを不正に実行できてしまう脆弱性!
(OSコマンドインジェクションとも呼ばれる)
《コマンドインジェクションによって受ける可能性がある影響》
●WEBサーバー内部のファイルが実行されたり読みだされたりする
●管理者権限が奪われ、別サーバーへの攻撃の踏み台として利用される
▶メールヘッダーインジェクション
メールメッセージのヘッダー部分に攻撃者が**”改行コード等を挿入することで、任意のヘッダーフィールドやボディを追加する”**ことができる脆弱性!
《メールヘッダーインジェクションによって受ける可能性がある影響》
●宛先(To)や件名(Subject)などを書き換えられたメールが送信される
●スパムや悪意のある本文を書いたメールが送信される
●悪意のあるファイルを添付ファイルとして付けてメールが送信される
※攻撃手法はHTTPヘッダーインジェクションとほぼ同様。
▶クロスサイトスクリプティング(XSS)
WEBサイトのユーザーのブラウザ上で、HTMLタグやJavaScriptなどが動いてしまう脆弱性!
外部からの入力等に応じてHTMLやJavaScriptを自動に生成している箇所で、生成する際に適切にHTMLのエスケープ処理(文字列の処理)ができていない場合などに発生します。(攻撃には被害者の介在が必要な受動的攻撃に分類される)
《クロスサイトスクリプティング(XSS)によって受ける可能性がある影響》
●脆弱性のあるWEBサイトのユーザーのCookieが盗まれることで、そのユーザーになりすまされる
●不正に追加されたHTMLによって偽の情報や偽のフォーマット等が表示され、ユーザーが騙される
●悪意のあるJavaScriptが実行されることでマルウェアに感染する
▶HTTPヘッダーインジェクション
レスポンスヘッダーフィールドに攻撃者が改行コードなどを挿入することで『任意のレスポンスヘッダーフィールド』や『ボディ』を追加することができる脆弱性!
※攻撃には被害者の介在が必要な受動的攻撃に分類されます。
《HTTPヘッダーインジェクションによって受ける可能性がある影響》
●任意のURLにリダイレクトされることで、悪意のあるWEBサイトに誘導される
●任意のCookieが生成されることで、セッションフィクセイション攻撃に利用される
●任意のHTTPボディが生成されることで、WEBページに表示される内容が改変される
参考文献
書籍:Webセキュリティ担当者のための脆弱性診断スタートガイド
上野宣が教える新しい情報漏えいを防ぐ技術 第2版
著者:上野 宣