SQLインジェクション
SQLインジェクションとは、Webアプリケーションの脆弱性をついて断片的なSQL文を送り込み実行させる攻撃手法です。
SQLインジェクションとは
SQLインジェクションは、主にデータベースを不正に操作する目的で行われます。
SQLはStructured Query Languageの略称で、データベースを操作する言語のひとつです。不正入力によって誤ったSQL文が生成され、データベースに送信されます。
不正なSQLによって攻撃者がデータベースを操作することができ、データベース内に格納された情報を盗んだり改ざんしたりすることが可能です。
SQLインジェクションによる被害例
SQLインジェクションによる被害例は以下の通りです。
- 情報漏洩
- Webサイトの改ざん など
SQLインジェクションの対策方法
SQLインジェクションの対策方法を確認しておきましょう。
プレースホルダの利用
SQLインジェクションの対策方法として、プレースホルダの利用が考えられます。
プレースホルダとは、SQL文の変動箇所を示す記号です。
SELECT * FROM user WHERE id = ?
プレースホルダを利用することで、変動箇所に入力された文字をSQL文ではなく通常の値として処理するので、不正SQL文の実効を防げます。
エスケープ処理
エスケープ処理は、ユーザから入力された特定の文字や記号を無意味な形に変形する処理です。
例えば囲んだ文字列を変数として扱うシングルクォート(‘)を、識別子として扱うダブルクォートに変換する処理が該当します。
WAFの導入
WebアプリケーションをSQLインジェクションから守る方法として、WAFの導入も挙げられます。
WAFはWeb特化のファイアウォールで、Webサイトを含めたWebアプリケーションの脆弱性を狙ったサイバー攻撃を防御する、セキュリティ対策ツールのひとつです。
SQLインジェクションの関連語
SQLインジェクションの関連語を確認しておきましょう。
脆弱性
脆弱性とは、コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミスが原因となって発生したセキュリティ上の弱点のことです。
SQL
SQLはリレーショナルデータベースに情報を格納および処理するためのプログラミング言語です。
SQLを利用することで、データベースやテーブルを作成したり、データの検索やデータの操作ができたりが可能となります。
WAF
WAF(WebWeb Application Firewall)とは、Webアプリケーションの脆弱性を狙った攻撃を防御するためのセキュリティソフトです。
従来のファイアウォールやIPS/IDSなどのセキュリティ製品では守り切れない攻撃を検知・遮断し、Webアプリケーションを保護します。
SQLインジェクションまとめ
SQLインジェクションはWebアプリの脆弱性を狙った攻撃です。1990年代からある古い攻撃手法ですが、2020年代も増加傾向です。
対策方法をしっかりと押さえておきましょう。