こんにちは!インフラやネットワークの世界へようこそ。日々のシステム運用やネットワーク構築、本当にお疲れ様です!
新しい環境に飛び込んだとき、「このビルにはどんな部署があって、誰がどこに座っているんだろう?」と気になりますよね。実は、ネットワークの世界でも、サイバー攻撃者やマルウェアは全く同じことを考えています。オフィスのドアを開けて中に入ったあと、社内ニョキニョキとネットワークの地図を作り始めるのです。
今回は、そんな社内探索の主役になってしまう、ちょっと厄介なポートたち――TCP 135番(RPC)とTCP 139番(NetBIOS)について、一歩ずつ優しく紐解いていきましょう!
—
1. 郵便配達と社内名簿でイメージする「ポート135番・139番」の正体
難しいパケットやプロトコルの話に入る前に、私たちの身近な世界に置き換えて考えてみましょう。
会社に届いた郵便物は、まず受付(ビルの入口)に届きますよね。この「受付の窓口番号」がネットワークの世界におけるポート番号です。
- ポート135番(RPC):社内の「内線電話の取次ぎカウンター」
- Windowsパソコンの中には、プリンターを動かしたり、他のアプリと会話したりするための「小さなプログラム(サービス)」がたくさん動いています。それらを裏で束ねて、「〇〇の機能を使いたいんだけど、担当をつないで!」と取り次ぐのが、このRPC(Remote Procedure Call)という仕組みです。
- ポート139番(NetBIOS):古き良き「社内ロビーの伝言板と名簿」
- 昔のWindowsネットワークでは、「誰がどのPCを使っているか」「どのフォルダをみんなで共有しているか」をみんなで共有するために、フロア全体に声を張り上げて確認するような仕組みがありました。それがNetBIOSです。
攻撃者やランサムウェアは、一度社内ネットワークのどこか一台のPC(例えば、誰かのうっかりクリックしたメールから)に侵入すると、この「内線カウンター」や「伝言板」をこっそり叩いて、「この会社には、他にどんなパソコンがあって、どんな隙だらけのサービスが動いているんだ?」と猛烈な勢いで調べ上げます。これが内部探索(ラテラルムーブメント)の第一歩なんです。
—
2. なぜ危ない? エクスプロイト(脆弱性攻撃)までのシナリオ
ただ覗き見されるだけならまだしも、これらのポートが開いたままになっていると、本当に恐ろしいことが起きます。
攻撃者の手口をストーリー仕立てで見てみましょう。
1. 侵入(起点): 巧妙なフィッシングメールなどで、一般社員のPCがランサムウェアに感染。
2. 名簿の確認(ポート135/139の探索): 感染したPCは、「同じフロア(サブネット)に他にパソコンはないか?」「ファイル共有を開いている奴はいないか?」と、ネットワーク全体に挨拶回り(スキャン)を始めます。
3. お邪魔します!の罠(エクスプロイト): ポート135番や139番の向こう側にあるWindowsの古いプログラムに「バグ(脆弱性)」が見つかっていると、攻撃者はそこに特製のコマンドを送り込みます。「私の言うことを聞きなさい!」と、そのパソコンの最高権限(SYSTEM権限)をいとも簡単に乗っ取ってしまうのです。
4. 感染の拡大: 乗っ取ったPCを踏み台にして、さらに隣の部署へ、そのまた隣の部署へと、ランサムウェアがウイルスのようにコピーを繰り返していきます。
気がついた時には、会社全体のパソコンが真っ赤な身代金画面に……なんていう悪夢のような事態を引き起こす引き金になるのが、このポートたちなのです。
—
3. 現場でできる!セグメント間ルーティング制御とファイアウォール設定
「じゃあ、社内なんだから全部の通信を自由にさせておけばいいや」というのは、ゼロトラストの時代では大NGです!
たとえ同じ社内であっても、「総務部のエリア」と「開発部のエリア」、「一般PCのエリア」の間には、見えない壁(ファイアウォール)をしっかりと作り、不要なRPCやNetBIOSの通信がフロアをまたいで勝手に流れないように制御(セグメント間ルーティングの制限)することが何よりも重要になります。
ここでは、ネットワーク機器(ルーターやレイヤー3スイッチ)や、Windowsの標準機能を使った具体的な設定のヒントを見ていきましょう。
A. ルーター・L3スイッチでのアクセス制御(ACLの例)
社内ネットワークの境界にいるルーターで、「一般PCから他のPCへの135番・139番・445番への通信はすべて捨てる(ドロップする)」というルール(ACL:アクセスタイリスト)をかけます。
# Ciscoルーターなどを想定したACL設定のイメージ
# 一般ユーザー用セグメント(192.168.10.0/24)から、他の全セグメントへの危険なポートを遮断する
access-list 100 deny tcp 192.168.10.0 0.0.0.255 any eq 135 ! RPCの通信を禁止
access-list 100 deny tcp 192.168.10.0 0.0.0.255 any eq 139 ! NetBIOS Sessionの通信を禁止
access-list 100 deny tcp 192.168.10.0 0.0.0.255 any eq 445 ! SMB(ファイル共有)の通信もついでに禁止
access-list 100 permit ip any any ! その他の通常の通信(Webなど)は許可する
このように、「社内だから安心」と甘えを見せず、必要最小限の通信だけを許可する「最小権限の原則」をネットワークのルーティングレイヤーから徹底することが、プロの技の見せ所です!
B. Windows Defender ファイアウォールでの個体防御
ネットワーク機器だけでなく、パソコン自体(エンドポイント)でもしっかりとガードを固めましょう。特に外部に公開する必要のないクライアントPCでは、不要なポートの受信をバツ印でブロックします。
PowerShellを使えば、管理者権限で一瞬にして不要なNetBIOS関連のバインドを無効化したり、ファイアウォールを締め上げたりすることができます。
# 【管理者向け】Windows端末でNetBIOS over TCP/IPを無効化するPowerShellスクリプトの例
# 社内ネットワークでの不要な名前解決や列挙を防ぎます
$Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled = 'True'"
foreach ($Adapter in $Adapters) {
# 0: DHCP設定に従う, 1: 有効にする, 2: 無効にする
$Adapter.SetTcpipNetbios(2) | Out-Null
Write-Host "アダプター [$($Adapter.Description)] の NetBIOS over TCP/IP を無効化しました。" -ForegroundColor Green
}
※実務でスクリプトを適用する際は、必ず事前にテスト環境で既存の業務アプリ(古い社内システムなど)が影響を受けないか確認してから実行してくださいね!
—
4. まとめ:今日からできる一歩
ポート135番や139番は、Windowsが便利に動くための歴史ある大切な仕組みである一方、サイバー攻撃者にとっては「社内をサバイバルするための格好のマップと道具」になってしまいます。
- 「社内だから安全」という神話を捨てること
- セグメント間にしっかりとファイアウォールの壁を設け、不要なRPCやNetBIOSを通さないこと
- エンドポイント(PC)側でも不要な機能を削ぎ落とすこと
この3つを意識するだけで、ランサムウェアのラテラルムーブメント(横展開)の大部分を防ぎきることができます。「うちのネットワーク、本当に大丈夫かな?」と思った方は、ぜひ今すぐ社内のルーティングルールやファイアウォールの設定を覗き直してみてください。
それでは、また次回のセキュリティ・ネットワーク解説でお会いしましょう!安全で快適なインフラライフを!
コメント