LANのセキュリティ

 現在は企業や組織のパソコンはネットワークにつなげるのが常識となっています。企業や組織で採用しているネットワークは、そのほとんどがイーサーネットで構成されています。この章では、イーサネットのLANを安全にする方法について考察します。







1 スイッチド・ネットワーク

1.1 ネットワークの細分化

 イーサネットLANでは、通信回線を共有しますので、回線に送り出されたフレームは本来の宛先以外にも電気的には到達しています。イーサネットのプロトコルでは、フレームヘッダに記述された宛先のMACアドレスが、自分のMACアドレスと違っていればそのフレームの受信を拒否します。ただ、これはプロトコルとしてそうしているというだけで、自分宛のものとして受け取ってしまうということもできます。

 自分宛でないフレームを受信するモードを無差別(promiscuous)モードといいます。スニファは無差別モードを使ってネットワークに流れるパケットをモニタすることができるツールです。スニファは自分宛でないパケットを自分宛のものとして受信してしまいますので、暗号化されていない場合、パスワードを盗み見られてしまう可能性があります。スニファ対策としては、通信を暗号化することですが、暗号化については、「通信のセキュリティ」で説明しています。ここでは、ネットワークを細分化することによるスニファ対策について説明します。

 イーサネットのフレームを全部通過させてしまうネットワーク機器をハブといいます。ハブで構築したネットワークの範囲をコリジョンドメインといいます。スニファはコリジョンドメイン内でやり取りされるパケットを盗聴することができます。従って、スニファによる盗聴の影響をできるだけ小さくしたい場合は、ハブを使ったネットワークの構築はやめるべきです。

 ハブに代わるべきものはスイッチです。スイッチには学習機能がついていますので、ポートの先に宛先MACアドレスがない場合は、そのポートからフレームを送り出しません。フレームが送出されなければ、スニファにも盗聴ができません。最も推奨されるべきは、スイッチポートに1台のコンピュータを接続するという構成です。スイッチポート毎に1つのコリジョンドメインを構成しますので、スイッチポートに1台のパソコンをつなげば、スニファでも盗聴ができません。




1.2 VLAN

 VLANについてはこちらをご覧ください。VLANは本来はセキュリティとは独立した概念ですが、ネットワークを動的に分割してパケットの遮断ができるため、現在ではセキュリティの維持のために積極的に利用されています。



1.3 認証スイッチネットワーク

 企業等の組織は人の出入りを厳重にチェックすることが多いので、部外者がパソコンを持ち込んで、社内ネットワークに接続してしまうというような例はあまりないかもしれません。ところが、大学は人の出入りが比較的自由で、部外者が自分のパソコンを持ち込んで、誰にも見とがめられることなく、学内ネットワークに接続してしまうという例が多発しています。

 このような場合に有効なのが認証スイッチネットワークの導入です。認証スイッチは認証サーバと連携して、アクセス権限を持つユーザと持たないユーザを選り分けます。認証方法としては、IEEE802.1X認証、MACアドレス認証、Web認証などの方法があります。

 IEEE802.1X認証は、EAP(Extensible Authentication Protocol)というプロトコルを使って、ユーザ単位で認証を行う仕組みです。被認証の機器にはサプリカントという機能が必要となります。サプリカントが認証サーバとEAPを使って通信をします。

 Macアドレス認証は機器のMacアドレスに基づいて機器単位で認証を行う仕組みです。スイッチが認証される側の機器(パソコン等)のMacアドレスを検出し、認証を行います。サプリカントは必要ありません。

 Web認証はHTTPを使ってユーザ単位で認証を行仕組みです。こちらもMacアドレス認証と同様にサプリカントは必要ありませんが、Macアドレス認証と違って、接続する度にIDとパスワードを入力しなくてはなりません。

 認証したユーザ(MACアドレス認証の場合は機器)毎に、VLANを割り振る機能(ダイナミックVLAN)も可能です。

 認証スイッチは検疫ネットワークでも重要な役割を果たします。



2 ファイアウォール

 ファイアウォール(Firewall)は防火壁を意味します。ネットワークを内側の「信頼できるネットワーク」と外側の「信頼性の薄いネットワーク」に分けて、外側のネットワークを「火事」に見立てています。この外側で燃え盛る「火事」から、内側のネットワークを守るのがファイアウォ ールです。

 実際、外のネットワークからは不正アクセスやサイバー攻撃などが盛んに仕掛けられています。これらの不正アクセスやサイバー攻撃から内部ネットワークを防御するのがファイアウオールの役割です。

 ファイアウォールは内部ネットワークが外部ネットワークと中継する位置に設置し、不正とみなした通信をブロックすることで、内部への不正なアクセスを防止します。



