この記事は、ESETが運営するマルウェアやセキュリティに関する情報サイト
「We Live Security」の記事を基に、日本向けの解説を加えて編集したものである。
ネットワークの設計を開始することは大変労力が要る。特に安全性を重視するならば、なお一層骨が折れることを覚悟しなければならない。しかし多くの場合、ITシステム管理者は、各レイヤーにおいて実現するべきセキュリティのメカニズムを熟知しているわけではない。
細かく見ていけば、セキュリティ違反は、各レイヤーにおいて発生するものである。そこで、それぞれのレベルでどのようなことを確立しておけばよいのか、どのような対策をすれば問題点が解消されるのか、そして、ネットワークの各レベルで使用可能なセキュリティ対策はどのようなことがあるのかについて、以下、順を追って確認したい。
OSI基本参照モデルとは
まず、最も基本と言われている「OSI基本参照モデル」について説明しておく(「OSI」は「オープン・システムズ・インターコネクション」の略)。
「OSI基本参照モデル」は、ISOが1983年に策定したもので、Webネットワークの構築に必要な取り決めがまとめられており、下から順に7つのレイヤー(層)を積み重ね、全てがクリアされて初めて通信が可能になることが示されている。
そのままこれが普及し定着すればよかったのだが、ほぼ同時期に、より実用的な見地から「TCP/IPモデル」がつくり出され、その結果、「TCP/IPモデル」の方が市民権を得てしまう(「TCP/IP」は「トランスミッション・コントロール・プロトコル/インターネット・プロトコル」の略)。
その結果、大半の人にとって「TCP/IPモデル」は聞いたことがあっても「OSI基本参照モデル」はなじみが薄い、という事態となり、現在に至っている。
ただし両者はほぼ同じ考え方に基づいて組み立てられており、「OSI基本参照モデル」の方がより細かくレイヤーが分かれているため、Webネットワークの基本を学ぶ際には、今でもまず「OSI基本参照モデル」を知ることが勧められている。
いずれにせよ、ネットワークはこれらのモデルを基礎として世界中で共有されており、それぞれのレイヤーにおいてまとめられている「取り決め」すなわち「プロトコル」によって機能している。
「OSIモデル」の7つの層(レイヤー)は以下のようになっている。
第1層(L1) 物理層 |
一方、TCP/IPモデルは、以下の4つの層に分けられている。
第1層(L1) ネットワーク・インターフェイス層 |
大まかに言えば、OSIモデルのL1とL2がTCP/IPモデルのL1に相当し、OSIモデルのL3、L4はTCP/IPモデルのL2、L3にそれぞれ相当する。そしてOSIモデルのL5、L6、L7はTCP/IPモデルではL4にまとめられているということになる。
OSIモデルとTCP/IPモデル
ネットワークセキュリティにはさまざまな弱点があるが、これらの弱点の補強はそれぞれのレイヤーにおいて行われねばならない。また、万全なセキュリティとは、全てのレイヤーにおいて適切な対策が施されていることを意味する。
セキュリティの見地から、以下ではOSI基本参照モデルとTCP/IPモデルを折衷して、1)物理層、2)データリンク層、3)ネットワーク層、4)トランスポート層、5)アプリケーション層の、5つのレイヤーに分けて、それぞれの対策を考えてみることにする。
目次
1) 物理層
2) データリンク層
3) ネットワーク層
4) トランスポート層
5) アプリケーション層
1) 物理層
第1層である「物理層」では、「端末」と「端末」とをつないで電気信号を送るために必要な物理的取り決めがまとめられている。
コネクターやケーブルの形状、ビットデータを電気信号に変換する方法、電気信号の種類や形などが定められている。
プロトコルとしては「イーサネット」や「PPP」「フレームリレー」などがある(「PPP」は「ポイント・トゥ・ポイント・プロトコル」の略)。
ITセキュリティの見地から言えば、許可されていない第三者がこのシステムに入り込むのを防ぐことが「物理層」においては重要となる。
具体的には、警告メッセージと監視システムを内蔵し、構成されているITネットワークのシステムへのアクセスを制御する障壁とメカニズムが組み込まれる。
もう一点注意しておきたいリスクは、内部の脅威である。言い換えれば、認められていない行動をとったり、組織に望ましくない結果をもたらすようなことを狙っているスタッフがいないかどうかである。
有線によるネットワークの場合であれば、ケーブルの配置によって盗聴が可能にならないように工夫したり、サーバールームなどに誰でも立ち入ることができないようにしたりする。また、ケーブルやIT機器・備品の管理をしっかりと行うといった対策が求められる。
2) データリンク層
物理層の上にはデータリンク層がある。ここでは一対一ではなく、幾つかの「端末」が相互にやりとりができるための取り決めがまとめられている。
「送り手」と「受け手」がどの端末であるのかを特定するために、「MACアドレス」が各種の機器に付与されている(MACは「メディア・アクセス・コントロール」の略)。
「フレーム」のレベルでのアドレス管理に関わっており、ネットワーク層(IPアドレスを伴ったパケット)と物理層(電気信号)との間のリンクを行っている。
この層においては「ハブ(スイッチ)」が最も重要なメカニズムであり、そのためにデータリンクのセキュリティは、これらの機器を正しく設定することに焦点が当てられる。
例としては、盗聴やDoS攻撃(フラッディング)、またはなりすまし攻撃(ARPスプーフィング)につながる可能性のある不正な接続を防止するためには、物理的アクセスのブロックと、未使用ポートを論理レベルにおいてアクティベート(有効化)しないようにすることとを組み合わせる必要がある(「ARP」は「アドレス・レゾリューション・プロトコル」の略)。
ハブ(スイッチ)
この層のセキュリティには、通信のための安全なプロトコルを正しく選択することも含まれている。
例えば無線LAN(Wi-Fi)によるネットワークの場合には、暗号化方式を「WEP」よりも「WPA2」や「WPA」のプロトコルを使用する、といった対策がある(「WEP」は「ワイヤード・イクイバレント・プライバシー」の略、「WPA」は「Wi-Fiプロテクテッド・アクセス」の略)。
もう一つ重要な要素としては、仮想ネットワーク(VLAN)を正しく設定することが挙げられる。
「VLAN」はローカルエリアにおけるネットワークではあるが、それはあくまでも論理的な次元での話である。物理的にルーターを増してネットワークを2つに分割するのではなく、論理的に同様の仕組みを整えるため、非常に分かりにくくなっている、ということを忘れないようにすべきである。
特に「VLAN」を利用している場合、ネットワークとトラフィックがセグメント化されてしまうため、ネットワークシステムのセキュリティのリスクが非常に高まってしまうのである。
3) ネットワーク層
ここでは、ネットワーク間のパケットの経路に関する取り決めが行われている。
この層で用いられるアドレスモデルは「IP」であり、ルーターによってトラフィックの管理がまとめられている。
ネットワークのイメージ
ルーターに含まれるさまざまなセキュリティ特性を有効にすることは、不正防止制御のために重要である。
強力なパスワードと、暗号化された接続を介した管理プロトコルの正しい設定の使用は、ルーターを保護するために必要な措置の一部となっている。さらに、経路情報を自動的に学習することができる「ルーティング・プロトコル」(例えば「RIP」や「OSPF」など)にも脆弱性が潜んでいることを心にとどめたい(「RIP」は「ルーティング・インフォメーション・プロトコル」の略、「OSPF」は「オープン・ショーテスト・パス・ファースト」の略)。これらのプロトコルを悪用すると、偽ルーターの注入につながる可能性がある。こうしたプロトコルを理解することは、ネットワークの安全な管理を促すことになる。
「IPv4」プロトコルには、通信を保護するためのセキュリティメカニズムが含まれていないので、ネットワーク管理者は、データを保護するための他の追加措置を検討する必要がある。例えば、全てのネットワークパケットを暗号化したり、接続を保護するためのセッション鍵を交換したりすることを、対策として選択できる。このため「IPSec」の実装を検討する必要がある。「IPSec」は、仮想プライベートネットワーク(VPN)を使用するために役立つ、IPプロトコルにセキュリティ機能を提供するプロトコルである。「IPv4」の付加的な使用が義務付けられている。以下の二つのモードがある。
- トランスポートモード
パケットのペイロードだけを暗号化し、それにIPヘッダを付けて開いて送信する。 - トンネルモード
IPヘッダを含めて暗号化されるため、ネットワーク間の安全な接続に用いられる。
また、この層に影響を及ぼす問題が幾つかある。具体的には、攻撃者が特定のIPアドレスを持つ機器からデータ送信をしようとする可能性がある。これを「IPスプーフィング」と呼び、攻撃対象のアドレスを偽装するものである。このような攻撃を最小限にする一つの方法は、データの暗号化メカニズムと共に、アプリケーション層における認証プロセスを内包させることである。
同様に、内部/外部ポートが割り当てられたアドレス空間に対応させると、外部からネットワークの内側を探ることが可能になるが、ネットワーク層の上にあるファイアウォールをアクティブ化すると、これらの機器はそのような攻撃を減らすことができる。つまりファイアウォールは、内部からの要求であると主張するにもかかわらずそれが実際には外部ポートを介して来たパケットを検出し、それを拒否するか、対応する警告を生成することができるのである。
ネットワーク層でのITセキュリティのもう一つの重要な構成要素は「ACL」である(「ACL」は「アクセス・コントロール・リスト」の略)。これは、許可または機器が、他のネットワークに属する機器の接続を許可するか拒否するかを決めるもので、通信に関わるプロトコル、ポート、またはIPアドレスに応じて判断される。
正しく「ACL」を設定することは、ネットワーク上で用いられるプロトコルの知識やネットワーク設計の知識を必要とするため、かなり大変である。少しでも設定が不適切であれば、不正なトラフィックを許可してしまったり、正当な接続を拒否してしまったりすることになるからだ。
4) トランスポート層
第4の層では、アプリケーションからデータを受け取り、パケットに分割してネットワーク層に送られる流れを受け持っている。このレベルにおけるプロトコルの好例は、相手にデータを送る手順である「TCP」およびストリーミング送信に関する「UDP」であり、発信元から受信先までの実際のリンクを確立する(「UDP」は「ユーザー・データグラム・プロトコル」の略)。アドレッシングモデルは、ポート番号である。
このレベルで懸念されるセキュリティは、転送されたデータの暗号化、ネットワーク内端末の認証、データの整合性の改ざんの防止、「リプレイ攻撃」の回避などが関連する。
ルーター
「TCP」に関しては、最もよく知られている攻撃に「DoS攻撃」の一種である「SYNフラッド攻撃」がある(「SYN」はTCP接続の確立においてクライアントからサーバーに送られるパケットのこと)。これは、接続を確立するための「3ウェイ・ハンドシェイク・モデル」における弱点の一部を利用している。
これは、他の端末に複数の「SYN」要求を送信し、その端末を応答停止させ攻撃側が用意していた不正な機器に接続させようとする。宛先ホストは、保留中の接続試行を維持し、確認を待つ。ホストがサポートできる未確認の接続のスレッドの最大数を超えた場合、ホストは、サービス拒否の結果、新たな通信を受け入れることができなくなってしまう。
この問題に対する解決策の一つは、サーバー接続が未確認であってもサービス拒否をしないようにすることが挙げられる。また、サーバーが確認を待つ時間(デフォルトでは75秒)を減少させることでも対応できる。
「SSL」「TLS」「SSH」といった第4層の通信プロトコルを使用すると、データを暗号化することによって傍受などから守ることが可能になる(「SSL」は「セキュア・ソケッツ・レイヤー」、「TLS」は「トランスポート・レイヤー・セキュリティ」、「SSH」は「セキュア・シェル」の略)。特に機器をリモートで管理するためにネットワーク接続を行う際に十分考慮に入れるべきものである。
最終的に通信回線の接続がトランスポート層におけるエンドツーエンドであり、端子における保護を高めることが、不正な接続を防止するための最初のステップである。
発生する可能性のある脆弱性とエラーからネットワークを保護するためにアプリケーションを更新することが、使っている機器のセキュリティを強化する第一歩である。
5) アプリケーション層
「TCP/IPスタック」および「OSIモデル」におけるアプリケーション層は、セッション管理と機器上で実行されるアプリケーションを扱う。ここには、端末が多数のサービスにアクセスすることを可能にするプロトコルのさまざまな組み合わせがある。
メールの送信に関する「SMTP」、メールの受信に関する「POP3」や「IMAP」、IPアドレスとドメインネームの変換に関する「DNS」、Webページの閲覧に関する「HTTP」や「HTTPS」、IPアドレスの割り当てに関する「DHCP」、ファイル転送に関する「FTP」および「TFTP」を含む(「SMTP」は「シンプル・メール・トランスファー・プロトコル」、「POP」は「ポスト・オフィス・プロトコル」、「IMAP」は「インターネット・メッセージ・アクセス・プロトコル」、「DNS」は「ドメイン・ネーム・システム」、「HTTP」は「ハイパーテキスト・トランスファー・プロトコル」、「HTTPS」は「ハイパーテキスト・トランスファー・プロトコル・セキュア」、「DHCP」は「ダイナミック・ホスト・コンフィグレーション・プロトコル」、「FTP」は「ファイル・トランスファー・プロトコル」、「TFTP」は「トリビアル・ファイル・トランスファー・プロトコル」の略)。
これらのサービスの設定の仕方は管理者の経験に依存している。セキュリティのことを考慮せずに習慣的にネットワークの設定をしてしまうこともあるので、かなりきめ細かく注意しなければならない。
ファイアウォール
第5層においては、まず、高水準のファイアウォールを実装することによって、ネットワークのトラフィック増加などを抑制できる。
アプリケーション層におけるファイアウォールは、ネットワーク層またはトランスポート層とは異なり、パケットのフィルタリングが可能である。ただし、膨大な量のプロトコルを含み、オプションも広範囲にわたるため、非常に労力を伴う。
また、この層には、侵入検知システム(IDS)、侵入防止システム(IPS)、およびその他のセキュリティソリューションがある。「TCP/ IPスタック」全体におけるこれらのアプリケーションの機能は、さまざまな基準に従って危険な振る舞いを検出することができ、必要に応じて警告を発する。
最後に、この層のセキュリティを実装したならば、関連事項として、ユーザー教育およびIT部門のセキュリティポリシーの定義などが求められる。
IT機器のセキュリティを確保するということは、技術的な防御メカニズムが正しく実装されるばかりでなく、機器のユーザーと全体を理解する力のある管理者の両者が正しい振る舞いを行わなければならないのである。
結論
これまで見てきたように、ネットワークの各レイヤーには、攻撃者の思い通りにさせないようにするために、さまざまな取り決めがあり、狙われる箇所があり、そして、攻撃に対する防護策としてのセキュリティがあった。
これらについて理解を深めておけば、ネットワーク上の保護がどのような水準にあるのかが判断できるとともに、脆弱性やセキュリティ違反を解消できるようになるだろう。
例えば「非武装ネットワーク」、物理的および論理セグメント、受信時に返答を遅延させる「ターピット」または「ハニーポット」といった、セキュリティのアーキテクチャとを組み合わせてもよいだろう。
また、アクティブな防御技術を適用するのも有意義であるし、通常のネットワークで不正侵入テストの処理を行うことも、推奨すべき事案である。
ネットワーク管理者は、各層における原則とこうした応用とを合わせることによって、脆弱性を修正しつつネットワークのセキュリティを高めることができるだろう。