SQLインジェクションの被害事例5選!具体的な手口や対策を紹介

企業のサーバーに不正にアクセスして秘匿ページを覗き見たり、顧客情報を盗み取るSQLインジェクションというサイバー攻撃による被害が後を絶ちません。

この記事ではSQLインジェクションの具体的な被害事例とその卑劣な手口、対策方法を紹介します。

この記事を読んで、自社のSQL対策が十分か、企業HPや顧客情報が適切に守られているか、あらためて確認しましょう。

 

1.SQLインジェクションの被害事例5選

SQLインジェクションによる被害事例を5つ紹介します。業種、業態を問わず被害がでており、顧客情報、取引先企業などが流出しています。

また、直接的な情報流出の他にも、サイトの一時的な閉鎖(その間のサービス停止)や、顧客への特別対応として問い合わせ窓口の設置や個別連絡が必要になるなど、副次的な被害も発生しています。

 

1-1.マーケティング・リサーチ企業から最大10万1988件の会員情報が流出

2022年6月下旬、マーケティング・リサーチを行う企業からSQLインジェクションによって、会員情報が最大約10万2,000件流出したことが公表されました。

当該企業は以下のような対応をとったと報告しています。

・会員情報流出の被害にあった会員への個別連絡
・運営する2つのサイトを一時閉鎖
・情報流出サイトのパスワードの初期化
・流出対象者への問い合わせ窓口の設置
・再発防止策として脆弱性防御/管理ツールの導入

流出量が多いことから、対応工数も相当大きくなったと推測されます。

 

1-2.決済代行企業から半年にわたり数十万~数百万件の決済情報や企業情報が流出

2022年2月末、決済代行を行うシステム会社から不正アクセスによる情報流出が報告されました。
攻撃の規模が大きく、2021年8月から2022年1月にわたり複合的な攻撃が行われ、その中にSQLインジェクションによる攻撃も含まれていました。

これによる被害はクレジットカード番号約46万件、決済情報約740万件、加盟店企業情報38件と報告されています。

被害後の対応も多く、第三者機関による調査、再発防止委員会の設置、引責による代表取締役の異動、役員報酬の一部返上、経済産業省からの行政指導などが行われています。

 

1-3.メディア系調査会社から最大35,000件の事業所情報が流出

2022年5月中旬、メディア系調査会社から最大3万5,000件の顧客メールアドレスが流出した可能性があると報告されました。

流出したメールアドレスが同社サービスを利用する事業者の担当者のものだったため、同社は関係当局や関係各所への連絡を行い、第三者機関の協力をあおぐ事態となりました。

 

1-4.総合資格取得支援サイトから最大298,826件の利用者情報が流出

2022年5月下旬、総合資格取得支援サイトからサーバーへの不正アクセス、情報の流出、または改ざんが発生したと発表されました。

流出したのは利用者のメールアドレス最大約30万件で、当該サイトを運営する企業は個別メール連絡、問い合わせ窓口の設置、およびウェブサービスを同年5月中旬から8月1日まで停止しました。

3ヶ月にわたりサービスが停止になったため、被害対応工数だけではなく直接的に売上への影響があったと考えられます。

 

1-5.文具系ECサイトから顧客情報最大12万件流出

2020年4月、文具系ECサイトからクレジットカード情報を含む顧客情報が最大12万件流出した可能性があると発表されました。

流出した情報の中にはクレジットカード情報の他にも購入者情報(氏名、住所、メールアドレス)が含まれ、当該サイトは約5ヶ月間の一時的なサイト停止を余儀なくされました。

その後の対策には脆弱性の修正の他に、不正アクセスの検知、防衛をする対策の強化や、24時間有人監視体制の構築が含まれました。

 

2.SQLインジェクションを悪用した手口

SQLインジェクションを簡単に定義すると「アプリやウェブページの脆弱性を利用して、不正にSQL文を外部から実行し、データベースを攻撃する手口」です。

この手口によって、どのような被害に遭ってしまうのか具体的な例を紹介します。

 

2-1.他の会員情報閲覧/流出

