公開日:2016/03/15 最終更新日:2016/03/18
JVNTA#99929369
国内のウェブサイトに SQL インジェクションの脆弱性
日本国内のウェブサイトにおける SQL インジェクションの脆弱性が、国内外から JPCERT/CC に複数報告されています。
- ウェブサイトで動作するウェブアプリケーション
日本国内のウェブサイトにおける SQL インジェクションの脆弱性が、国内外から JPCERT/CC に複数報告されています。
オー プンソースの SQL インジェクション脆弱性診断ツール sqlmap を使用して、日本国内のウェブサイトで動作するウェブアプリケーションの脆弱性を検出しようとする海外からのアクセスが発生しています。こうしたアクセスは組織規模の大小によらず、中小企業や個人のウェブサイトに対しても行われています。SQL インジェクションの脆弱性が存在するウェブサイトでは、ユーザや開発者の意図しない SQL 文が実行され、様々な影響を受ける可能性があります。
sqlmap は、おもに次の 5つの手法を使用します。
- Boolean-based blind
WHERE 句、HAVING句の真偽値を使用して情報を取得する - Time-based blind
データベース側の応答時間差により情報を取得する - Error-based
データベース側からのエラー応答から情報を取得する - UNION query-based
別々のテーブルの検索結果を結合するクエリを使用して情報を取得する - Stacked queries
1回のトランザクションで複数のクエリを実行させる
認証回避、任意のプログラム実行、情報漏えい、ウェブサイトの改ざんなど、ウェブアプリケーションが動作するサーバが深刻な影響を受ける可能性があります。
ウェブアプリケーション開発者向けの対策
- ウェブアプリケーション開発にバインド機構を使用する
情報処理推進機構 (IPA) が発行する安全な SQL の呼び出し方には、次のように記載されています。静的プレースホルダでは、SQL 文の構文がバインド前に確定することから、プレースホルダに渡す文字列はクォートして記述する必要がありません。そのため、シングルクォートのエスケープ処理も必要ありません。また、数値リテラルもそのまま適切にバインドされます。
このことから、セキュリティの観点で、静的プレースホルダは最も安全です。静的プレースホルダでは、SQLを準備する段階でSQL文の構文が確定し、後からSQL構文が変化することがないため、パラメータの値がリテラルの外にはみ出す現象が起きません。その結果として、SQL インジェクションの脆弱性が生じません。 - データベースのユーザ権限を最小限に設定する
SQL 文を実行するデータベースのユーザ権限を必要最小限に設定してください。ユーザ権限を最小限にすることで、SQL インジェクション攻撃を受けても被害を抑えられる可能性があります。 - SQL インジェクションのテストを実施する
SQL インジェクションのテストを実施して、意図しない SQL 文が外部から実行されないことを確認してください。また、最小限の権限で動作することを確認してください。
- データベースのユーザ権限を最小限に設定する
ウェブサイトで動作するウェブアプリケーションのデータベースのユーザ権限を、必要最小限に設定してください。管理者がウェブアプリケーションの権限を変更できない場合は、ウェブアプリケーションの開発者に変更を依頼してください。ユーザ権限を最小限にすることで、SQL インジェクション攻撃を受けても被害を抑えられる可能性があります。 - ウェブサイトにおける脆弱性の有無を調査する
脆弱性診断ツールを使用したり、セキュリティベンダに依頼したりすることで、ウェブサイトに SQL インジェクションの脆弱性がないかを確認してください。脆弱性を検出した場合は、ウェブアプリケーションの開発者に修正を依頼してください。 - アップデートする
ウェブアプリケーションを、対策済みのバージョンにアップデートしてください。 - 製品のサポート期限を確認する
パッケージ販売されているウェブアプリケーション製品を使っているユーザは、製品の開発が既に終了していたりサポート期限が切れていたりする場合には、製品を別の製品に置き換えることを検討してください。
-
情報処理推進機構 (IPA)
安全な SQL の呼び出し方 -
情報処理推進機構 (IPA)
ウェブサイトの攻撃兆候検出ツール iLogScanner -
OWASP
SQL Injection -
sqlmap.org
sqlmap: automatic SQL injection and database takeover tool
- 2016/03/18
- 詳細情報、参考情報を更新しました。