セキュリティ

攻撃の被害を最小限に!
知っておくべきSQLインジェクションの仕組みとは

掲載日:2023/04/25

攻撃の被害を最小限に!知っておくべきSQLインジェクションの仕組みとは

株式会社サイバーセキュリティクラウドが発表した調査によると、2022年にSQLインジェクションと呼ばれるサイバー攻撃の検知件数が跳ね上がった日があったという。これはロシアによるサイバー攻撃によるものと見られており、予断を許さない状況が続く。企業がその標的となることもあるSQLインジェクションに対し、どのような対策の手段を取れば良いのだろうか。

SQLインジェクションの特徴

近年はサイバー攻撃の方法が多様化し、多くの企業がその対策に頭を悩ませていることだろう。そのような中で存在感を増しているのが、Webサイトに対するSQLインジェクションというサイバー攻撃の手口である。

SQL(Structured Query Language)とは、データベース言語の一種だ。データベースに対してデータの検索や更新などといった命令をする際に使われており、その互換性の高さや使い勝手の良さ故に世界中で広く活用されている。例えばWebサイトへのログイン情報やECサイトで買い物かごの中に商品が入っている状況などは、このSQLで管理されていることもある。

SQLインジェクションとは、不正にSQLをインジェクション(注入)し、書き換えることで外部からデータベースを操作することを指す言葉だ。これによって外部からデータベースへのアクセスを許してしまい、結果的に情報漏えいや情報の改ざんの原因となるというわけである。

一般的にWebアプリはこのように想定外の書き換えが発生した場合、エラーとして処理するなどして自動的に防御が行われるが、近年はあらかじめセキュリティの脆弱性を把握することで、この防壁を突破する手口が横行している。

SQLインジェクションの危険性

SQLインジェクションの問題は、それによってもたらされる被害が多方面に悪影響を及ぼしかねないことである。

第一に注意すべき点は、顧客の個人情報や社内機密が漏えいすることである。漏えいした情報が不正に公開され顧客や取引先企業などの信用を失うという懸念はもちろん、近年その情報を人質に身代金を要求されるという「二重脅迫」のケースも増加している。このようなどう喝の手法はしばしばランサムウェアによる不正アクセスで見られるものだが、SQLインジェクションにおいても通用すると考えられる。実際、2023年に警視庁が発表した内容によるとランサムウェアの被害件数は2021年に比べ1.5倍に増えており、同様にSQLインジェクションの被害も増加することは避けられないと考えるのが妥当だろう。

また、SQLインジェクションの特徴であるデータベースの書き換えにより、Webサイトのサービスが運営できなくなるという被害も発生している。Webサイトの表示内容が意図しないものに書き換えられるといったケースに加え、コンピューターウイルスを仕込まれるというケースもあり、このような事態が発生した場合は顧客に重大な不信を抱かせることは避けられない。改修のためにWebサイトを一時的にクローズすることはもちろん、最悪の場合は事業を停止せざるを得ないという状況も考えられる。従って、いまやSQLインジェクション対策はBCP対策の一環であるとも言えよう。

SQLインジェクションの具体的な対策

では、SQLインジェクションの被害を未然に防ぐためには、具体的にどのような対策が必要なのだろうか。シンプルかつ簡単な対応策としておすすめしたいのが、Webサイトでエラーが発生した際に表示されるエラーメッセージの内容の詳細を表示させないようにすることである。エラーメッセージにテーブル名やデータベース名が表示されている状態は、攻撃者側へのヒントになり得る。不必要な情報は見せないことが望ましい。

また、ファイアウォールやIPS/IDSといった一般的な検知・防御システムに加え、別途WAF(Web Application Firewall)を導入することも効果的である。WAFはアプリの脆弱性対策に特化したセキュリティシステムであり、通信内容の解析や検知といった分野で高い効果を発揮する。SQLインジェクションはまさにアプリに対する不正な通信そのものであるため、導入相性が良いと言えるだろう。

SQLインジェクションは時に被害が深刻化するという側面こそあるものの、その攻撃の手口自体は非常にシンプルであり、専門的な知識のない人間でもある程度の対策が可能だと言われている。その仕組みを理解しないまま被害に遭って身代金を要求され、焦って不用意に翻弄(ほんろう)される……といった事態を防げるよう、未然に知識を蓄えておくことが重要だろう。