最近「SQLインジェクション攻撃」という言葉をよく耳にしますが、SQLインジェクション攻撃ってなんですか?
SQLインジェクション攻撃とは簡単に説明するとWebアプリケーションの脆弱性を突いて、「悪意のある行動をさせる」非常に悪質なサイバー攻撃のことです。
実際にSQLインジェクション攻撃を受けた企業では個人情報やクレジット情報が流出したり、顧客が悪意のあるサイトに誘導されたという事例もあります。
「SQLインジェクション攻撃傾向」を独立行政法人 情報処理推進機構(IPA)が発表しています。
特に検索エンジンからWEBサイトを悪用されることもあるので注意が必要です。
自社で運営しているWEBサイトが狙われる可能性も0ではありません。
今回は「SQLインジェクション攻撃」の内容と被害事例、おすすめの対策法をお伝えしていきます。
SQLインジェクション攻撃を知って対策しておきたい方は必見です。
目次[開く]
SQLインジェクション攻撃とは?
SQLインジェクション攻撃とはWEBサイトの書き換えをするプログラムを挿入(インジェクション)し、情報漏洩やデータの改ざんをを目的とする攻撃です。
ちなみにSQLとはデータベースのデータを更新・削除・検索などの作業をつかさどる部分です。
よく攻撃対象になるのはポータルサイト・ショッピングサイト・決済サイトなどがありますね。
SQLインジェクション攻撃の仕組み
SQLインジェクション攻撃ってどういう仕組みになっているんですか?
ECサイトで攻撃される場合を例にあげ、どのような仕組みか紹介しましょう。
ECサイト(通販サイト)のようにユーザーIDとパスワードを入力するようなフォームに、不正なSQLが入ってる文字列を入れるとします。このサイトのセキュリティが低い場合、正しいSQLと認識してしまい個人情報が入ってるデータベースを操作されてしまうのです。
こういった攻撃により、クレジットカード情報が盗まれたり、Webサイトが改ざんされて偽サイトに誘導されるということが起きてしまうのです。
SQLインジェクション攻撃を受けるとどうなる?
実際にSQLインジェクション攻撃を受けるとどうなってしまうんですか?
攻撃を受けると「情報漏洩」「Webサイトの改ざん」「不正ログイン」などの取り返しのつかない被害を受けてしまいます。一つずつ詳しくご紹介しましょう。
①情報漏洩
SQLインジェクションでどのような流れで情報漏洩が起きるんですか?
セキュリティ対策をしていないと、悪意ある攻撃者がアプリケーションに情報を盗む命令を出すと、本当にそれが実行されてしまいます。
Webサイトのデータベースには「ユーザーID」「パスワード」「クレジットカード情報」などの貴重な個人情報が入っています。
セキュリティ対策をしていないWebサイトで、悪意ある攻撃者が「データベースの会員情報を表示しなさい」とIDや名前を入れるフォームで入力すると簡単に実行されてしまうのです。
アプリケーションは間違った情報だと認識せずその命令が実行されてしまい、ユーザーの個人情報が全て奪われることになります。
そんなに簡単に個人情報が盗まれてしまうんですね…
その通りです。このような悪意ある攻撃者が今日もどこかのサイトを狙っているんです。なので最近はセキュリティ対策に力を入れる企業が増えているんですよ。
②Webサイトの改ざん
Webサイトが改ざんされるとウィルスを感染させるサイトに変えられてしまいます!
SQLインジェクションによってWebサイトの改ざんも可能になります。
有名なものはセミコロン「;」を使う例。
セミコロンを使ってSQLを連結し改ざんできてしまうのです。
改ざんされたWebサイトは表面からは正しいサイトのように見えます。
何も知らないユーザーはそのWebサイトにアクセスするだけで、ウィルスに感染させられてしまうのです。
それはサイトを見にきてくれた方たちにとって最悪な状況じゃないですか!?
そうなんです!強力なセキュリティ対策でSQLインジェクションの攻撃から守らなくてはなりません。
③不正ログイン
不正ログインされてしまうと、例えば、ショッピングサイトなどのIDとパスワードを勝手に変えられたりしてしまいます。
ほかにも以下のようなことがあります。
・インターネットバンキングでの不正送金等: 23%
・オンラインゲーム・コミュニティサイトの不正操作: 13%
・仮想通貨交換業者等での不正送信: 12%
・インターネットショッピングでの不正購入: 10%
・インターネット・オークションの不正操作 : 2%
・知人になりすましての情報発信: 2%
・ウェブサイトの改ざん・消去: 1%
不正にログインされるだけでこんなにも悪用されてしまうんですね…
そうなんです。ちなみに不正ログインの仕組みは、まず、悪意のある攻撃者は攻撃用の文字列に通常では入力しないコメントアウトを表す「–」を入力してログインします。
※コメントアウトとはコンピュータのプログラムで人間のために挿入された注釈のことです。
そのためコメントアウトはソースコードを無効にしてしまいます。
SQL文ではパスワードが一致するかどうかの条件文がありますが「–」を入力することによりコメントとして扱われてしまうのです。
パスワードが一致する条件が無効になるため、悪意ある攻撃者がログイン可能になるという仕組みです。
SQLインジェクション攻撃の被害事例
セキュリティ対策をしないとどんなに有名な企業でも被害にあってしまいます。ここでは、過去に起こった有名な3つの事例を見ていきましょう。
2011年「ソニー」7,700万人分の個人情報漏洩
2011年4月、ソニーグループが展開するゲーム用のサービス「PlayStation Network」に対する SQL インジェクションによる攻撃が行われ、約7,700人の個人情報を盗まれました。
個人情報は氏名・住所・e-mail アドレス・生年月日・PlayStation NetworkのIDとパスワード等です。
この事件によってソニーはセキュリティに強いデータセンターへの移行等、セキュリティの強化を行うことを余儀なくされました。
ユーザーのクレジットカードの再発行手数料の負担やPlayStation NetworkやQriocityのサービス停止による売上の減少など、企業としては見過ごせないような被害を被っています。
7,700人もの個人情報が盗まれるって怖いですね…
ソニーの不正アクセスは従来のファイアウォールの仕組みでは防御できず、そのためすぐには検知できなかったようです。防止するにはしっかりとしたセキュリティ対策が必要になってきます。
2019年「釣りビジョン」6万件以上の顧客情報漏洩
2019年1月、多くの釣り好きに愛されている「釣りビジョン」で会員のメールアドレスや氏名・住所など、6万件以上もの情報が盗まれました。
この事件により「釣りビジョン」は入力フォームの閉鎖を余儀なくされ、ユーザーからのプレゼント応募等はメールでやらざるを得なくなったのです。
釣りビジョンは第三者機関の厳しい審査を経て取得できる、プライバシーマーク (P マーク)を取得していました。
しかし十分な管理体制が整っている状況の中で発生したことから、これまで以上のセキュリティ対策が必要となっています。
セキュリティの管理体制やインフラを強化し、新技術の導入などの莫大な費用を負担する必要が生じたのです。
釣りビジョンの例を見ても、普通程度のセキュリティ対策では危ないということがよくわかると思います。
2020年「株式会社光言社」会員情報一部流出
2020年4月、出版・映像企画や販売を行う株式会社光言社の Web サイトに対し SQL インジェクション攻撃が行われ同サイトの会員情報が一部流出した可能性が判明しました。
流出した可能性があるのはメールアドレス・名前・住所・連絡先・会員番号等です。
光言社は既に不正アクセスの対策にWAFを導入してWebサイト開発管理体制の強化を行っています。
情報流出すると、顧客は信用できなくなり、会員をやめてしまいます。企業から見ても信用できない会社というイメージができて取引できない可能性があります。
SQLインジェクションの対策方法
事例を見てもこのSQLインジェクション攻撃の対策って可能なの?と感じますが対策はできるんですか?
いくつかあるので紹介しましょう。今まで以上にしっかりと対策をすることが必要です。
①想定している文字の入力だけを受け付ける
SQLインジェクション攻撃の仕組みでは入力フォームで想定している数字以外が入力されています。
そのため、アプリケーションが想定している文字以外が入らないように対策することが必要です。
入力された文字が想定外かどうかを確かめ、想定外の文字列の場合はエラーにしてデータベースに接続させないという方法があります。
②アカウントの権限を制限
SQL インジェクション攻撃を受けた場合に被害を減らす方法です。
サーバーのアカウントの権限は個人情報が入っているデータベース内を自由に閲覧したり編集できるようになっています。
この権限が大きければ悪意ある攻撃者がアカウント情報を持つと重要な情報が漏れてしまう可能性が高くなります。
そこで予め、Webサイトからデータベースに送信できる命令文を制限しておきます。
そうしたことで、攻撃者から悪意のあるSQL 文を送信されても被害を最小限に抑えることができます。
③WAF(ウェブアプリケーションファイアウォール)の導入
SQLインジェクションからサイトやアプリケーションを防御するために効果的なのがWAFの導入です。
WAFとはWeb Application Firewall(ウェブアプリケーションファイアウォール)です。
一般的なファイアウォールは外部ネットワークからの不正アクセスを検知し遮断することはできます。
しかしSQLインジェクションを防ぐことはできません。
なぜならSQLインジェクションはWebサイトへのアクセス自体は正常だからです。
ソニーもファイアウォールで対策はしていましたが、攻撃者がWebサイトへアクセスした後に不正なデータを送るという攻撃は防げなかったのです。
WAFはアクセス後のユーザーの行動が不正かどうかをチェックします。
通信内容を検査し不正なデータがレスポンスにないかどうかを検査してくれます。
ファイアウォールでは防ぎきれないSQLインジェクション攻撃を受けると、取引先や顧客情報の漏洩につながる危険性があります。
万全の対策としてWAFの導入も含めたセキュリティの強化が必要となります。
④オールインワンで安心!「CyberBox Pro」
WAFのほかに「CyberBox Pro」を採用するのも有効な手段となります。
CyberBox Pro は「バックアップ」「ログ管理」 「セキュリティ」が一つになったオールインワンのセキュリティアイテムです。
3つの機能により詳細な分析の実行と悪意のある振る舞いの特性を識別し、SQLインジェクション攻撃から守ります。
・パソコン内部のエミュレーターでプログラムを実行させ異常な挙動がないかチェックします
・亜種のマルウェアに共通する特徴を見つけ照らし合わせて膨大に増殖する亜種を検知します
CyberBox Proはネットワーク通信を検査して脆弱性への攻撃をブロックし、ダウンロード書類の不整合をチェックして脆弱性への攻撃をブロックします。
ウイルスの DNA 検査実行、メモリー上で不審な実行コードの検出、マルウェアの C & C サーバーとの通信の検出でSQLインジェクションの攻撃を防ぎます。
まとめ
SQLインジェクション攻撃と対策がよくわかりました。
これまでのファイアウォールが入っているからセキュリティは大丈夫という考えは通用しなくなっています。攻撃されてから対策するのではなく、攻撃される前に対策することが大事です。
会社のWebサイトで個人情報が流出すると大変なことになります。
漏れた個人情報はインターネット上の闇サイトで売買されています。
購入された個人情報を元にさらにサイバー攻撃の脅威にさらされるのです。
フィッシングサイトに誘導されたりマルウェアが添付されたメールを受け取ったり、クレジットカードが不正利用される可能性もあります。
個人情報を漏らした会社ということで企業の信用も著しく低下するでしょう。
ソニーの事例でわかるようにサイトの一時閉鎖も余儀なくされ、調査に追われ本来の仕事もできないような状態になります。
個人情報の漏洩は億単位の賠償金を支払うケースもあります。
これからの時代は現状のサイバー攻撃について把握し、未然に防ぐことができるものはしっかりと対策を施し、個人や会社・関連企業の未来を守っていくことがとても重要な時代に突入しているといえるでしょう。