このページの本文へ

McAfee Blog

管理者の意図を無視したウェブサイト攻撃 XSS攻撃とは

2017年07月04日 18時30分更新

文● McAfee

  • この記事をはてなブックマークに追加
  • 本文印刷

「セキュリティに対する重要性は理解したけれど、用語が難しくて」という声を聞くことがよくあります。そんな方に、「今だから学ぶ!」と題して、連載でセキュリティの頻出用語を解説します。第46回は、「クロスサイトスクリプティング(XSS)攻撃」についてです。

第45回WAFの回でも紹介したように、世界中でWebテクノロジーを利用したアプリケーションやサービスが爆発的に増加してきました。これらのサービスのほとんどは、誰でもアクセスできるWebサイトも多く、サイバー攻撃者もアクセスが可能です。

増加するWebサイト攻撃の有名な手法の1つであるクロスサイトスクリプティング(XSS)攻撃は、ブラウザ上においてサイト管理者の意図しないHTMLやJavaScriptなどのスクリプトを利用した手法です。クロスサイトスクリプティングの英語表記は、Cross Site Scripting です。頭文字をとったCSSは、WebテクノロジーであるCascading Style Sheets の略として一般的であるため、クロスを X にし、XSS という略称が用いられます。

クロスサイトスクリプティング脆弱性を持つWebサイトを構成する動的なHTMLやJavaScriptに、悪意のあるHTML/スクリプトを埋め込むことで、アクセスした人に不正スクリプトを実行させ、入力した情報を意図しない別のサイトに送信することができます。簡単な例では、掲示板や資料請求の入力フォームなどのページに組み込むことで実装できます。

これにより、偽ページへアクセスさせフィッシング詐欺を試みたり、Cookieの奪取によってセッションを乗っ取ったりするなどの被害が発生します。

多くのサイトでは、CookieをHTTPセッション管理に利用されるセッションIDとして利用しています。Cookieを奪取できることにより、セッションIDの奪取も可能になるため、第3者がアカウントを不正に利用できることになります。

クロスサイトスクリプティング攻撃では、「サイバー攻撃者」、「標的となるサイト」および「被害者」の3者が関与します。典型的なクロスサイトスクリプティング攻撃では、サイバー攻撃者が標的となるサイトへのリンクを電子メールなどで被害者に送信し、被害者がそのリンクをクリックすると、悪意のあるHTML/スクリプトが実行されます。

参考:『動画で知ろう!クロスサイト・スクリプティングの被害!』(独立行政法人 情報処理推進機構(IPA))

クロスサイトスクリプティング攻撃に対応するには、まずユーザーとしては、使用するブラウザを最新にアップデートし、メールやWebに掲載されている不審なURLをクリックしないことが重要です。

また、開発者や管理者は、Webサイトを開発するとき、脆弱性を作り込まないように安全なWebサイトの構築を心がける必要があります。サイバー攻撃者にクロスサイトスクリプティングの脆弱性を持つWebサイトを利用されると、自分たちが予期せず、他のWebサイトを攻撃する踏み台とされることもあります。

まず、サイト構築の基本として、HTMLやスクリプト言語で特別な意味を持つ文字や記号を別の文字列に置き換えるエスケープ処理する必要があります。例えば、HTMLではタグの記述に「<」「>」という記号を使います。そのため、この記号を文字にするには、「&lt;」「&gt;」という表記に置き換えることで、「<」「>」と表示することができます。このような処理をエスケープ処理といいます。
エスケープ処理などの適切な対応を行うことでより安全なWebサイトを構築することが可能になります。

独立行政法人 情報処理推進機構 (IPA) では、『安全なウェブサイトの作り方』として、IPAが届け出を受けた脆弱性関連情報を基に、届け出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げて、ウェブサイト開発者や運営者が適切なセキュリティを考慮したウェブサイトを作成するための資料を公開しています。

また、さまざまな事情から、Webサイトの脆弱性を修正できないといったことがあります。このような場合にはWAF (Web Application Firewall)などセキュリティソリューションを利用することも対策の1つです。


【関連記事】

『動画で知ろう!クロスサイト・スクリプティングの被害!』(独立行政法人 情報処理推進機構)
安全なウェブサイトの作り方(独立行政法人 情報処理推進機構)
脆弱性体験学習ツール AppGoat
第45回:今だから学ぶ! セキュリティの頻出用語:WAFとは?

今だから学ぶ! セキュリティの頻出用語シリーズ 過去10記事

第45回:今だから学ぶ! セキュリティの頻出用語:WAFとは?
第44回:今だから学ぶ! セキュリティの頻出用語:スミッシング とは?
第43回:今だから学ぶ! セキュリティの頻出用語:権限昇格攻撃とは?
第42回:今だから学ぶ! セキュリティの頻出用語:機械学習とは?
第41回:今だから学ぶ! セキュリティの頻出用語:インターネット分離とは?
第40回:「今だから学ぶ!セキュリティの頻出用語」:[特別編]2016年アクセストップ5は?
第39回:今だから学ぶ! セキュリティの頻出用語:ペイロードとは?
第38回:今だから学ぶ! セキュリティの頻出用語:IPスプーフィングとは?
第37回:今だから学ぶ! セキュリティの頻出用語:バッファオーバーフローとは?
第36回:今だから学ぶ! セキュリティの頻出用語:DDoS攻撃とは?

「今だから学ぶ! セキュリティの頻出用語」アーカイブ 第1回~第19回
「今だから学ぶ! セキュリティの頻出用語」アーカイブ 第21回~第39回

カテゴリートップへ