SQLインジェクション攻撃とは?
SQLインジェクション(SQLI)攻撃とは何か、どのように機能するのかは知らないかもしれませんが、被害者については間違いなく知っています。Target、Yahoo、Zappos、Equifax、Epic Games、TalkTalk、 LinkedInそしてソニー・ピクチャーズ――これらの企業はすべて、SQLインジェクション攻撃を用いたサイバー犯罪者によってハッキングされた。
SQLIとは、サイバー犯罪者がウェブ・アプリケーションのソフトウェアの脆弱性を悪用し、データを盗んだり、削除したり、変更したり、影響を受けたアプリケーションを実行しているシステムの管理者権限を取得したりすることを目的とした攻撃の一種です。
サイバーセキュリティ研究者たちは、SQLインジェクションを最も単純な、防御しやすいサイバー脅威の一つとみなしている。 Malwarebytes Labs SQLインジェクションは、既知の予測可能な攻撃であり、容易に対策を講じることができるという事実を挙げ、「それでも効果を発揮する最も愚かなサイバー脅威トップ5」で3位にランク付けされました。
SQLI攻撃は非常に簡単で、実際、攻撃者はグーグル・ドーキングと呼ばれる高度なグーグル検索を使って脆弱なウェブサイトを見つけることができる。いったん適切な標的を見つけると、SQLI攻撃者は自動化されたプログラムを使って効率的に攻撃を実行することができる。攻撃者は標的サイトのURLを入力するだけで、盗まれたデータが転がり込んでくるのを見ることができる。
しかし、SQLI攻撃は日常茶飯事であり、毎日起きている。実際、もしあなたがウェブサイトやオンラインビジネスを持っているなら、サイバー犯罪者はすでにSQLIを使ってあなたのウェブサイトに侵入しようとしている可能性が高い。SQL Injection Threat & Recent Retail Breaches(SQLインジェクションの脅威と最近の小売業における侵害)に関するPonemon Instituteのある調査によると、調査対象となった企業の65%がSQLIベースの攻撃の被害者であった。
よく狙われるウェブアプリケーションには、ソーシャルメディアサイト、オンライン小売業者、大学などがあります。中小企業は特に脆弱で、サイバー犯罪者がSQLI攻撃で使用するテクニックに精通していないことが多く、同様にそのような攻撃に対する防御方法を知らないからです。
SQLインジェクションから身を守るための第一歩として、SQLインジェクションについての知識を深めましょう。SQLインジェクションについての入門書です。
「SQLIとは、サイバー犯罪者がウェブ・アプリケーションのソフトウェアの脆弱性を悪用し、データを盗んだり、削除したり、変更したり、影響を受けたアプリケーションを実行しているシステムの管理者権限を得たりすることを目的とした攻撃の一種である。
SQLインジェクションはどのように機能するのか?
70年代初頭に開発されたSQL(構造化クエリー言語の略)は、オンライン・データベースを管理するために現在も使われている最も古いプログラミング言語のひとつである。これらのデータベースには、オンラインショッピングサイトの価格や在庫レベルなどが格納されている。ユーザーがデータベースの情報にアクセスする必要がある場合、SQLはそのデータにアクセスし、ユーザーに提示するために使用されます。しかし、これらのデータベースには、ユーザー名やパスワード、クレジットカード情報、社会保障番号など、より機密性の高い貴重なデータが含まれていることもあります。そこでSQLインジェクションの出番となる。
簡単に言うと、SQLインジェクションとは犯罪者がhackers セキュリティ対策が不十分なウェブサイトの検索欄、ログイン欄、URLなどのウェブフォームに悪意のあるコマンドを入力することで、機密性の高い貴重なデータへの不正アクセスを試みる。
例を挙げよう。お気に入りのオンライン衣料品サイトを想像してみてほしい。ソックスを買おうとしているあなたは、マウスをクリックするだけで、カラフルなソックスのテクニカラーの世界を見ることができる。テクノロジーの驚異だ!あなたが目にする靴下はすべて、どこかのサーバーのデータベースに存在している。気に入った靴下を見つけ、その靴下をクリックすると、靴下のデータベースにリクエストが送信され、ショッピングサイトはあなたがクリックした靴下の情報を返信する。さて、あなたのお気に入りのオンライン・ショッピング・サイトが、SQLの脆弱性を悪用できるような、ずさんな方法で構築されているとしよう。
サイバー犯罪者は、靴下に関する情報を要求すると、不運な顧客のクレジットカード番号が返されるように、データベースのクエリを操作することができる。このプロセスを何度も何度も繰り返すことで、サイバー犯罪者はデータベースの奥深くを探り、あなたを含む、お気に入りのオンライン衣料品サイトで買い物をしたすべての顧客の機密情報を盗むことができる。思考実験をさらに進めて、あなたがこの衣料品サイトのオーナーだとしよう。あなたは巨大なデータ流出事件を手にしている。
1回のSQLI攻撃で、サイバー犯罪者は何百万人もの消費者の個人情報、電子メール、ログイン情報、クレジットカード番号、社会保障番号を入手することができる。サイバー犯罪者はその後、一転してこの個人情報をダークウェブの最も陰鬱な片隅で販売し、あらゆる種類の違法な目的に使用することができる。
盗まれたメールはフィッシングやマルウェアスパム攻撃に悪用される可能性があります。マルウェアスパム攻撃は、ランサムウェア、アドウェア、クリプトジャッカー、トロイの木馬( Emotetなど)といったあらゆる種類の破壊的なマルウェアを被害者に感染させるために使用される可能性があります。Android Android盗まれた電話番号とiOS 携帯端末は、自動音声電話や迷惑メールの標的となる可能性がある。
ソーシャルネットワーキングサイトから盗まれたログイン情報は、スパムメッセージの送信や、他のサイトのログイン情報の窃盗にも悪用される可能性があります。Malwarebytes Labs Malwarebytes以前、ハッキングされたLinkedInアカウントが、 Googleドキュメントのログインページに見せかけた偽のURLを含むInMailメッセージで他のユーザーにスパム送信するために使用されていることを報告しました。サイバー犯罪者はこの偽装によってGoogleのユーザー名とパスワードを収集していました。
"サイバー犯罪者は、靴下に関する情報を要求すると、不幸な顧客のクレジットカード番号が返されるように、データベースのクエリを操作することができる"
SQLインジェクションの歴史とは?
SQLインジェクション攻撃は、1998年にサイバーセキュリティ研究者によって初めて文書化され、 hacker ジェフ・フォリスタル。彼の研究結果は、長年にわたるhacker ZINE Phrack。Rain Forest Puppyというペンネームで執筆したForristalは、基本的なコーディングスキルを持つ人が、正規のSQLコマンドに不正なSQLコマンドを便乗させて、セキュリティ対策が施されていないWebサイトのデータベースから機密情報を引き出す方法を説明した。
フォリスタルがマイクロソフト社に、この脆弱性が同社の人気製品であるSQLサーバーにどのような影響を与えるかを通知したところ、マイクロソフト社は問題視しなかった。フォリスタルが言うように、"彼ら(マイクロソフト)によれば、あなたがこれから読むことは問題ではないので、それを止めるために何かをする心配はない"。
マイクロソフトの無頓着な対応がこれほど衝撃的なのは、小売、教育、医療、銀行、人事など、多くの業界や機関が(当時も現在も)同社のデータベース管理技術に真剣に依存して業務を維持していたからである。これが、SQLIの歴史のタイムラインにおける次の出来事、最初の大規模なSQLI攻撃につながる。
2007年、米国最大のコンビニエンスストアチェーンであるセブン-イレブンがSQLインジェクション攻撃の被害に遭った。 hackers SQLインジェクションを使用してセブンイレブンのウェブサイトに侵入し、それを足がかりとしてコンビニエンスストアの顧客デビットカードデータベースにアクセスした。 hackers そして、ロシアにある本国で現金を引き出すのだ。Wired誌の報道によると、犯人たちは合計200万ドルを盗み出したという。
すべてのSQLI攻撃が貪欲な動機によるものではない。2007年の別の注目すべき例では、サイバー犯罪者がSQLIを使って米軍関連の2つのウェブサイトを管理制御し、訪問者を反米・反イスラエルのプロパガンダを掲載したウェブサイトにリダイレクトした。
2008年に発生したマイスペースのデータ流出事件は、消費者向けウェブサイトに対する攻撃としては最大級のものとなった。サイバー犯罪者は、約3億6,000万アカウントの電子メール、名前、パスワードの一部を盗んだ。そしてこれが、私たちがサイトごとにパスワードを再利用しない理由です。
最も悪質なセキュリティ欠如のタイトルはEquifaxだ。2017年のEquifaxデータ流出事件では、1億4300万人の消費者の極めて個人的な情報(氏名、社会保障番号、生年月日、住所など)が流出した。非居住者を除くアメリカ人全員の情報のゲートキーパーを務める組織としては、基本的なSQLI攻撃に対する予防策を講じていると思うだろう。データ流出が発生する前に、サイバーセキュリティの調査会社がEquifaxにSQLI攻撃の可能性があると警告していたが、信用情報機関は手遅れになるまで何の対策も取らなかった。
史上最も不気味なハッキング事件として挙げられるのが、2015年に玩具メーカーのVtechに対して行われたSQLインジェクション攻撃で、約500万人の親と20万人の子供のデータが漏洩した事件だ。オンラインマルチメディア出版物のMotherboardの取材に対し、 hacker 責任者は、データに関する計画はなく、オンライン上のどこにもデータを公開していないと主張した。逆に、 hacker また、データは非常に簡単に盗めるものであり、誰かが先にそれを入手していた可能性もあったと説明した。全く慰めにならない話だ。
今日に至っても、SQLI攻撃はまだ続いている。オープン・ウェブ・アプリケーション・セキュリティ・プロジェクト(OWASP)は、3年ごとに「最も重大なウェブ・アプリケーション・セキュリティ・リスクのトップ10」を発表している。最新の2017年版では、SQLI攻撃が1位にランクインした。
SQLI攻撃の寿命が長いだけでなく、興味深いのは、SQLI攻撃は何ら変化も進化もしていないということだ。SQLI攻撃は、人々がサイバーセキュリティに対する考え方を変えるまで機能し、今後も機能し続けるだろう。その変化である。
SQLインジェクションに関するニュース
- ハニーポットとは?サイバーセキュリティでの使われ方
- バグ賞金稼ぎへのインタビューユセフ・サムムーダ
- 2020年に向けたゼロデイガイド:最近の攻撃と高度な予防技術
- 金融モバイルアプリの脆弱性が消費者と企業を危険にさらす
- コンテンツ管理システムのセキュリティ
- SQLインジェクションSQLインジェクション
- OWASPトップ10 - 儲かる退屈なセキュリティ
- とにかく機能する、最も間抜けなサイバー脅威トップ5
SQLインジェクションがビジネスに与える影響とは?
当社の「サイバー犯罪の手口とテクニック」レポートで報告されているように、2018年下半期に企業に対するサイバー攻撃(あらゆる種類の)が55%増加したのに対し、個人消費者に対する攻撃はわずか4%しか増加しなかった。この統計は驚くべきものではない。セキュリティが不十分な企業は犯罪者にとって格好の標的であり、数百万ドル相当の貴重なデータの宝庫である。
逆に、データ侵害の中心となった企業は、数百万ドルを支払うことになるだろう。IBMの調査によると、データ侵害の平均コストは、修復費用と罰金を含めて386万ドルである。 LinkedIn 先に述べたデータ漏洩事件は、最終的にビジネスネットワーキングサイトが示談で125万ドルを支払う結果となった。
データ流出後、ターゲットは複数の州による調査の和解金として史上最高額の1850万ドルの支払いを余儀なくされた。これは、消費者が起こした集団訴訟の和解金1000万ドルとは別に支払われたものである。
もちろん、これらは数百万人の消費者に影響を与える巨大なデータ漏洩である。しかし、中小規模の企業であれば、盗まれた消費者記録1件につき148ドルを支払うことになる。
この話の教訓は?セキュリティに真剣に取り組み、サイバー犯罪者の「標的」にならないようにしましょう。
SQLインジェクションを防ぐには?
この手の話はさておき、SQLインジェクションが深刻な脅威であることを知っているからこそ、あなたはここにいるのだ。さあ、何とかしましょう。SQLインジェクション攻撃からビジネスを守るためのヒントをいくつか紹介しよう。
データベース管理ソフトをアップデートしてください。あなたが使っているソフトは、メーカーから出荷された時点で欠陥があります。これは事実です。バグのないソフトウェアなど存在しないのです。サイバー犯罪者はSQLIを使って、このようなソフトウェアの脆弱性(エクスプロイト)を利用することができます。データベース管理ソフトウェアにパッチを当て、アップデートするだけで、自分自身を守ることができます。
最小特権の原則(PoLP)を実施する。PoLPとは、各アカウントが仕事をするのに十分なアクセス権だけを持ち、それ以上のものは持たないということです。たとえば、あるデータベースへの読み取りアクセスだけが必要なウェブ・アカウントは、データの書き込み、編集、変更の能力を一切持つべきではない。
プリペアド・ステートメントまたはストアド・プロシージャを使用する。動的SQLとは対照的に、プリペアド・ステートメントは入力されるSQLコマンドの変数を制限します。こうすることで、サイバー犯罪者は正当なSQL文に悪意のあるSQLインジェクションをピギーバックさせることができなくなる。ストアドプロシージャも同様に、ユーザがウェブアプリケーションから実行する SQL 文をデータベースに保存することで、サイバー犯罪者ができることを制限します。
有能で経験豊富な開発者を雇うこと。SQLI攻撃は多くの場合、ずさんなコーディングに起因する。ソフトウェア開発者には、セキュリティに関してあなたが何を期待しているかを事前に伝えておきましょう。
データ侵害で個人情報が盗まれたら? データ漏洩チェックリストをご覧ください。SQLI攻撃によるデータ漏えいの影響を受けた後の後始末と安全確保について、すべて学ぶことができます。
OWASPをご覧ください。Open Web Application Security Project、略してOWASPは、ウェブアプリケーションに関する権威で、SQLインジェクションを防ぐ方法について、たくさんの追加情報があります。
もしあなたがSQLインジェクションについてもっと知りたいというのであれば、 Malwarebytes Labsブログにアクセスして、サイバー脅威とサイバーセキュリティの世界における最新の動向をチェックしてみてください。