–
ウェブページを記述するためのマークアップ言語。–
文書の一部を“<”
と“>”
で挟まれた「タグ」と呼ばれる特別な 文字列で囲うことにより、文章の構造や修飾についての情 報を文書に埋め込んで記述することができる。 Cookie
–
ウェブサーバとウェブブラウザ間で状態を管理するために 使われる。例えば、ウェブサイトの訪問回数や、ユーザ認 証後の状態を管理するために使われる。Copyright © 2011 独立行政法人 情報処理推進機構
38
クロスサイト・スクリプティング脆弱性の概要
脅威–
出力するウェブページ(HTML
)を書き換えられ、ウェブ ページを操作されてしまう•
本物サイト上に偽のページが表示される、Cookie
を取得される等
原因–
ウェブページ出力(HTML
生成)の実装に問題
注意が必要なウェブアプリケーション–
動的にウェブページを出力するウェブアプリケー ションクロスサイト・スクリプティング攻撃の イメージ図
ウェブ アプリケーション
3.スクリプトを含む 悪意の
ある人
利用者のブラウザ 悪意のある人が
用意した罠ページ 1-a.罠とは知ら ず、悪意あるサイト の罠ページを閲覧
1-b.罠リンクを含 むメールを送信
ウェブサイト
リンク クリック!
利用者のメーラ
2. クリック等 により、 スク リ プ ト を 含 む 文 字列を送信
Cookie 漏えい
偽ページ スクリプト の表示
利用者
•
罠ページや罠リンクへのアクセスから、利用者が被害を受けるCopyright © 2011 独立行政法人 情報処理推進機構
HTML生成の実装に問題があると
ウェブサーバ
+ウェブアプリ
検索キーワード IPA
検索キーワード
<s>IPA</s>
ウェブサーバ
+ウェブアプリ
<s>は、取り消し線 を引くHTMLタグ
<html>
【IPA 】を含む検索結果
…
</html>IPA
<html>
【<s>IPA</s> 】を含む 検索結果
…
</html><s>IPA</s>
" < " および " > " が出力され、HTMLタグとして認識 されてしまう (表示が崩れる)。
【IPA】を含む 検索結果
【IPA】を含む 検索結果
①
③ ②
①
’
②
’
③
’
利用者
利用者
40
正常系
異常系
アプリケーション開発者が想定していた HTML
攻撃により、書き換えられた HTML 攻撃によりHTMLを書き換えられる
<html>
【IPA 】を含む検索結果
…
</html>IPA
<html>
【<s>IPA</s> 】を含む 検索結果
…
</html><s>IPA</s>
【IPA】を含む検索結果
【IPA】を含む検索結果
HTMLソース
ウェブブラウザHTML
ソース ウェブブラウザCopyright © 2011 独立行政法人 情報処理推進機構
HTMLを書き換えられてしまうと
42
偽情報の表示
悪意あるサイト への誘導
なりすましに つながる 情報の窃取
クロスサイト・スクリプティング攻撃の脅威
本物サイト上に偽のページが表示される–
偽の情報の流布による混乱–
フィッシング詐欺による重要情報の漏えい–
アドレスバーに表示されているドメインは正規のものである ため、利用者が罠と気付きにくい
ブラウザが保存しているCookie
を取得される– Cookie
にセッションID
が格納されている場合、さらに利用 者への成りすましにつながる
任意のCookie
をブラウザに保存させられるCopyright © 2011 独立行政法人 情報処理推進機構
クロスサイト・スクリプティングの脆弱性を 取り巻く状況
脆弱性による被害や騒動があったサイト–
動画共有サービス–
ミニブログサイト–
バグ管理システム–
ウェブメール–
クラウドを使ったデータ管理サービス IPA
に届け出られたクロスサイト・スクリプティング の脆弱性は、2300
件以上(2011
年3
月末)44
[演習]AppGoatを用いた疑似攻撃体験 [時間]30分(解説含む)
AppGoat を起動し、クロスサイト・スクリプティ ングの下記テーマの演習を実施してください。
「アンケートページの改ざん(反射型)」
画面上に「 Congratulations!! 」と表示されると
演習クリアです。
Copyright © 2011 独立行政法人 情報処理推進機構
[演習]演習環境へのアクセス方法
AppGoat 起動後、①学習テーマを選択し、
②パンくずリストの「演習」をクリックします。
46
[演習]演習の進め方
下記のように、ウェブアプリケーションがどのようにHTML
を生成しているのか、想像しながら演習問題 を解いてみましょう。–
アンケートページで様々な値を入力し、入力内容確認ペー ジやエラーページを表示させる。–
アンケートページで入力した値が、どのようにHTML
に反 映されているか確認する。アンケートページ上で右クリックし、「ソースを表示」で
HTML
ソースを表示する。Internet Explorer
Firefox
Copyright © 2011 独立行政法人 情報処理推進機構
[演習]行き詰まった場合
問題を解くのに行き詰まった場合は、AppGoat
の ヒント機能を参考に演習を進めてください。
次のスライドの財団法人 地方自治情報センター(
LASDEC
)の資料抜粋(項番2.4
)を参照ください。48
ウェブ健康診断 - 財団法人 地方自治情報センター(LASDEC)
平成22年度版ウェブ健康診断仕様 Internet公開用
https://www.lasdec.or.jp/cms/resources/content/1284/H22_web_kenko_shindan.pdf
AppGoat
のヒント機能脆弱性の検出パターンや脆弱性有無の 判定基準の目安が記載されています
平成22年度版ウェブ健康診断仕様(抜粋)
地方自治体向けの脆弱性有無確認の参考資料[
参
考 ]
Copyright © 2011 独立行政法人 情報処理推進機構
[演習解説]
演習解説は、別紙を参照してください。別紙 は、演習時間終了後に閲覧するようにしてく ださい。
50
クロスサイト・スクリプティング脆弱性の対策
HTML
テキストの入力を許可しない場合 HTML
テキストの入力を許可する場合-根本的解決
・
HTML
における特別な記号文字をエスケープ処理する ・URL 出力時のスキームを制限する・スクリプト要素の内容を動的に生成しない
-保険的対策
・入力値チェックをする
-根本的解決
・構文解析木を作成して、必要な要素のみを抽出する
-保険的対策
・入力された HTML テキストから、スクリプトを除く
掲示板やブログ等のアプリ
検索や情報登録等の機能 を有するアプリ
Copyright © 2011 独立行政法人 情報処理推進機構
52
& → & < → <
" → " > → >
' → '