■ 今日の用語解説
本日は、Webセキュリティの超重要キーワード「クロスサイトスクリプティング (XSS)」について解説します。
▼ クロスサイトスクリプティング (XSS) とは?
Webサイトの脆弱性を突いて、悪意のあるプログラム(スクリプト)をユーザーのブラウザ上で実行させる攻撃手法のことです。
本来、Webサイトはユーザーに便利な機能を提供するためにプログラムを動かしますが、開発側の安全確認が不十分だと、悪い人が作ったプログラムを勝手に動かされてしまう穴(脆弱性)が生まれます。
▼ なぜXSSは危険なのか?(想定される被害)
(1) アカウントの乗っ取り
ユーザーがログインしている証明となる「クッキー(Cookie)」を盗み出し、パスワードを知らなくても本人になりすましてアクセスされてしまいます。
(2) 個人情報の漏えい
画面上に本物そっくりの偽の入力画面を表示させ、クレジットカード番号や個人情報を盗み取ります。
(3) 偽サイトへの誘導
アクセスしただけで、ウイルスが仕込まれた別の危険なサイトへ強制的に飛ばされてしまいます。
(4) 意図しない操作の実行
SNSで勝手にスパム投稿をされたり、掲示板に不正な書き込みをされたりします。
▼ XSSの3つの種類
(1) 反射型XSS
罠が仕掛けられたURLをクリックさせることで、その一回だけ不正なプログラムを実行させる手口です。メールやメッセージアプリなどで送られてくる怪しいリンクに注意が必要です。
(2) 蓄積型XSS
誰でも書き込める掲示板などに、あらかじめ罠のプログラムを書き込んで保存(蓄積)させておく手口です。その掲示板を見たすべての人に被害が及ぶため、非常に危険です。
(3) DOM Based XSS
サーバーを通さず、ユーザーのブラウザ上で動くプログラムの隙を突く少し複雑な手口です。
▼ 開発者が行うべき対策
(1) エスケープ処理(無害化)
ユーザーが入力した文字を表示するときに、プログラムとして動いてしまう特殊な記号(<や>など)を、ただの文字に変換して無力化します。
(2) HttpOnly属性の活用
万が一攻撃されてもクッキーを盗まれないように、プログラムからの読み取りを禁止する設定を行います。
(3) WAFの導入
Webサイトへの攻撃を入り口で監視してブロックするシステムを導入し、多層防御を行います。
▼ ユーザーができる対策
(1) 不審なメールやメッセージのリンクを安易にクリックしない
(2) ブラウザやOSのアップデートを常に行い、最新の状態を保つ
XSSは古くからある脆弱性ですが、いまだに多くのWebサイトで見つかる深刻な問題です。ITエンジニアを目指す方は、必ず仕組みと対策を理解しておきましょう!
#セキュリティ #用語解説 #学習 #エンジニア #クロスサイトスクリプティング #XSS #プログラミング初心者