SMBとは?仕組みとバージョンの違い、安全に使う対策5つ|サイバーセキュリティ.com

SMBとは?仕組みとバージョンの違い、安全に使う対策5つ



SMB(Server Message Block)とは、ネットワーク上でファイルやプリンターを共有するための通信プロトコルです。社内のファイルサーバーやNASの共有フォルダなど、身近な場面で広く使われています。
一方で、古いバージョンの脆弱性がランサムウェアに悪用されるなど、攻撃の入口になりやすい面もあります。

この記事では、SMBの仕組みやバージョンの違い、狙われる理由と安全に使うための対策5つをわかりやすく解説します。

SMBとは

ネットワーク上でファイルやプリンターを共有するためのプロトコル

SMB(Server Message Block)は、ネットワークでつながったコンピューター同士が、ファイルやプリンターなどを共有するための通信プロトコル(通信の取り決め)です。
SMBを使うと、ほかのコンピューターにあるファイルを、自分のパソコンの中にあるファイルと同じような感覚で開いたり保存したりできます。

SMBは1980年代にIBMで開発され、その後マイクロソフトが改良を重ねて、Windowsの標準のファイル共有プロトコルとして採用しました。現在ではWindowsだけでなく、macOSやLinux、NASなどの機器でも広く使われています。

SMBで共有できるものと主な利用場面

SMBで共有できる代表的なものは、ファイルやフォルダ、プリンターです。そのほか、アプリケーションがネットワーク上のファイルを読み書きする際の通信や、サーバー同士のデータのやり取りにも使われています。

身近な利用場面としては、社内のファイルサーバーの共有フォルダ、部署で使うNAS、ネットワーク複合機へのスキャンデータの保存などが挙げられます。
Windowsのエクスプローラーで「\\サーバー名\共有フォルダ名」のような形式で開く共有フォルダの多くは、SMBでやり取りされています。

中堅・中小企業を意味する「SMB」との違い

ビジネスの分野では、SMBが「Small and Medium-sized Business」の略として、中堅・中小企業を指すこともあります。ITベンダーの製品紹介などで「SMB向け」と書かれている場合は、この意味であることが多いでしょう。

この記事で扱うのは、ファイル共有の通信プロトコルであるServer Message Blockです。文脈によって意味が大きく異なるため、資料や会話で見かけた際はどちらの意味かを確認しましょう。

SMBの仕組み

クライアントとサーバーの役割

SMBは、ファイルを利用する側の「クライアント」と、ファイルを提供する側の「サーバー」がやり取りする、クライアント・サーバー型のプロトコルです。クライアントが「このファイルを開きたい」といった要求を送り、サーバーがそれに応答する形で通信が進みます。

ここでいうサーバーは、専用のファイルサーバーだけではありません。共有フォルダを設定したWindowsのパソコンやNASも、SMBのサーバーとして動作します。

接続から切断までの流れ

SMBの通信は、おおまかに次の5つの段階で進みます。

最初に「ネゴシエーション」で、クライアントとサーバーがそれぞれ対応しているバージョンを伝え合い、使うバージョンを決めます。次に「セッション確立」で、ユーザー名やパスワードなどを使って認証を行います。

認証が済むと、「ツリー接続」で目的の共有フォルダに接続し、「ファイル操作」でファイルを開いたり、読み書きしたりします。作業が終わると、ファイルを閉じてログオフし、接続を切断します。

この流れの中で、認証の段階はSMBのセキュリティの要であり、攻撃者が認証情報を狙う理由にもなっています。

SMBが使うポート番号(445番・139番)

SMBの通信には、主にTCPの445番ポートが使われます。古い環境では、NetBIOSという仕組みを経由して139番ポートなどが使われることもあります。

ポート番号 用途
TCP 445番 現在のSMB通信で主に使われるポート
TCP 139番 NetBIOS経由でSMBを使う古い方式のポート
UDP 137番・138番 NetBIOSの名前解決などに使われるポート

これらのポートは、社内ネットワークの中で使うことを前提としています。インターネットに向けて開いておくべきものではない点を、後述の対策とあわせて押さえておきましょう。