2.1 ファイアウォールの種類(第一世代)

 一口にファイアウォールといっても様々な種類があります。外部ネットワークと内部ネットワークの間の通信を監視するわけですので、TCP/IPのネットワーク層で監視するか、トランスポート層で監視するか、アプリケーション層で監視するかで3つのタイプに分かれます。しかし、いずれもTCP/IPの通信のレベルで監視しています。

※ファイアウォールはTCP/IPの通信プロトコルのレベルで監視していますので、Webアプリケーションソフトなどがやり取りするデータを確認することはできません。従って、最近猛威を振るっているSQLインジェクション、スクリプトインジェクション(その中でも特にクロスサイトスクリプティング)、OSコマンドインジェクション、クロスサイトリクエストフォージェリ、セッションフィクセーションなどのWebの脆弱性を突いた攻撃にはほとんど対応できません。

 ネットワークレイアで監視するタイプは(パケット)フィルタと呼ばれます。トランスポート層で監視するタイプはサーキットレベルゲートウェイと呼ばれます。アプリケーション層で制御するのはアプリケーションレベルゲートウェイと呼ばれています。代表的なものはフィルタとアプリケーションレベルゲートウェイですので、その2つについて説明します。



2.1.1 パケットフィルタ

 パケットフィルタは主にルータに実装されるアーキテクチャであり、ネットワーク層でのアクセス制御を行います。パケットフィルタは元々はIPパケットのヘッダ情報に基づいて機能するように設計されていましたが、最近ではもっと深いレベルを見ているものが一般的です。

 パケットフィルタは通過するパケットのヘッダ情報とフィルタリング・ルールを比較走査することでアクセス制御を行います。フィルタリング・ルールを記述したファイルはアクセスリストなどと呼ばれます。

 アクセスリストは送信元のIPアドレス/ポート番号、宛先のIPアドレス/ポート番号でパケットを特定し、それを拒否するか許可するかを指定するのが基本となります。ルールの書き方は次のような形になります。

ルール:送信元が「192.168.10.0」内のホストで、宛先が「192.168.200.0」内のホストのパケットは許可

アクセスリストの記述方法はシステムによってそれぞれ異なり、初心者には難しいと思いますが、代表的な例をあげると次のようになります。
access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255

※上の記述例で使ったアクセスリストは次のフォーマットで書かれたものです。「access-list アクセスリスト番号 {deny | permit} プロトコル ソース ソースワイルドカード 宛先 宛先ワイルドカード」(もっと詳細なパラメータ指定もできますが、難しいので省略しました)。ソースと宛先に使ったワイルドカードの「0.0.0.255」は通常「逆マスク」と呼ばれるもので、「1」に当たる部分は何でもいいという意味になります。従って、192.168.10.0 0.0.0.255は192.168.10.1~192.168.10.254の全てのホストがマッチします。アクセスリストについては、各システムごとに微妙に違いますんで、実際に使うシステムのマニュアル等を参照してください。

■ パケットフィルタの利点
 パケットフィルタはネットワーク層で実行するために高いパフォーマンスが期待できます。ネットワーク層で動作しますので、アプリケーションには依存しません。

■ パケットフィルタの欠点
 IPヘッダの情報だけで判断するためセキュリティレベルが低くなります。パケットフィルタはコネクションを分断させているわけではありません。コネクションの途中で、パケットが流れているところを監視しているだけですので、どうしても取りこぼしが生じます。特にトラフィック量が増えるとその傾向が高くなります。また、アプリケーションの通信が複数のセションから構成される場合はアクセス制御に制限があります。また、ログはIPヘッダ情報しか記録できません。



2.1.2 アプリケーション・ゲートウェイ

 アプリケーション・ゲートウェイは外部ネットワークと内部ネットワークをファイアウォールで分断することで直接通信できないようにする方式です。ファイアウォールは、外部へのアクセスの仲介役となるプロキシ(proxy、代理)サーバとして機能します。個々のサービスごとにプロキシが必要です。Web通信のためにはWebプロキシが、メールのためにはメールプロキシが、FTPのためにはFTPプロキシが必要となります。



 クライアントとサーバの間を仲介する形でプロキシが介入しますので、クライアントとサーバ間の論理セションを実現するためには、実際にはクライアントとプロキシ、プロキシとサーバ間の2つのセションを必要とします。

 アクセス制御はそのアプリケーションに応じて複数のステップで行われます。

