SMB1はランサムウェア攻撃にどれほど脆弱?危険性と無効化の手順を徹底解説
SMB(Server Message Block)は、コンピュータネットワーク分野でよく知られるプロトコルです。SMBは1980年代に、当時IBMに在籍していたBarry Feigenbaum氏によって設計されました。主な目的は、ネットワーク上のノード間でプリンター、ファイル、シリアルポートへの共有アクセスを提供することです。また、プロセス間通信のためのトランザクションプロトコルを運ぶこともできます。
Server Message Blockは主にWindowsコンピュータで利用されており、サーバー側コンポーネントには「LAN Manager Server」、クライアント側コンポーネントには「LAN Manager Workstation」というWindowsサービスが使用されます。
ここからは、SMBバージョン1(SMB1)について詳しく見ていきましょう。
SMB1の歴史
SMBは元々IBMによって設計され、1990年代半ばにMicrosoftがLAN Manager製品で採用しました。SMBの狙いは、DOSのINT 21hによるローカルファイルアクセスをネットワークファイルシステムへと拡張することでした。SMB 1.0は後に「CIFS(Common Internet File System)」という名称でも呼ばれるようになりました。平たく言えば、これはローカルファイルシステムをネットワーク越しに利用可能にする、ネットワーキングの始まりとも言えるものです。
当初のSMB 1.0の実装には多くの問題があり、特に小さなファイルの扱いでエンドユーザーが不便を強いられていました。さらにプロトコルが「おしゃべり(チャッティー)」な特性を持っていたため、距離が離れた環境ではパフォーマンスが低下する課題も抱えていました。Microsoftはこのバージョンに変更を加え、1990年頃に3Comと共同でOS/2向けに開発していたLAN Manager製品にSMBプロトコルを統合しました。その後、Windows for Workgroupsや以降のWindowsバージョンにおいて、プロトコルへの機能追加が続けられました。1996年のCIFSでは、Windows 95に搭載されるSMB方言が開発され、より大きなファイルサイズのサポート、TCP/IP上での直接転送、シンボリックリンクおよびハードリンクのサポートなどが追加されました。
SMBはどのように動作するのか
SMBプロトコルは、アプリケーションのユーザーがリモートサーバー上のファイルにアクセスできるようにするために使用されます。アクセス対象はファイルだけでなく、プリンターやメールスロットなどのリソースも含まれます。つまり、クライアントアプリケーションはリモートサーバー上のファイルに対して、読み取り、作成、移動、変更といった操作を行えます。また、SMBクライアントからの要求を受け付けるよう設定された任意のサーバープログラムにも接続可能です。
SMBプロトコルは、接続確立のためにサーバーとクライアント間で複数のメッセージをやり取りすることから、「レスポンス・リクエスト型プロトコル」とも呼ばれています。SMBはOSI参照モデルの第7層(アプリケーション層)で動作し、トランスポートにはTCP/IPのポート445を使用します。初期のSMBプロトコルは、APIとしてNetBIOS over TCP/IPを使用していました。
現在では、TCP/IP上で直接SMBをサポートしないデバイスと通信する場合にのみ、NetBIOS over トランスポートプロトコルが必要とされています。
SMB1はどのようにランサムウェア攻撃につながるのか
WannaCryランサムウェアをご存じの方も多いでしょう。多くの企業が金銭的な被害を受けた原因となったこのマルウェアのような、ランサムウェアやトロイの木馬の亜種は、Windows Server Message Block(SMB)の脆弱性を悪用して組織内のネットワークへ感染を広げます。
一般的に攻撃者はフィッシングメールを使って標的のシステムに感染させますが、WannaCryはそれとは異なる手法を取りました。公開されているSMBポートを標的とし、NSA(米国家安全保障局)から漏洩したとされる「EternalBlue」エクスプロイトを使ってネットワークに侵入し、その後「DoublePulsar」エクスプロイトを用いて永続化を確立し、WannaCryランサムウェアのインストールを支援したと言われています。
なぜこれほど効果的なのか
大きな被害をもたらすためには、ワーム型の感染は自己増殖を続ける必要があります。そうすることで少ない労力で指数関数的な拡散が実現します。そこで活用されるのがSMBの脆弱性であり、接続されたシステム間を横断的に(laterally)感染を広げる手段となるのです。
SMBのような不要なプロトコルやネットワークセグメンテーションの設定は、ハッカーにシステムを露出させる可能性があるため、無効化すべきです。また、すべてのシステムを最新のOSバージョンに保ち、セキュリティアップデートのパッチを適宜適用することが推奨されます。
SMBの設定はすべてのシステムで有効になっていますが、必ずしも全員が必要としているわけではありません。使用していないのであれば、SMB1およびその他の通信プロトコルを無効化することをおすすめします。
WannaCryはわずか2つのサイバーツールでSMBの脆弱性を悪用しました。しかし、SMBの脆弱性を利用したランサムウェア攻撃はこれだけではありません。次に襲来すると予測されていたワーム「EternalRocks」は、7つのサイバーツールを備えて世界中のシステムに感染しようとしていました。
EternalRocksは、EternalBlue、EternalChampion、EternalSynergy、EternalRomanceといった強力なServer Message Blockツールを利用するほか、SMBTouchやArchTouchと呼ばれるSMB偵察ツールも使って、感染済みコンピュータを監視する予定でした。
2つのツールだけでも世界的な大混乱を引き起こしたことを考えると、EternalRocksがもたらし得た破壊の規模は想像を絶するものだったでしょう。
攻撃はどのように行われたのか
現在、SMBの脆弱性を突くことができるエクスプロイトとして、EternalBlue、EternalChampion、EternalRomanceの3つが公開されています。EternalBlueはWannaCryやEmotetに、EternalRomanceはBad Rabbit、NotPetya、TrickBotに使用されました。さらにEternalSynergyというエクスプロイトも存在します。
これらのエクスプロイトはすべて、「ShadowBrokers」と名乗るハッカーグループによってリークされました。リークから1ヶ月以内にEternalBlueエクスプロイトが使用され、WannaCryは野火のように世界中に蔓延しました。
EternalRocksは、DoublePulsarをバックドアとして使い、感染システムにマルウェアをインストールする仕組みでした。
調査によると、このバックドアは依然として保護されておらず、他のハッカーがマルウェア導入の媒体として利用し、システムを破壊する恐れがありました。
その後も2017年には、Bad RabbitやNotPetyaといった大規模なマルウェア攻撃がSMBの脆弱性を利用して組織のネットワークに侵入しました。2018年の第3四半期から第4四半期にかけては、EmotetとTrickBotによるトロイの木馬攻撃がピークを迎えました。
SMBバージョン1とその脆弱性について十分に理解したところで、SMB 1を使用していないのであれば、無効化しておくに越したことはありません。
次のセクションでは、Windows上でSMB1を検出・有効化・無効化する方法を解説します。それでは進めましょう!
WindowsでSMB1を検出・有効化・無効化する方法
方法1:PowerShellを使ってSMB v1プロトコルを検出・有効化・無効化する(Windows 8.1 / Windows 10)
検出方法
WindowsキーとXキーを同時に押して、スタートメニュー上部にコンテキストメニューを表示します。

