mailinspector’s blog

安全なメールへのご案内

XSSを理解する:サイバーセキュリティの脅威の説明

 

こんにちは :)

最近、UPS.comやGoogle Mapsなどの有名なウェブサイトに対するフィッシング攻撃が多く、XSS攻撃が注目を浴びています。正規に発行されたよう領収書や送り状を利用して、顧客の機密情報を盗み出すことに成功しているようです

聞いただけでは馴染みがないことばですよね..? 何の略称でしょう

これは「Cross-Site Scripting(クロスサイトスクリプティング)」です。

攻撃が一つのドメイン(サイト)から他のドメインに送信されるため、「cross-site」という言葉が使われたのです。

 

XSS攻撃の媒介が「scripting」であるため、scriptが使われています。

 

埋め込まれたスクリプトは他のウェブサイトに影響を与え、ユーザーのクッキー、セッショントークン、重要な情報などを盗むに利用されます

 

 

 

 

1.原理

図を通して、その原理をもっと詳しく理解しましょう。

 

このように、XSSは攻撃者が悪性スクリプトを投稿やURLに含めて、

結果的にユーザーのPCで 悪性スクリプトが実行されることを目指します。

 

例を挙げてみます。

政府機関から発送されたかのようなメールの内容にある悪性URLをクリックしてしまい、悪性スクリプトがコンピューターの中に埋め込まれ、情報を盗まれる 可能性もあります

 

核心は?

最近は多くのメディアがユーザー生成コンテンツで構成されていますよね?

私たちがよく使うInstagramTwitterFacebookなどはすべてユーザーが生成するコンテンツ

を基に動作するウェブアプリケーションです。JavaScriptようなクライアント側スクリプトとユーザー生成コンテンツを混合する最近ウェブアプリケーションの特性が、まさに脆弱性となりXSS攻撃が可能になります厳格な入力有効性の検証がない場合、攻撃者のスクリプトがユーザーセッションのコンテキストで実行され、ユーザーアカウントを乗っ取ったり、ウェブサイトを破壊したりすることもあります。

 

 

*​入力有効性検証とは?

ユーザーが入力した値が安全で、予想される形式に合っているかを確認するセキュリティ対策

 

 

2. 種類

 

 

(1) ウエブサーバーに保存されたXSS

悪性スクリプトがデータベースのような対象サーバーに永続的に保存され、適切なセキュリティ対策なしにユーザーに再反映される場合を指します。

 

 

(2) 反射型XSS

悪性スクリプト安全でないリンクやメールを通じてウェブアプリケーションからユーザーのブラウザに反射されるときに発生します。

 

(3) DOMベースのXSS

悪性スクリプトサーバーに送信されず、クライアントのスクリプト自体が操作される場合です。

 

 

3.メールによるXSS攻撃

 

https://www.bleepingcomputer.com/news/security/phishing-campaign-uses-upscom-xss-vuln-to-distribute-malware/#google_vignette

 

UPS公式ウェブサイトに偽装して偽の 送り状 をダウンロードすることで、 悪性 スクリプトをユーザーのコンピューターに埋め込もうとする試みです。のメールは、配送の例外があったと主張し、受取人が直接小包を受け取らないといけないと伝えしかし正当なリンクも含まれており、ユーザーをさらに混乱させました。

 

追跡番号にはXSS脆弱性を利用したエクスプロイトが含まれており、ページが開かれるとブラウザに 悪性JavaScript埋め込みました。 その結果、メール受信者は正当なUPSサイトを通じて 悪性送り状をダウンロードし、その過程で個人情報が盗まれました。

 

 

4.防御戦略

では、XSS攻撃を防御するためにはどのような戦略が必要でしょうか?

 



(1) ユーザー入力がレンダリングされるすべての位置エンコードエスケープ処理を行います。

 

言葉がちょっと難しいですね、簡単に説明します。

 

*ユーザー入力がレンダリングされるすべての位置

Webページでユーザーから受け取ったデータが画面に表示されるすべてのポイント。例えば、ユーザーがフォームに入力したテキスト、URLパラメータでされたデータなどが該当します。

 

*エンコーディングエスケープ処理

エンコーディング(Encoding): データを安全な形に変換するプロセス。例えば、HTMLエンコーディング特殊文字をHTMLエンティティに変換し、Webブラウザがこれをスクリプトとして解釈しないようにします。 例えば、<は<に変換されます。

 

*エスケープ処理(Escaping)

コードの一部として解釈されるのを防ぎ、特別な意味を持つ文字を一般文字として処理するために、その前にエスケープ文字(例えば、バックスラッシュ \)を追加。

 

 

(2) スクリプトの実行を制限するコンテンツセキュリティポリシー(CSP)を実行。

 

(3) 定期的なセキュリティチェックを 遂行

 

デジタル時代において、データは実物と同じくらい価値ある資産です。

多くの情報が最近ウェブサーバー、コンピュータを介してやり取りされているため、XSS攻撃について理解することは

個人、ビジネス、さらには国のサイバーセキュリティに貢献できる第一歩です。

 

 

5.参考資料

< フィッシングキャンペーンはUPS.comのXSS脆弱性を利用してマルウェアを配布します。

https://www.bleepingcomputer.com/news/security/phishing-campaign-uses-upscom-xss-vuln-to-distribute-malware/#google_vignette

 

< GoogleマップXSS脆弱性を見つけて1万ドルを稼いだ研究者 >​

https://gridinsoft.com/blogs/researcher-earned-10000-by-finding-xss-vulnerability-in-google-maps/