WordPress とクロスサイト スクリプティング (XSS)
公開: 2022-11-02クロスサイト スクリプティング攻撃は、インターネット全体で見られる、より一般的なタイプの Web サイト攻撃の 1 つです。 ウェブサイト、訪問者、およびビジネスのセキュリティを保護するには、それらが何であるか、およびそれらから保護する方法を理解することが不可欠です. 詳細については、以下をお読みください。
クロスサイト スクリプティング攻撃とは
クロスサイト スクリプティング攻撃 (より一般的には XSS 攻撃と呼ばれます) は、悪意のあるコード (通常は JavaScript) がエンド ユーザーに危害を加える目的で Web ページに挿入されると発生します。
このコードは通常、URI (Uniform Resource Identifier) の末尾にパラメーターとして挿入されるか、ユーザー入力フォームなどの Web ページで Web アプリケーションを使用して挿入されます。 悪意のあるコードは通常、アクセス制御を無効にして Web サイトの機能を操作するように設計されています。
クロスサイト スクリプティングの脆弱性
これまで見てきたように、XSS 攻撃は、脆弱な Web サイトにアクセスして有害な活動を行うために、悪意のあるコードを使用する Web ベースの攻撃です。 この文のキーワードは「脆弱」です。 これは (残念ながら!) 多くのことを意味します。 ユーザー名とパスワードとして「admin」と「123456」を使用する WordPress Web サイトは、他のすべてのセキュリティ対策が講じられていても脆弱です。 古いプラグインを実行している WordPress Web サイトは、脆弱であると見なされる可能性があります。 または、フォーム内にユーザー入力を含み、送信された値を検証またはエンコードしない Web アプリケーションでさえ、脆弱であると見なされます。
XSS 攻撃を展開するハッカーは、悪用できる脆弱性を常に探しています。 より一般的に発見されるため、より多くの Web サイトを攻撃対象にできる脆弱性が好まれるのは当然ですが、ハッカーは、ハッカーとして価値が高いと考える Web サイトを攻撃するために、より目立たない脆弱性を探し出します。
非常に多くの潜在的な脆弱性とあらゆる種類の攻撃があるという事実により、潜在的な弱点を特定し、攻撃を軽減することは困難な作業になります。
対象のウェブサイト
Web ベースの電子メール サーバーまたはクライアント、CRM / ERP システム、一般に公開されているプロファイル ページ (ソーシャル メディア サイトやメンバーシップ グループでよく見られるものなど) は、XSS 攻撃の格好の標的となる Web サイトやアプリケーションのほんの一部です。 .
他の一般的に脆弱なサイトは、フォーラムやコメント フィールドなど、他のユーザーが閲覧できる HTML 形式のテキストをユーザーが投稿できるサイトです。
クロスサイト スクリプティングの種類
クロスサイト スクリプティング (XSS) として知られる攻撃は、挿入されたコードがサーバー上で実行されるか、攻撃を試みている人のブラウザでのみ実行されるかによって、主に 3 つのタイプに分けることができます。 これらは次のとおりです。
- 永続的 (または保存された) XSS。攻撃者が挿入したコードがサーバーに永続的に保存されます。
- エンドユーザーがだまされて使用される細工された URL を介して攻撃が行われる、非永続的 (または反射的) XSS。
- DOM ベースの XSS (またはクライアント側 XSS) は、他のすべてのタイプと同様に、訪問者のブラウザー内でも実行されますが、サイトの DOM を変更するという違いがあります。
クロスサイト スクリプティング XSS の影響
XSS 攻撃が与える可能性のある影響は、さまざまな要因によって異なります。 最大のものの 1 つは、保存され、攻撃の対象となるデータの機密性です。 料理に関するフォーラムへのコメントは、政府の Web サイトで保持されている秘密よりも明らかに機密性が低くなります。
通常、XSS 攻撃のターゲットは、Web サイトまたはアプリケーションを使用する個人です。 攻撃の種類と挿入されたスクリプトによっては、攻撃者は被害者のセッション Cookie とアクセス資格情報などの個人データを盗む可能性があります。 攻撃は、クレジット カード データなどの機密情報を持ち出そうとすることもあります (これが存在すると仮定します)。
XSS 攻撃で特に恐ろしいのは、それらが効果的に隠蔽されていることです。そのため、標的にされたユーザーは、何か問題があることに気付いていないにもかかわらず、悪意のある損害を引き起こしている可能性がある個人として表示される可能性があります。
明らかに、これがビジネスに大きな影響を与える可能性があります。 Web サイトに損害を与え、機密情報を漏らす可能性のあるハッキングは、悪いニュースです。 攻撃の深刻度と顧客への影響によって、被害の程度は異なります。
WordPress サイトを XSS 攻撃から保護する
WordPress Web サイトは、かなりの割合で XSS 攻撃を受けます。 これは、WordPress を利用しているサイトの数が非常に多いためです (現在、全世界で 43.1%)。 これは、多くの WordPress プラグインが持つ多くの XSS 脆弱性の結果でもあります。 これは、統計的に言えば、WordPress Web サイトで使用されるプラグインが多いほど、XSS 攻撃を受ける可能性が高くなることを意味します。
このため、通常、WordPress Web サイトの XSS 脆弱性を最小限に抑えるために必要なのは、攻撃者の URL に含まれる可能性のある変数を検証してサニタイズすることだけです。 ここでは、一般的なヒントと、サイトを保護するためにサイトに適用できるその他のより専門的なソリューションをいくつか紹介します。
最新に保つ!
コア ファイル、プラグイン、およびテーマを最新バージョンに更新しておくことは、Web サイトのセキュリティにとって非常に重要です。 そうすることで、Web サイトに対するあらゆる形態の攻撃、特に XSS 攻撃のリスクを軽減できます。
WordPress Web サイトを保護するために実行できる一般的な手順の詳細については、記事「WordPress Web サイトを保護する方法」を確認してください。
「Prevent XSS Vulnerability」プラグインをデプロイする
おそらく驚くことではありませんが (これは WordPress であるため)、XSS 攻撃のリスクを軽減するのに役立つプラグインが開発されています。 それは「Prevent XSS Vulnerability」と呼ばれます
プラグインをインストールして有効にしたら、表示される「Reflected Cross-site scripting (XSS)」メニュー項目の下にある設定ページに移動します。
Prevent XSS プラグインは、デフォルトで、URL からブロックされるエンティティの範囲を構成します。 これにより、攻撃を途中で止めることができます。 デフォルト設定に加えて、URL からブロックしたいエンティティをさらに指定できます。
プラグインが URL でエンコードするエンティティについても同じことが言えます。 コンマで区切ることにより、提供されたテキスト領域でエンコードしたくないエンティティを除外できます。
また、$_GET パラメータで HTML をエスケープすることにより、脆弱性を保護します。 したがって、だれかが URL に HTML を挿入しようとしても機能しません。
プラグインをインストールして設定の調整を終えたら、ウェブサイトが正常に機能していることを確認するために、少なくともいくつかのページをランダムにチェックすることが非常に重要です。 WooCommerce を使用している場合、これは特に重要です。 この場合、チェックアウト プロセス全体 (支払いを含む) を実行して、これが機能することを確認してください。
出力データの保護
訪問者から入力を受け取ったときに入力を検証することを除いて、データを出力するすべての HTTP 応答もエンコードする必要があります。 実際には、これはすべての文字を HTML エンティティ名に変換する必要があることを意味します。
あなたが WordPress 開発者であれば、読む価値のある出力データのエスケープに関する優れたハンドブックがあります。
Pressidium による XSS 攻撃保護
Pressidium でホストすると、XSS 攻撃を含む複数の方法で Web サイトを保護するマネージド Web アプリケーション ファイアウォール レイヤーの保護を自動的に享受できます。 これにより、ウェブサイトを気にすることなく、ビジネスに集中することができます。 Pressidium プラットフォームの機能の詳細については、こちらをご覧ください。