SQLインジェクションとは?
手口や脅威、具体的な対策方針まで解説

SQLインジェクションとは?手口や脅威、具体的な対策方針まで解説

SQLインジェクションとは、Webアプリケーションのデータベースを不正に攻撃するサイバー攻撃のひとつです。今回は、攻撃の仕組みや手口、SQLインジェクションの種類、攻撃を受けたときの被害・脅威について解説します。その上で、SQLインジェクションに有効な対策を考えていきます。

SQLインジェクションとは

「SQL」とは、コンピュータのデータベースの処理を指示するときに使われる「データベース言語」のひとつです。

「インジェクション」は英語で「注入」を意味します。「SQLインジェクション」は、Webアプリケーションのデータベースを不正に操作する攻撃手法で、この攻撃を行うときにSQL文を注入することから、このような名前が付けられています。会員登録が必要なWebサイトやECサイトなどの多くは、データベースで会員情報を管理しており、SQLインジェクションによって会員情報を盗み出したり、ログインを阻止したりすることができます。

SQLインジェクションの手口

SQLインジェクションは、ウェブサイトやWebアプリケーションに脆弱性があるところに攻撃します。たとえば、ユーザIDやパスワードを入力するログイン画面で、Webアプリケーションが入力値を適切に処理できないエラーが発生している場合、SQL文を含む文字列を入力フォームに入力すると、その不正なSQLを命令として受け取り、データベースの操作が可能となってしまうのです。

SQLインジェクションのパターン

SQLインジェクションはWebサイトの入力フォームなどにSQL文を注入するのが一般的です。そのため、攻撃者は脆弱性のあるECサイトやWebサイトを探してターゲットとします。そして入力フォームに不正なSQL文を注入し、不正な操作を行うのがSQLインジェクション攻撃のパターンです。

SQLインジェクションによる被害・脅威

SQLインジェクションによって、具体的にどのような被害を受けることになるでしょうか。

サイトの改ざん

近年SQLインジェクションの被害で多くなっているのが、Webサイトの改ざんです。情報処理推進機構(IPA)の最新の報告によると、届出された被害について、57%ともっとも多いのが「サイト上への偽情報の表示」でした。Webサイトの内容を勝手に書き換えられたり、一部を削除されたりする被害が起きています。
Webサイトの改ざんが行われると、そのWebサイトを訪れたユーザは偽の情報を受け取ることになり、利用者までをも巻き込む被害を受けることになります。

参考:ソフトウェア等の 脆弱性関連情報に関する 届出状況 [2022年第 四半期](IPA)

個人情報や機密情報の漏洩

情報漏洩はSQLインジェクションの被害でも一般的です。データベースに保存されている個人情報や機密情報は高値で取引されるもののため、攻撃のターゲットになりやすいです。また、特にECサイトではクレジットカード情報が蓄積されているので、クレジットカード番号や名義などが漏洩すれば、金銭的な被害を生み出すことも考えられます。過去には、SQLインジェクションの攻撃を受けたECサイトが、クレジットカード情報を含む10万件以上の顧客情報が流出する被害を受けたこともあります。

また、現在開発している新商品の情報や内部資料など、企業にとって大切な情報が漏洩する可能性も考えられます。どの企業にも取引先や競合他社には知られたくない企業秘密があるものです。そのような大切な情報が漏洩すれば、企業としての信用を失うばかりでなく、今後のビジネスにも大きなダメージを受けることになりかねません。

データベースの全消去・破壊・乗っ取り

SQLインジェクションではデータベースを不正に操作できるため、データベースを全て消去・破壊したり、乗っ取りをすることも可能になります。

データベースは企業が蓄積してきた財産のひとつです。それを一気に消去されたり、破壊されたりすることも考えらえます。また、システム自体が乗っ取られる可能性もあります。仮に、それが金融機関のサービスであれば、不正な送金などが行われかねません。

マルウェアの拡散に利用される

SQLインジェクションによって、企業が保有しているメールアカウントが不正に操作され、それらのメールアドレス宛に、マルウェアの拡散を目的とした大量のメールを送りつけることも考えられます。SQLインジェクションによる被害には、企業が不正行為に利用されてしまうことも含まれます。

SQLインジェクションの有効な対策方針は?

SQLインジェクションの有効な対策方針は?

入力値を制限する

先に紹介したように、SQLインジェクションは、Webサイトの入力フォームなどの入力画面にSQL文を注入することで攻撃を仕掛けます。そのため、Webサイトの入力画面で入力値を制限することが、有効な対策として挙げられます。 例えば、英数字しか入力できないようになっている入力フォームでは、文字列がWebサイトの仕様に沿って入力されているか判断する機能があるといいでしょう。そして、規定した文字以外が入力されたらエラーメッセージを表示させて、再入力を促すような仕組みが必要になります。

プレースホルダーを利用して入力値を変数にして格納する