SMBのバージョンの違い

バージョン別の特徴一覧

SMBには複数のバージョンがあり、新しいほど性能とセキュリティが強化されています。

バージョン 主な搭載OS 特徴 現在の扱い
SMB 1.0(CIFS) Windows XP、Windows Server 2003まで 暗号化に対応せず、重大な脆弱性が見つかっている 使用すべきでない
SMB 2.0・2.1 Windows Vista、Windows 7など 通信を効率化し、性能が大きく向上 使用可能だが暗号化には非対応
SMB 3.0・3.02 Windows 8、Windows 8.1など 通信の暗号化に対応し、冗長化機能も強化 使用可能
SMB 3.1.1 Windows 10以降 暗号化と改ざん防止の仕組みをさらに強化 推奨

SMB 1.0(CIFS)

SMB 1.0は最初期のバージョンで、マイクロソフトが拡張したものはCIFS(Common Internet File System)とも呼ばれます。長く使われてきましたが、通信の暗号化に対応しておらず、現在の基準ではセキュリティ機能が不十分です。

さらに、2017年に世界的な被害をもたらしたランサムウェア「WannaCry」は、SMB 1.0の脆弱性を悪用して感染を広げました。
マイクロソフトもSMB 1.0の使用をやめるよう呼びかけており、Windows 10の一部のバージョン以降は、新規インストール時に既定で無効になっています。

SMB 2.0・2.1

SMB 2.0はWindows Vistaで導入されたバージョンで、SMB 1.0の設計を大きく見直しました。やり取りする命令の数を減らし、複数の要求をまとめて処理できるようにしたことで、通信の効率と性能が大きく向上しています。

SMB 2.1はWindows 7で導入され、大きなデータをより効率よく転送できるようになりました。ただし、SMB 2系は通信の暗号化には対応していないため、暗号化が必要な場合はSMB 3系を使う必要があります。

SMB 3.0・3.02・3.1.1

SMB 3.0はWindows 8とWindows Server 2012で導入され、SMBとして初めて通信の暗号化に対応しました。複数の通信経路を同時に使って速度と耐障害性を高める機能や、サーバーの障害時に接続を引き継ぐ機能なども加わっています。

Windows 10で導入されたSMB 3.1.1では、接続の初期段階のやり取りが改ざんされていないかを検証する仕組みが追加され、中間者攻撃への耐性が高まりました。暗号方式も強化されており、現在使うのであればSMB 3.1.1が推奨されます。

接続時に使われるバージョンの決まり方

SMBで接続するときに使われるバージョンは、クライアントとサーバーの両方が対応しているもののうち、最も新しいものに決まります。
たとえば、クライアントがSMB 3.1.1に対応していても、サーバーがSMB 2.1までしか対応していなければ、SMB 2.1で通信します。

つまり、パソコンを新しくしても、接続先の古いNASや複合機がSMB 1.0にしか対応していなければ、古いバージョンでの通信が残ってしまいます。安全に使うためには、ネットワーク上のすべての機器のバージョンを把握することが大切です。

SMBと関連用語の違い

CIFSとの違い

CIFSは、マイクロソフトがSMB 1.0を拡張したものの呼び名です。かつてはSMBとほぼ同じ意味で使われていましたが、現在はSMB 2.0以降が主流となったため、CIFSという呼び方は古いSMB 1.0系を指すものと考えてよいでしょう。

NASや複合機の設定画面に「CIFS」と表示されている場合は、SMB 1.0で通信する設定になっていないかを確認することをおすすめします。

Sambaとの違い

Sambaは、LinuxやUNIX系のOSでSMBを使えるようにするためのオープンソースのソフトウェアです。SMBが「通信の取り決め」であるのに対し、Sambaは「その取り決めに従って動くソフトウェア」という関係にあります。

多くのNASは内部でSambaを使ってSMBに対応しているため、NASを安全に使うには、Sambaを含む機器のファームウェアを最新に保つことも重要です。

NFSとの違い

NFS(Network File System)も、ネットワーク上でファイルを共有するためのプロトコルです。SMBがWindowsを中心に発展してきたのに対し、NFSはUNIX系のOSで生まれ、LinuxやUNIXの環境で多く使われています。

