SQLインジェクションとは。攻撃の仕組みや被害事例を解説

皆さんはサイバー攻撃の被害に遭ったことがありますか?

近年、急増しているインターネット上の脅威は、特定の企業や個人に対してだけではなく、私たち普通の個人も被害を受ける可能性があるものです。

SQLインジェクションは、サイバー攻撃の中でも被害事例の多い代表的なものの一つです。

今回は、SQLインジェクションについてクロスサイトスクリプティング攻撃との違いや、事例、対策など解説します。

WinserverVPSWAF導入可能
共用サーバーWAF導入済み
\2週間無料・丁寧な電話サポート/
WinserverVPSを無料で試す
Winserver共用サーバーを無料で試す

SQLインジェクションとは

SQLインジェクションとはどのような攻撃手法なのでしょうか。

まずは、SQLインジェクションの概要について見ていきましょう。

そして、こうした攻撃が増えてきた背景についても解説します。

SQLインジェクションの概要

最初にSQLインジェクションとはどのようなサイバー攻撃なのでしょうか。

SQLインジェクションの概要について見ておきましょう。

簡単に言うと「SQLインジェクションは、外部から不正なSQLを送信することで、データベースを不正に操作する」ものです。

詳しくは後ほど解説しますが、Webアプリケーションなどでは、データベースで情報を管理しているものが多くあります。

これらに対して、SQLインジェクションを行うことで、不正に情報を取得、書き換えなどを行われてしまう恐れがあります。

SQLインジェクションが増加する背景

サイバーセキュリティソリューションを提供するグローバル企業であるチェック・ポイント・ソフトウェア・テクノロジーズによると、2022年第二四半期の調査結果では、サイバー攻撃が前年同期比32%増の過去最悪の数字となっています。

(参照「Check Point Research: Weekly Cyber Attacks increased by 32% Year-Over-Year; 1 out of 40 organizations impacted by Ransomware」)

また、インターネットサービスプロバイダなど通信事業を行なっている株式会社インターネットイニシアティブ(IIJ)の「wizSafe Security Signal 2022年6月 観測レポート」によると、攻撃全体の39.03%がSQLインジェクションと最も多くなっています。

(参照「wizSafe Security Signal 2022年6月 観測レポート」)

このようにSQLインジェクションが増加する背景には、以下のようなものがあります。

  • 攻撃によって得られる情報の価値が高い
  • 手軽に情報を得ることができる
  • 対策に対する認識が低いケースが多い

など

SQLインジェクションの攻撃方法とは

SQLインジェクションはどのような手口で行われるのでしょうか。

以下では、SQLインジェクションの仕組みと流れについて解説します。

 SQLとは

SQLインジェクションについて掘り下げていく前に、少しSQLについて触れておきましょう。

SQLとは、現在主流になっているRDBMS(リレーショナルデータベース)でデータベースの操作や定義を行うための言語です。

RDBMSにはMySQLやOracleなどWebサービスなどでも一般的によく使われるデータベースが含まれます。

SQLはこれらを操作するための言語で、SQLを使うことでデータを追加、削除などを行うことができます。

SQLインジェクションの仕組み

SQLについて理解できたところで、本題であるSQLインジェクションの仕組みについて見ていきましょう。

SQLインジェクションは、概ね以下のような流れで行われます。

①検索ボックスやコメントボックスなどに不正なSQLを入力する

②SQLが実行されてしまう

③サイト運用者が意図しないうちにデータベースに接続される

④不正に情報を取得するなど、データベースが操作されてしまう

このように、SQLインジェクションではWebサイトに普通に存在するコメント機能などから脆弱性を利用されてデータを盗まれるという怖さがあります。

SQLインジェクションの被害事例

先ほども触れたようにサイバー攻撃の中でも、SQLインジェクションの被害は非常に多くなっています。ここでは、いくつか具体的な被害事例を紹介します。

<ケース1:矢野経済研究所でのメールアドレス漏洩>

2022年6月に発表された事例で、市場調査会社の矢野経済研究所のサイトにSQLインジェクションが仕掛けられたもの。

この攻撃の結果、メールアドレスやパスワード10万件余りが流出することとなった。

<ケース2:名古屋大学でのメールアドレス漏洩>

先ほどと同じく2022年6月に発表された事例で、5月に名古屋大学の情報システムに関する質問を受け付けるシステムが攻撃を受け、メールアドレス2086件が漏洩したもの。

