SQLインジェクションとは
SQLインジェクションとは、データベースを操作する命令文を脆弱性のあるWebアプリケーションに注入することによって、データベースにあるカード情報や顧客情報といった非常に重要な情報を窃盗する攻撃です。
SQLインジェクションは早期発見がされないままでいると深刻な被害を引き起こしてしまいます。しかしセキュリティ対策の遅れによってなかなか被害が減ることがないというのが現状です。

SQLインジェクションの恐怖
SQLインジェクションの特性について確認してきました。では次にSQLインジェクションがもたらす恐怖について見ていきましょう。
カード情報が盗まれる事例も発生
アウトドア用品ショップのカード情報漏えい、ゲームソフト会社会員サイトの個人情報漏えい、電気通信事業者のカード情報漏えいなど多くの企業サイト、オンラインショップ、会員サイトが重要な個人情報を窃盗されています。実際の事例を見ていきましょう。
- 【通販サイトを運営するA社の例】
- A社のWebサーバが不正アクセスを受け、顧客情報が流出したことが判明しました。会員IDやパスワード、クレジットカード情報など、約13万件の顧客情報が流出しています。
- 【リサーチサイトを運営するB社の例】
- B社のWebサイトが不正アクセスを受け、約6千名分の情報が流出したことが判明しました。海外子会社向けのモニター登録サイトから侵入され、共通のデータベースを使ったサイトが被害に遭っています。
企業の信用を失う結果になることも
クレジットカード情報などが漏えいした場合、企業は調査や被害者対応の人件費、システム再構築関連費、賠償費、営業停止期間の機会損失など全体で莫大な損失が生じるケースも少なくありません。
また最大の損失は顧客の信用を失ってしまうことです。そういった意味においてもSQLインジェクションによる攻撃は事前に十分な対策を取ることが必須といえます。
SQLインジェクション攻撃を防ぐ方法
SQLインジェクション攻撃を防ぐにはどうすればよいのでしょうか。
安全なWebサイトを作成する
Webアプリケーションを開発する際は、脆弱性の少ない設計にするよう心がけましょう。
すべての脆弱性を取り除いたWebアプリケーションを開発するのは困難です。そのため、脆弱性を補う手段としてWAFなどが存在します。しかし、Webアプリケーション自体の脆弱性も最小限に抑えたほうがよいのは間違いありません。
開発の際には、独立行政法人情報処理機構(IPA)が公開するマニュアルを参考にするとよいでしょう。また、外注する場合は要件にセキュリティ対策をしっかりと含めておきましょう。そして、脆弱性が発見された場合には、すみやかに対策することが大切です。
脆弱性診断を行う
定期的に脆弱性診断を行いましょう。
脆弱性診断とは、疑似的な攻撃を行って脆弱性を発見する方法です。実際に被害に遭う前に、外部からの攻撃を想定したシミュレーションを行うことで対策が可能になります。
具体的な方法はサービスにより異なりますが、ツールと人の手を組み合わせた診断が一般的です。そして、発見された脆弱性はレポートにまとめられ、質疑応答や対策方法の検討が行われます。
WAFを導入する
そして、もっとも現実的で有効な対策が、WAFの導入です。WAFはWebアプリケーションを守るためのセキュリティで、SQLインジェクションなどの特殊な攻撃に対応しています。
その中でもクラウド型は手軽なのが特徴。制約が多かった従来のWAFと比較すると以下のような特徴があります。
- ■短期間で導入できる
- ■導入に伴うインフラ整備が不要
- ■運用をベンダーに任せられる
- ■常にアップデートされ、最新の状態を維持できる
- ■初期費用が安い
- ■短期のスポット利用など、柔軟な利用が可能
クラウド型のWAFについてさらに知りたい方は以下の記事をご覧ください。
WAFがSQLインジェクションを防げる理由
どれほど注意しても開発には不備が生じ、脆弱性が生じることは避けられません。さらに、Webアプリケーションは通常のファイアウォールの防御範囲外です。
WAFは、Webアプリケーションの、脆弱性に特化したセキュリティシステムのため、通信内容を機械的に解析し、悪質な通信を検知しブロックできます。SQLインジェクションも不正通信の一つであるため、WAFを通すことで検知し、防御できるのです。
万が一WAFを通り抜け攻撃を受けたときは…
万が一、SQLインジェクションがWAFを通り抜け、攻撃を受けたことが発覚した場合、まずはWebサイトの一部、もしくはすべての公開を一旦停止してでも早期の修正をすることを優先します。
特にSQLインジェクション攻撃による損失は金銭だけではなく顧客の信用という他に替えられない大きなものになりますので、とにかく早期の修正を徹底しましょう。
WAFを利用してSQLインジェクション対策を行おう!
WAFはSQLインジェクションを防御する最も効果的な方法です。WAFを導入することで、SQLインジェクションだけでなく、様々な攻撃を防ぐことができるため、WAFはWebアプリケーションを利用している企業にとっては必須のアイテムといえるでしょう。
ただし、WAFにもたくさんの製品があるため、どの攻撃に対応しているのか、事前に知っておく必要があります。まずは資料請求を行い、自社にあった製品を選びましょう。以下の記事からも製品情報をご覧いただけます。
