SQLインジェクションとは?入力フォームからDBを盗む攻撃

犯行スキーム
SQLインジェクションとは?ざっくりと3行で
  • SQLインジェクションとは、Webサイトの入力フォームに不正なSQL命令を埋め込み、データベースを不正操作して個人情報を丸ごと盗み出す攻撃のことだ。
  • ECサイトや会員サービスに蓄積されたクレジットカード番号・パスワードが、入力フォームへの一行の命令で一括漏洩し不正利用や二次被害が連鎖してしまう
  • 仕組みを知っておけば、サービス選びの際にセキュリティ対策の有無を確認する視点が持てて、自分の情報が不用意に漏洩するリスクを下げられる。

【深掘り】これだけは知っておけ

SQLインジェクションのこわさは、入力フォームという誰でも触れる場所が攻撃の入口になる点です。攻撃者はURLや検索窓に数文字の命令を打ち込むだけで、データベース全体にアクセスできてしまうことがあります。

SQLインジェクションはWebアプリケーションの入力値検証の不備を突く攻撃で、Webサイトの検索フォームやログイン欄などにSQL文(データベースへの命令語)を直接入力することで、本来アクセスできないはずのデータベースを操作します。対策が不十分なECサイトに会員のクレジットカード番号・パスワード・住所が数万件単位で保存されている場合、一度の攻撃でそれらが全て流出することがあります。IPAの脆弱性届出統計では、Webサイトの不正アクセスによる情報漏洩の多くがSQLインジェクションによるものとされており、2024年5月には国内大手住宅メーカーの会員サイトで約2万件超のメールアドレスが流出する事例が発生しています。

被害は個人情報漏洩にとどまりません。管理者アカウントを奪われてWebサイト自体が改ざんされる、サイト閲覧者にマルウェアを感染させる踏み台にされる、データが削除される、といった二次・三次被害も発生します。攻撃された組織はサイト閉鎖・謝罪・補償の対応が必要になり、信用失墜と復旧コストが重大なダメージになります。

サービス利用者としての対策は、利用するサービスがWAF(Webアプリケーションファイアウォール)を導入しているか、HTTPS通信を使っているかを確認することです。また、サービスごとに異なるパスワードを使うことで、一つのサービスで情報が漏洩しても他サービスへの被害を防げます。

個人情報の漏洩が疑われる通知をサービス運営者から受け取ったら、すぐにそのサービスのパスワードを変更し、同じパスワードを使っている他のサービスのパスワードも全て変更してください。クレジットカード情報が漏洩した可能性があればカード会社に連絡して利用停止を依頼してください。事業者側の根本対策はプリペアドステートメントの使用とWAFの導入ですが、ユーザーとしては複数サービスでのパスワード使い回しを避けることが最も効果的な自衛策です。

SQLインジェクションの主な被害パターン

被害の種類内容影響
個人情報の一括漏洩データベース内の全会員情報を取得クレジットカード不正利用・なりすまし
管理者権限の奪取管理者アカウントを乗っ取るWebサイト改ざん・マルウェア配布
データの削除・改ざんデータベースの内容を破壊・書き換え業務停止・取引記録の消失

典型的なフレーズ・文脈

SQLインジェクションで入力フォームに命令を打ち込む攻撃者のイラストアイコン
詐欺師

(ログインフォームのID欄に入力)’ OR ‘1’=’1(ダッシュ記号を2つ)(これだけの入力でパスワード検証が無効化されデータベースに接続完了)

SQL文の認証回避の典型例です。脆弱なサイトでは、このような数文字の入力だけで管理者権限なしにデータベースへのアクセスが可能になります。

SQLインジェクションによる個人情報漏洩を報じるニュースキャスターのイラストアイコン
キャスター

IPAは、Webサイトからの個人情報漏洩の多くがSQLインジェクションによるものとして、パスワードの使い回しを避けるとともに、漏洩通知を受けた際は速やかに変更するよう呼びかけています。

