ウェブアプリケーションの脆弱性とは何でしょうか?

ウェブアプリケーションの脆弱性は、ウェブベースのアプリケーションのシステム上における欠陥や弱点を含みます。これは、フォーム入力の検証や部分的削除を行っていないこと、ウェブサーバの設定ミス、アプリケーションの設計上の欠陥などが主な原因で、何年も前から存在しており、アプリケーションのセキュリティを侵害するために悪用される可能性があります。これらの脆弱性は、ネットワークやアセットなどの一般的なタイプの脆弱性とは異なります。ウェブアプリケーションは、複数のネットワークを介して複数のユーザーとやり取りする必要があり、そのアクセス性の高さがハッカーに利用されやすいことが原因です。

アプリケーション専用に設計されたウェブアプリケーションセキュリティソリューションもありますが、組織のアプリケーションセキュリティのギャップを特定するためには、従来の脆弱性スキャナー以外にも目を向けることが重要です。リスクを正しく理解するために、ウェブアプリケーションやサイバーセキュリティの攻撃の種類およびウェブスキャナがアプリケーションの安全性を強化する仕組みについて、詳しくご覧ください。

SQLインジェクション攻撃について

Structured Query Language(SQL)は、アプリケーションの情報管理や指示に広く使用されるようになったため、ハッカーたちは独自のSQLコマンドをデータベースに忍ばせる方法を考え出しました。これらのコマンドは、データの変更、盗用あるいは削除を行う可能性があり、また、ハッカーにルートシステムへのアクセスを許容させる可能性もあります。SQL(正式にはess-cue-elと発音しますが、一般的にはsequelと発音します)とはStructured query languageの略で、データベースと通信するためのプログラミング言語です。ウェブサイトやサービス向けに重要なデータを保管するサーバーの多くは、SQLを使ってデータベース内のデータを管理しています。

SQLインジェクション攻撃は、このようなサーバーを特にターゲットにしており、悪質なコードを使って、通常は非公開の情報をサーバーに開示させます。これは、クレジットカード番号、ユーザー名およびパスワード(認証情報)、その他の個人を特定できる情報など、ウェブサイトやウェブアプリケーションからの個人的な顧客情報をサーバーが保存している場合に特に問題となり、攻撃者にとって興味をそそり、儲かる標的となります。

SQLインジェクション攻撃が成功するのは、一般的に、脆弱なアプリケーションがユーザーからの入力を適切にサニタイズしておらず、SQLコードと推測されるものを取り除いていないためです。例えば、アプリケーションにインジェクション攻撃に対する脆弱性がある場合、攻撃者がウェブサイトの検索ボックスにアクセスして、サイトのSQLサーバーに保存されているユーザー名とパスワードをすべて投げ捨てるように指示するコードを入力することが可能になるかもしれません。

SQLインジェクション攻撃の詳細についてはこちらをご覧ください

クロスサイトスクリプティング(XSS)

SQLインジェクション攻撃では、攻撃者は脆弱なウェブサイトを狙って、ユーザー認証情報や機密性の高い財務データなど、保存されているデータを攻撃します。しかし、攻撃者がウェブサイトのユーザーを直接狙う場合は、クロスサイトスクリプティング攻撃を選択することもあります。この攻撃も、SQLインジェクション攻撃と同様に、ウェブサイトやウェブベースのアプリに悪質なコードを注入します。しかし、この場合、攻撃者が注入した悪質なコードは、ユーザーが攻撃を受けたウェブサイトを訪れたときに、ユーザーのブラウザ内でのみ実行され、訪問者を直接狙うことになります。

攻撃者がクロスサイトスクリプティング攻撃を仕掛ける最も一般的な方法の一つは、他の訪問者が感染したページを閲覧した際に自動的に実行される入力フィールドに悪質なコードを注入することです。例えば、ブログのコメントに悪質なJavaScriptへのリンクを埋め込むことができます。

クロスサイトスクリプティング攻撃は、悪質な行為が行われたことを示すことなく、ユーザーの情報を危険にさらすことで、ウェブ企業の評判を著しく低下させます。ユーザーがサイトやアプリケーションに送信した機密情報(認証情報、クレジットカード情報、その他の個人情報など)は、クロスサイトスクリプティングによって乗っ取られ、ユーザーはそもそも問題があることに気づくことができません。

クロスサイトスクリプティング攻撃の詳細についてはこちらをご覧ください

 

クロスサイト リクエスト フォージェリ(CSRF)について

クロスサイト リクエスト フォージェリ(CSRF)攻撃とは、被害者がログインしているウェブアプリケーション上で意図しない動作をさせられることです。ウェブアプリケーションは、被害者とそのブラウザをすでに信頼できるものと判断しており、被害者が騙されてアプリケーションに悪質なリクエストを送信すると、ハッカーが意図したアクションが実行されます。これは、ユーザーに対する悪気の無いいたずらから不正な送金まで、あらゆるものに使用されています。

ウェブサイトのオーナーが攻撃を受ける機会を低減させるためにできることの一つは、サイトやアプリのページを訪れる可能性のある人物に対して(特にソーシャルメディアやコミュニティサイトから訪れる場合)、高度な検証技術を導入することです。これにより、ユーザーのブラウザやセッションを特定し、その真偽を確認することができます。

ウェブアプリケーションの脆弱性を利用して、ハッカーがアプリケーションに侵入する方法は様々ですが、それに対する防御方法もまた様々です。広く公開されているアプリケーションを監視するために特別に設計されたウェブアプリケーションのセキュリティテストツールがあります。これらのスキャナーを使用することで、より安全なアプリケーションに必要な変更箇所を正確に示し、ハッキングの被害に遭う可能性を減らすことができます。