クロスサイトスクリプティング(XSS)とは?

クロスサイトスクリプティング(XSS)は、正当なWebサイト内に攻撃者が悪意のあるコードを挿入するコードインジェクション攻撃です。その後にコードは、ユーザーのウェブブラウザ内で感染したスクリプトとして起動し、攻撃者は機密情報を盗んだり、ユーザーになりすましたりすることができるようになります。

ユーザーが自分のコンテンツを投稿できるWebフォーラム、掲示板、ブログ、およびその他のWebサイトは、XSS攻撃の影響を最も受けやすくなります。入力がWebアプリケーションによって確認、検証、およびエンコードされない限り、コードに含まれる悪意のあるスクリプトは、他のユーザーのブラウザにより自動的に実行されます。このスクリプトは、ブラウザによって保持され、そのサイトで使用されているユーザーのクッキー、セッショントークン、または代替の機密情報にアクセスできます。これらのスクリプトは、より高度な攻撃で感染したWebページのコンテンツを書き換えることも可能です。

XSSなどのファイルレス攻撃やスクリプトベースの攻撃は、その回避機能により近年増加しています。これらの攻撃は、従来のウイルス対策(AV)ソリューションとファイアウォールを簡単に回避できるため、比較的簡単に実行できます。組織は、Webサイトの訪問者を保護し、組織への評判の低下リスクを軽減するために、全体的なサイバーセキュリティ戦略の一部としてXSSの検出と防止を含める必要があります。

クロスサイトスクリプティングはどのように機能しますか?

XSS攻撃の仕組みは、展開される攻撃の種類によって異なる点に注意することが重要です。とはいえ、ほとんどの攻撃は同じプロセスに従います。

  1. 攻撃者が、悪意のあるコードをWebページに挿入する場所と方法を特定します。これを可能にするには、Webサイトで、ユーザーがコメント、投稿、または連絡先フィールドを介してページにコンテンツを追加できるようにする必要があります。攻撃者が定義されたターゲットを持っている場合、フィッシングスプーフィング手法などのソーシャルエンジニアリング戦術を使用して、ユーザーに問題のサイトへのアクセスを促します。それ以外の場合、コードはすべてのユーザーが検出できるように残されます。
  2. 被害者が、挿入されたコードを含むWebサイトにアクセスします。被害者のデバイスは、感染したスクリプトを信頼できるサイトからのソースコードの一部と見なすため、感染したスクリプトを受け入れて実行します。コードが表示されず、ほとんどのインターネットユーザーがJavaScriptなどの一般的なプログラミング言語を理解していないことを考えると、平均的なユーザーがXSS攻撃を検出することは困難です。