POQA magazinePOQAがお届けするITお役立ち情報

2024年5月、大手ハウジングメーカーが保有する会員制サイトのあるページが、SQLインジェクション攻撃を受けました。
結果、以下の情報が漏洩しています。
顧客
・メールアドレス
・ログインID
・パスワード
個人情報が漏洩した人数:108,331 人
漏えいの可能性を否定できない人数:464,053 人
現在過去の従業員+協力会社スタッフ
・メールアドレス
・パスワード
個人情報が漏洩した人数::183,590 人
漏えいの可能性を否定できない人数:72,194 人
今回の記事では、今回の攻撃手法SQLインジェクションの仕組みと、対抗方法についてご説明いたします。
SQLインジェクション攻撃のしくみ
SQLインジェクション攻撃は、Webサイト・Webアプリケーション上の「入力フォーム」を入り口にした攻撃です。
一般的に、Webサイトは、「情報を表示するWebサイト」と「Webサイト上に表示する・入力された情報を管理するデータベース」で構成されています。
例えば、Webサイト上に「ユーザーアカウント」を入力するフォームがあるとします。
入力フォームに自分のユーザー名を入力すると、データベースから関連する情報を引っ張ってきて、Webサイト上に表示する、という仕組みです。

悪意のある攻撃者は、この入力フォームに「不正なSQL文」を入力します。
SQL文とは、データベースを操作するための言語です。
例えば、「全部の会員データを表示しろ」という内容のSQL文を入力した場合、SQLインジェクション攻撃の対策をしていないデータベースは、その通りに行動してしまい、情報漏洩につながります。

大概のWebアプリケーションには検索フォームなどが存在しますので、攻撃の入り口自体はなくすことができません。
SQLインジェクション攻撃の被害
事例では情報漏洩が発生していますが、SQLインジェクション攻撃で受ける被害はそれだけではありません。
・情報漏洩
SQLインジェクション攻撃を防げない場合、データべースに保存されているありとあらゆるデータが漏洩してしまう可能性があります。
顧客のクレジットカード情報が漏えいした場合は、直接金銭的被害につながります。
Webアプリケーションにログインするためのアカウントとパスワードが盗まれた場合は、そのアカウントとパスワードを用いて別のサイトのログインを試みる「パスワードリスト攻撃」につながる可能性があります。また、それらの攻撃に利用するために、名簿としてダークウェブで販売されてしまうことも、可能性として考えなければいけません。
・データベースの改ざん・破壊
データは盗み出されるだけでなく、書き換えをされてしまうこともあります。
別途バックアップを取っていない限り、復旧の難易度は高いでしょう。
・Webサイトの改ざん・破壊
Webサイト上の情報の多くは、データベースから引用、表示されています。
そのため、データベース上のデータを書き換えられてしまった場合、閲覧者に表示されるデータも変化してしまいます。
例えば、Webサイト上に表示する正規のURLを、攻撃者が用意した不正なURLに書換え、偽サイトに誘導する…などのことも可能です。
対策
1.脆弱性対策をしたWebアプリケーションを利用する
SQLインジェクション攻撃は、「入力フォームに不正な情報を入力されたときに、防ぐことができるかどうか」が肝です。
具体的には、
プレースホルダ … 「入力された文字列は“ただの文字列”として受入れ、SQL文(命令文)としては認識しない」
というという手法と、
エスケープ処理(サニタイジング) … 「入力された文字列に、命令文に使われる特殊記号が入っていた場合は無効とする」
という手法があります。
これらの手法が導入されているWebアプリケーションを利用しましょう。
2.Webアプリケーションは常に最新の状態に
上記でご紹介した機能を備えたアプリケーションを利用していても、最新の状態にしていない場合、脆弱性を突かれる可能性があります。
提供元の連絡をこまめにチェックして、最新の状態を保ちましょう。
3. 不要なWebサイト、Webアプリケーションは適切に削除、隔離する。
冒頭で触れた事件に関していえば、不用なHPが、外部からアクセスできる状態になっていたのは問題です。
同社の説明では、「現行Webアプリケーション上にはリンクはなく、直接URLを入力しない限り表示不可だった」とのことですが、何かしらの方法で、そのURLが流出していたと想像できます。
ダークウェブ上では、SQLインジェクション攻撃をはじめ、「対策がなされていないWebサイトの一覧」などが有料でやり取りされている、という情報もあります。
さいごに
SQLインジェクション攻撃という手法は、実は1990年代後半にはすでに存在していました。
古い手法なので完全に封じられているかというとそうでもなく、冒頭でご説明した一件以外にも、2024年度に入ってから複数SQLインジェクション攻撃の報告はあります。
IPA(独立行政法人情報処理推進機構)が四半期ごとに発表している「ソフトウェア等の脆弱性関連情報に関する届け出情報[2024年第1四半期(1~3月)]でも、SQLインジェクション攻撃への脆弱性は、11%で全体の2位になっています。

ご自身の組織が運営しているWebアプリケーションが正しく防御されているか、今一度ご確認ください。
関連:個人情報を漏洩してしまった場合について