フィルタリングで遮断すべきポート番号

ここでは、ファイアウォールのフィルタリングで遮断すべき危険なポートとその理由を説明して行きます。

プライベートIPアドレスを遮断する

 攻撃を仕掛ける場合の代表的な手法にIPアドレスの偽装(IPスプーフィング)があります。また、ウイルスに感染したり、踏み台として利用される場合や、DoS攻撃、DDoS攻撃 などを行う際に、送信元が特定されないようにするためにも利用されます。

 その際、よく偽装されるIPアドレスが、プライベートIPアドレスです。この。プライベートアドレスは、LANなどのプライベートで閉じたネットワークでしか利用されることがないアドレスです。

 このプライベートIPアドレスが書き込まれているパケットがインターネット上を流れることはありません。一般的には、プライベートIPアドレスが指定されたパケットを遮断するようにフィルタリングを定義します。

ICMPを遮断する

 ICMPを利用したPingコマンドに応答しないようにICMPパケットを遮断することで、内部のコンピュータやネットワーク機器の存在を外部(インターネット)から隠蔽することができます。

 つまり、外部から見た場合、Pingコマンドの応答がないので、コンピュータやネットワーク機器の存在の確認ができなくなるため、セキュリティが高まります。

 フィルタリングの設定で、ICMPパケットを全て遮断してしまうという手法もありますが、使い勝手がよいとはいえないケースもあります。それは、運用保守の観点から、ファイアウォールの内側からPingを利用したいケースがあるからです。

 その際は、ICMPメッセージのうち、ファイアウォールの内側から外側に出てゆくICMPエコー要求(タイプ8)を許可し、ファイアウォールの外側から内側に入ってくるICMPエコー応答(タイプ0)許可するようにフィルタリングの設定を行います。

 ただし、ルータによっては、ICMPがデフォルトで遮断される設定がなされている製品もあります。その際は、カスタマイズする必要があります。

Telnetを遮断する

 Telnetを無制限に許可していると、内部のコンピュータやネットワーク機器が悪意のある者に乗っ取られてしまうリスクが高くなります。

 乗っ取られてしまうと攻撃者の思うがままに設定を変更されてしまいます。そうなると、情報を盗まれたり、踏み台とされて、他のサイトへ攻撃を仕掛けたりと迷惑行為を助長することとなります。そのため、必要のないTelnet接続を遮断する設定を行う必要があります。

 また、Telnet以外にも遠隔操作を行うことができるアプリケーションの存在も忘れてはなりません。SymantecのpcAnywhereなど、遠隔地のコンピュータをリモートコントロールできるアプリケーションを利用する際には、注意が必要です。

不正利用されやすいWindowsのポートをファイアウォールで遮断する

 Windowsが利用するTCP/UDPの135,137,138,139,445番のポートは、ファイヤウォールで遮断するのが無難です。

 多くのユーザが利用するWindowsは、悪意のある攻撃者の格好の標的となります。ポート番号は数多くありますがその中でもよく狙われるポート番号があります。

 それは、Windowsのセキュリティホールを悪用したウイルスやワームで利用されるポートです。特にTCP/UDP135の137,138,139,445のポート番号は、セキュリティホールとして標的となっています。

 有名なのは、2003年8月に大きな被害を出したBlasterワームです。MS03-026(RPCインターフェイスのバッファ オーバーランによりコードが実行される)というセキュリティホールを悪用しています。

 Blasterワームに感染したコンピュータがネットワーク内に1台存在するだけでも、ネットワークに負荷をかけて、ルータが過負荷状態に陥り固まってしまったり、帯域が占有されてしまったりとネットワークに与える影響は無視できないものでした。

 また、困ったことに、このBlasterワームの感染力は凄まじく駆除しても、その時には、他のコンピュータが既に感染しており、その伝染力は脅威で多くのネットワーク管理者を困らせました。

危険なポート番号137と138

 ポート番号137と138は、おしゃべりなポートとして有名です。例えば、Windowsの137番ポートに対して接続の状態を問い合わせると下記の情報などが取得できてしまいます。

  • コンピュータ名
  • ドメイン名
  • ローカルログオン名
  • MACアドレス
  • ファイルサーバであるか
  • マスタブラウザであるか
  • ドメイン・コントローラであるか

など

このような情報を攻撃者に知られてしまうと格好の餌食となってしまいます。

それでは、このポート番号137と138は、どこで利用されているのでしょうか?

 Windowsネットワークで利用されている「NetBIOS over TCP/IP」(NBT)の名前解決という機能で使われています。

 NetBIOS名(コンピュータ名)を使って、他のコンピュータにアクセスできたり、メニューの「ネットワーク」から、ネットワークに接続しているパソコンが一覧を表示することができるのは、この「NetBIOS over TCP/IP」のおかげです。

 「NetBIOS over TCP/IP」は、便利そうなプロトコルだと思えてるかもしれませんが、ユーザが気付かないうちに、コンピュータ自身が自分に関する情報を周囲にばらまいているという点に注意が必要です。それは、「NetBIOS over TCP/IP」で扱っている情報を外部に流す必要がないということです。特に公開サーバは危険です。

 ファイアウォールでこれらのポート番号を遮断しておくことが望ましいと言えます。しかし、イントラネット環境で、Microsoftネットワークを利用している場合、問題が出てきます。

 それは、各拠点間でのMicrosoftネットワークの利便性がなくなってしまう点です。その場合は、Microsoftネットワークの利便性を諦めるか、お勧めはできませんが、これらのポート番号の書かれたパケットを通過するようにファイアウォールのフィルタリングを設定します。

 ちなみに、NetBIOSサービスを停止すには、TCP/IPのプロパティから「詳細設定」ボタンを押して「WINS」タブで「NetBIOS over TCP/IPを無効にする」を選択することでポート番号137、138、139番ポートが閉じられます。

危険なポート番号139と445

 Microsoftネットワークに接続しているコンピュータは、ファイル共有やプリンタ共有などの通信をSMB(Server Massage Block)というプロトコルを利用して行っています。

 SMBは139と445のポート番号を利用しています。SMBの通信では、まず、NetBIOSで名前解決の仕組みを使って相手のIPアドレスを取得します。

 そして、通信の開始を要求して相手が許可することでセッションが確立します。これを使ってユーザ名やパスワード情報を相手先に送り認証が行われます。認証が成功すれば相手の共有ファイルにアクセスできるようになります。

135,137~139,445を閉じる場合の留意事項

これらのポート番号が書かれたパケットをルータで遮断するとMicrosoftネットワークの利便性が失われてしまいます。

 イントラネット環境でファイル共有を行っている場合、コンピュータ名でファイル共有を行ったり、プリンタを利用することが制限されます。

 特に、TCP/UDP135番を遮断すると閉じるとActive Directoryが利用できなくなることがあるため注意が必要です。