皆さん、こんにちは!ネットワークセキュリティの最前線から、皆さんの「守りたい」気持ちに応える記事をお届けする、主筆ライターのサイバー・タクです!
今日のテーマは、私たちの大切なネットワークの内部に忍び込んだマルウェアや攻撃者が、次に何を企むのか、その「悪だくみ」の手口と、それを防ぐための具体的な防御策についてです。特に、ポート135(RPC) と ポート139(NetBIOS Session Service) という、一見地味ながらも非常に重要な「窓口」と「玄関口」に焦点を当てて、じっくりと掘り下げていきましょう。
「なんだか難しそう…」と感じた方もご安心ください!小難しい専門用語は避け、郵便配達の流れや身近な例えを使いながら、一歩ずつ理解を深めていけるよう、丁寧に解説していきますね。
—
内部偵察の目を潰せ!ポート135(RPC)と139(NetBIOS)で悪だくみする攻撃者を防ぐネットワーク防御術
攻撃者の第一歩は「内部偵察」から始まる
想像してみてください。もし泥棒が皆さんの家に侵入したとします。彼らがいきなり高価なものを持ち去るでしょうか?いいえ、まずは家の中を物色し、「どこに貴重品が隠されているか」「誰が住んでいるのか」「警備はどこが手薄か」といった情報を集めようとしますよね。
サイバー攻撃もこれと全く同じです。マルウェアやランサムウェアがネットワーク内のどこか一台のパソコンに感染した後、攻撃者は次に何をすると思いますか?彼らはすぐに機密情報を盗んだり、システムを破壊したりするわけではありません。まずはネットワーク全体の「地図」を作り、どこに重要なサーバーがあるのか、どんなユーザーがいるのか、どの共有フォルダにアクセスできるのか、といった「内部偵察」を行うんです。
この内部偵察に使われやすいのが、今日ご紹介する ポート135 と ポート139 なんです。なぜこれらのポートが狙われやすいのか、まずは彼らの「正体」から見ていきましょう。
ポート135 (RPC) とは? — 遠隔地の「お使い」をお願いする窓口
まず ポート135 ですが、これは主にWindows環境で使われる RPC (Remote Procedure Call) という仕組みの窓口です。
RPCって何だろう?身近な例で考えてみよう!
RPCを簡単に説明すると、「遠く離れたパソコンの中のプログラムに、『これこれをやってほしい』とお願いする」ための技術です。
例えば、皆さんが会社で働いているとして、隣の部署の同僚に「〇〇の資料を作ってほしい」と電話でお願いするようなイメージです。直接会いに行かなくても、電話一本で依頼が完了しますよね。これがネットワークの世界で行われているのがRPCなんです。
Windowsのネットワークでは、このRPCが様々な重要な役割を担っています。
- Active Directory (AD) の管理: 会社や組織のユーザーアカウントやパソコンの情報を一元管理する「脳みそ」のようなサーバーがActive Directoryですが、このADと各パソコンがやり取りする際にRPCが使われます。
- 共有フォルダの管理: ネットワーク上にある共有フォルダの設定を変更したり、アクセス権を管理したりする際にもRPCが利用されます。
- Windowsサービスの制御: 遠隔地のPCで特定のサービス(プログラム)を開始したり停止したりするのにも使われます。
このように、RPCはWindowsネットワークの非常に便利な「司令塔」のような存在なんですね。
攻撃者はどう悪用するのか?
しかし、この便利な窓口が悪意ある攻撃者の手に渡るとどうなるでしょうか?
攻撃者は、感染したPCからこのポート135を使って、ネットワーク内の他のPCやサーバー、特にActive Directoryのドメインコントローラーに対して、「お前、どんなユーザーがいるんだ?」「どんな共有フォルダがあるんだ?」「どのパソコンがどんなサービスを動かしているんだ?」といった、本来ならば限られた管理者しか知るべきではない情報を聞き出そうとします。
これはまるで、電話で「社長の金庫の場所と鍵の番号を教えてくれ」と尋ねるようなもので、非常に危険な行為になりますよね。
ポート139 (NetBIOS Session Service) とは? — 昔ながらの「ご近所付き合い」の玄関口
次に ポート139 ですが、これは NetBIOS Session Service という、主にWindowsの古いネットワークで使われていた技術が利用するポートです。
NetBIOSって何だろう?「ご近所付き合い」で例えてみよう!
NetBIOSは、ネットワーク上でコンピューターがお互いを「名前」で識別し、コミュニケーションを取るための仕組みです。
これも身近な例で考えてみましょう。皆さんが引っ越してきたばかりの町で、隣の「田中さん」の家に手紙を届けたいとします。でも番地が分からない。そこで、ご近所の人に「田中さんの家はどこですか?」と尋ねて、場所を教えてもらうようなものです。この「名前で探す」という仕組みがNetBIOSに近いイメージですね。
かつてWindowsネットワークでは、このNetBIOSが、ファイル共有やプリンター共有といった「ご近所付き合い」の基盤となっていました。現在は SMB (Server Message Block) というより洗練されたプロトコルが主流ですが、NetBIOS over TCP/IP (NBT) という形で、TCP/IPネットワーク上でもNetBIOSの機能を提供するためにポート139が使われ続けているケースがあります。特に、Windowsの古いシステムが残っている環境では、いまだに活動していることがあるんです。
攻撃者はどう悪用するのか?
このポート139も、攻撃者にとっては非常に魅力的な情報源となりえます。
攻撃者は、感染したPCからこのポート139を使って、ネットワーク内の他のPCに対して、「お前の名前は何だ?」「どんなユーザーがログインしているんだ?」「どんな共有フォルダを開放しているんだ?」といった情報を収集しようとします。
これはまるで、見知らぬ人が会社に入ってきて、受付で「この会社の社員名簿を見せてください」とか、「誰がどの部署にいるか教えてください」と尋ねるようなものですよね。もしそれに答えられてしまったら、社内の人間関係や組織構造が筒抜けになってしまいます。
なぜ攻撃者はこの「窓口」や「玄関口」を狙うのか? — 内部の地図を広げるため
まとめると、ポート135と139は、攻撃者にとってネットワーク内部の貴重な情報を得るための「窓口」や「玄関口」になるんです。
攻撃者はこれらのポートを通じて、以下のような情報を収集し、次の攻撃ステップ(権限昇格や横展開)に役立てようとします。
- ドメイン情報: Active Directoryのドメイン名、ドメインコントローラーのIPアドレス。
- ユーザー情報: ドメインに登録されているユーザー名の一覧。
- コンピューター情報: ネットワーク上のPC名、IPアドレス、OSの種類。
- 共有リソース情報: ネットワーク上に公開されている共有フォルダの一覧や、プリンターなどの情報。
これらの情報が手に入れば、攻撃者はまるでネットワークの「地図」を手に入れたかのように、どこに重要なターゲットがあるのか、どこが攻めやすいのかを判断できるようになってしまうわけです。
ネットワークレベルで「門戸」を固める防御策
では、このような内部偵察の動きを食い止め、私たちのネットワークを守るためにはどうすれば良いのでしょうか?大きく分けて「監視の目を持つこと」と「不要な門戸を閉じること」の2つが重要になります。
1. 監視の目を持つ:不審な挙動を見逃さない!
まず大切なのは、常にネットワークの動きを監視し、不審な挙動をいち早く察知できる「目」を持つことです。
- ファイアウォールのログを確認する:
- 皆さんのネットワークの出入り口を守る「門番」であるファイアウォールは、すべての通信を記録しています。このログを定期的に確認し、特定の送信元IPアドレスからポート135や139への異常な数の接続試行がないか、普段はアクセスしないはずのPCからこれらのポートへの通信が発生していないかなどをチェックしましょう。
- 「いつもは静かな裏口(ポート)が、急にバタバタと開け閉めされている」ような状況を見つけたら、すぐに調査が必要です。
- SIEM (Security Information and Event Management) を活用する:
- 大規模な企業では、様々なセキュリティ機器(ファイアウォール、IDS/IPSなど)やサーバーから送られてくる膨大なログを一元的に収集・分析する
SIEMというシステムを導入していることが多いです。 - SIEMを使うことで、特定のポートへの異常なアクセスパターンや、複数のシステムにまたがる不審な動きを自動的に検知し、アラートを上げることができます。
2. 不要な「窓口」は閉じる:ファイアウォールで厳重管理!
次に重要なのは、「使わない窓口は閉めておく」「必要な窓口も、許可された人以外は通さない」という考え方です。これを 「最小権限の原則」 ならぬ 「最小開放ポートの原則」 と呼びましょう!
a. ファイアウォールで通信を制御する
これが最も基本的かつ強力な防御策です。皆さんのPCやサーバー、そしてネットワーク全体の出入り口に設置されているファイアウォールで、ポート135と139へのアクセスを厳しく制限します。
- 一般のクライアントPCからは不要な通信をブロック:
- ほとんどの一般ユーザーのPCは、Active Directoryサーバーや共有ファイルサーバーに対してはポート135や139で接続するかもしれませんが、逆方向(つまり他のPCが自身のポート135/139に接続してくる)や、PC同士の直接的なRPC/NetBIOS通信 は、通常は不要です。
- これらの不要な通信は、ファイアウォールでブロックするように設定しましょう。
- サーバー間でも必要な通信のみ許可する:
- Active Directoryのドメインコントローラーやファイルサーバーなど、これらのポートを業務上どうしても使う必要があるサーバーに対しても、信頼できる特定のIPアドレスやセグメントからの通信のみを許可し、それ以外の通信はすべてブロックする、といった厳密なルールを設定することが重要です。
b. ネットワークを「部屋分け」する:セグメンテーションで被害を限定!
会社の建物を想像してみてください。社長室も経理部も一般の執務室も、すべて壁もドアもなく繋がっていたらどうでしょうか?誰でもどこにでも自由に出入りできてしまい、セキュリティはガタガタですよね。
ネットワークも同じです。役割や重要度に応じてネットワークを「部屋分け」することを ネットワークセグメンテーション と言います。
- 例えば、Active Directoryサーバーは「社長室」、データベースサーバーは「金庫室」、一般ユーザーのPCは「執務室」のように、それぞれの役割に応じて異なるネットワークセグメント(
VLANやサブネット)に配置します。 - そして、各セグメント間の通信はファイアウォールで厳しく制御し、本当に必要な通信だけを許可するようにします。これにより、もし一般ユーザーPCがマルウェアに感染しても、被害が「執務室」内に限定され、「社長室」や「金庫室」には簡単に侵入できないようになります。
- この考え方は、ゼロトラスト(何も信頼しない) のセキュリティ原則にもつながります。
c. 古い「ご近所付き合い」は断捨離:SMBv1の無効化など
ポート139で利用されるNetBIOSは、特にWindowsの古いバージョンで使われていた技術です。Windowsのファイル共有で使われる SMB も、古いバージョンの SMBv1 には多くの脆弱性が存在します。
現代のWindows環境では SMBv2 や SMBv3 が主流であり、古い SMBv1 はセキュリティリスクにしかなりません。積極的に無効化することを強く推奨します。これにより、ポート139への不要な通信を減らすことにもつながります。
実践!Windows Defender Firewallでポート135/139を制御する
それでは、皆さんのWindows環境で今すぐできる、Windows Defender Firewall(Windowsに標準搭載されているファイアウォール)を使った防御策を見ていきましょう。今回はコマンドプロンプト(管理者として実行)から netsh コマンドを使って設定する例をご紹介します。
1. 受信(インバウンド)接続の制限
まず、外部からのアクセスを制限します。特にクライアントPCでは、これらのポートへの受信接続はほとんど不要です。
REM --- ポート135 (RPC) の受信接続をブロックするルールを追加 ---
REM 通常、クライアントPCは他のPCからRPC接続を受ける必要はありません。
REM 必要最小限のサーバー(例: Active Directoryドメインコントローラー)のみで許可を検討します。
netsh advfirewall firewall add rule name="Block RPC Inbound for Clients" dir=in action=block protocol=TCP localport=135 description="クライアントPCへのRPC受信をブロック"
REM --- ポート139 (NetBIOS Session Service) の受信接続をブロックするルールを追加 ---
REM クライアントPCが他のPCからNetBIOSセッション確立を受ける必要は通常ありません。
REM ファイルサーバーなど、特定のサーバーでのみ許可を検討します。
netsh advfirewall firewall add rule name="Block NetBIOS 139 Inbound for Clients" dir=in action=block protocol=TCP localport=139 description="クライアントPCへのNetBIOS 139受信をブロック"
REM --- ルールが追加されたか確認する ---
netsh advfirewall firewall show rule name="Block RPC Inbound for Clients"
netsh advfirewall firewall show rule name="Block NetBIOS 139 Inbound for Clients"
【注意点】
- Active Directoryのドメインコントローラーやファイルサーバーなど、RPCやNetBIOSセッションサービスを「提供」する必要があるサーバーでは、これらのポートを完全にブロックすると業務に支障が出ます。その場合は、信頼できる特定のサブネットやIPアドレスからの受信のみを許可する、というより詳細なルールを設定する必要があります。
- 例えば、ドメインコントローラーで特定のサブネットからのポート135を許可したい場合は、
remoteip=192.168.1.0/24のように指定できます。
2. 送信(アウトバウンド)接続の制限
次に、PCから外部への不審な接続を制限します。感染したマルウェアが内部偵察のためにポートスキャンを試みるのを防ぎます。
REM --- ポート135 (RPC) の送信接続を制限するルールを追加 ---
REM クライアントPCから他のクライアントPCへのRPC接続は通常不要です。
REM Active Directoryや管理サーバーなど、特定のサーバーへの接続のみ許可し、それ以外をブロックします。
REM この例では「全て許可し、特定のターゲットのみブロック」というより、
REM 「全てブロックし、特定のターゲットのみ許可」というホワイトリスト方式が理想ですが、
REM まずは一般的なブロックルールを示します。
REM 例えば、特定のIPアドレス(例: ADサーバーのIP)以外へのポート135送信をブロックする場合
REM 環境に合わせて remoteip を調整してください。
netsh advfirewall firewall add rule name="Block RPC Outbound to Non-AD" dir=out action=block protocol=TCP remoteport=135 remoteip=any description="AD以外へのRPC送信をブロック"
REM ----------------------------------------------------------------------------------------------------
REM 補足: より厳密なホワイトリスト方式にする場合(例: まずすべてブロックし、後で許可する)
REM これは現在の環境に大きな影響を与える可能性があるため、慎重にテストしてください。
REM
REM 1. まず、ポート135のすべてのアウトバウンドをブロックする(コメントアウトしてあります)
REM netsh advfirewall firewall add rule name="Block All RPC Outbound" dir=out action=block protocol=TCP remoteport=135
REM
REM 2. その後、必要な宛先(例: ADサーバーのIPアドレス `192.168.1.10`)への接続を許可する
REM netsh advfirewall firewall add rule name="Allow RPC Outbound to AD" dir=out action=allow protocol=TCP remoteport=135 remoteip=192.168.1.10
REM ----------------------------------------------------------------------------------------------------
REM --- ポート139 (NetBIOS Session Service) の送信接続を制限するルールを追加 ---
REM クライアントPCから他のクライアントPCへのNetBIOSセッション接続は通常不要です。
REM ファイルサーバーなど、特定のサーバーへの接続のみ許可し、それ以外をブロックします。
netsh advfirewall firewall add rule name="Block NetBIOS 139 Outbound" dir=out action=block protocol=TCP remoteport=139 remoteip=any description="NetBIOS 139の全送信をブロック"
REM --- ルールが追加されたか確認する ---
netsh advfirewall firewall show rule name="Block RPC Outbound to Non-AD"
netsh advfirewall firewall show rule name="Block NetBIOS 139 Outbound"
【注意点】
- アウトバウンドルールの設定は、環境によっては業務に大きな影響を与える可能性があります。特に、
remoteip=anyで一律ブロックする前に、どのPCがどのサーバーにこれらのポートで接続しているかを十分に調査し、テストを行うことが非常に重要です。 - 最も安全なのは、まずすべての送信をブロックし、その後、業務に必要な通信(例:ADサーバーへのRPC通信)だけをホワイトリスト形式で許可していく方法です。しかし、これは設定が複雑になり、事前の調査が必須となるため、段階的に導入を検討してください。
まとめ:地味なポートこそ、しっかりと守るべし!
今日の記事では、普段あまり意識されないかもしれない ポート135 と ポート139 が、サイバー攻撃において内部偵察の重要な手口として利用されること、そしてその防御策について解説しました。
重要なポイントは以下の3つです。
1. ポート135 (RPC) は、Windowsネットワークの司令塔のような役割で、遠隔のPCに「お使い」をお願いする窓口。攻撃者はここから内部情報を聞き出そうとします。
2. ポート139 (NetBIOS Session Service) は、昔ながらの「ご近所付き合い」の玄関口で、PCの名前解決やファイル共有に使われていました。攻撃者はここからPCリストや共有情報を探ろうとします。
3. 防御策としては、ファイアウォールで不要な通信をブロックし、ネットワークをセグメンテーション(部屋分け) し、ログを監視して不審な動きを見逃さないことが重要です。
サイバーセキュリティは、最新の攻撃手法を追いかけることも大切ですが、このように「地味だけど重要な」基本をしっかりと押さえ、継続的に改善していくことが何よりも大切です。今日学んだ知識を活かして、皆さんのネットワークをより安全なものにしていきましょう!
それでは、また次回の記事でお会いしましょう!サイバー・タクでした!
コメント