【入門編】 SMBv1/SMBv2プロトコル(ポート445)におけるEternalBlue(CVE-2017-0144)を用いたワーム型感染 – サイバーセキュリティとプライバシー保護実践ガイド

こんにちは!インフラエンジニアとして日々のネットワーク運用やセキュリティ対策に奔走している皆さん、そしてこれからネットワークの世界に飛び込もうとしている初学者の皆さん。

ネットワークの安全を守る仕事をしていると、時として背筋が凍るような「歴史的な脅威」の影に直面します。その代表格が、今回取り上げる「EternalBlue(CVE-2017-0144)」と、それを利用して猛威を振るったランサムウェア(WannaCryなど)のワーム型感染です。

「名前は聞いたことがあるけれど、実際にネットワークの上で何が起きているのかいまいちピンと来ない……」そんな風に思っていませんか?
大丈夫です!今回は、難解なパケットの構造や仕様書の言葉をいったん脇に置いて、私たちの身近にある「郵便配達」の仕組みに例えながら、一歩ずつ優しく紐解いていきましょう。

—

1. そもそも「EternalBlue」ってなに? 身近な例えで理解する

ネットワークの世界で使われるSMB(Server Message Block)というプロトコルをご存じでしょうか? これは、Windowsのパソコン同士でファイルやプリンターを共有するための「おしゃべりのルール」のようなものです。社内LANで「あの資料共有サーバーからファイルを取ってきて」と頼むとき、裏側ではこのSMBがせっせと働いています。

普段はとても便利なこのSMBですが、古いバージョンのルールには「大きな荷物を受け取るときに、宛先のメモ帳の余白をちゃんと考えずに受け取ってしまう」という、ちょっぴりおっちょこちょいな隙(脆弱性)がありました。

郵便受けのポスティング事故に例えてみよう

想像してみてください。あなたの家の郵便受け(バッファ)は、A4の封筒がやっと入るくらいのサイズだとします。
そこへ、悪意を持った配達員が、無理やり段ボール箱のような巨大な荷物を突っ込んできました。

  • 正常な状態: 郵便受けに入るサイズの荷物だけを受け取るので、玄関は平和です。
  • EternalBlueの攻撃: 郵便受けのキャパシティを無視して巨大なデータをねじ込むため、郵便受けが壊れ、あふれ出たデータが「廊下の床(メモリ上の別の領域)」まで浸食してしまいます。

攻撃者は、このあふれ出た隙間に「私の言うことを聞いてね」という秘密のプログラム(シェルコード)をこっそり紛れ込ませます。すると、パソコンは混乱した挙句、その秘密のプログラムを「自分自身の重要な仕事」だと思い込んで実行してしまうのです。これが、リモートからコードが実行されてしまう仕組みの正体です。

—

2. 人間の操作が要らない? 恐怖の「ワーム型感染」のメカニズム

通常のウイルスであれば、「怪しいメールの添付ファイルを開く」とか「変なサイトからファイルをダウンロードして実行する」といった、人間のうっかりした操作(クリック)がきっかけになりますよね。

しかし、EternalBlueを悪用したワーム型感染の恐ろしさは、「人間が何もしていなくても、ネットワークにつながっているだけで感染する」という点にあります。

感染のドミノ倒しを覗いてみましょう

オフィスのフロアを想像してください。ここに1台、セキュリティ対策が古くてEternalBlueの隙だらけのパソコン(A君のPC)があったとします。

1. 第1ステップ(侵入): 外部から(あるいは社内の別の感染端末から)、A君のPCのポート番号 445 めがけて、あの巨大な不正データ(EternalBlueのパケット)が送り込まれます。
2. 第2ステップ(乗っ取り): A君のPCはバッファオーバーフローを起こし、攻撃者にシステムを完全に掌握されてしまいます。この瞬間、A君のPCはランサムウェアの「乗っ取り完了状態」になります。
3. 第3ステップ(爆発的拡散・ワーム化): ここからがワームの真骨頂です。乗っ取られたA君のPCは、自分が攻撃される側から「攻撃する側」に変貌します。社内ネットワーク(同一セグメント)の中で「他に同じ隙を持っている仲間(パソコンやサーバー)はいないかな?」と、自動的に周囲をスキャンし始めます。
4. 第4ステップ(連鎖): 見つかったターゲット(B君のPC、C君のPC……)に対して、次々とEternalBlueの攻撃パケットをばら撒きます。

