響きがかっこいい単語、今回のテーマはクロスサイトスクリプティング!
英語の「Cross-Site Scripting」をそのまま読んだ言葉で、略して「XSS」とも呼ばれます。Webサイトにとってかなり危険な脆弱性の一つであるクロスサイトスクリプティング。
IT業界以外の人には馴染みがない言葉かもしれませんが、私たちが普段使っているWebサイトやアプリの安全性に直結する重要な概念です。
「クロスサイトスクリプティング」のことば診断
当サイトでは、響きがかっこよく、知的好奇心をくすぐる珠玉の単語を厳選して、中学生から大人までわかりやすく紹介しています。
今回のテーマ「クロスサイトスクリプティング」について、「身近さ」「レア度」「難解度」をそれぞれ診断してみました!
身近さ:4.0(どれくらい身近な世界の話か)
インターネットを使う全ての人に関係するセキュリティリスクです。
直接こちらから関わるのはWeb開発のエンジニアでもない限り有りませんが、自分がクロスサイトスクリプティングの被害に会う可能性は常にあります。
レア度:4.0(日常生活での遭遇頻度)
セキュリティの専門家やエンジニアにとってはそれなりに遭遇する言葉ですが、一般人にとっては縁遠い言葉です。
難解度:5.0(言葉の意味理解の難易度)
意味をざっくり理解することはできますが、実際にどのような脆弱性で、どう悪用されるのかまで理解しようとすると技術的な知識が求められます。
Webエンジニアでもセキュリティ関連の知識が多い人でないと理屈を完全に理解するのは難しいです。
クロスサイトスクリプティングって何?
クロスサイトスクリプティングとは、Webサイトの脆弱性(ぜいじゃくせい)を悪用して、悪意のあるスクリプト(プログラム)を他の善良な一般ユーザーのWebブラウザで実行させる攻撃手法のことです。
脆弱性とは、Webサイトやアプリケーション上に存在する(してしまう)システムの弱点のようなもので、サイバー攻撃の糸口として使われてしまう部分のことです。
読み方は「クロスサイトスクリプティング」で、英語表記は「Cross-Site Scripting」。頭文字を取って「XSS」と略されることが一般的です。なぜ「CSS」ではなく「XSS」なのかというと、「CSS」はIT業界で全く別の意味を持つCSS(Cascading Style Sheets)という言葉と区別するためなんです。
どんなときに使われる言葉なのか
この言葉が登場するのは、主にWebサイトの開発現場やセキュリティ関連の場面です。
「このサイト、XSS脆弱性があるかもしれない」「クロスサイトスクリプティング対策はちゃんとできてる?」といった具合に、Webエンジニアやセキュリティ担当者の間で使われます。
また、Web開発の現場では「セキュリティ診断」と言って、システムを公開する前にそのシステムがセキュリティ上問題が無いかをチェックする工程があったりします。
その時の報告書や、情報セキュリティの研修資料などでも頻繁に目にする用語です。一般の人が耳にするとすれば、企業のセキュリティ事故のニュースで「XSS攻撃により個人情報が漏洩」といった形で報道されるときくらいでしょうか。
クロスサイトスクリプティングの仕組み
クロスサイトスクリプティングの仕組みはWeb開発者でもない限り理解は難しいのですが、軽く紹介しましょう。
クロスサイトスクリプティングは、一般のユーザーが入力した内容がWebサイトにそのまま表示されるような仕組みを持つサイトに仕掛けられてしまう可能性があります。
インターネット上の掲示板やSNSの投稿画面なんかが代表例ですね。
普通は掲示板やSNSの投稿内容入力欄は日本語で入力すると思いますが、ここにJavaScriptというプログラミング言語で書いたスクリプトを埋め込むことで、不特定多数の一般ユーザーのPC上で勝手に動作してしまう悪意のある機能を埋め込むことが出来てしまうんです。
悪意のある攻撃者はこの仕組みを使って、他の利用者のログインパスワードを盗み取ったり、善良な一般ユーザーに偽のログイン画面を表示させてパスワードを騙し取ったりします。
被害を受ける利用者は、普通にWebサイトを閲覧しているだけなのに、知らないうちに攻撃を受けてしまう可能性があるんです。
実際に発生する被害とは
クロスサイトスクリプティング攻撃が成功してしまうと、どんな被害が発生するのでしょうか。
Webサイト運営者側の被害としては、まずサイトの改ざんがあります。攻撃者によって勝手にページの内容が書き換えられたり、偽の警告画面が表示され続けたりして、サイトが正常に機能しなくなってしまいます。また、利用者の個人情報が漏洩した場合は、損害賠償や信用失墜といった深刻な結果を招くことも。
私たち利用者側の被害も深刻です。ログイン情報(IDやパスワード)が盗まれれば、不正ログインでアカウントを乗っ取られる可能性があります。クレジットカード情報が流出すれば、知らないうちに不正利用される危険性もあります。また、偽のサイトに誘導されてマルウェアに感染したり、フィッシング詐欺の被害に遭ったりするケースもあります。
特に怖いのは、普段利用している信頼できるサイトを経由して攻撃が行われることです。利用者は「いつものサイトだから安全」と思って利用しているのに、知らないうちに被害を受けてしまうという点が、クロスサイトスクリプティングの特徴的な脅威なんです。
対策方法
Webサイト側の対策としては、利用者からの入力データを表示する際に「エスケープ処理」という処理を行います。これは、入力されたデータの中にある特殊な文字(<、>、&など)を、ブラウザがコードとして解釈しない形に変換する処理です。
また、Content Security Policy(CSP)という仕組みを使って、実行できるスクリプトを制限する方法もあります。
利用者側でできる対策は限られていますが、怪しいリンクをクリックしない、信頼できないサイトには個人情報を入力しない、といった基本的なセキュリティ意識を持つことが大切です。
まとめ
響きはかっこいいけれど、実際は危険な攻撃手法の名前だったクロスサイトスクリプティング。
Webサイトを利用する私たちにとっては直接関係ないように思えますが、実は身近なセキュリティリスクの一つなんです。この名前を覚えておけば、セキュリティ関連のニュースを見たときに「あ、あの攻撃手法のことか」と理解できるようになりますね!
普段意識することは少ないかもしれませんが、安全なインターネット利用のために、こうした脅威があることを知っておくのは大切なことです。



コメント