SQLインジェクションを使えばデータベースに登録されているクレジットカードの情報やログインID、パスワードを読み出すことが可能です。

とくにECサイトではクレジットカード情報が蓄積されているため、SQLインジェクションの被害に遭うと金銭的な被害を生み出すだけでなく、企業の信頼を大きく損ないます。

冒頭の被害事例でも紹介したように決済代行企業が決済情報を流出してしまった事例では、代表取締役の異動、役員報酬の一部返上、経済産業省からの行政指導などが行われ大きな被害を受けました。

このようにSQLインジェクションを受け情報漏洩してしまうと、今後のビジネスに大きなダメージを受ける恐れがあります。

 

2-2.不正ログインによる秘匿ページ閲覧

本来、有料会員でなければ閲覧できない秘匿ページも、SQLインジェクション攻撃によって不正に閲覧される恐れがあります。

過去の事例では、SQLインジェクション攻撃によって某ゲーム会社の会員サイトにアクセスした事例がありました。

これにより、攻撃者が有料会員ページで得た情報をネット上に拡散することで、有料会員数の減少につながるだけでなく企業の信用も低下します。

 

2-3.マルウェアの拡散

SQLインジェクションは、マルウェア(悪意のあるソフトウェアやプログラム)を拡散するきっかけに使われることもあります。

たとえば、SQLインジェクションによって企業のメールアカウントを不正に操作し、企業の保有しているメールアドレス宛にマルウェアの拡散を目的とした大量のメールを送りつけます。

メールが届いたお客様は企業からの連絡だと思い、メールに記載のあるURLやファイルを開くとマルウェアに感染し、知らないうちに身に覚えのないメールを送信してマルウェアを拡散している場合があります。

このように、SQLインジェクション対策を行わないとマルウェアを拡散するきっかけに利用され、お客様に多大な迷惑をかけてしまうだけでなく、企業としての信頼を大きく失う可能性が高いです。

 

2-4.ウェブサイトの書き換え

SQLインジェクション攻撃の中で、とくに増えている被害がウェブサイトの書き換えです。

SQLインジェクションによってウェブサイトの内容を書き換えられるだけでなく、一部内容の削除やウェブサイトにコンピューターウイルスを埋め込まれる被害も増えています。

ECサイトを運営している企業であれば、価格や商品に関する情報を不正に書き換えられ利用者を混乱させるだけでなく、企業の信頼を大きく失います。

ECサイトのような企業の利益に直接関わるサービスを運営している場合、SQLインジェクション攻撃の対策は必須です。

 

2-5.データベースの全消去と破壊

SQLインジェクション攻撃によりデータベースを全て消去し破壊される恐れがあります。

SQLインジェクションでは特定の情報を抽出するのみでなく、全てのデータに対し不正操作を行えます。

データベースは企業にとって大切な顧客情報が入っているため、これらを消去されると企業にとって事業を継続させることが難しくなるでしょう。

SQLインジェクションの対策だけでなく、定期的にバックアップを取ることも非常に重要です。

 

3.悪意ある攻撃への対策方法

SQLインジェクションによる攻撃は事前に対策を打つことで被害に遭いにくいサイト、サービス運営を目指せます。

 

3-1.根本的対策は攻撃に対応した実装をすること

サイバー攻撃自体を受けないサイトにすることは現実的に不可能です。すべてのサイトは攻撃される可能性がある以上、攻撃をされても問題ない実装をする必要があります。

SQLインジェクションの場合は、エスケープ処理がもっとも効果的と言われています。エスケープ処理とは、プログラム言語で使用される特別な文字や記号を別の文字として解釈されるように処理することです。

SQLでは「 ; 」セミコロンや「 ‘ 」シングルクオーテーションなどが記号として利用されるため、これらの特殊文字を普通の文字として認識させることで、攻撃者が不正なSQL文を実行しても無効にできます。

また、入力可能なボックスには運営者が設定した文字列のみ入力可能にするなども有効な手段です。