これが、夜中のオフィスなどで、誰もパソコンを触っていないにもかかわらず、出社したらフロア中のPCが次々とランサムウェアの画面(身代金を要求する画面)に変わっていたという悪夢の正体です。

—

3. 現場でできるネットワークレベルの防御策

「人間の操作に頼らずに勝手に広がってくる」となると、エンドポイント(パソコン自体のウイルス対策ソフトなど)だけに頼るのは少し心細いですよね。だからこそ、ネットワークの出入り口や境界を守る「ネットワークレベルの防御」が極めて重要になります。

ここからは、実務の現場で直ちに検討・実装すべき具体的な防御策を見ていきましょう。

防御策その1:レガシーなSMBv1の完全な封印とポート 445 のブロック

まず大前提として、古い「SMBv1」というプロトコルは現在、セキュリティの観点から百害あって一利なしです。社内ネットワーク全体で無効化し、さらにルーターやファイアウォール、そして各ホストのWindowsファイアウォールで、外部や不要なセグメントからのポート 445(および 139)へのアクセスを厳格に遮断します。

例えば、Linuxのパケットフィルタリングツール(iptablesやnftables)や、エンタープライズ向けのファイアウォール設定では、次のように明示的にブロックルールを記述します。

# ==========================================
# ファイアウォール設定例 (iptables)
# 不正なSMBトラフィック(ポート445)の流入を遮断する
# ==========================================

# 外部セグメントから内部ネットワークへのTCP 445番ポートへのアクセスをドロップ
iptables -A FORWARD -p tcp --dport 445 -j DROP
iptables -A FORWARD -p tcp --sport 445 -j DROP

# UDPの関連ポート(NetBIOS Name Service等)も念のためブロック
iptables -A FORWARD -p udp --dport 137:138 -j DROP

防御策その2:マイクロセグメンテーション(ネットワークの小分け)による延命

「もし1台が感染しても、被害をその島だけで食い止める」という考え方が、ゼロトラスト時代の基本アプローチです。フラットな(全部がつながっている)社内ネットワークを、部署ごと、あるいは用途ごとにVLANや内部ファイアウォールで細かく区切ります(マイクロセグメンテーション)。

これにより、仮にセグメントAでワーム感染が発生しても、セグメントBへのトラフィック(特にポート 445)がファイアウォールで遮断されていれば、感染の連鎖を物理的・論理的に食い止めることができます。

防御策その3:PowerShellを使ったSMBv1無効化の状態確認

ご自身の管理するWindows環境で、レガシーなSMBv1がまだ動いていないかを確認するための実用的なPowerShellスクリプトです。管理端末からリモートで一斉調査する際などに活用できます。

# ==========================================
# Windows環境におけるSMBv1の状態確認スクリプト
# ==========================================

# SMBv1サーバー機能の状態を取得
$smb1Server = Get-SmbServerConfiguration | Select-Object EnableSMB1

# SMBv1クライアント機能の状態を取得(OSのバージョンによりコマンドが異なる場合があります)
$smb1Client = Get-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"

Write-Host "--- SMBv1 稼働状況チェック ---" -ForegroundColor Cyan
Write-Host "SMBv1 サーバー機能有効: $($smb1Server.EnableSMB1)"
Write-Host "SMBv1 クライアント機能状態: $($smb1Client.State)"

if ($smb1Server.EnableSMB1 -eq $true -or $smb1Client.State -eq "Enabled") {
    Write-Host "[警告] SMBv1が有効なままになっています!早急に無効化を検討してください。" -ForegroundColor Red
} else {
    Write-Host "[安全] SMBv1は無効化されています。" -ForegroundColor Green
}

—

おわりに:歴史から学び、強固なネットワークを築こう

EternalBlueを用いたワーム型感染の脅威は、決して過去の古い教科書の中だけの話ではありません。パッチの当て忘れや、古いレガシーシステムの放置など、ほんの小さな油断がネットワーク全体を崩壊させる引き金になります。

「郵便受け(バッファ)のサイズを超える荷物はそもそも受け取らない、あるいはそんな危険な道(ポート445)はバリケードで封鎖する」――。こうした現実世界の防衛意識をネットワーク設計に落とし込むことが、私たちインフラエンジニアの腕の見せ所です。

一歩ずつ、確実な設定と正しい知識を積み重ねて、サイバー脅威に揺るぎない堅牢なネットワーク環境を一緒に作り上げていきましょう!

コメント

タイトルとURLをコピーしました