また、SMBはファイルのほかにプリンターなども共有できるのに対し、NFSは主にファイルの共有に特化しています。Windowsが中心の社内環境ではSMB、Linuxのサーバー同士ではNFSといった使い分けが一般的です。

SMBが攻撃に狙われる理由

SMBv1の脆弱性を悪用したランサムウェア

SMB 1.0には、遠隔から任意のプログラムを実行できてしまう重大な脆弱性が見つかっています。WannaCryは、この脆弱性を突いて、パッチを適用していないコンピューターに次々と感染を広げました。

脆弱性自体は修正プログラムで対処されていますが、SMB 1.0そのものが古い設計であり、新たな問題が見つかるリスクも残ります。修正プログラムを適用していない機器や、SMB 1.0が有効なままの機器は、今も攻撃の入口になり得ます。

インターネットに公開された445番ポート

ファイアウォールの設定ミスなどで445番ポートがインターネットに公開されていると、外部の攻撃者がSMBのサーバーに直接アクセスを試みられる状態になります。
攻撃者は、インターネット上で445番ポートが開いている機器を自動で探し出し、脆弱性を突いたり、パスワードを総当たりで試したりします。

SMBは本来、社内ネットワークの中で使うことを前提としたプロトコルです。インターネットからSMBにアクセスできる状態は、それだけで大きなリスクといえます。

認証情報の窃取と社内での感染拡大

SMBは認証のやり取りを伴うため、攻撃者が認証情報を盗む手段としても悪用されます。たとえば、細工したリンクやファイルを開かせて、利用者のパソコンから攻撃者のサーバーへSMBで接続させ、認証に使われる情報を盗み取る手口があります。

また、社内のパソコンが一台でも乗っ取られると、攻撃者は盗んだ認証情報を使い、SMBの共有フォルダや管理用の共有を経由して、ほかのパソコンやサーバーへ侵入を広げようとします。ランサムウェアが社内で一気に被害を広げる際にも、SMBがよく使われます。

SMBを安全に使う対策5つ

対策1:SMBv1を無効化する

最も重要な対策の一つが、SMB 1.0の無効化です。Windowsでは、「Windowsの機能の有効化または無効化」から「SMB 1.0/CIFS ファイル共有のサポート」のチェックを外すことで無効にできます。
サーバーでは、PowerShellのコマンドで無効化することも可能です。

ただし、古い複合機やNASなど、SMB 1.0にしか対応していない機器があると、無効化した後に通信できなくなることがあります。無効化の前に、ネットワーク上の機器が対応しているバージョンを確認しておくことが大切です。確認方法は後の章で解説します。

対策2:445番ポートを外部に公開しない

ファイアウォールやルーターの設定で、インターネットから445番ポートや139番ポートへの通信を遮断しましょう。あわせて、社内からインターネットに向けたSMBの通信も遮断しておくと、認証情報を外部に送らせる手口への対策になります。

社外から共有フォルダを使う必要がある場合は、445番ポートを公開するのではなく、VPNなどの安全な経路を経由して社内ネットワークに接続する方法を選びましょう。

対策3:SMB署名と暗号化を有効にする

SMB署名は、通信の内容が途中で改ざんされていないかを確認する仕組みです。中間者攻撃や、盗んだ認証情報を別の接続に使い回す攻撃を防ぐのに役立ちます。

一方、SMBの暗号化は、通信の内容そのものを第三者に読み取られないようにする仕組みで、SMB 3.0以降で使えます。署名は「改ざんの防止」、暗号化は「盗み見の防止」と役割が異なるため、機密性の高い情報を扱う共有フォルダでは両方を有効にすることを検討しましょう。

対策4:共有フォルダのアクセス権限を最小限にする

共有フォルダには、業務に必要な人だけがアクセスできるよう権限を設定します。「全員がフルアクセス」のような設定は、乗っ取られたパソコンから被害が広がる原因になります。

部署や役割ごとにグループを作って権限を管理し、異動や退職に合わせて定期的に見直しましょう。管理者権限を持つアカウントを必要最小限にすることも、社内での感染拡大を防ぐうえで重要です。