■ アプリケーション・ゲートウェイの利点
 アプリケーション層でセションを分断した上でアクセス制御を実行するので、高いレベルでアクセス制御をすることができます。またログもアプリケーションが使用するレベルで残すことができます。Webの場合であれば、GETしたファイル名、PUTしたファイル名などを確実にログに残すことが可能です。

■ アプリケーション・ゲートウェイの欠点
 パフォーマンスが悪くなります。また、システムのリソースが必要です。また、新規にアプリケーションを使えるようにするには、そのアプリケーション用のproxyを導入しなくてはなりません。



2.2 ファイアウォールの進化(第二世代)

2.2.1 第一世代の問題点・・・スタティックフィルタリング

 第一世代のパケットフィルタリングはスタティック(静的)フィルタリングと呼ばれます。静的フィルタリングでは、事前に登録したIPアドレスやポート番号を持つパケットだけを通過させます。一般的には、パケットの向き、宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号などの情報(ルール)を事前に登録しておき、通過するパケットをルールと比較して、ブロックするか通過さえるかを判断します。通常は返信も通さないといけないので、外部から内部に入ってくるパケットで、送信元ポートの番号がいくつで、宛先が内部アドレスならば通過させるというようなルールと書いておきます。

 しかし、スタティックフィルタリングでは、返信を通す方法が安全ではありません。ローカルネットワーク上のクライアントと、インターネット上のサーバとのやり取りを考えてみましょう。クライアントは、宛先ポート番号として、80番などの公開されたポート番号を指定します。しかし、クライアント側が使用するポート番号はOSがその時たまたま開いているポート番号を割り当てるものです(一時使用のポート番号)。従って、返信用のルールを書くときに宛先ポート番号を指定することができません。返信用のパケットでは、クライアントからサーバへのパケットの送信元ポート番号が、そのまま宛先ポート番号になるわけですから、いくつになるのか分からないのです。

 このような曖昧なルールでは、Webアクセスの応答に似せたパケット、例えば不正なサーバが送ってきた送信元ポート80番で、宛先が内部ネットワークアドレスになっているパケットをブロックすることができません。とはいえ、返信用のパケットに見せかけるということは、既に確立しているコネクションに割って入ることですので、簡単なことではありません(シーケンス番号を正確に予測する必要があります)。しかし、複数のセッションを使うFTPなどでは、もっと怖い状況が生まれます。

 その前に、すこしFTPの基本の復習をしてみたいと思います。HTTP、POP、SMTPなどの一般的な通信プロトコルアは1つのTCPセションを使いますが、FTPはちょっと特殊で「制御用のコネクション」と「データ転送用のコネクション」という2つのコネクションを使います。コネクションを分けることで、大量のデータの送受信をしている最中でも、確実にFTPコマンドをやり取りすることができるというのがその理由のようです。

 FTPの制御用のコネクションではポート番号「21」番を、データ用コネクションでは「20」番を使います。21番ポートを利用して、制御用のコネクションを確立します。その後、FTPクライアントはこの制御用のコネクションを利用して、データ転送用のコネクションの確立要求をします。コネクションはサーバからクライアントに対して確立します。この際に使用する宛先ポートアドレスは、制御コネクションを使って、クライアントからサーバに対して、PORTコマンドを使って指定します。クライアントは制御コネクションの中で、サーバに対して、「データ転送用のコネクションは、このポートで作成してくださいね」というようにPORTコマンドを使って、サーバに教えるわけです。

 ここに問題点があります。PORTコマンドを使って教えるポート番号はいつも同じというわけではありません。これはサーバのように固定したポート番号ではなく、OSがその時に空いているポートを選んで(1024以上)教えます。従って、スタティックフィルタリングルールでは、宛先の指定はできません。また、1024以上のポートを開けておく必要があります。もっと危ないのは、このデータ転送用のルールを使って、データ転送用のコネクションを確立できるだけでなく、まったく別の新たなコネクションを確立することもできるということです。

