こんにちは!インフラやセキュリティの世界へようこそ。
新人のIT担当者や、開発に熱中する中で「セキュリティも少しずつ覚えなきゃな」と感じている皆さん、日々の業務お疲れ様です。
セキュリティの勉強を始めると、英字の略語や小難しいルールがたくさん出てきて、正直めまいがしそうになりますよね。「ファイアウォール」「暗号化」「ゼロトラスト」……。なんだか壁が高く感じられるかもしれませんが、大丈夫です!一歩ずつ、身近な例えから紐解いていけば、必ず「なるほど!」と腑に落ちる瞬間がやってきます。
今回は、Windows Serverのセキュリティ対策の中でも、非常に重要で、かつ「これをしておかないとオフィスの金庫が丸見えになる」くらい危険なポイントである「SMB署名と暗号化の強制」について、一緒に優しく学んでいきましょう!
—
1. 家の鍵で例える「SMB」と「SMBリレー攻撃」の恐怖
まずは、私たちが普段当たり前のように使っている社内ネットワークの共有フォルダをイメージしてください。Windowsのパソコンから別のサーバーにあるファイルを見たり、保存したりするとき、裏側では SMB(Server Message Block) という通信のルール(プロトコル)が使われています。
郵便配達に例えてみましょう
あなたが同僚に大事な書類を渡すとき、封筒に入れて、さらに封緘(ふうかん:のり付けやハンコ)をしますよね。
もし、この封筒に「ハンコ(署名)」が押してなかったり、スケスケの透明な封筒(暗号化なし)に入っていたりしたらどうでしょう?
- 署名がない場合: 途中で悪い奴(攻撃者)がその封筒をすり替えて、中身を書き換えても、受け取った人は「本物かな?」と疑わずに信じてしまいます。
- 暗号化がない場合: 途中で悪い奴が封筒をペリッと開けて、中身をじっくり読めてしまいます(パスワードなどが盗み見られる)。
「SMBリレー攻撃」という巧妙な手口
攻撃者は、私たちが油断している隙を突いて、次のような巧妙なワザ(SMBリレー攻撃)を使います。
1. 攻撃者が、あなたのパソコンに「ねえねえ、こちらの偽サーバーの共有フォルダにアクセスしてよ」と巧みに誘導します。
2. あなたのパソコンは、何も疑わずにその偽サーバーへ「アクセスしますね!」と挨拶の通信を送ります。
3. すると攻撃者は、その通信をそのまま本物のWindows Serverへと横流し(リレー)します。
4. 本物のサーバーは、「おっ、〇〇さんからのアクセスだな!どうぞ!」と、あなたになりすまして認証を通してしまいます。
結果として、攻撃者はあなたの権限を乗っ取り、社内システムをめちゃくちゃにしてしまうのです。これが、現代のオフィスでよく狙われる恐ろしい罠なんですね。
—
2. 対策の切り札!「署名」と「暗号化」を完全義務化する
この恐ろしい「なりすまし・すり替え攻撃(SMBリレー)」を防ぐための特効薬が、今回テーマにする「SMB署名(Signing)の強制」と「SMB暗号化(Encryption)の強制」です。
- SMB署名: 通信の「消印・ハンコ」です。「このデータは本当に〇〇サーバーから送られたものですよ」と証明するため、途中で中身が改ざんされたり、別の場所にリレーされたりすると、サーバー側が「あれ、ハンコがおかしいぞ!」と即座に見破ってブロックします。
- SMB暗号化: 通信の「鍵付きジュラルミンケース」です。仮に途中で通信を覗き見られても、暗号化されているため、泥棒にはただの「意味不明な暗号の羅列」に見えるだけで、中身を絶対に読ませません。
昔のWindows Serverでは、これらが「できればやる(既定ではオフや任意)」という設定になっていたため、攻撃者に隙を突かれやすかったのです。しかし、近年のセキュリティ水準(最新のWindows Server 2022など)では、これを「強制(必須)」に設定するのが標準的なベストプラクティスになっています。
—
3. 実践!Windows Serverでの設定手順を見てみよう
「理屈は分かったけれど、実際にどう設定するの?」という声が聞こえてきそうですね。
実務でWindows Serverを要塞化(ハーデニング)する際の設定方法を、分かりやすくご紹介します。
設定には、グループポリシー(GPO)やPowerShellを使うのが一般的です。今回は、手元ですぐに確認・設定できるPowerShellを使った方法を覗いてみましょう。
PowerShellでの設定確認と変更例
※注意:以下の設定を行うと、古いプリンターや古いNASなど、古いSMB規格(SMB 1.0/2.0など)しか使えない古い機器との通信ができなくなる場合があります。必ず事前の検証環境でテストを行ってくださいね。
# ==========================================
# 1. 現在のSMBサーバーの署名設定を確認する
# ==========================================
Get-SmbServerConfiguration | Select-Object EnableSecuritySignature, RequireSecuritySignature
# パラメータの意味:
# - EnableSecuritySignature: 署名が有効か
# - RequireSecuritySignature: 署名を「強制(必須)」しているか(これが True であるべきです)
# ==========================================
# 2. SMBサーバーの署名を「強制(必須)」に変更する
# ==========================================
Set-SmbServerConfiguration -RequireSecuritySignature $true -Force
# 【解説】
# -RequireSecuritySignature を $true にすることで、
# クライアント側が「署名なしで通信したい」と言っても、
# 「署名がない通信は一切受け付けません!」と突っぱねるようになります。
# ==========================================
# 3. SMBサーバーの通信を「暗号化」する設定(必要に応じて)
# ==========================================
Set-SmbServerConfiguration -EncryptData $true -Force
# 【解説】
# -EncryptData を $true に設定すると、共有フォルダへのアクセス通信全体が暗号化されます。
このように、コマンド一つでサーバーの堅牢性を一気に引き上げることができます。
—
4. 現場のエンジニアからのアドバイスとまとめ
ここまで「SMB署名と暗号化の強制」についてお話ししてきましたが、いかがでしたでしょうか?
「設定を有効にしたら、社内の古いスキャナーからフォルダにスキャン画像が届かなくなった!」というのは、現場で本当によくある「あるある」のトラブルです。セキュリティを厳しくすると、どうしても古い利便性とぶつかり合うジレンマが生じます。
だからこそ、私たちインフラエンジニアや開発者は、いきなり本番環境で設定を変えるのではなく、
1. まず検証環境で設定を適用してみる
2. 業務で使っているレガシーなシステムや機器がエラーを吐かないかテストする
3. 問題ないことを確認してから、段階的に本番環境へデプロイする
という丁寧なステップを踏むことが大切になります。
セキュリティ対策は、一度やったら終わりではなく、会社の財産や仲間を守るための「日々の健康管理」のようなものです。一歩ずつ、確実な知識を身につけて、自信を持ってインフラを守れるエンジニアを目指していきましょう!応援しています!
コメント