Webサイトの脆弱性は、インターネットを活用する企業活動に多大な悪影響を及ぼします。
情報漏洩による被害が頻繁にニュースで取り上げられるなど、サイバー攻撃による被害が多発しています。インターネットを活用したビジネスを展開していく上では、Webサイトの運営担当者は脆弱性についての知識を身に付け、被害を未然に防ぐ対策を取ることが必要不可欠となっています。
本稿では、Webサイトの脆弱性による被害とその対策について解説します。
Webサイトの脆弱性とは
Webサイトにはさまざまな脆弱性、それを悪用した攻撃がありますが、その中でも「SQLインジェクション」「クロスサイトスクリプティング」「OSコマンドインジェクション」「ディレクトリトラバーサル」「バッファオーバーフロー」の5つは、攻撃による影響が大きいものやよく知られた脆弱性であり、適切な対策が求められます。
SQLインジェクション
外部からSQL文を含んだリクエストを送信して不正にデータベースを操作する攻撃、またはその脆弱性がSQLインジェクションです。
「SQL」とはデータベースの定義や操作を行うための言語です。不正なSQL文をインジェクション(注入)することで、データベースを直接操作されてしまうため、数万件や数十万件、場合によってはそれ以上の大規模な情報漏洩につながる危険性があります。
Webサイト内の商品やキーワード検索できるフォームに対して攻撃を仕掛けられることで、Webサイトからデータが窃取されたり、改ざんされるなどの被害を受ける恐れがあります。
SQLインジェクションは、非常に危険であり、特に注意しなければならない脆弱性の1つです。
クロスサイトスクリプティング
Webの利用者が脆弱な標的サイトにアクセスした際、ウェブサイトが本来想定していない機能(スクリプト実行など)をブラウザ側で実行させる攻撃のこと、またはその攻撃が可能な脆弱性がクロスサイトスクリプティング(XSS)です。
問い合わせページなどにある入力フォームなど、外部からの入力に応じてページを表示するWebアプリケーションにおいて、HTML生成の実装に問題があることで生じる脆弱性です。
攻撃者は不正なスクリプト実行を意図したリンクを用意し、ユーザーを誘導します。ユーザーが罠にかかり、リンクをクリックすることで、ユーザーのブラウザ上で不正なスクリプトが実行されます。
その結果、Cookieなどの情報を盗まれてなりすましが発生したり、書き換えられたWebページから個人情報が盗まれるなどの被害が生じます。
OSコマンドインジェクション
ユーザーからデータや数値の入力を受け付けるWebサイトにおいて、OSコマンドを呼び出す機能を有している場合、その実装に不備があると外部の第三者によってOSコマンドを実行されてしまい、意図しない不正な命令を許してしまう恐れがあります。このような脆弱性およびそれを悪用した攻撃をOSコマンドインジェクションと呼びます。
攻撃者によって送られた攻撃リクエストをもとに、Webアプリケーション内で入力値・コマンド文字列が組み立てられます。そこで生成された不正なOSコマンドがシェルによって解釈され、Webサーバーが本来想定していないコマンドを強制的に実行させられるという流れで、OSコマンドインジェクションは発生します。
OSコマンドインジェクション攻撃を受けると、攻撃者によって自由にWebサーバー上のデータを操られてしまうため、情報漏洩やデータの改ざんや削除、踏み台への悪用などの被害が発生する恐れがあります。
ディレクトリトラバーサル
ディレクトリトラバーサルは、ディレクトリパスをさかのぼってサーバー上のファイルに不正にアクセスする攻撃です。
OS上のファイルは、ディレクトリの中にファイルが存在し、また別のディレクトリが存在する階層構造によって管理されています。
検索サービスやオンラインショッピングなどのWebアプリケーションにおいて、パラメータとしてファイル名を扱う場合の実装に問題があると、意図していないファイルにアクセスされ、外部の第三者に重要な情報が漏えいする恐れがあります。
攻撃者はパラメータに「../」のような親ディレクトリを示す表記を混入させて、ディレクトリ階層を移動して任意のファイルにアクセスしてきます。ディレクトリトラバーサルが生じると、Webサーバーのファイルを参照されたり、改ざんや削除される可能性があります。
バッファオーバーフロー
バッファオーバーフローとは、コンピューター上のプログラムが所有する領域であるバッファに対して、処理できる量以上のデータが送られることでバッファの範囲外のメモリを上書きし、システムの誤作動を起こすことを「バッファオーバーフロー攻撃」といいます。
バッファは、プログラムの実行命令を格納する「コード領域」、プログラムの戻り先など実行のための一時的な情報を格納する「スタック領域」、計算や操作を行うためのデータを格納する「ヒープ領域」の3つの領域から構成されています。
それぞれのデータを格納する際には、それらに必要な領域が確保されます。そしてその指定領域内に、攻撃者からの機械語プログラムが送り込まれて攻撃コードが実行されてしまうと、最悪のケースではコンピュータ全体の制御が奪われる恐れがあります。
Webサイトの脆弱性対策を怠ってはいけない理由
Webサイトの脆弱性による被害は、企業活動に甚大な影響を及ぼす恐れがあります。
例えばSQLインジェクションでは、企業の大切な情報を保護するデータベースに直接アクセス・操作されてしまうため、不正操作やデータベースの改ざんはもちろん、企業の機密情報や顧客情報の漏洩につながります。
他にもなりすましや改ざん、マルウェア拡散やスパム配信、他のサーバーへの攻撃の悪用(踏み台)など、さまざまな被害や影響が生じます。
特に情報漏洩は企業内の問題だけではなく、取引先や顧客にまで大きな被害が及びます。企業経営や利益の損害だけでなく、社会的信頼を失う原因ともなるため、Webサイトの脆弱性対策は必須であり、経営者主導で積極的に取り組むことが重要です。
Webサイト運営で押さえるべき対策
Webサイトにおけるセキュリティ対策には、さまざまな種類があります。先ほどご紹介した脆弱性は、第三者からの攻撃によって起こるものです。そのため、システム面から対策を行うことが重要となります。
はじめに、Webサーバーを設置しているネットワークのセキュリティが万全であるか確認しましょう。第三者による不正アクセスを防ぐためにも、ファイアウォールやIPS (不正侵入防止システム) を設置し、第三者の侵入経路を断つことが大切です。
続いてWebサーバーのセキュリティも確保しなければなりません。OSやソフトウエアなどは脆弱性に対処するために定期的に更新が行われます。こまめな更新で、常に最新状態を維持するように心がけましょう。また、ファイルやディレクトリの適切なアクセス制御も忘れずに設定するようにしましょう。
Webアプリケーションの対策は、セキュアな開発を行うことが重要であり、根本的な対策となります。しかしながら、人の手によって作られるため、完全なシステムや脆弱性ゼロは困難であるのが実情です。
そのため、保険的な対策としてWAFが有効活用されています。WAFを導入することで、SQLインジェクションやクロスサイトスクリプティングなどのWebアプリケーションの脆弱性を悪用する攻撃からWebサイトを保護することができます。
また、顧客の個人情報などの大切な情報を守るためにも、重要な情報を入力するフォームを設置する際は、必ず暗号化(SSL化)されたフォームを用いるようにします。
現在は、Webサイト全体をSSLで表示する常時SSL(Always On SSL)が一般的になっています。
Webサイトの脆弱性を診断
何事も状況を把握することが大切です。Webサイトに脆弱性がないか、発見した場合に適切な対処を行うためにも、定期的なWebサイトの脆弱性診断が有効です。
脆弱性診断は国が推奨する施策でもあり、IPAでは13の診断項目から危険度の高い脆弱性の検出パターンや、脆弱性の有無の判定基準を提示する「ウェブ健康診断仕様」を公開しています。
脆弱性診断には、業務システムなどに対するプラットフォーム診断と、Webアプリケーション診断があります。また、ツールを利用した脆弱性診断と、プロの観点で実施するマニュアルでの脆弱性診断があります。
コストを抑えてスピーディーに脆弱性診断を行いたい場合は診断ツールを活用し、より専門的且つ詳細な診断を必要とする場合は、プロによるマニュアル診断を活用するのが良いでしょう。
まとめ
Webサイトの脆弱性対策を怠ると、企業利益の減少や社会的信頼の損失など、企業にとって大きな損害が生じます。セキュリティ事故を未然に防止することは企業の責務です。
Webサイトへのセキュリティ対策には費用がかかりますが、経費でなく「投資」と捉え、注力することが大切です。
EGセキュアソリューションズ株式会社では、セキュリティ診断サービスを提供しており、プラットフォーム、Webアプリケーションなどの脆弱性診断が可能です。
このほかにも、純国産ソフトウェア型WAF「SiteGuardシリーズ」を開発・販売しており、Webアプリケーションの脆弱性への包括的な対策が可能です。クラウド型、ホスト型、ゲートウェイ型のWAFをご用意しておりますので、様々な要件に対応することが可能です。
脆弱性診断、WAFの導入をご検討の際は、ぜひ当社までご相談ください。
- カテゴリ:
- Webセキュリティ
- キーワード:
- 脆弱性