対策5:更新プログラムの適用とログの監視を続ける

SMBの脆弱性は、SMB 3系を含めて今後も見つかる可能性があります。OSやNASのファームウェアの更新プログラムを速やかに適用し、既知の脆弱性を放置しないことが基本です。

あわせて、共有フォルダへのアクセスや認証の失敗をログで監視しましょう。短時間に大量のファイルへアクセスする動きや、認証の失敗が続く動きは、ランサムウェアや不正アクセスの兆候である可能性があります。

自社で使われているSMBのバージョンを確認する方法

Windowsで確認する方法

Windowsでは、PowerShellを使ってSMBの状態を確認できます。サーバー側でSMB 1.0が有効かどうかは、「Get-SmbServerConfiguration」コマンドの結果に含まれる「EnableSMB1Protocol」の値で確認できます。

また、パソコンが現在どのバージョンで接続しているかは、共有フォルダに接続した状態で「Get-SmbConnection」コマンドを実行すると、「Dialect」の欄で確認できます。
ここに「1.5」などのSMB 1系の値が表示される場合は、古いバージョンで通信している接続があるということです。

NASや複合機などの機器を確認する方法

NASや複合機、ネットワーク対応のスキャナーなどは、それぞれの管理画面でSMBの設定を確認します。「最小SMBバージョン」「SMB1を有効にする」「CIFS」といった項目がある場合は、SMB 1.0が有効になっていないかを確認しましょう。

管理画面で判断がつかない場合は、メーカーのサポート情報で、機種ごとの対応バージョンやファームウェアの更新情報を確認するのが確実です。

SMBv1が必要な機器が見つかったときの対応

SMB 1.0にしか対応していない機器が見つかった場合は、まずファームウェアの更新でSMB 2.0以降に対応できないかを確認します。対応できない場合は、新しいバージョンに対応した機器への買い替えを計画しましょう。

すぐに買い替えられない場合は、その機器をほかのネットワークから切り離し、通信できる相手を限定するなど、影響範囲を絞る暫定的な措置をとります。SMB 1.0を社内全体で有効にしたまま使い続けることは避けましょう。

SMBに関するよくある質問

Q. SMBは何の略ですか?

ITの分野では、ファイル共有の通信プロトコルである「Server Message Block」の略です。ビジネスの分野では、中堅・中小企業を意味する「Small and Medium-sized Business」の略として使われることもあります。

Q. SMBv1を無効にしても問題はありませんか?

現在のWindowsやNASの多くはSMB 2.0以降に対応しているため、通常は問題ありません。ただし、古い複合機やNASがSMB 1.0にしか対応していない場合は、その機器と通信できなくなるため、事前に対応バージョンを確認しましょう。

Q. 445番ポートを閉じると何ができなくなりますか?

インターネット側からの445番ポートを閉じても、社内ネットワークの中でのファイル共有には影響しません。社内のパソコン同士やファイルサーバーとの通信まで遮断すると共有フォルダが使えなくなるため、遮断する範囲を区別して設定しましょう。

Q. MacやLinuxでもSMBは使えますか?

使えます。macOSは標準でSMBに対応しており、LinuxではSambaなどのソフトウェアを使うことで、Windowsの共有フォルダにアクセスしたり、自らSMBのサーバーになったりできます。

Q. VPNを使えばSMBは安全ですか?

VPNは、社外からの通信を暗号化された経路で社内に届けるため、445番ポートを公開するよりはるかに安全です。ただし、SMB自体の脆弱性や権限設定の不備を解消するものではないため、本記事で紹介した対策とあわせて行うことが必要です。

まとめ

SMBは、ネットワーク上でファイルやプリンターを共有するためのプロトコルで、社内のファイルサーバーやNASなどで広く使われています。一方で、SMB 1.0の脆弱性や445番ポートの公開、認証情報の窃取など、攻撃に悪用されやすい面もあります。

SMB 1.0の無効化やポートの遮断、署名と暗号化、権限の最小化、更新とログ監視を組み合わせ、安全なファイル共有環境を保ちましょう。

SNSでもご購読できます。