データベースの応答時間やステータスから間接的に情報を収集するブラインドSQLインジェクションという攻撃手法が使われたとされる。

<ケース3:日能研でのメールアドレス漏洩>

2022年に1月に発表された事例で、2021年12月に同社のWebサーバーが攻撃を受け、メールアドレス28万件が流出した事例。

このように、SQLインジェクションによる情報の漏洩は、一度発生すると大きな問題になります。

SQLインジェクションとクロスサイトスクリプティングの違い

サイバー攻撃には、さまざまなものがあります。

SQLインジェクションとよく混同されることのあるクロスサイトスクリプティングもその一つです。

では、両者の違いはどこにあるのでしょうか。

クロスサイトスクリプティングとは

まずクロスサイトスクリプティングとは、どのような攻撃なのでしょうか。

端的に言うと、「クロスサイトスクリプティング攻撃は、Webサイトに対する脆弱性を悪用したもの」です。この点については、SQLインジェクションとも共通しています。

攻撃の特徴としては、以下の3点が挙げられます。

  • Webサイトの脆弱性を悪用した攻撃である
  • ターゲットとなる利用者に悪質なサイトを訪問、あるいはファイルのダウンロード、実行などをさせる
  • 不正に情報の取得などを行う

このように、クロスサイトスクリプティングは、SQLインジェクションのようにデータベースをターゲットとはしてないという特徴があります。

SQLインジェクションとクロスサイトスクリプティングの違いとは

クロスサイトスクリプティングがどのようなものか理解できたところで、SQLインジェクションとの違いを見ていきましょう。

以下の表に、両者の違いを整理しました。

 SQLインジェクションクロスサイトディスクリプティング
ターゲットWebサイトやWebアプリケーションを通してデータベースを攻撃する脆弱性のあるWebサイトやWebアプリケーションを攻撃する
攻撃目的データベースのデータ取得やデータの改ざんなどWebサイトやWebアプリケーションのデータ取得や改ざんなど
攻撃主体悪意を持つ人物悪意を持つ人物
プログラムの実行場所サーバー(SQLが働くのはデータベース)ユーザーのWebブラウザ(クライアント側)
攻撃に遭う前提条件SQLを使うデータベースがあること特になし
攻撃を防ぐ対策ソースコードでの対策、文字種の制限などソースコードでの対策
WAFの設置

このように見ていくと、やはり大きな違いとしてはSQLインジェクションがデータベースをターゲットとしているのに対して、クロスサイトスクリプティングはWebサイトやWebアプリケーションをターゲットとしているという点です。

 SQLインジェクションによる攻撃を防ぐ方法

先ほども事例を紹介したように、サイバー攻撃はひとたび発生すると、重要な情報を盗み出されたり、破壊や書き換えをされたり、などといった被害につながる恐れがあります。

ビジネスや個人にとっても情報の重要性が増している中で、こうしたことは大きな問題です。

では、どのような方法で被害を防ぐことができるのでしょうか。

ここでは、SQLインジェクションに注目して見ていきましょう。

SQLインジェクションを防ぐための方法には、大きく以下の3つの方法があります。

  • ソースコードでエスケープ処理を行う(特殊文字を普通の文字として認識させるなど)
  • 検索ボックスやコメントボックスでの文字種の制限(特殊文字を使えなくするなど)
  • データベースのログ等の監視

など

これ以外にも、ソフトウェアの修正パッチ等は最新のものを適用するなど、一般的なセキュリティ対策ももちろん有効なので忘れずに行うようにしましょう。

まとめ

WebサイトやWebアプリケーションなども含め、さまざまなシステムをターゲットとしたサイバー攻撃は近年急激に増えています。

この理由には、オンラインショッピングやSNSなどインターネット利用の拡大だけでなく、テレワークやリモートワークなど働き方、生活スタイルの変化なども大きく影響していると考えられます。

今回、解説したSQLインジェクションは、さまざまな情報を管理し格納しているデータベースに対して脆弱性を悪用してデータの取得や改ざん、消去などを行うものです。

現代社会で情報は、非常に重要な価値を持ちます。

ひとたび攻撃を受けて情報が漏洩してしまうと大変な問題となる可能性もあります。

こうしたことにならないように、今回解説した内容を参考にしっかりとした対策を行いましょう。

NVIDIA製GPU搭載
高性能・高火力の専用サーバー!
「Tesla V100」「RTX-5000」「RTX-4000」

▶ プランを見る

関連記事

サーバーの基礎知識

TOP