SQLインジェクションの対策として有効なのが、「プレースホルダー」と呼ばれる仕組みです。これは、SQL文の中でなんらかの値を入れたい部分に「?」などの記号を置いて、後からその部分に数字を当てはめる処理をいいます。SQL文で変動する箇所にプレースホルダーを使っておくと、SQL命令となる文が無効化され、データベースに命令を出せない状態となります。

動作環境を更新して常に最新の状態に保つ

各種の動作環境を常に最新のバージョンにアップデートしておくことも大切です。これはSQLインジェクションに限らず、あらゆるサイバー攻撃やマルウェア対策でも共通することとして、改めて認識しておくことをおすすめします。 例えばWebサイトでよく使われるWordPressや各種プラグインなどは、発見された脆弱性を修正したものが常にアップデートされています。Webサイトをいつも最新のバージョンにして使うことで、SQLインジェクションのような攻撃のリスクを減らすことができます。

エスケープ処理・サニタイジングを行う

エスケープ処理は、プログラム言語のなかで使う特殊記号を、記号としてではなくただの文字として扱いたいときに行う処理をいいます。例えば、「”」の記号はプログラミング言語でも使われます。しかしWebサイト上で文字のひとつとしてこれを表示したいときは、このままでは正しく指示できないため、代わりに「¥」のマークを使います。このようにして、SQL文に悪用される文字を別の無害な文字に書き換えてしまい、命令を出せないようにします。

「サニタイジング」は、プログラムにとって意味を持つ文字や文字列を検知し、それを無害な表記に置き換えることを指し、エスケープ処理と同じように無害化できるメリットがあります。

WAFの導入を検討する

WAFとはWeb Application Firewallの略で、Webサイト上のアプリケーションに特化したファイアウォール(Firewall)のことを言い、SQLインジェクション対策としてよく知られています。 一般的なファイアウォールでは難しい場合でも、WAFならアプリケーションレベルで不正な攻撃から守るように作られています。

セキュリティの脆弱性を診断する

これまでにも紹介したように、SQLインジェクションの攻撃者は脆弱性のあるWebサイトを探してターゲットにしていきます。そのため、企業が運営するWebサイトやECサイトに脆弱性がないのかを常にチェックすることが大切です。

脆弱性は自分で判断することは難しいため、専門家に任せる必要があるでしょう。そこでおすすめなのが、NECフィールディングの「Webセキュリティ診断サービス」。稼働中のサーバを停止することなく、セキュリティエンジニアが診断用PC・携帯端末を通してWebサイトの安全性についてチェックを行います。その後は、リスクや対処法も含めた検出結果を報告書としてまとめます。 実際に利用した方からは、「思わぬ脆弱性が見つかった」「スマホ向けコンテンツでも、的確な診断を得られた」などの声を受けています。企業の社会的信用を失わないためにも、脆弱性のチェックから始めてみることを検討してはいかがでしょうか。

詳しくはこちら>> https://solution.fielding.co.jp/service/security/websecurity_check/

不正なSQLインジェクションから守ろう

データベースに不正な攻撃を仕掛けてくるSQLインジェクションについて解説しました。年々多様化し、被害数が増えているサイバー攻撃のなかでも、SQLインジェクションは大切な顧客情報を漏洩させたり、機密情報を損失させたりすることにつながりかねません。SQLインジェクションの被害で個人情報を大量に漏洩させ、多大な損害を受けた企業もあります。

顧客や取引先に迷惑をかけたり、これまで築いてきた企業としての信用を失わないためにも、SQLインジェクションの手口や仕組み、有効な対策について改めて考えてみてはいかがでしょうか。

発行元:NECフィールディング編集部

お客さま事業・業務にお役立ていただける情報をお届けします。
ご相談はお問い合わせフォームよりご連絡ください。

お問い合わせフォーム:https://solution.fielding.co.jp/contact_form/

※当社は法人向けサービスを提供しているため、個人のお客さまに対してはサービス提供できません。
 あらかじめご了承ください。

NECフィールディングはお客さまのビジネスを支援するITシステムの設計・構築からその後のITシステムの運用・管理・保守までを幅広くサポートします!IT機器・システムはもちろん、それ以外の機器やNEC製品以外の機器(マルチベンダー)の対応も行なっています。
NECフィールディングは、3つの強み(技術力・展開力・ナレッジマネジメント力)を活用し、お客さまの課題や事業プランに合わせて、最適なビジネス環境をお客様と一緒に構築していきます。
全国47都道府県にサービス拠点を構えているため、24時間365日、いつでもどこでもスピーディにサービス提供が可能です。ITシステム(ビジネス)のことなら60年以上にわたり、常にお客さまのそばで、お客さまのさまざまな課題を解決してきたNECフィールディングまでご相談ください。

Copyright © NEC Fielding, Ltd, 2022. All rights reserved.