※通常のHTTPセッションなどの返信の場合は、返信が通ればいいのですから、ACKビットが立っていることなどの条件を付けることができますが、FTPのデータ転送コネクションが確立できるようにしておかなくてはならないとすると、データ転送コネクション用のルールに、ACKビットが立っていることという条件を付けることができません。その結果、SYNビットだけがセットされた3ウェイハンドシェークの最初のパケットが通ってしまうということになります。



2.2.2 ダイナミックフィルタリング

 スタティックフィルタリングを進化させたアーキテクチャがダイナミック(動的)フィルタリングです。ルールとしては、inからoutの方向で、送信元IPが内部アドレス、宛先ポート番号が何番のTCP(UDP)と、その返信パケットを通すというようにセットします。ダイナミックフィルタリングでは、パケットを通した時に、そのパケットのアドレス情報、ポート番号情報などをフィルタリングテーブルなどに一時的に記憶しておき、この情報から応答パケットかどうかの判断を行います。FTPの場合は、PORTコマンドのパラメータを覚えておき、このポートだけを開けるようにしています。

 LANからインターネットへのアクセスでは、LAN側のポート番号はランダムに変わります(OSがその時使われていないポート番号を割り当てます。しかし、OSによってどの当たりを割り当てるかはある程度癖のようなものがあるようです)。FTPのPORTコマンドで指定する番号もランダムです。従って、(返信パケットに関しては)ファイアウォールが通過を許可する宛先ポートの番号は通信が始まるまでは分かりません。攻撃者はその都度ポート番号を予測しなくてはならず、攻撃パケットを送り込むことはかなり難しくなります。



2.2.3 ステートフル・インスペクション

 ダイナミックフィルタリングを更に進化させたものが、ステートフル・インスペクションです。ステートフル・インスペクションでは通信状態を管理し、規約通りのパケットを通します。ステートフル・インスペクションではやり取りされるパケットを見て、通信がどんな状態になっているかを把握します。そして、届くパケットの状態を予測して、届いたパケットが矛盾していれば、不正なパケットとして遮断します。

 一口にステートフル・インスペクションといっても実装によってその検査の深さは様々です。TCP/IPプロトコルしか検査しないものから、アプリケーションプロトコルまで検査するものまであります。TCP/IPであれば、パケットのシーケンス番号と確認応答番号を覚えておき、反対方向のパケットの確認応答番号と矛盾しないかを検査します。アプリケーションプロトコルであれば、前に通過したパケットのコマンドとレスポンスの内容を覚えて、次に届くパケットのコマンドやレスポンスの内容と矛盾しないかをチェックします。

 ステートフル・インスペクションではセションの状態をステートテーブルに保存します。例えば、最初のSYNパケットが到着したときはフィルタのルール(アクセステーブル)によって走査しますが、許可されたパケットに関する情報(ステータス、コンテキスト)はステートテーブルに格納され、同一セションのそれ以降のパケットはルールによる検査ではなく、ステートテーブルに基づいた検査を行います。

 製品に導入されているステートフル・インスペクションは様々で、ブロードバンドルータなどに導入されているのは通常はTCP/IPのレベルまで検査するだけです。ゲートウェイ型のファイアウォールは多くがアプリケーション・プロトコルのレベルまで検査しているようです。



2.2.4 アプリケーション・ゲートウェイの進化

 アプリケーション・ゲートウェイの問題点は大きく分けると2つあります。1つはパフォーマンスが悪いということです。もう一つはアプリケーションのデータの中にを見ていないので、SQLインジェクションやクロスサイトスクリプティングのようなWebの脆弱性を突く攻撃のようなものに全く対処できないという点です。

■ アプリケーション・ゲートウェイの高速化
 スループットに時間がかかりすぎるのは全てのパケットをネットワーク層からアプリケーション層まで使って処理しているためです。時間を節約する技術としてアダプティブ・プロキシという技術があります。アダプティブ・プロキシでは最初のアクセス制御の部分と認証の部分だけアプリケーション層で検証し、認証後のデータ転送ではIPヘッダ情報を元にしてフィルタリング・ルールを適用するというものです。アダプティブ・プロキシでは、認証が終わった後のデータ転送はネットワーク層で処理するために時間が大幅に節約できます。
 アダプティブ・プロキシ技術を使うためにはアプリケーションサービス毎にアダプティブ・プロキシを用意しなくてはなりません。また、この技術を使った場合には、アプリケーションのデータの中に潜んでいるセキュリティ上の脅威(悪意のコード、ウィルス等)の検査をすることはできません。

 パフォーマンスを重視するか、それともセキュリティを優先するかということになります。セキュリティを優先するということになれば、アプリケーションのデータの中身を検査しなくてはなりません。

