こんにちは!イー・ガーディアンです。
昨今、情報漏洩等のセキュリティ被害が頻繁にニュースで取り上げられるなど、サイバー攻撃への脅威が高まっています。インターネットを活用したビジネスを安全に展開していくためには、Webサイトの運営担当者が脆弱性についての知識を身に付け、被害を未然に防ぐ対策を取ることが必要不可欠となります。
そこで、今回はWebサイトの脆弱性による被害とその対策について解説します。
■Webサイトの脆弱性とは
Webサイトの脆弱性とは、Webサイトを構成するシステムやプログラムなどの欠陥を意味し、セキュリティホールとも呼ばれています。
昨今のサイバー攻撃は、ECサイトやレビューサイト等インターネットを通じて利用できるアプリケーション「Webアプリケーション」をターゲットにしたものが多く、Webサービスが普及し利用者が増えていることから、被害の規模も拡大しています。
そんなWebアプリケーションの脆弱性の中でも、今回は被害や影響が大きいこと等から特に注目されている以下4つを紹介していきます。
- SQLインジェクション
- クロスサイトスクリプティング
- OSコマンドインジェクション
- ディレクトリトラバーサル
SQLインジェクション
「SQL(Structured Query Language)」とはデータベースの定義や操作を行うためのプログラミング言語で、SQL文を用いてデータの検索や追加などの命令を出すことができます。 このSQL文を含んだリクエストを外部から送信して不正にデータベースを操作する攻撃、またはその脆弱性が「SQLインジェクション」です。
字の通り、不正なSQL文をインジェクション(注入)することで、データベースを直接操作されてしまうため、数万件や数十万件、場合によってはそれ以上の大規模な情報漏洩につながる危険性があります。
例えば、Webサイト内の商品やキーワード検索できる入力フォームに対して攻撃を仕掛けられると、Webサイトからデータが窃取・改ざんされるなどの被害を受ける恐れがあるため非常に危険であり、特に注意しなければならない脆弱性の1つとされています。
クロスサイトスクリプティング(XSS)
Webの利用者を脆弱な標的サイトにアクセスするように仕向けることで、ウェブサイトが本来想定していない動作をブラウザ側で実行させる攻撃のこと、またはその攻撃が可能な脆弱性が「クロスサイトスクリプティング(XSS)」です。
問い合わせページなどにある入力フォームのような外部からの入力に応じてページを表示するWebアプリケーションにおいて、サイトの記述言語であるHTML生成の実装に問題があることで生じる脆弱性です。
攻撃者は不正なスクリプト(=簡易プログラム)実行を意図したリンクを用意し、ユーザーを誘導します。ユーザーが罠にかかり、リンクをクリックすることで、ユーザーのブラウザ上で不正なスクリプトが実行されます。その結果、Cookieの情報を盗まれてなりすましが発生したり、書き換えられたWebページから個人情報が盗まれるなどの被害が生じます。
OSコマンドインジェクション
「OSコマンド」は、OSに操作や実行を指示する文字列の命令で、例えば「指定した文字列を表示する」「ファイルをコピーする」のようなコンピュータの基本的な操作等を命令できる機能を指します。
ユーザーからデータや数値の入力を受け付けるWebサイトにおいて、OSコマンドを呼び出す機能を有している場合、その実装に不備があると外部の第三者によってOSコマンドを実行されてしまい、意図しない不正な命令を許してしまう恐れがあります。このような脆弱性およびそれを悪用した攻撃を「OSコマンドインジェクション」と呼びます。
OSコマンドインジェクション攻撃を受けると、攻撃者によって自由にWebサーバー上のデータを操られてしまうため、情報漏洩やデータの改ざん、削除、踏み台への悪用などの被害が発生する恐れがあります。
ディレクトリトラバーサル
OS上のファイルは、階層構造になったフォルダ内に保存されていますが、そのフォルダのことをコンピューターシステムの用語では「ディレクトリ」といいます。
検索サービスやオンラインショッピングなどのWebアプリケーションにおいて、パラメータとしてファイル名を扱う場合の実装に問題があると、特定のフォルダの所在を表す「ディレクトリパス」をさかのぼって、サーバー上のファイルに不正にアクセスされてしまうことがあります。これが「ディレクトリトラバーサル」です。
攻撃者はパラメータに「../」のような親ディレクトリを示す表記を混入させ、ディレクトリ階層を移動して任意のファイルにアクセスするため、ディレクトリトラバーサルが生じると、Webサーバーのファイルを参照されたり、改ざん・削除される可能性があります。
■Webサイトの脆弱性対策を怠ってはいけない理由
ここまでWebサイトの脆弱性の例として4つほど紹介してきましたが、これらを悪用した攻撃による被害は、企業活動に甚大な影響を及ぼす恐れがあります。
例えばSQLインジェクションでは、企業の大切な情報を保護するデータベースに直接アクセス・操作されてしまうため、不正操作やデータベースの改ざんだけでなく企業の機密情報や顧客情報の漏洩につながります。
他にもなりすましやマルウェア拡散、スパム配信、他のサーバーへの攻撃のための踏み台にされる等、様々な被害や影響が生じます。
特に情報漏洩は企業内の問題だけではなく取引先や顧客にまで大きな被害が及びます。企業経営や利益の損害、さらには社会的信頼を失う原因ともなるため、Webサイトの脆弱性対策は必須であり、経営者主導で積極的に取り組むことが重要です。
■Webサイト運営で押さえるべき対策
Webサイトにおけるセキュリティ対策には、さまざまな種類があります。先ほどご紹介した脆弱性は第三者からの攻撃によって起こるものです。そのため、システム面から対策を行うことが重要となります。
- ネットワークセキュリティの確保
Webサーバーを設置しているネットワークのセキュリティが万全であるか確認しましょう。第三者による不正アクセスを防ぐためにも、ファイアウォールやIPS (不正侵入防止システム) を設置し、第三者の侵入経路を断つことが大切です。 - 定期的なアップデートで最新状態を維持
OSやWebソフトウエアなどは脆弱性に対処するために定期的に更新が行われます。こまめな更新で、常に最新状態を維持するように心がけましょう。また、ファイルやディレクトリの適切なアクセス制御も忘れずに設定するようにしましょう。 - WAFを活用してWebサイトを保護
Webアプリケーションは、セキュアに開発することが重要であり、それが根本的な対策となりますが、人の手によって作られるため完全なシステムや脆弱性ゼロは困難であるのが実情です。そこで、保険的な対策として「WAF(Web Application Firewall)」が有効活用されています。WAFを導入することで、SQLインジェクションやクロスサイトスクリプティングなどのWebアプリケーションの脆弱性を悪用する攻撃からWebサイトを保護することができます。 - Webサイト・フォームの暗号化(SSL化)
顧客の個人情報などの大切な情報を守るためにも、重要な情報を入力するフォームを設置する際は、必ず暗号化(SSL化)されたフォームを用いるようにしましょう。現在は、ログインページやフォームなど特定のページだけでなく、Webサイト全体をSSLで表示する常時SSL(Always On SSL)が一般的になっています。
WAF製品の詳細はこちら
■Webサイトの脆弱性を診断
何事も具体的な対策を行う前に、まずは状況を把握することが大切です。Webサイトに脆弱性がないかの確認と、発見した場合に適切な対処を行うためにも、「定期的な脆弱性診断」が有効です。
EGセキュアソリューションズの「ウェブアプリケーション脆弱性診断」は、「コスト」「スピード」「品質」など様々なニーズにお応えできるよう、AI診断ツールを活用しスピードと低コストを実現させた「エクスプレスプラン」、AI診断ツールとエンジニアによる手動診断を併用しスピードと品質を両立させた「スタンダードプラン」、熟練のエンジニアによるフル手動で最高品質の「プレミアムプラン」の3プランををご用意しています。
また、多くのWeb従事者に「徳丸本」の愛称で親しまれている『体系的に学ぶ 安全なWebアプリケーションの作り方』の著者で、Webセキュリティ分野の第一人者である徳丸浩のもと、診断結果のレビューを細かく内部で行っているため、わかりやすく信頼度の高いレポーティングを実現しております。
Webアプリケーション脆弱性診断の詳細はこちら
■まとめ
Webサイトの脆弱性対策を怠ると、企業利益の減少や社会的信頼の損失など企業にとって大きな損害が生じます。セキュリティ事故を未然に防止することは企業の責務です。Webサイトへのセキュリティ対策には費用がかかりますが、経費でなく「投資」と捉え注力することが大切です。
イー・ガーディアンの「サイバーセキュリティサービス」紹介はこちら