⚠ サイトの改ざん・マルウェア被害にお困りの方はこちら

SQLインジェクションとは?仕組み・被害・対策

攻撃手法・脅威

監修:JIISセキュリティラボ監修者情報を見る

定義

SQLインジェクションとは、Webサイトの入力欄やURLに不正なSQL(データベース命令)の断片を送り込み、データベースを攻撃者の意図どおりに操作する攻撃です。個人情報やクレジットカード情報の大量漏えい事故の代表的な原因のひとつで、検索フォームやログイン画面など、データベースとつながるあらゆる入力箇所が標的になります。

仕組み

Webアプリケーションは、利用者の入力(検索語・ID・パスワードなど)を組み込んだSQL文を作ってデータベースに問い合わせます。このとき入力値の扱いが不適切だと、攻撃者が入力欄に「'; --」のような特殊な文字列を仕込むことで、開発者の意図しないSQL文が実行されてしまいます。

成立すると、本来見えないはずの会員情報の取得、認証の回避(パスワードなしのログイン)、データの改ざん・削除まで、データベースに対するほぼ任意の操作が可能になります。攻撃は自動化ツールで無差別に行われるため、「うちは小さいサイトだから狙われない」は通用しません。

実被害の傾向

国内でも、ECサイトや会員制サイトからの個人情報・カード情報の漏えい事故の原因として繰り返し報告されています。漏えいが起きると、被害者への通知・補償、カード会社・決済代行会社への報告、サイトの長期停止、信頼の毀損と、事業への影響が長期化しやすいのが特徴です。古いCMSやカートシステム、保守が止まったWebアプリケーションで被害が起きやすい傾向があります。

対策

サイトドックでの扱い

精密健診(能動診断)では、世界中で共有されている既知の脆弱性パターン(nuclei)との照合や、Webアプリケーションの応答解析(OWASP ZAP)で、SQLインジェクションにつながる危険な露出や設定の不備を確認します。

月額の自動修復では、WAF・仮想パッチが、SQLインジェクションを狙う攻撃リクエストをサイトの通り道(エッジ)で検知・遮断します。サイトのプログラム改修は不要です。ただし、あらゆる攻撃の遮断を保証するものではなく、根本対策(アプリ改修)が必要な場合は健診結果で正直に明示します。

よくある質問

SQLインジェクションはWAFで防げますか?
WAFは、SQLインジェクションを狙う既知の攻撃パターンをサイトに届く前に検知・遮断する有効な対策です。ただし、あらゆる攻撃の遮断を保証するものではないため、アプリケーション側の根本対策(プレースホルダの利用や更新)と組み合わせ、被害の可能性を多層で下げる考え方が基本です。
自分のサイトがSQLインジェクションに弱いか、どうすれば分かりますか?
データベースを使う入力箇所(検索・ログイン・問い合わせフォーム等)があるサイトは、脆弱性診断で確認するのが確実です。サイトドックでは、所有者確認のうえ実施する無料の精密健診で、既知の脆弱性パターンとの照合を含む本格的な診断を行えます。
小規模なサイトでも狙われますか?
狙われます。攻撃の多くは自動化ツールによる無差別スキャンで、サイトの規模や知名度は関係ありません。対策が手つかずのサイトほど狙われやすい傾向があります。

このページの要点

あなたのサイトは大丈夫?無料でセキュリティ健診

URLを入れるだけ。登録不要で、外から見える弱点をその場でスコア表示します。

無料で健診する

関連する用語

SQLインジェクションWAF(Web Application Firewall)ペネトレーションテスト情報漏洩・情報露出

関連ページ

自動修復(WAF・仮想パッチを含む9つの守り)クラウド型WAFとの違いセキュリティ完全ガイドに戻る
監修:JIISセキュリティラボ(監修者情報)/ 日本情報基盤サービス株式会社 / www.jiis.co.jp
本ページは一般的な解説であり、個別の環境での適用は専門家にご相談ください。