一覧から「Windows PowerShell(管理者)」を選択します。
補足: 検索ボックスに「PowerShell」と入力しても起動できます。「Windows PowerShell」を選択し、右クリックして「管理者として実行」を選びましょう。

PowerShellウィンドウに以下のコマンドを入力します。
Get-WindowsOptionalFeature –Online –FeatureName SMB1Protocol
無効化する方法
- WindowsキーとXキーを同時に押して、コンテキストメニューを表示します。
- 一覧から「Windows PowerShell(管理者)」を選択します。

補足: 検索ボックスからPowerShellを起動する場合は、右クリックして「管理者として実行」を選択してください。

- PowerShellウィンドウに以下のコマンドを入力します。
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

有効化する方法
- WindowsキーとXキーを同時に押して、コンテキストメニューを表示します。
- 一覧から「Windows PowerShell(管理者)」を選択します。

補足: 検索ボックスからPowerShellを起動する場合は、右クリックして「管理者として実行」を選択してください。

- PowerShellウィンドウに以下のコマンドを入力します。
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

変更を反映するには「Y」を入力します。
方法2:Windowsの機能の有効化または無効化からSMB1を設定する
ステップ1: スタートボタンをクリックし、「コントロールパネル」と入力します。コントロールパネルのデスクトップアプリが表示されるのでクリックします。

ステップ2: 「プログラムと機能」を見つけます。

ステップ3: システムにインストールされているソフトウェアの一覧画面が表示されます。左側のパネルにある「Windows の機能の有効化または無効化」をクリックします。

ステップ4: 「SMB 1.0/CIFS File Sharing Support」のチェックボックスのチェックを外せば、SMB1を完全に無効化できます。逆に有効化したい場合は、同じ項目にチェックを入れます。