■ アプリケーションデータの中身を検査
 セキュリティを重視することになればアプリケーションのデータの中身をチェックしなくてはなりません。そして、攻撃用のコードやウィルスが含まれていれば捨てるということになります。

 代表的なタイプはシグネチャというデータベースを使って不正なデータが入っていないかをチェックする手法です。シグネチャには攻撃コードやウィルスコードのビット列が記述されています。このシグネチャとパケットの中身を比較して不正なパケットを見つけ出します。

 アプリケーションのデータの中身までチェックするのはファイアウォールにとっては大変な作業となりますので、どんなアプリケーションでもこれを行うのは大変なことになります。そこで、特定のアプリケーションに特化してデータの中身を調べようとするものも出てきます。Webに特化して、データまで調べようとするのがWAFです。WAFについては、後で説明しています。







2.3 DMZ

 最近は多くの企業で情報公開用のWebサーバを立てていますが、この公開Webサーバはどこに置くべきでしょうか。この公開サーバには多くのインターネット上の匿名ユーザがアクセスできなくてはなりません。不特定多数の匿名ユーザのアクセスを許可するサーバを内部ネットワークに置くことはできません。では、外部ネットワークに放置すべきでしょうか。これもお勧めできません。不特定多数の匿名ユーザといいましたが、場合によっては、特定の企業の特定のユーザにだけ公開するというような公開方法も選択したい場合があると思います。そのような場合にはファイルのアクセス権とか、サーバへのパーソナルファイアウォールなどの設置という方法もありますが、他にも同様のサーバがあります。例えば、メールの中継サーバや、DNSサーバなどです。このようなサーバは、外部ネットワークでもなければ、内部ネットワークでもないという特殊なネットワークに置きたいものです。このような要望に応えるのがDMZ(Demilitarized Zone)です。直訳すると非武装地帯です。



 DMZは基本的には2つのファイアウォールに囲まれたセグメントです。インターネットからの不正なアクセスから保護されるとともに、内部ネットワークへの被害の拡大を防止することができます。上のように2つのファイアウォールを導入することでDMZを構築することができますが、ファイアウオール製品は通常非常に高価ですので、これを2台導入することは予算的には難しい面があります。従って、実際の構成例は以下のようになるのが一般的です。


 この構成では、インターネットと、DMZ、内部ネットワークが同一のファイアウォールで共存し、ただインターフェースで隔てられているだけということになりますので、安全性の面では若干の不安がありますが、コストと安全性のバランスが取れた構成だといえるでしょう



2.4 ログの管理

 ファイアウォールはアクセスログを取得する機能を持っています。代表的なログはファイアウォール本体のシステムログ、許可した通信、拒否した通信の3つです。

 アクセスログは万一侵入された場合に、事後の検証や侵入の証拠として利用ができます。

 ログファイルには容量の限度があります。アクセスログがどんどん増えるとどうなるでしょうか。システムによって様々ですが、一般的には「サイズ制限」で指定したサイズに達すると、それまでのファイル名を「元のログ・ファイル名.old」のようなものに変更し、新しいログファイルを作成します。そのファイルも一杯になると、その時点の内容で「元のログ・ファイル名.old」を上書きします。

 悪意のある攻撃者は不正攻撃を繰り返すことでアクセスログに新しい情報を書き込み、正当なログ情報を全部上書きしようとします。管理者はログ情報が満杯になり、上書き処理される前に、ログ情報を別の媒体に退避する必要があります。インシデント発生時の追跡調査を行うためには、3~4か月分のログ情報を保存しておく必要があります。

 アクセスログは定期的に確認しなくてはなりません。トラブルがあったときに慌ててログを見るのではなく、普段から平常時のログを確認し、平常時のトラフィックの状態を把握しておくことが大切です。トラブル時には平常時とどこが違っているかを確認します。

 とはいっても、ログファイルを見てそこからさまざまな情報を取り出すことは大変な努力を必要とします。慣れない人にとっては意味不明な文字列の洪水となります。ログの解析をして、解析結果を分かり易い表や図で表示してくれるツールもありますので、導入を検討してみてはどうでしょか。解析ツールを選択するときは、使っているファイアウォールに対応したものでなくてはなりませんので、注意してください。



