攻撃手法・初期侵入
SQLインジェクション
SQLインジェクション(別名 SQLi)は、データベースと連携するWebアプリケーションが、利用者からの入力をそのままデータベースへの命令の一部として扱ってしまう弱点を突く手口です。
- 初期侵入
- 実行
- 横展開
- 窃取
- 影響
要点
- 段階 攻撃が進む段階のうち「初期侵入」で使われます。MITRE ATT&CK の手口番号は T1190 です。
- 記録 このサイトの記録では、事例 1 件とハッカーグループ 0 組に出てきます。
- 最初の対策 SQL文の組み立てにはプレースホルダ(バインド機構)を用い、入力値を命令文に直接連結しない。
入力と命令の境界があいまいなまま処理されると、攻撃者が命令の意味を書き換えられてしまう。データベースを使うWebサイトであれば業種を問わず起こりうる。
攻撃の流れ
- 1Webアプリケーションが、利用者が入力した値を十分な処理をせずにデータベースへの命令文に組み込んでしまう
- 2攻撃者は入力欄やパラメーターに細工した値を送り、本来意図されていなかった命令としてデータベースに解釈させる
- 3成立すると、データベースに蓄積された非公開情報の閲覧や、情報の改ざん消去、認証を経ない不正ログインにつながる
- 4データベースの権限設定によっては、そこからさらにサーバー上での操作にまで発展することがある
気づくための兆候
- アプリケーションのログに、通常の利用では現れない長さや記号を含むパラメーターが記録される
- データベースのエラーメッセージが利用者の画面にそのまま表示される
- 同じ利用者や同じIPアドレスから、短時間に多数の異なるパラメーターパターンでアクセスがある
- データベースサーバーからの通常と異なる大量の読み出しや外向き通信が発生する
対策
SQL文の組み立てにはプレースホルダ(バインド機構)を用い、入力値を命令文に直接連結しない
データベースのエラーメッセージを利用者のブラウザに表示しない
Webアプリケーションが使うデータベースアカウントの権限を必要最小限にする
Webアプリケーションファイアウォールを導入し、異常なパラメーターを遮断する
公開前後にWebサイトの脆弱性診断を定期的に実施する
関係するページ
手口、グループ、事例のつながりは、収録データの記録だけから引いています。
関係するグループ
収録データにはまだ出ていない
関係する事例
出典
- 1.1 SQLインジェクション(安全なウェブサイトの作り方) IPA 独立行政法人情報処理推進機構・2021-03-31
- 安全なウェブサイトの作り方 IPA 独立行政法人情報処理推進機構・2021-03-31
- Exploit Public-Facing Application (T1190) MITRE ATT&CK・2026-05-12
最終確認日 (2026年10月24日)
監修 平原尚樹(株式会社BlueAI 代表取締役CEO、ソフトウェアエンジニア、Google Cloud Architect)