方法3:レジストリエディタを使ってSMB1を有効化・無効化する
レジストリエディタを使ってSMB1を有効化・無効化することもできます。作業を始める前に、必ずレジストリのバックアップを取ってください。
補足: バックアップの手順は以下の通りです。
ステップ1: WindowsキーとRキーを同時に押し、「regedit」と入力してEnterキーを押します。

ステップ2: レジストリエディタで「ファイル」→「エクスポート」を選択します。

ステップ3: 保存先を指定して、レジストリファイルのバックアップを保存します。

続いて、WindowsでSMBv1を有効化・無効化する手順は以下の通りです。
ステップ1: WindowsキーとRキーを同時に押し、「regedit」と入力してEnterキーを押します。

ステップ2: レジストリエディタで以下のパスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

ステップ3: 右側ペインで「SMB1」というレジストリエントリを探します。
- REG_DWORDの値が「0」の場合 → 無効
- REG_DWORDの値が「1」の場合 → 有効
値を確認するには、「SMB1」を右クリックして「修正」を選択し、「値のデータ」を確認してください。
補足: SMB1(DWORD)が見つからない場合は新規に作成できます。右側ペインで右クリックし、「新規」→「DWORD (32ビット) 値」を選択して、「SMB1」という名前を付けましょう。

注意: これらの変更を行った後は、コンピュータの再起動が必要です。
万が一に備えた対策ツールの活用
もしシステムが何らかの悪意ある攻撃を受けていると感じたら、あるいは将来の攻撃を予防したい場合は、Systweak社の「Advanced System Protector」などの保護ツールを導入しましょう。Advanced System Protectorは、アンチマルウェア、アンチスパイウェア、アンチウイルス技術を搭載したオールインワンのセキュリティソリューションで、システム上のあらゆる感染から守ってくれます。

また、データを安全に保つためには常にシステムのバックアップを作成することが重要です。データバックアップツールは数多くありますが、適切なものを選ぶことが大切です。Right BackupはSSL暗号化に対応した信頼性の高いバックアップツールで、あらゆるデバイスからデータにアクセスできます。データをアップロードするだけで、安全なクラウドサーバー上でバックアップが保管されます。
まとめ
以上が、Server Message Block(SMB 1)を簡単に無効化・有効化する方法です。セキュリティの脅威は今に始まったことではありませんが、WannaCryランサムウェアがもたらした混乱は、まさに警鐘と捉えるべきでしょう。この攻撃はWindows OSのSMB1サービスの脆弱性を利用して開始されたものだからです。Microsoft自身もセキュリティの観点からSMB1の無効化を推奨しています。SMB1を無効のまま維持することで、こうしたランサムウェアからシステムを守ることにつながります。
データの安全性とシステムの保護を確実にするためには、それぞれRight BackupとAdvanced System Protectorに頼るのも有効な選択肢です。
この記事が役に立ちましたか?ぜひコメント欄でご意見をお聞かせください。
-
Windows Defenderのランサムウェア保護を有効にする方法【Windows 10対応】
マルウェアからPCを守るために、Microsoft純正の「Windows Defender」を活用している方は多いはず。そんな方に朗報です。Windows Defenderには「ランサムウェア保護」機能が搭載されており、比較的新しいバージョンのWindows 10にはすべて標準で含まれています。 ところが、この非常に重要なセキュリティ機能は、初期状態では無効になっています。その理由として考えられるのは、正規のアプリを脅威と誤検知してブロックしてしまう可能性があるためです。 それでも、大切なデータをランサムウェアの被害から守りたい、PCにもう一段階の保護レイヤーを加えたいという方は多いでしょう。
-
Windows 11でDNSサーバーを変更する方法【設定アプリ・コントロールパネル対応】
Windows 11のPCやノートパソコンでDNS設定を見直すことは、プライバシーを強化したい方にとって重要な作業です。Webページを開くときも、アプリがバックグラウンドでサーバーに接続するときも、DNSを変更しておけばPC上のすべてのインターネット通信を保護できます。この記事では、初心者の方に向けて、Windows 11でDNSサーバーを変更する方法を2つの手順で詳しく解説します。 DNSとは?なぜ変更する必要があるのか? 多くの人にとって、インターネットへの接続はスイッチを入れるように簡単なものになっています。面倒な手順を踏むことなく、数秒でデバイスをネットワークにつなげられるのは、D