SQLインジェクションによる個人情報漏洩被害の注意喚起を解説する報道番組や、IPAの呼びかけを想定した表現です。

パスワード使い回しを避ける大切さを助言するIPA担当者のイラストアイコン
専門家

サービスごとに別のパスワードを使ってください。一つのサービスが漏洩しても他は守れます。漏洩通知が来たらすぐに変更し、カード情報が流出した場合はカード会社に連絡を。

IPA担当者が、SQLインジェクション被害に遭った際の具体的な対処法を助言する場面を想定しています。

困ったときの相談窓口

個人情報の漏洩被害を受けた場合は、以下の窓口に相談できます。

窓口名電話番号受付時間対応内容
IPA安心相談窓口03-5978-7509平日 10:00〜12:00、13:30〜17:00不正アクセス・情報漏洩の相談
警察相談専用電話#9110平日 8:30〜17:15(各都道府県で異なる)不正アクセス被害・サイバー犯罪の相談
消費者ホットライン188地域の窓口に準ずる情報漏洩に伴う二次被害の相談

【まとめ】3つのポイント

  • 正体は入力フォームを入口にしたDB乗っ取り:SQLインジェクションは入力欄への数文字でデータベース全体を操作できる攻撃です。
  • 一度の攻撃で数万件の情報が漏洩:ECサイトや会員サービスの個人情報が一括で盗まれる被害が繰り返し発生しています。
  • パスワードの使い回しをやめる:どのサービスが漏洩しても他を守るため、サービスごとに異なるパスワードを設定しましょう。

よくある質問

Q
利用しているサービスが漏洩したか確認する方法はありますか?
A

Have I Been Pwned(haveibeenpwned.com)などのサービスで、自分のメールアドレスが過去の漏洩データベースに含まれているか無料で確認できます。また、利用しているサービスからの漏洩通知メールを見落とさないことも重要です。身に覚えのないログイン通知・メール・パスワード変更要求が来たら、すぐにそのサービスのパスワードを変更してください。

Q
SQLインジェクションの被害に遭った場合、事業者への賠償請求はできますか?
A

事業者のセキュリティ対策が不十分だったことを原因とする場合、民事上の損害賠償を請求できる可能性があります。ただし、実際の請求は弁護士への相談が必要です。法テラス(0570-078374)に相談すれば、費用の目安や手順について無料でアドバイスを受けられます。まず被害を記録し、カード会社・サービス事業者・警察に状況を報告することが先決です。

Q
SQLインジェクションは個人でも防げる攻撃ですか?
A

SQLインジェクションへの根本対策はサービス運営者側が行うものです。個人ができる防衛としては、パスワードを使い回さない・多要素認証を設定する・漏洩通知が来たら即座に対応する、の三点が中心です。自分の情報を預けるサービスがHTTPSで通信し、セキュリティの信頼性を公表しているかを確認することも、リスクを下げる判断材料になります。

Q
SQLインジェクションとクロスサイトスクリプティングの違いは何ですか?
A

攻撃の対象と方向が違います。SQLインジェクションはサーバー側のデータベースを攻撃し、個人情報の大量窃取やデータ改ざんを目的とします。クロスサイトスクリプティング(XSS)はWebページに不正スクリプトを埋め込み、そのページを閲覧したユーザーのブラウザ側を攻撃してCookieを盗んだりなりすましをしたりします。前者はデータベースへの侵入、後者は利用者のブラウザを標的にするという違いがあります。

コメント

※本記事の内容については、できる限り正確な情報を掲載するよう努めておりますが、完全に正確であるという保証はありません。一部の内容に誤りや適切でない表現がある可能性があります。ご了承の上、参考程度にとどめていただければ幸いです。なお、記事の改善点などがございましたら、ぜひコメントにてご指摘ください。
犯行スキーム詐欺辞典
\この記事をシェアする/
\賠償罪子のSNSに遊びにいく/
タイトルとURLをコピーしました