2.5 その他管理運用上の注意

 ファイアウォール自体が乗っ取られ、設定変更されてしまうと、ファイアウォールとして機能を果たすことができません。乗っ取られて設定を変更されたときは直ぐに気づくように、設定変更があったら管理者にメールで連絡するような仕掛けにしておいてください。

 装置本体のバージョンアップを心がけ、パッチ当て作業も確実に実施しなくてはなりません。ユーザアカウントは管理者だけにします。本体のパスワード管理は特に注意してください。

 装置自体も厳重に管理してください。鍵のかかる部屋で管理し、管理者だけが鍵を保管してください。



3 IDS/IPS

 IDS/IPSはコンピュータネットワークに対する不正行為を検出するシステムです。不正を検出したら防御措置をとるのがIPS(Intrusion Prevention System、侵入防御システム)で、検出してもそのままなのがIDS(Intrusion Detection System、侵入検知システム)です。何もしないといっても、システム管理者等への通知は行います。

 外部のインターネットから内部ネットワークへの攻撃だけでなく、内部犯行(内部情報の漏洩)などに対応することができます。



3.1 不正検出と異常検出

 不正侵入や悪意のあるアクセスを検出する方法は、大きく分けて「不正検出(Misuse Detection)」と「異常検出(Anomaly Detection)」があります。不正検出は、予め不正侵入や悪意のあるアクセスなどの侵入手口をシグネチャと呼ばれるパターンに登録して、実際に捕捉したパケットをこのパターンとマッチングすることで不正を検出します。この方法では、予め登録した侵入手口しか検出できません。これに対して、「異常検出」は異常と思える「ふるまい」を検出します。この方法では、何を異常と判断するかの基準が重要となります。一般的にはログイン時間や使用するコマンド、ネットワークトラフィックなどが基準となります。基準となるものに対して、閾値を予め設定し、それを超えた場合は異常と判断するとか、ある範囲を決めておき、その範囲を外れたら異常と判断するということになります。この方法によると、未知の侵入行為を異常と検出することが可能ですが、閾値の決め方は難しくなります。基準が緩すぎると、関係のないパケットも異常として捉えてしまうことになりますし、厳しすぎると不正を取り逃がしてしまうことになります。実際には、何度かの試行を経て適切な閾値を決めていくということになるでしょう。



3.2 ホスト型とネットワーク型

 IDS/IPSにはホストに常駐して不正侵入を検知するタイプ(HIDS=Host-based IDS)と、ネットワーク上でトラフィックを監視するタイプがあります(NIDS=Netowork-based IDS)。

 HIDS/HIPSは保護したいコンピュータにインストールします。HIDS/HIPSはホストのOSが記録するログを監査し、ファイルの改ざんなどを監視します。個々のコンピュータ毎にインストールする必要がありますので、大きなネットワークでは大変です。

 NIDS/NIPSは「プロミスキャスモード」で、ネットワークセグメントを流れる全トラフィックを監視します。ネットワークを流れるパケットを収集し、そのプロトコルヘッダやデータを解析して、疑わしいパケットを発見します。



3.3 ネットワーク型の構成

 ネットワーク型のIDS/IPSはネットワークを流れるパケットをキャプチャし、危険なパケットを発見する「センサー」と、センサーが検出した情報を処理し、画像などに表示する「コンソール」から構成されます。

 センサーは通常2つのインターフェースを備えています。1つは不審なアクセスを検知するためのインターフェースです。このインターフェースにはIPアドレスを設定しません(ステルスモード)。攻撃者からこのインターフェースを見えないようにするためです。もう一つにインターフェースにはIPアドレスを設定し、このインターフェースを使って、コンソールと通信を行います。
 



