【コラム】Webアプリケーションのセキュリティを強調する理由

韓国インターネット振興院によると、ハッキングトライの全体の7割以上がWebを介して行われているというほど、Webセキュリティは、もはや選択ではなく必須となりました。

しかし、Webセキュリティは、専門家といっても安全を保障することは難しいです。それは、現在セキュリティ対策の標準化が進められておらず、企業それぞれが異なるセキュリティ対策を構築しているためです。

Webセキュリティの安全性を確保するためには、企業のセキュリティ担当者がWebセキュリティに対して十分に理解した上で、自社のITシステムに合うWebセキュリティを構築する必要があります。ほとんどの企業は、Webセキュリティソリューションを導入していますが、Webセキュリティを十分に理解し適材適所に導入・運用している企業が少ないのが実情です。

当カラムでは、Webセキュリティを容易に理解できるよう全般的なITシステムの構造からはじめ、WebセキュリティがITシステムにどのように適用されるかを説明します。まず、ITシステムに対する理解や、Webセキュリティの概要について探ってみましょう。

 

クライアント ‐ サーバーの構造に対する理解

私たちは、一般的にPCやノートパソコン、モバイルデバイスを利用してWebに接続します。IT用語としては、Webに接続するために利用するPCやノートパソコン、モバイルデバイスを「クライアント」といい、Webサイトやモバイルアプリケーションの画面のようにWebコンテンツを保存しておき、クライアントが接続したらコンテンツを表示するシステムを「サーバー」といいます(ITシステムにおけるサーバーが全てWebサーバーではありませんが、ここではWebセキュリティに関してのことですので、Webサーバーを例えて説明します)。そして、クライアントとWebサーバーを繋ぐ連結網を「Web」といいます。

セキュリティの観点からみると、一般的にクライアントのセキュリティは個別システムの安全と関係があり、サーバーのセキュリティは企業システムの安全と関係があります。企業内部にあるクライアントのセキュリティもありますが、今回は、企業内におけるWebセキュリティの核心となるサーバーのセキュリティについて探ってみましょう。

 

企業のサーバーシステムの構造

企業内サーバーのシステム構造を理解するために、まず、ITシステムの構造を確認してみましょう。

上図のように、ITシステムは、大きくネットワーク、システム、アプリケーションの3つの階層に構成されています。OSI 7階層やTCP/IP階層のような様々なITシステムモデルがありますが、こうした階層的分類では、ネットワーク、システム、アプリケーションの3つの階層が最も共通的な構造です。この3つの階層はお互いの相互作用を通じてITシステムを構成します。

ネットワーク階層は、データの送受信にかかわる通信を担当する役割をし、システム階層は私たちがよく知っているWindows、Linuxといったオペレーティングシステム(OS)のように、様々なアプリケーションが作動できるようにするプラットフォームの役割を行います。アプリケーションは、最上位の階層であり、多様な機能を行うプロトコル(HTTP、FTP等)及び応用サービスを提供します。

サーバーシステムの構造も基本的にはこのITシステムの構造に従います。要するに、安全なサーバーのセキュリティとは、ITシステムにおける3つの階層のセキュリティ、すなわち、ネットワーク、システム、アプリケーションの全てのセキュリティが安全に構築されていることを意味します。

 

Webセキュリティの中核は、アプリケーションのセキュリティ

理解を助けるために、ITシステムの各階層はWebセキュリティを確保するために、実際にどのように構築されているか、現実的な観点から探ってみましょう。

ネットワークのセキュリティのためには、安全ではないIPやポート(Port)に対するアクセス制御を行う必要があり、許可されたIPやポートからのトラフィックに対しても有害性の有無をチェックする必要があります。そのため、ほとんどの企業では、ファイアウォール(Firewall)と侵入検知/防止システム(IDS/IPS)を構築しています。

しかし、ファイアウォールの場合、許可されたIPやポートからの攻撃は遮断できず、また、IDS/IPSにて行われるネットワーク階層における有害性検査は、アプリケーション階層に対する理解がないまま行われるため、アプリケーションの脆弱性を狙った攻撃に対しては遮断できないという限界があります。

システムのセキュリティはOSに関わることが多いです。Windows、Linux、UnixなどのOSに対する開発及び提供に関わるメーカーは、自社システムに対して定期的なセキュリティのアップデートやパッチを行うことにより、知られているWeb攻撃に備えています。企業のセキュリティ担当者は、セキュリティのアップデートやパッチを行うことに加え、定期的にシステムの悪性コードを検出し、システムを常に安全な状態に維持しなければなりません。そのために企業は、アンチウイルスソリューションを導入しています。

 

このように、ほとんどの企業は、ネットワーク及びシステムのセキュリティに対しては、その必要性を理解し、セキュリティの構築に力を入れています。しかし、アプリケーションのセキュリティに対しては、そうではありません。

アプリケーションの階層は、ネットワークやシステムの階層に比べ高度化されており、アプリケーションの種類も多様であるため、大部分のセキュリティ管理者はセキュリティの適用に困っています。Webセキュリティを構築する際にも同様です。

Webセキュリティにおいて最重要なのは、アプリケーションのセキュリティです。私たちが普段利用しているWebは全てアプリケーションで構成されています。WebサイトやモバイルWebなどは全てアプリケーションで構成されており、それをターゲットとしたWeb攻撃もアプリケーションの脆弱性を狙った攻撃が多いです。SQLインジェクション、XSS(クロス・サイト・スクリプティング)のような有名なWeb攻撃も全てWebアプリケーションであるWebサイトの脆弱性を狙った攻撃です。Webシェルと呼ばれるWeb基盤悪性コードもphpなどで構成されたWebアプリケーションです。

Webセキュリティ業界で有名なOWASP(The Open Web Application Security Project)が選定したWeb脆弱性Top10も全てWebアプリケーション攻撃です。つまり、現在行われているWeb攻撃の9割以上が全てWebアプリケーションを狙った攻撃であると言っても過言ではありません。要するに、安全なWebセキュリティを構築するためには、安全なWebアプリケーションセキュリティの構築が必須ということです。

Webセキュリティ対策 においてアプリケーションのセキュリティが最も重要であるにも関わらず、実際にはどのように構築すればよいかという難題にぶつかり、適切なセキュリティが行われていないのが現状です。

次回では、その難題を解消するために、アプリケーションのセキュリティを集中分析し、安全なWebアプリケーションのセキュリティを構築するためには、どうすればいいかについて説明します。