XSSを理解する:サイバーセキュリティの脅威の説明
こんにちは :)
最近、UPS.comやGoogle Mapsなどの有名なウェブサイトに対するフィッシング攻撃が多く、XSS攻撃が注目を浴びています。正規に発行されたような領収書や送り状を利用して、顧客の機密情報を盗み出すことに成功しているようです。
聞いただけでは馴染みがないことばですよね..? 何の略称でしょう…
これは「Cross-Site Scripting(クロスサイトスクリプティング)」です。
攻撃が一つのドメイン(サイト)から他のドメインに送信されるため、「cross-site」という言葉が使われたのです。
XSS攻撃の媒介が「scripting」であるため、scriptが使われています。
埋め込まれたスクリプトは他のウェブサイトに影響を与え、ユーザーのクッキー、セッショントークン、重要な情報などを盗むのに利用されます。
1.原理
図を通して、その原理をもっと詳しく理解しましょう。
このように、XSSは攻撃者が悪性スクリプトを投稿やURLに含めて、
結果的にユーザーのPCで 悪性スクリプトが実行されることを目指します。
例を挙げてみます。
政府機関から発送されたかのようなメールの内容にある悪性URLをクリックしてしまい、悪性スクリプトがコンピューターの中にに埋め込まれ、情報を盗まれる 可能性もありますね
核心は?
最近は多くのメディアがユーザー生成コンテンツで構成されていますよね?
私たちがよく使うInstagram、Twitter、Facebookなどはすべてユーザーが生成するコンテンツ
を基に動作するウェブアプリケーションです。JavaScriptのようなクライアント側スクリプトとユーザー生成コンテンツを混合する最近のウェブアプリケーションの特性が、まさに脆弱性となりXSS攻撃が可能になります。厳格な入力有効性の検証がない場合、攻撃者のスクリプトがユーザーセッションのコンテキストで実行され、ユーザーアカウントを乗っ取ったり、ウェブサイトを破壊したりすることもあります。
*入力有効性検証とは?
ユーザーが入力した値が安全で、予想される形式に合っているかを確認するセキュリティ対策
2. 種類
(1) ウエブサーバーに保存されたXSS
悪性スクリプトがデータベースのような対象サーバーに永続的に保存され、適切なセキュリティ対策なしにユーザーに再び反映される場合を指します。
(2) 反射型XSS
悪性スクリプトが安全でないリンクやメールを通じてウェブアプリケーションからユーザーのブラウザに反射されるときに発生します。
(3) DOMベースのXSS
悪性スクリプトがサーバーに送信されず、クライアントのスクリプト自体が操作される場合です。
3.メールによるXSS攻撃
UPS公式ウェブサイトに偽装して偽の 送り状 をダウンロードすることで、 悪性 スクリプトをユーザーのコンピューターに埋め込もうとする試みです。当のメールは、配送の例外があったと主張し、受取人が直接小包を受け取らないといけないと伝えた、しかし正当なリンクも含まれており、ユーザーをさらに混乱させました。
追跡番号にはXSSの脆弱性を利用したエクスプロイトが含まれており、ページが開かれるとブラウザに 悪性JavaScriptを埋め込みました。 その結果、メール受信者は正当なUPSサイトを通じて 悪性送り状をダウンロードし、その過程で個人情報が盗まれました。
4.防御戦略
では、XSS攻撃を防御するためにはどのような戦略が必要でしょうか?
(1) ユーザー入力がレンダリングされるすべての位置でエンコードとエスケープ処理を行います。
言葉がちょっと難しいですね、簡単に説明します。
*ユーザー入力がレンダリングされるすべての位置。
Webページでユーザーから受け取ったデータが画面に表示されるすべてのポイント。例えば、ユーザーがフォームに入力したテキスト、URLパラメータで送されたデータなどが該当します。
エンコーディング(Encoding): データを安全な形に変換するプロセス。例えば、HTMLエンコーディングは特殊文字をHTMLエンティティに変換し、Webブラウザがこれをスクリプトとして解釈しないようにします。 例えば、<は<に変換されます。
*エスケープ処理(Escaping)
コードの一部として解釈されるのを防ぎ、特別な意味を持つ文字を一般文字として処理するために、その前にエスケープ文字(例えば、バックスラッシュ \)を追加。
(2) スクリプトの実行を制限するコンテンツセキュリティポリシー(CSP)を実行。
(3) 定期的なセキュリティチェックを 遂行。
デジタル時代において、データは実物と同じくらいの価値がある資産です。
多くの情報が最近ウェブサーバー、コンピュータを介してやり取りされているため、XSS攻撃について理解することは
個人、ビジネス、さらには国のサイバーセキュリティに貢献できる第一歩です。
5.参考資料
< フィッシングキャンペーンはUPS.comのXSSの脆弱性を利用してマルウェアを配布します。
< GoogleマップのXSSの脆弱性を見つけて1万ドルを稼いだ研究者 >
https://gridinsoft.com/blogs/researcher-earned-10000-by-finding-xss-vulnerability-in-google-maps/