3.4 ネットワーク型をどこに設置するか

 ネットワーク型IDS/IPSはファイアウォールとの組み合わせで使うことが多くなりますが、センサーの設置場所はファイアウォールの外側にするか内側にするかが問題です。

 ファイアウォールの外側に置く場合は、ファイアウォールで選り分ける前の全てのパケットを検査できますので、最近流行の攻撃が自分のところにも来ているのかどうかといったことも分かります。しかし、全てのパケットを検査するわけですので、膨大なログが発生して、確認作業に膨大なマンパワーを必要とします。

 これに対して、ファイアウォールの内側に置くとファイアウォールで遮断されたパケットは検査できません。ファイアウォールを何らかの理由ですり抜けてしまった攻撃だけを検知することになりますので、ログの量は格段に減少します。

 IDS/IPSの設置の目的がネットワークの防御だけで、マンパワーもないという場合は、内側に設置してください。これに対して、インターネット上の攻撃を研究している場合、あるいは好奇心を満たしたいという場合で、マンパワーも十分にあるという場合には外側に設置します。





4 サンドボックス型セキュリティ機能

 IDS/IPSは通信の内容を静的に解析しているため、通信の中身にファイルが含まれていてもその動作は検証できません。そのため、マルウェア側でIDS/IPSを通過するような対策を取られると検知できないことがあります。この欠点を解決するのが、「サンドボックス型セキュリティ機能」です。サンドボックス型セキュリティ機能は、1台のコンピュータ上に複数のコンピュータの仮想環境を設定し、そこで実際にファイルを開いたり、動かしたりして、どんな風に通信しているか、どんなファイルにアクセスするかなどを具体的に観察して不正を検知する方法です。

 サンドボックス型セキュリティ機能は実際にファイルを動かしてマルウェアかどうかを判断します。この段階でプログラムが暴走したりウィルス感染が発生してしまっては危険です。そのため、仮想環境では他のプログラムやデータなどを操作できないような保護された状態になっています。具体的にはファイルの読み書きをできなくしたり、許可なくマイクから録音できなくしたり、あるいはクロスサイトスクリプティング攻撃から保護するために、他のサイトへの送信を禁止したり、他のサイトの情報を読んだりすることを禁止しています。これ以外にも、プライバシーやシステムの安全性を脅かす可能性のある行為を禁止しています。

 サンドボックス型セキュリティ機能では、バイナリコードを解析するよりも短時間で悪意のあるプログラムを見つけ出すことが可能です。ただ、短時間で判定できるといっても、通信の度毎に調べるわけですから、事情を知らないユーザはネットワークが遅くなったといって不満を漏らすかも知れません。ユーザの利便性を最優先すると、攻撃者にも利便性を与えることになってしまいますので、ここはユーザにも了承してもらう必要があります。

 このサンドボックス機能はIDS/IPSに組み込まれたり、マルウェア対策機能を持つ製品に組み込まれたりして利用されています。

 サンドボックスの例としては、Sandboxie、Javaアプレット、Java Web Start、Adobe Flash、JavaScript(およびJavascriptに基づくAjax)、VMwareやMicrosoft Virtual PCなどの仮想マシン、XAMLブラウザアプリケーション(XBAP)、Google Chromeなどがあります。例えば、Java仮想マシンはJavaアプレットを動作させる際にサンドボックスに閉じ込めています。



5 WAF

 従来型のファイアウォールやIDS、IPSはIPアドレスやポート番号などを基準にして通信の制御を行います。ネットワークレベルの攻撃やDoS/DDoSなどに対してはこれで十分に機能していました。

 ところが現在は、インターネットを介した攻撃は、SQLインジェクションや、クロスサイトスクリプティング、クロスサイトリクエストフォジェリ、セッションフィクセーションなどのWebの脆弱性を突いて、Webページを改ざんしたり、個人情報を盗んだりするタイプが主流になっています。これらは、TCP/IPの通信プロトコルのレベルで攻撃を仕掛けてくるものではありませんので、従来型のファイアウォールやIDSなどでは対処できません。

 このようなタイプの攻撃に対しては、アプリケーションの製作段階でできるだけ脆弱性を持ち込まないように注意する(セキュアコーディング)のが本来の対策になります。これから作るものについては当然セキュアコーディングを心がけなくてはなりません。しかし、既に作られてしまったものはどうすべきでしょうか。改修が望ましいのですが、これも大変です。

 攻撃は日々進化・複雑化・巧妙化していますので、改修もそれに合わせなくてはなりません。従来は単純なSQLインジェクションだったものが、ある日マルウェアが追加されていたり、Cookie奪取の攻撃が追加されたりしています。攻撃が、進化する度に改修を行う必要がありますので、この方法で行くとすれば、多分継続的に改修作業をしていくことになり、コストは膨大になります。もちろん、新たに作成するアプリケーションもセキュアコーディングを心がけたとしても、そののち改修の必要性が生ずるかもしれません。

 Webアプリケーションレベルでの攻撃をリスクと捉えてこれに対処する方策が何か必要です。これがWAF(Web Application Firewall、通称は「ワフ」)です。WAFでは、Webアプリケーションがやり取りするデータの内容を把握・管理することで不正アクセスを制御しようとするタイプのシステムです。


 ファイアウォール(F/W)やIDS(IPS)は主としてパターンが一致しているかで判断します。これに対して、WAFはリバースProxyで通信をいったん終端し、通信の中身を完全に解読してから、複数のシグネチャの検知状況を分析して防御を行います。

 WAFで防御可能な攻撃としては、クロスサイトスクリプティング、クロスサイトリクエストフォージェリ、SQLインジェクションなどの他に、セッションハイジャッキング、バッファオーバフロー、強制ブラウズ、OSコマンドインジェクション、パラメータ改竄、パストラバーサル、エラーコード、パスワードリスト攻撃などがあります。



