Webサイトの運営で必要なセキュリティ対策とは?

この記事をシェア

今やWebサイトはビジネスにおいて必須のツールとして、あらゆるビジネスシーンや消費活動で積極的に活用されている。そうした状況を好機と捉え、不正な攻撃で狙いを定める攻撃者の犯罪行為は後を絶たない。この記事では、Webサイトの運用で内在するセキュリティリスクと、その対策について事例を交えて解説する。

Webサイトの運営で必要なセキュリティ対策とは?

過熱するWebサイトへの攻撃

スマートフォン(以下、スマホ)やタブレットなどの急速な普及に伴い、ビジネスや消費活動などあらゆるシーンにおいてWebサイトは必要不可欠な存在となっている。その価値に目を付け、Webサイトの脆弱性を狙ったサイバー攻撃も増加傾向にある。

IPA(独立行政法人 情報処理推進機構、以下IPA)が2021年1月に発表した「ソフトウェア等の脆弱性情報に関する届出状況」によると、2020年第4四半期(10月~12月) における脆弱性の届け出件数は303件となっており、そのうちWebサイトに関する脆弱性の届け出件数は231件と約7割超を占めている。2020年全体では、Webサイトに関する脆弱性の届け出件数は755件となり、2018年の一年間に届けられた238件から3倍以上増加していることがわかる。

図1: 脆弱性の届出件数の四半期ごとの推移(IPA資料より引用)

図1: 脆弱性の届出件数の四半期ごとの推移(IPA資料より引用)

近年、サイバー攻撃のターゲットとなるのは大企業にとどまらない。セキュリティ対策が十分に講じられていない、取引先や仕入れ先などの中小企業を狙ってサイバー攻撃を行う「サプライチェーン攻撃」も年々、広がりを見せている。今やあらゆる企業のWebサイトが攻撃の対象となりつつあるのだ。

サプライチェーン攻撃のターゲットになった場合、Webサイトの改ざんや情報漏えいといった直接的な被害だけでなく、犯罪の踏み台にされる危険性が伴う。特に、Webサイトではバックエンドを改ざんされることで、普段から利用しているユーザーに深刻な二次的被害を及ぼす可能性もある。また、サイト上の表示内容が書き換えられてしまうといった場合でも、ユーザーがSNSなどで拡散することで、企業イメージの毀損や信頼失墜といった影響も考えられる。ビジネスや信頼関係において悪影響が広がることは想像に難くないだろう。

Webサイトの代表的な脆弱性とセキュリティリスク

Webサイトを運営するにあたって、どのようなセキュリティリスクが考えられるだろうか。一般的なWebサイトにおける機能ごとに、それぞれ生じ得る脆弱性とそのリスクについて解説していく。

入出力処理関連の脆弱性

データの入出力に関連した脆弱性としては、XSS(クロスサイトスクリプティング)、SQLインジェクション、OSコマンドインジェクション、HTTPヘッダインジェクション、メールヘッダインジェクションなどが挙げられる。例えば、SQLインジェクションの脆弱性があった場合、データベースが不正に操作され、個人情報の漏えいやWebサイトの改ざん等のリスクがある。

認証、許可関連の脆弱性

Webサイトの認証・認可に関わる脆弱性があると、入力フォームのエラーメッセージから認証情報が推測可能、あるいは平文での秘密情報の送受信による情報漏えいなどのリスクがある。ログイン時の試行回数制限やパスワード再発行機能に脆弱性があると、不正アクセスにつながる恐れがある。権限昇格の脆弱性も同様に、不正アクセスや情報改ざん・漏えいのリスクがある。

セッション管理関連の脆弱性

Webサイトのセッション管理において、CookieのSecure属性、セッション管理方法の不備、XSSなどの脆弱性があった場合、セッションを乗っ取られるセッションハイジャック等のリスクが高まり、不正アクセスやなりすましが発生する危険性が高まる。

Webサーバー、バックエンドの設定関連の脆弱性

Webサーバー等のバックエンド側における脆弱性としては、ヘッダやエラーメッセージにシステム情報を表示、あるいは推測できるような情報を表示してしまうといったことが考えられる。また管理画面へのアクセスが容易にできてしまったり、TLS/SSL接続の設定に不備があった場合、不正アクセス、リモートアクセス、DoS攻撃などのリスクを抱えることになる。

設計、開発時のヒューマンエラーに基づく脆弱性

WebアプリケーションやWebサイトを構築する際の設計、開発段階で処理ロジックの不備があると、思わぬリスクを抱える可能性がある。また、キャッシュ制御の不備などにより、通信プロセスにおいて重要な情報がキャッシュされてしまうなど、情報漏えいリスクを抱えることになりかねない。他にも、サービス運営にあたって、想定しうる環境因子を設計、開発段階で洗い出すことができなかったことで、不正アクセスやクリックジャッキングなどのリスクにつながることも少なくない。

Webサイトの脆弱性や運用に起因するトラブル事例

過去に、実際に発生したWebサイトの脆弱性や運用に起因する被害事例を紹介する。

1)自治体のWebサイトが不正アクセスを受けランサムウェアに感染

2017年、ある自治体 のWebサイトが不正アクセスを受け、ランサムウェアに感染。同自治体ではWebサイトをリニューアルした際に、一部のページに脆弱性が存在した。攻撃者はその脆弱性を悪用し、理者ツールを不正に操作したとされている。Webサイトの問い合わせフォームに入力した個人情報が流出してしまう可能性もあった。

