セキュリティ用語について調べていると、Webアプリケーションの脆弱性対策について記述されているWebサイトを目にする機会も多いでしょう。しかし、なぜWebアプリケーションの脆弱性対策が必要か疑問に思っている人もいるのではないでしょうか。そこで、この記事ではWebアプリケーションの脆弱性対策が必要な理由と、対策を怠ったときに起こりうるトラブルについて紹介していきます。
Webアプリケーションの脆弱性が注目を集めています。Webに接続するときには、デスクトップやノートパソコン、タブレット端末などを利用することが多いでしょう。Webに接続する人および使用している機器のことをクライアントと呼びます。それに対して、クライアントの要望に応じ、Webアプリケーションのコンテンツを提供するシステムはサーバーと呼ばれています。
ただし、クライアントとサーバーをつなぐ存在がなければ、Webアプリケーションは利用できません。IT用語では、クライアントとサーバーをつなぐ存在のことをWebと呼んでいます。セキュリティ対策はクライアントとサーバーの双方で行うことが重要です。攻撃者の目的がWebサイトの改ざんや重要情報の窃取などである場合に、Webサーバは不正アクセスの対象となり得ます。そのため企業側がWebアプリケーションを提供する情報システムに対して脆弱性対策などのセキュリティ対策を行う必要があります。
一般的なWebアプリケーションを提供する情報システムは、Webアプリケーションとシステム、ネットワークの3階層で構成されているのが特徴です。最下層のネットワークによってデータ通信を行い、中間層のシステム部分でアプリケーションが利用できる環境を整えています。そして、最上位のアプリケーション層で、webアプリケーションが提供するコンテンツに対するユーザーからのリクエストを実行しレスポンスとして返すような動作を行います。そのため、クライアントが安全に利用するためには、3つの階層すべてのセキュリティを高める必要があるといえます。
ネットワーク階層のセキュリティは、外部からの不正な侵入を、通信のプロトコルやIPアドレス、ポートを基準に判定する対策の導入で高めることが可能です。実際に、多くのWebアプリケーションでは、ファイヤーウォールや侵入を検知して防止するIPS/IDSなどのセキュリティ対策が施されています。ただし、IPS/IDSではDDoS攻撃などの防御は可能ですが、SQLインジェクションなどの攻撃手法に対しては検知精度が低いため、上位層に位置するWebアプリケーションを狙った攻撃のすべてを防ぐことはできません。
システムのセキュリティには、WindowsなどのOSが深く関係しています。OSを提供する事業者は、最新のウイルスや脆弱性に対する情報を得ているため、必要に応じてセキュリティの向上を目的としたアップデートを行っています。Webアプリケーションの管理者は常にシステムを最新のバージョンにアップデートすることで、一定のセキュリティが担保されているのです。とはいうものの、不正を試みる人物によってシステムの脆弱性は常に研究されており、いつ新しい手法で不正侵入が行われるか分かりません。システムのアップデートを行っているからといって、不正侵入の被害に遭わなくなるというものではないのです。
このように、ネットワークとシステム部分については、一般的にある程度のセキュリティ対策が行われています。しかし、Webアプリケーションについては提供企業などによりそれぞれ独自の構造で動作しているため、一概に強度の高いセキュリティを施すことができません。そのため、不正侵入を試みようとする攻撃者の格好のターゲットとされるようなことも起こり得ます。実際にWebアプリケーションを狙った攻撃として、SQLインジェクションやクロスサイトスクリプティングなどによる被害が増えてきています。OWASP という有名なWebセキュリティサービスを提供している団体によると、実際に起こっている攻撃の90%以上がWebアプリケーションを狙ったものだということです。つまり、Webアプリケーションの脆弱性に対策することは、クライアントとサーバーの双方に必要不可欠だといえます。
Webアプリケーションの脆弱性対策を行わないと、さまざまなトラブルが発生する可能性があります。そこで、どのようなトラブルが起きる恐れがあるのかについて、代表的な事例を3つ紹介していきます。
一般的に、Webアプリケーションを利用する際には、利用者はさまざまな利用者自身に関連する情報と紐づけられています。特にアカウントの作成時に住所や氏名などを登録しなければいけないアプリケーションは、多くの個人情報を保有しています。Webアプリケーションの脆弱性への攻撃手法としては、SQLという言語を用いたSQLインジェクションがあります。SQLインジェクションは、データベース操作言語を利用してWebアプリケーションに対して命令を実行し、通常行わないような命令を実行させることが可能です。たとえば、「データベースにある全ての個人情報を表示しろ」というような命令が実行可能です。
万が一、個人情報が外部へ流出してしまうと、Webサイトは信頼を失うでしょう。その結果、その企業への社会的信用は低下し、顧客離れが起きる可能性があります。コンプライアンスが重視されている昨今では、一般消費者の個人情報の管理体制への関心が高まっており、個人情報の外部流出が起きた企業の信用回復は容易ではありません。それまで経営が順調だった企業でも、その信用失墜が経営に影響を及ぼす可能性があることは十分に理解しておきましょう。
Webアプリケーションへの攻撃手法にはさまざまなものがあり、Webサイトの訪問者がターゲットとなる場合もあります。たとえば、ユーザーが利用している端末を乗っ取るケースです。代表的なものとして、ユーザーの端末を自由に操作できなくする、ランサムウェアと呼ばれるマルウェアを利用した攻撃手法があります。ランサムウェアとは、英語で身代金を意味する「ransom(ランサム)」から名づけられた攻撃手法です。ユーザーのパソコンなどの端末を動作不良にし、解除したい場合には一定額の支払いを要求してきます。
要求金額はさまざまですが、高額となるケースもあるので、注意しなければいけません。なお、ランサムウェアに感染する経路としては、SQLインジェクションによってリンク先が書き換えられたWebサイトへの訪問などがあります。ランサムウェアの感染源とならないために、SQLインジェクションへの対策も行いましょう。
Webアプリケーションに不正侵入され情報漏洩を起こした場合の被害は、情報を窃取された企業の社会的信用が低下することだけには留まりません。中には、情報を窃取された企業に対して、Webアプリケーションへのセキュリティ対策を怠り情報漏洩を引き起こした加害者としての責任を問う損害賠償請求が行われるケースもあります。賠償金額は窃取された情報の内容や、想定被害額によって異なりますが、数千万円程度になることも珍しくありません。
重要データを窃取された企業は、高額な賠償金の支払いだけでなく、信用回復に向けた新しいセキュリティ対策環境構築のための費用も必要となります。情報漏洩による損害賠償問題を抱える中で、このように新たなセキュリティ対策費用をかけることは企業にとって大きな負担となります。相応の費用が必要とされるセキュリティ対策ですが、万が一サイバー攻撃を受けた場合を考えると費用対効果に非常に優れているとは言えないでしょうか。
Webサーバーのセキュリティ対策としてWebアプリケーションを守ることが特に重要なのですが、Webアプリケーションのセキュリティ対策は、ネットワークやシステムに比べて認知度があまり高くない状況にあります。相応の費用が必要ではありますが、万が一の事態を想定した対策があれば安心できるのではないでしょうか。費用対効果を意識しながら、長期的な観点で検討してみましょう。
サイバーセキュリティクラウドが提供する「攻撃遮断くん」はWebサイト・Webサーバへのサイバー攻撃を可視化し、遮断するセキュリティサービスです。
ブルートフォースアタック、クロスサイトスクリプティング、Webスキャンと言ったサイバー攻撃をリアルタイムで検知・遮断しています。
ユーザーごとに提供される管理画面で、契約したWebサーバへの攻撃の情報を確認することができます。
(2020/02/10 執筆、2021/4/20修正・加筆)