SQLや他のプログラミングで使用しないと想定される記号のみパスワードに利用できる設定にすることで、ユーザーのパスワード強化と脆弱性の対策を同時に行えます。

このようにSQLインジェクション対策としてエスケープ処理は行うべきですが、その他の脆弱性が自社サービス内に存在するかわからない状態なら、当社の無料脆弱性診断をぜひご利用ください。

無料脆弱性診断を受けると、あなたの運営しているサービス内にいくつ脆弱性があるか簡単に可視化できます。

可視化された脆弱性に対して一つずつ対策すると、SQLインジェクション攻撃を受けにくいサービスになるため、SQLインジェクション攻撃による情報漏洩やウェブサイトの改ざんをされるリスクが大幅に減ります。

結果的に企業の信頼を失うこともなくなるため、脆弱性診断を受けるなら早めに受けておくと安心です。

3-1-1.攻撃される可能性、影響を小さくする処理も有効

全てのサイトにサイバー攻撃をされる可能性はありますが、攻撃を受けにくいサイトが存在します。

例えば、ページにアクセスしたときにエラー内容の表示を最小限にすることで攻撃される可能性を低くできます。

なぜならエラー内容の表示を最小限にしておけば、データベース内での命令文が推測しにくく、攻撃者に攻撃のためのヒントを与えないからです。

また、データベースにアクセスできるアカウントの権限を制限することも攻撃の影響を小さくするサービス運営につながります。

これは、万が一攻撃されて攻撃者にアカウント権限を取得された場合でも、サーバー側でアカウント権限を最小にしているので、攻撃者の操作できるデータが最小限になるからです。

さらに、以下のような対策も企業としては必ず行う必要があります。

・システムは常に最新の状態に維持
・アクセスログ解析の設置
・ログインユーザーの管理
・発見された脆弱性への対応

これらはSQLインジェクションだけではなく、全てのサイバー攻撃への対策として必要なので必ず行いましょう。

 

3-2.WAFの導入

Web Application Firewall(ウェブ・アプリケーション・ファイアウォール)、略してWAF(ワフ)の導入もSQLインジェクション対策になります。

通常のファイアウォールはネットワークレベルでの通信を監視しているのに対し、WAFはアプリケーションレベルでの通信監視を行います。

WAFを導入することで、アプリケーションが適切なデータを適切なユーザーに届けているかどうか、アプリケーションからのレスポンスに不正なデータが含まれていないかなどを検査してくれるので、攻撃への対策となります。

情報を流出させてしまった企業は事後対応として脆弱性の監視をするシステムや、有人による監視体制を整えています。

WAFを含む流出後の施策を情報が流出する前に実施できていれば、情報流出によって企業の信頼に傷がつくことは避けられていたでしょう。

しかし、WAFはあくまでも悪意のあるユーザーのアクセスを制限する目的が中心となる為にWAFの導入だけでは完全ではありません。番犬を置いてもドアを開けっぱなしにしていると番犬を潜り抜け自宅に入られる可能性があるように根本的な問題の対策を実施することもオススメ致します。

 

3-3.定期的な脆弱性の確認

サイバー攻撃は日々進化し、攻撃者は企業の保持する情報を常に狙っています。万が一あなたの会社が持つ個人情報や取引先の情報が漏れてしまったら、最初に紹介した事例のように情報管理責任を問われることになってしまいます。

情報が流出した場合、企業としての信用に傷がつく上に、顧客対応窓口の設置や、顧客にかかる費用負担の肩代わり、サービスの一時停止など、直接的な支出や収入が停止するような事態にも発展してしまいます。

日々進化する攻撃者から企業が扱う情報を守るには、発見された全ての脆弱性に対して常に最新の対応を講じておく必要があります。

そのために、脆弱性がないか定期的に確認することがもっとも有効です。

当社サービス「secuas」では、無料で脆弱性診断を行っております。URLと企業名など1分で簡単に入力できる情報だけで脆弱性診断ができるため、顧客情報を取り扱っているのに自社サービスに脆弱性があるかどうかわからないという場合には、ぜひご利用ください。