2)改ざんされた企業のWebサイトによるマルウェア感染リスク

2009年、ある大手自動車メーカーのWebサイトが不正アクセスにより改ざんされた。改ざんされていた期間内にWebサイトへアクセスしたユーザーが、気づかぬうちにマルウェアに感染してしまうリスクがあったとされている。原因は「ガンブラー(Gumblar)」というマルウェアに運用担当者のパソコンが感染したことであり、Webサイトを更新するためのFTPアカウントが攻撃者に窃取されたことによって改ざんに至った。

3)SQLインジェクションによりWebサイトが改ざん

2008年、パソコン周辺機器を取り扱うある企業のWebサイトがSQLインジェクション攻撃を受け、改ざんされた。SQLインジェクションにより不正なプログラムがWebサイトに埋め込まれ、アクセスしたユーザーがマルウェアに感染、あるいは不正なWebサイトへ転送されるリスクがあった。後日、復旧に至ったものの、同社のWebサイトは一時的な閉鎖を余儀なくされた。

4)WordPressのプラグインにCSRFの脆弱性

2015年、世界的に利用されているCMS(コンテンツマネジメントシステム)である「WordPress」のプラグインに脆弱性が発覚した。プラグインとは機能を拡張するためのソフトウェアである。このプラグインはSQLインジェクションやCSRF(クロスサイトリクエストフォージェリ)といったリスクにつながる脆弱性を抱えており、悪用されると管理画面にログインしたユーザーに偽サイトを表示するなどの攻撃が可能な状態だった。脆弱性の発覚後、開発元は脆弱性を修正したバージョンをリリースしている。

Webサイト運営におけるセキュリティ対策

冒頭に述べたように、Webサイトの脆弱性を狙った攻撃は増加している。では、Webサイト運用におけるリスクにどのように対策すれば良いのか。代表的なものを7つ解説する。

1)セキュア・プログラミング

ソフトウェアやアプリケーションと脆弱性は切っても切り離せない。開発の下流工程であるテストで脆弱性が発見されたとしても、それを修正することは容易ではないこともある。そのため、SQLインジェクションなど既知のリスクに対して、設計段階であらかじめ対応策を取っておくというのが、セキュア・プログラミングの考え方である。詳細についてはIPAの資料等を参考にしてほしい。

2)サーバーOSやソフトウェアのアップデート

Webサイトのシステムを構成するサーバーのOSやソフトウェアを最新バージョンにすることも必須の対策となる。サーバーやソフトウェアに脆弱性が発見された場合、速やかにバージョンアップをする必要がある。そのためには、自社のWebサイトを構成しているサーバーOSやソフトウェアについて適切に把握し、管理しておくことが求められる。

3)WAF (Web Application Firewall)の導入

WAFはWebアプリケーションの脆弱性を狙った攻撃を検知し、その攻撃元からの通信を遮断するファイアウォールの役割を担う。WAFを導入することで、攻撃からWebサイトを保護するだけでなく、根本的な脆弱性解消のための猶予期間を生み出せるといった副次的な効果もある。

4)セキュリティソフトの導入

セキュリティソフトの導入は最も重要かつシンプルな対策といって良いだろう。事例で紹介したとおり、Web管理者や運用者の端末がセキュリティ侵害に遭遇し、アクセス情報が漏えいしてしまうことで、Web改ざん等の被害につながることは決して少なくない。Webアプリケーション自体の安全性を高めるだけでなく、その開発や運用に携わる従業員のセキュリティ教育も重要となる。

5)パスワードポリシーの設定と適用

従業員のセキュリティ教育という観点でもう一つ重要になるのが、パスワード管理だ。管理者用のパスワードが安易に推測できるものであったり、あるいはそのパスワードを他のシステムで使い回したりしていることで、アカウント侵害のリスクが高まる。パスワードについては規則(パスワードポリシー)を設け、厳格に運用する必要がある。

6)脆弱性診断やペネトレーションテスト

脆弱性診断はWebアプリケーションの脆弱性を網羅的に診断してくれる。また、ペネトレーションテストはホワイトハッカーによる疑似攻撃を行うことで、システムそのものだけでなく運用面も含めた弱点を見つけ出す。これらのテストを定期的に実施することで、安全性向上への施策につながるだけでなく、Webアプリケーションの信頼性や可用性を高めることができる。

7)CMSのアップデートやセキュリティ強化

WebサイトにWordPressなどのCMSを使用している場合は、それらのバージョンを最新版にアップデートしておくことと、一連のセキュリティ対策を講じておく必要がある。WordPressには無料で包括的なセキュリティ強化が可能なプラグイン「SiteGuard WP Plugin」をはじめ、さまざまなセキュリティ対策用のプラグインが用意されている。

裾野が広がりつつあるWebサイトのリスクに備えるには

Webサイトは誰でもアクセスできるという特性がゆえに、攻撃の発端となりやすい傾向がある。近年は会員向けサイトやデータベースを使ったWebサイトも比較的容易に構築できる時代となり、これら高機能なWebサイトが広く一般化したことで、Webサイトのセキュリティリスクも高まりつつある。

永続的に脆弱性のない完全なWebアプリケーションを構築できると考えることは現実的ではない。だからこそ、定期的な脆弱性診断の実施、各種ソフトウェアのアップデート、セキュリティソフトの導入といったセキュリティ対策を講じ、安全にサービスを運営していくことが事業者には求められていると言えよう。

この記事をシェア

Webアプリのセキュリティ対策に

サイバーセキュリティ
情報局の最新情報を
チェック!