Contents
注意すべきWEBの脆弱性とその攻撃
2016年ももうあとわずかですが、今年上半期に最も多かった攻撃の種類は
- 第1位 : クロスサイトスクリプティング
- 第2位 : SQLインジェクション
- 第3位 : ローカルファイル挿入
- 同率3位 : リモートファイル挿入
- 同率3位 : ディレクトリトラバーサル
となっていました。(WEB脆弱性トレンドレポートによる)
今回、特に多かった1位のクロスサイトスクリプティングの仕組みについてお話したいと思います。
クロスサイトスクリプティング(XSS)攻撃
クロスサイトスクリプティングとは、プログラムやソフトウェアの脆弱性(不具合やミスなどによる弱さ。セキュリティホールとも言う。)をついて、誰かのサイトに悪意のあるプログラムを埋め込むことです。
ところでよく聞く「悪意のあるプログラム」というのはどういったものでしょうか?
具体的な例として、
- 勝手に他人のパソコンに保存してあるファイルを削除してしまう・書き換えてしまう
- 勝手に他人のクレジットカード情報を盗んでしまう
- 勝手に他人の個人情報(誕生日、住所、メールアドレスなど)を盗んでしまう
- 勝手に他人のパソコンを壊してしまう(使えなくしてしまう)
などなど、目的によって動作する内容は異なります。
これらは2000年に施行された、「不正アクセス禁止法」および関連法律によって犯罪となっていて、違反した場合は3年以下の懲役又は100万円以下の罰金に処せられます。
ただし、過失と未遂は対象外です。
スクリプティングとは
一般的にスクリプトとは「JavaScript」を指すことが多くあります。
ではJavaScriptで、どこかの掲示板にメッセージをポップアップ表示する方法はこんな感じです。
普段、JavaScriptの講義をさせていただいているのですが、そこでは第1回目に習う非常に簡単な記述です。
これを、掲示板や、お問い合わせフォーム、注文フォームなどに埋め込むことで、クロスサイトスクリプティングが可能となります。
フォーム関連というのは、ユーザが直接文字を入力できる唯一のエリアなので、この便利さを逆手に取った手法です。
クロスサイトスクリプティングの怖いところ
クロスサイトスクリプティングは、上述のように、誰かのサイトや誰かのパソコンに悪意のあるプログラムを埋め込むことでした。
もう少し具体的な話をしましょう。
ハッカーも興味半分、つまり愉快犯が大多数なのですが、特に怖いのは本気で情報を盗みに来るケースで、
- 乗っ取り
- 個人情報搾取
この2点はクロスサイトスクリプティングの脅威です。
乗っ取り(セッションハイジャック)
セッション=一連の操作(ログインからログアウトまで、など)
ハイジャック=乗っ取り
例えば、Gmailにログインして、メールを見るという行為が、誰かにハイジャックされてしまうことも大いにありうることです。
乗っ取り(セッションハイジャック)の仕組み
乗っ取りにはCookie(クッキー)という便利なコンピュータの仕組みを利用します。
例えばある日、GmailにID名とパスワードでログインし、そのままログアウトせず別の日に同じパソコン、同じIPアドレスからGmailにアクセスしたとします。
そうすると、Gmailは、「あ!同じ人だ!」と自動的に判別してくれ、再びID名やパスワードを入力する必要なく利用できます。
これをCookieという情報保管箱のようなものに、さまざまな情報を「一時的に」保存しておける、と考えてください。
Cookieには有効期限があり、一定期間使用していなかったりすると、再度ログインを求められます。
そこでハッカーはこのCookieを盗むわけです。
Cookieさえ盗むことができれば、その人のID名やパスワードを知らずとも、サービスやアプリケーションにログインできてしまいます。
これによって不正になりすまして、クレジットカードを勝手に使われてしまったり、電話帳をコピーされてしまったり、社内の極秘ファイルが漏えいしてしまう可能性もあります。
個人情報搾取
上述のセッションハイジャックのように、Cookieを使って、なりすましで個人情報を抜き取ることは可能です。
しかしわざわざ、盗みに行くというハイリスクな行為をせずとも、個人情報を抜き取ることは簡単にできてしまいます。
個人情報搾取の仕組み
では、Cookieを使わずにどうやって情報を抜き取るのでしょうか。
答えは罠を仕掛けておくことです。
罠というと語弊がありそうですが、例えば偽のサイトの偽の注文フォームや、会員登録フォームがあったとして、そこに名前や住所、電話番号、ひいてはクレジットカード情報などを入力するパターンが考えられます。
これらは実際に、大手銀行や証券会社、ECサイトなど幅広い分野での偽サイトが作成され、個人情報を入力したり、ログインさせるようになっています。
入力した情報は常にデータベースに保存できる仕組みになっているので、「OK」ボタンや「次へ」ボタンを押してないから大丈夫、ということはありません。
何か入力しただけで情報が盗られることも考えられ、また、アクセスからどこの誰が来たということも簡単に分かってしまいます。
個人情報盗んでどうするの?
直接何かの被害に遭わなくとも、個人情報は闇取引で売買されています。
一度ハッカーのデータベースに載ってしまったら、あの人は簡単に盗める、簡単に情報を置いていってくれると認識され、さらに被害に遭うおそれもあります。
脅威に対してどうすればいい?
まず普段から、何か変わったことがないかチェックする習慣をつけましょう。
個人のパソコンの場合、セキュリティに高価なお金を使えるわけでもありませんので、王道ですが定期的にパスワードを変えたり、公衆Wi-Fiではネット上でパスワードなどを入力しないことです。
会社、法人の場合は、サイトにしっかりとSSLをつけて暗号化通信しましょう。
データベースなどはそれぞれ暗号化してデータを保存することもできます。
これらはWEB制作開発会社などに相談できますよ。
また今回紹介したクロスサイトスクリプティング以外にも多くの脅威と隣合わせにいることを忘れずに、快適にインターネットを利用しましょう。