クロスサイト スクリプティング (XSS): 概要と修正方法
最も一般的なサイバーセキュリティ脅威の 1 つであるクロスサイト スクリプティング (XSS) は、2019 年に大企業の約 75% を攻撃しました。さらに、すべてのサイバー攻撃のほぼ 40% が XSS の脆弱性をターゲットに実行されました。
クロスサイト スクリプティングは、eBay、Google、Facebook、Twitter などの Web 大手が運営する Web サイトに影響を与えています。しかし、クロスサイト スクリプティングは新しいサイバー脅威ではありません。実際、XSS 攻撃は、Web 自体の黎明期からほぼ存在していました。
XSS 攻撃を防止するために、このガイドでは、クロスサイト スクリプティングについて知っておくべきすべてのことに焦点を当てています。このガイドを読むと、クロスサイト スクリプティングがどのように機能するか、WordPress Web サイトを保護する方法についてよりよく理解できるようになります。
クロスサイト スクリプティング (XSS) とは何ですか?
クロスサイト スクリプティング (XSS) とは、信頼できる Web サイトに悪意のあるスクリプトが挿入されるタイプのサイバー攻撃を指します。
クロスサイト スクリプティング攻撃は、HTML、Flash、ActiveX、CSS で発生する可能性があります。ただし、JavaScript はほとんどのブラウジング エクスペリエンスの基礎となるため、サイバー犯罪者の最も一般的な標的となります。
JavaScript は、Web サイトに複雑な機能を実装できるプログラミング言語です。 Web 上の大規模でインタラクティブな Web サイトのほとんどは JavaScript で構築されています。 Zyro プロジェクトのマーケティング マネージャーである Domantas Gudeliauskas 氏は、「オンサイトでインタラクティブな機能やゲームを開発したり、追加の機能を追加して製品のマーケティングを改善したりできます」と述べています。
JavaScript は、Web ページ上で事実上何でもできるため、Web コミュニティの間で非常に人気があります。そしてそれが問題になるときです。サイバー犯罪者は JavaScript を使用して Web ページの裏側にログインし、悪意のあるスクリプトを挿入する可能性があります。
クロスサイト スクリプティングはどのように機能しますか?
サイバー犯罪者が WordPress Web サイトに対して XSS 攻撃を実行する方法は 2 つあります。ユーザー入力を悪用したり、同一生成元ポリシーをバイパスしたりする可能性があります。クロスサイト スクリプティングについてさらに理解するために、両方の方法を見てみましょう。
ユーザー入力の操作
サイバー犯罪者が XSS 攻撃を実行する最も一般的な方法は、ユーザー入力を悪用することです。ほとんどの WordPress Web サイトには、検索バー、コメント フォーム、ログイン ページ、お問い合わせフォームなどのユーザー入力フィールドがあります。通常、入力フィールドは、Web サイトでアクティブになっている JavaScript を利用した WordPress プラグインまたはテーマによって有効になります。
問題は、すべての WordPress プラグインとテーマが 100% 安全であるわけではなく、実際にそれらの多くに XSS 脆弱性があることです。これが意味するのは、サイバー犯罪者が入力フィールドの WordPress の脆弱性を利用して悪意のある活動を実行できるということです。
理想的には、サイト検索バー (またはその他のユーザー入力フィールド) は入力としてコマンドではなくプレーン テキストのみを受け入れる必要があります。ただし、WordPress にはユーザー入力の脆弱性があり、ハッカーが入力フィールドに実行コードを入力してデータベースに送信することができます。
同一生成元ポリシーのバイパス
同一生成元ポリシーは、あるページが他の Web ページから情報を取得することを制限します。このポリシーでは、Web ブラウザーは、同じオリジンを共有する場合に限り、最初の Web ページに含まれるスクリプトが 2 番目の Web ページのデータにアクセスすることを許可します。これは、サイト間リクエストが行われないようにするのに役立ちます。
このポリシーでは、Facebook ページとオンライン バンキングを同じブラウザーで開いている場合、2 つの Web サイトは相互に情報を共有できないと規定しています。ただし、(同じオリジンを共有する) 複数の Facebook タブを開いている場合、相互にスクリプトやその他のデータを交換できます。
クロスサイトリクエストを防ぐために同一生成元ポリシーやその他のセキュリティ対策が講じられているにもかかわらず、サイバー犯罪者はセッション Cookie を使用してポリシーを回避する方法を見つけました。これが機能するのは、ブラウザを開くたびにセッション Cookie が生成され、Web サイト ユーザーとして認証され、あるページから別のページにスムーズに移動できるようになります。
セッション Cookie には、ログイン資格情報 (WordPress サイトを含む)、クレジット カード情報、発送詳細、その他の機密データが保存されます。その仕組みは次のとおりです。オンライン バンキング アカウントにログインするとします。 Web サイトを開くと、セッション Cookie が生成されます。セッション Cookie がなかったら、ページを切り替えるたびにオンライン バンキング アカウントにログインする必要があります。
ユーザーのブラウザに脆弱性があることは珍しいことではありません。存在する場合、サイバー犯罪者はユーザー入力に挿入したコードを使用してセッション Cookie を盗みます。このようにして、ハッカーはユーザーのブラウザで開かれたすべての Web サイトの Cookie を盗むことができます。その後、これらの Cookie を使用してユーザーのアカウントにログインし、ユーザーになりすまして財務データを盗むことができます。
クロスサイトスクリプティングが危険なのはなぜですか?
クロスサイト スクリプティングは、WordPress の最も一般的な高リスク脆弱性の 1 つです。 XSS 攻撃は、他のセキュリティ脆弱性とは異なり、対処するのが非常に複雑であるため、非常に一般的です。保護機能が組み込まれている場合でも、クロスサイト スクリプティングを可能にする間違いは非常に簡単に発生します。 Web ページの HTML または JavaScript に 1 つの間違いがあるだけで、Web サイトがクロスサイト スクリプティング攻撃に対して脆弱になる可能性があります。
攻撃者が XSS の脆弱性を悪用する方法を見つけると、アカウントの資格情報や財務データが盗まれ、フィッシング詐欺が助長される可能性があります。また、コンピュータ ワームを拡散したり、ユーザーのコンピュータにリモートからアクセスしたりすることもあります。さらに、XSS 攻撃により、ハッカーは次のことを実行できます。
- ユーザーアカウントをハイジャックする
- マルウェアの拡散
- ユーザーのコンピュータをリモートで制御する
- イントラネット アプリケーションをスキャンして悪用する
XSS 攻撃は、SQL インジェクションよりも危険性が低いと一般に見なされています。ただし、クロスサイト スクリプティングをソーシャル エンジニアリングと組み合わせると、サイバー犯罪者は、トロイの木馬の植え付け、キーロギング、フィッシング、個人情報の盗難、クロスサイト リクエストの偽造など、高度で非常に危険な攻撃を実行できるようになります。
XSS 攻撃と戦うために、大手 IT 企業は特別なバグ報奨金プログラムを開始しています。これらのプログラムは多くの組織によって実装されており、スクリプト内の XSS 脆弱性を報告したユーザーに報酬または表彰を提供します。このようにして、企業は他の開発者にバグを特定してもらうことでサイバーセキュリティに投資しています。 Google は、XSS バグのディスパッチを練習できるゲームもリリースしました。
XSS 攻撃の種類
クロスサイト スクリプティング攻撃には、リフレクト XSS、ストア型 XSS、DOM ベース XSS の 3 つの主なタイプがあります。 XSS がどのように機能するかをよりよく理解するために、XSS の脆弱性の種類ごとに見てみましょう。
保存されたクロスサイト スクリプティング
保存型 XSS 脆弱性 (別名、永続的またはタイプ I) は、ユーザー入力がデータベース、コメント フィールド、訪問者ログ、またはその他のターゲット サーバーに保存されるときに発生します。そして、被害者は、Web アプリケーションから保存されたデータ (ブラウザーでレンダリングすることが安全にされていないデータ) を取得できます。こうすることで、ハッカーが攻撃を実行しても、ペイロードはブラウザの XSS フィルターに表示されなくなり、被害者が影響を受けるページにアクセスした場合に誤ってペイロードをトリガーする可能性があります。
反映されたクロスサイト スクリプティング
反映型 XSS 脆弱性 (別名、非永続的またはタイプ II) は、Web アプリケーションが検索結果、エラー メッセージ、またはその他の応答でユーザー入力を即座に返すときに発生します。この場合、ユーザー入力データは保存されずに反映されるため、ハッカーが悪意のある XSS スクリプトを挿入できるようになります。保存された XSS とは異なり、リフレクト XSS は Web サイト訪問者ではなく、Web サイト自体をターゲットとします。
DOMベースのXSS
TA DOM ベースの XSS 脆弱性 (別名タイプ 0) は、HTML の一部ではなく DOM (Document Object Model) で発生します。悪意のあるコードが読み取られるソースは、URL または HTML の特定の要素である可能性があります。
クロスサイトスクリプティング攻撃を防ぐには?
XSS の基礎を説明したので、XSS 攻撃を防ぐ実証済みの方法を見てみましょう。
WordPress Web サイトを XSS 攻撃から保護する方法は複数あります。高度な技術的専門知識をお持ちの場合は、コード スニペットを追加してユーザー入力を検証およびサニタイズできます。ただし、WordPress の技術的な部分に詳しくない場合は、技術チームに作業を委任するか、これらの措置を代わりに実行できる専門家を雇った方がよいでしょう。
それまでの間、クロスサイト スクリプティング攻撃を防ぐためにできることが 2 つあります。
セキュリティプラグインをインストールする
セキュリティ WordPress プラグインのインストールは、WordPress ウェブサイトの究極のセキュリティへの第一歩です。セキュリティ プラグインを選択するときは、このチェックリストを参考にして、Web サイトを安全に保つために必要な機能がプラグインに備わっていることを確認してください。
- プラグインは Web サイトを定期的にスキャンしてマルウェアを検出します。
- プラグインはファイアウォールを使用して、悪意があると思われるトラフィックをブロックします。
- プラグインは WordPress の強化対策を実装できます。
- プラグインを使用すると、WordPress のすべての更新を管理できます。
- プラグインは WordPress ウェブサイトをバックアップするため、攻撃された場合にウェブサイトを復元できます。
専用のプラグインをインストールする
クロスサイト スクリプティングを防ぐもう 1 つの方法は、XSS 対策プラグインをインストールすることです。アンチ XSS プラグインは、クロスサイト スクリプティング攻撃で一般的に使用されるパラメーターをブロックすることで機能します。たとえば、これらのプラグインは、Web サイトのコメント フォーム、ログイン フィールド、検索バーなどのユーザー入力フィールドを保護できます。
結論 – WordPress のすべての脆弱性の 39% は、クロスサイト スクリプティングの問題に関連しています。企業は、クロスサイト スクリプティング攻撃の影響に対処しようとして数百万ドルを失います。 Web サイトを標的とした XSS 攻撃を回避するには、クロスサイト スクリプティングとは何かを理解し、予防策を講じることが重要です。
Web サイトをクロスサイト スクリプティングから安全に保つには、入力フィールドを検証してサニタイズする必要があります。さらに、WordPress Web サイトの安全性を維持するのに役立つセキュリティおよび専用の XSS 対策プラグインをインストールできます。