6 検疫ネットワーク

 一般のユーザが大学や企業の公開サーバを閲覧している場合には、大学や企業の内部ネットワークにアクセスしているわけではありません。公開サーバは一般的にはDMZに配置されています。しかし、外部ネットワークから学内、社内のネットワークにアクセスしたいときがあります。このような場合はVPNなどを使いますが、VPNを使って、大学内あるいは企業内のサーバにアクセスさせるのは若干心配があります。VPNで接続してくるパソコンは一般的には個人で管理しているパソコンですので、OSがちゃんとバージョンアップされているか、必要なソフトがインストールされているか、あるいはウィルスに感染していないか、P2Pファイル共有ソフトなどはインストールされていないかなど心配です。

 そこで、VPN経由で学内、社内にアクセスするパソコンは、一旦学内、あるいは社内のネットワークではなく、別のネットワークに接続し、そこで接続パソコンがウィルスに感染していないか、OSは古くないか、セキュリティホールを抱えていないか、などを検査して、安全性の確認できたパソコンだけ学内、あるいは社内ネットワークに接続する方法が採用される場合があります。このようなネットワークを検疫ネットワークといいます。あるいは、検査用のネットワークのことを指して、検疫ネットワークということもあります。

 検疫ネットワークを使った場合、パソコンを学内、あるいは社内ネットワークにつないだときは、学内あるいは社内ネットワークへの入り口となるネットワーク機器で検疫ネットワークへつなぎ、ここで検疫サーバと呼ばれるサーバによってウィルス定義ファイルのバージョンや、パッチの適用状況などを検査します。検査に合格すると、学内、社内ネットワークに接続しますが、不合格になった場合は、ネットワーク管理者へメールやアラームで連絡すると同時に、検疫ネットワーク内に隔離した状態で、ウィルス定義ファイルの更新や、パッチの適用などの措置をし、安全を確認した段階で、学内、社内のネットワークへの接続を許可します。

 学内、あるいは社内のネットワークに切り替える場合にはいくつかの方法がありますが、大きく分けると①DHCPサーバ方式、②パーソナルファイアウォール方式、③認証スイッチ方式です。

① DHCPサーバを使う方式
 この方式は、合格したパソコンには学内、あるいは社内のネットワークに接続可能なIPアドレスを割り当てます。実現が簡単です。内部ネットワークのLANスイッチがそのまま使えます。アクセスするパソコンのDHCP機能はオンにしておかなくてはなりません。

② パーソナルファイアウォールを使う方式
 この方式はパソコンに導入したパーソナルファイアウォールのフィルタリング機能を使って、パソコンがアクセスできるネットワークを切り替えることで内部ネットワークへのアクセスを可能とします。この方式も内部ネットワークは従来のものを使うことができます。

③ 認証スイッチネットワーク
 ユーザ認証の機能を持った認証スイッチを導入する方式です。LANスイッチと認証サーバを連携して、予め決められたユーザにだけ内部ネットワークへのアクセスを許可します。最も安全性が高まりますが、認証スイッチネットワークを新たに導入しなくてはなりません。かなりの出費を覚悟しなくてはなりません。



7 無線LANのセキュリティ

 無線LANのセキュリティについてはこちらをご覧ください。




更新記録

2016/08/21       作成


















































































 ページの先頭