Ulepszenia zabezpieczeń protokołu SMB
W tym artykule opisano ulepszenia zabezpieczeń protokołu SMB w systemach Windows Server i Windows.
Szyfrowanie SMB
Szyfrowanie SMB zapewnia kompleksowe szyfrowanie danych SMB i chroni dane przed podsłuchiwaniem wystąpień w niezaufanych sieciach. Szyfrowanie SMB można wdrożyć przy minimalnym nakładzie pracy, ale może wymagać innych kosztów wyspecjalizowanego sprzętu lub oprogramowania. Nie ma wymagań dotyczących zabezpieczeń protokołu internetowego (IPsec) ani akceleratorów sieci WAN. Szyfrowanie SMB można skonfigurować dla każdego udziału, dla całego serwera plików lub podczas mapowania dysków.
Notatka
Szyfrowanie SMB nie obejmuje bezpieczeństwa danych w spoczynku, które jest zazwyczaj obsługiwane przez szyfrowanie dysków BitLocker.
Szyfrowanie SMB można rozważyć w dowolnym scenariuszu, w którym poufne dane muszą być chronione przed atakami przechwytujący. Możliwe scenariusze obejmują:
- Dane poufne pracownika zajmującego się informacją są przenoszone przy użyciu protokołu SMB. Szyfrowanie SMB zapewnia kompleksową ochronę prywatności i integralność między serwerem plików a klientem. Zapewnia to bezpieczeństwo niezależnie od sieci, przez które przebiega, takich jak połączenia sieci rozległej (WAN) utrzymywane przez dostawców innych niż Microsoft.
- Protokół SMB 3.0 umożliwia serwerom plików zapewnienie stale dostępnego magazynu dla aplikacji serwerowych, takich jak SQL Server lub Hyper-V. Włączenie szyfrowania SMB umożliwia ochronę tych informacji przed atakami polegającymi na snoopingu. Szyfrowanie SMB jest prostsze w użyciu niż dedykowane rozwiązania sprzętowe, które są wymagane dla większości sieci magazynowania (SAN).
Systemy Windows Server 2022 i Windows 11 wprowadzają zestawy kryptograficzne AES-256-GCM i AES-256-CCM na potrzeby szyfrowania SMB 3.1.1. System Windows automatycznie negocjuje tę bardziej zaawansowaną metodę szyfrowania podczas nawiązywania połączenia z innym komputerem, który go obsługuje. Tę metodę można również wymusić za pomocą zasad grupy. System Windows nadal obsługuje oprogramowanie AES-128-GCM i AES-128-CCM. Domyślnie AES-128-GCM jest negocjowane z SMB 3.1.1, zapewniając najlepszą równowagę pomiędzy bezpieczeństwem a wydajnością.
Systemy Windows Server 2022 i Windows 11 SMB Direct obsługują teraz szyfrowanie. Wcześniej włączenie szyfrowania SMB wyłączyło bezpośrednie umieszczanie danych, co sprawia, że wydajność funkcji RDMA jest tak niska, jak tcp. Teraz dane są szyfrowane przed przechowywaniem, co prowadzi do stosunkowo niewielkiego obniżenia wydajności, zapewniając przy tym prywatność pakietów chronionych przez AES-128 i AES-256. Szyfrowanie można włączyć za pomocą Windows Admin Center, Set-SmbServerConfigurationlub zasad grupy wzmacniania zabezpieczeń UNC.
Ponadto klastry trybu failover systemu Windows Server obsługują teraz szczegółową kontrolę nad szyfrowaniem komunikacji magazynowej wewnątrz węzłów dla klastrowych woluminów udostępnionych (CSV) i warstwy magistrali magazynu (SBL). Ta obsługa oznacza, że w przypadku korzystania z bezpośrednich miejsc do magazynowania i funkcji SMB Direct można szyfrować komunikację wschodnio-zachodnią w samym klastrze w celu zapewnienia wyższych zabezpieczeń.
Ważny
Istnieje godny uwagi koszt operacyjny związany z wydajnością przy użyciu ochrony szyfrowania od końca do końca w porównaniu z brakiem szyfrowania.
Włączanie szyfrowania SMB
Szyfrowanie SMB można włączyć dla całego serwera plików lub tylko dla określonych udziałów plików. Użyj jednej z poniższych procedur, aby włączyć szyfrowanie SMB.
Włączanie szyfrowania SMB za pomocą Centrum administracyjnego systemu Windows
- Pobierz i zainstaluj program Windows Admin Center.
- Połącz się z serwerem plików.
- Wybierz pozycję Files & file sharing.
- Wybierz kartę udziałów plików
. - Aby wymagać szyfrowania udziału, wybierz nazwę udziału, a następnie wybierz pozycję Włącz szyfrowanie SMB.
- Aby wymagać szyfrowania na serwerze, wybierz pozycję Ustawienia serwera plików.
- Pod opcją szyfrowania SMB 3 wybierz opcję Wymagane od wszystkich klientów (inni są odrzucani), a następnie wybierz opcję Zapisz.
Włączanie szyfrowania SMB przy użyciu wzmacniania zabezpieczeń UNC
Wzmocnienie zabezpieczeń UNC umożliwia skonfigurowanie klientów SMB tak, aby wymagać szyfrowania niezależnie od ustawień szyfrowania serwera. Ta funkcja pomaga zapobiegać atakom przechwytującym. Aby skonfigurować wzmocnienie zabezpieczeń UNC, zobacz MS15-011: Luka w zabezpieczeniach zasad grupy może zezwalać na zdalne wykonywanie kodu. Aby uzyskać więcej informacji na temat obrony przed atakami przechwytywania, zobacz Jak chronić użytkowników przed atakami przechwytywania przez zabezpieczenia klienta SMB.
Włączanie szyfrowania SMB przy użyciu programu Windows PowerShell
Zaloguj się do serwera i uruchom program PowerShell na komputerze w sesji z podwyższonym poziomem uprawnień.
Aby włączyć szyfrowanie SMB dla pojedynczego zasobu pliku udostępnionego, uruchom następujące polecenie.
Set-SmbShare –Name <sharename> -EncryptData $true
Aby włączyć szyfrowanie SMB dla całego serwera plików, uruchom następujące polecenie.
Set-SmbServerConfiguration –EncryptData $true
Aby utworzyć nowy udział plików SMB z włączonym szyfrowaniem SMB, uruchom następujące polecenie.
New-SmbShare –Name <sharename> -Path <pathname> –EncryptData $true
Mapowanie dysków z szyfrowaniem
Aby włączyć szyfrowanie SMB podczas mapowania dysku przy użyciu programu PowerShell, uruchom następujące polecenie.
New-SMBMapping -LocalPath <drive letter> -RemotePath <UNC path> -RequirePrivacy $TRUE
Aby włączyć szyfrowanie SMB podczas mapowania dysku przy użyciu narzędzia CMD, uruchom następujące polecenie.
NET USE <drive letter> <UNC path> /REQUIREPRIVACY
Zagadnienia dotyczące wdrażania szyfrowania SMB
Domyślnie, gdy szyfrowanie SMB jest włączone dla udziału plików lub serwera, tylko SMB 3.0, 3.02 i 3.1.1 klienci mogą uzyskiwać dostęp do określonych udziałów plików. Ten limit wymusza intencję administratora ochrony danych dla wszystkich klientów, którzy uzyskują dostęp do udziałów.
Jednak w niektórych okolicznościach administrator może chcieć zezwolić na niezaszyfrowany dostęp dla klientów, którzy nie obsługują protokołu SMB 3.x. Taka sytuacja może wystąpić w okresie przejściowym, gdy używane są mieszane wersje systemu operacyjnego klienta. Aby zezwolić na dostęp niezaszyfrowany dla klientów, którzy nie obsługują protokołu SMB 3.x, wprowadź następujący skrypt w programie Windows PowerShell:
Set-SmbServerConfiguration –RejectUnencryptedAccess $false
Notatka
Nie zalecamy zezwalania na niezaszyfrowany dostęp podczas wdrażania szyfrowania. Zaktualizuj klientów, aby zamiast tego obsługiwali szyfrowanie.
Funkcja integralności wstępnego uwierzytelniania opisana w następnej sekcji uniemożliwia atak przechwytywania przed obniżeniem poziomu połączenia z protokołu SMB 3.1.1 do protokołu SMB 2.x (który będzie używał niezaszyfrowanego dostępu). Nie zapobiega to jednak obniżeniu do protokołu SMB 1.0, co spowodowałoby również niezaszyfrowany dostęp.
Aby zagwarantować, że klienci SMB 3.1.1 zawsze używają szyfrowania SMB do uzyskiwania dostępu do zaszyfrowanych udziałów, należy wyłączyć serwer SMB 1.0. Aby uzyskać instrukcje, połącz się z serwerem za pomocą centrum administracyjnego systemu Windows i otwórz rozszerzenie Files & File Sharing, a następnie wybierz kartę Udziały plików, aby wyświetlić powiadomienie o odinstalowaniu. Aby uzyskać więcej informacji, zobacz Jak wykrywać, włączać i wyłączać protokół SMBv1, SMBv2 i SMBv3 w systemie Windows.
Jeśli ustawienie –RejectUnencryptedAccess pozostanie na domyślnym ustawieniu $true, tylko klienci obsługujący szyfrowanie SMB 3.x mogą uzyskiwać dostęp do udziałów plików (klienci SMB 1.0 również są odrzucani).
Podczas wdrażania szyfrowania SMB należy wziąć pod uwagę następujące problemy:
- Szyfrowanie SMB używa algorytmu Advanced Encryption Standard (AES)-GCM i CCM do szyfrowania i odszyfrowania danych. AES-CMAC i AES-GMAC również zapewniają weryfikację integralności danych (podpisywanie) dla zaszyfrowanych udziałów plików, niezależnie od ustawień podpisywania SMB. Jeśli chcesz włączyć podpisywanie SMB bez szyfrowania, możesz to zrobić dalej. Aby uzyskać więcej informacji, zobacz Konfigurowanie podpisywania SMB z ufnością.
- Podczas próby uzyskania dostępu do udziału plików lub serwera mogą wystąpić problemy, jeśli organizacja korzysta z urządzeń przyspieszania sieci rozległej (WAN).
- W przypadku konfiguracji domyślnej (jeśli nie ma niezaszyfrowanego dostępu dozwolonego do zaszyfrowanych udziałów plików), jeśli klienci, którzy nie obsługują protokołu SMB 3.x, próbują uzyskać dostęp do zaszyfrowanego udziału plików, identyfikator zdarzenia 1003 jest rejestrowany w dzienniku zdarzeń Microsoft-Windows-SmbServer/Operational, a klient otrzymuje komunikat o błędzie odmowy dostępu odmowa dostępu.
- Szyfrowanie SMB i system szyfrowania plików (EFS) w systemie plików NTFS nie są powiązane, a szyfrowanie SMB nie wymaga ani nie zależy od korzystania z systemu szyfrowania plików.
- Szyfrowanie SMB i szyfrowanie dysków funkcją BitLocker nie są powiązane, a szyfrowanie SMB nie wymaga ani nie zależy od używania szyfrowania dysków funkcją BitLocker.
Integralność wstępnego uwierzytelniania
Protokół SMB 3.1.1 jest w stanie wykrywać ataki przechwytujące, które próbują obniżyć poziom protokołu lub możliwości, które klient i serwer negocjują przy użyciu integralności wstępnego uwierzytelniania. Integralność wstępnego uwierzytelniania jest obowiązkową funkcją protokołu SMB 3.1.1. Chroni przed wszelkimi manipulacjami komunikatów Negocjacji i Ustawień sesji przy użyciu skrótów kryptograficznych. Wynikowy skrót jest używany jako dane wejściowe w celu uzyskania kluczy kryptograficznych sesji, w tym klucz podpisu. Ten proces umożliwia klientowi i serwerowi wzajemne zaufanie do właściwości połączenia i sesji. Gdy klient lub serwer wykryje taki atak, połączenie zostanie rozłączone, a identyfikator zdarzenia 1005 jest rejestrowany w dzienniku zdarzeń Microsoft-Windows-SmbServer/Operational.
Ze względu na tę ochronę i korzystanie z pełnych możliwości szyfrowania SMB zdecydowanie zalecamy wyłączenie serwera SMB 1.0. Aby uzyskać szczegółowe instrukcje, połącz się z serwerem za pomocą Centrum administracyjnego systemu Windows, otwórz rozszerzenie Files & File Sharing, a następnie przejdź do karty Udziały plików, gdzie pojawi się monit o odinstalowanie. Aby uzyskać więcej informacji, zobacz Jak wykrywać, włączać i wyłączać protokół SMBv1, SMBv2 i SMBv3 w systemie Windows.
Nowy algorytm podpisywania
Protokół SMB 3.0 i 3.02 używają nowszego algorytmu szyfrowania do podpisywania: kod uwierzytelniania komunikatów oparty na standardzie Advanced Encryption Standard (AES) - CMAC. Protokół SMB 2.0 używał starszego algorytmu szyfrowania HMAC-SHA256. AES-CMAC i AES-CCM mogą znacznie przyspieszyć szyfrowanie danych na większości nowoczesnych procesorów CPU, które obsługują instrukcje AES.
Systemy Windows Server 2022 i Windows 11 wprowadzają protokół AES-128-GMAC na potrzeby podpisywania protokołu SMB 3.1.1. System Windows automatycznie negocjuje tę lepszą metodę szyfrowania podczas nawiązywania połączenia z innym komputerem, który go obsługuje. System Windows nadal obsługuje funkcję AES-128-CMAC. Aby uzyskać więcej informacji, zobacz Konfigurowanie podpisywania SMB bez obaw.
Wyłączanie protokołu SMB 1.0
Protokół SMB 1.0 nie jest instalowany domyślnie w systemie Windows Server w wersji 1709 i Windows 10 w wersji 1709. Aby uzyskać instrukcje dotyczące usuwania protokołu SMB1, nawiąż połączenie z serwerem za pomocą Centrum administracyjnego systemu Windows, otwórz rozszerzenie Files & File Sharing, a następnie wybierz kartę Udziały plików, aby wyświetlić monit o odinstalowanie. Aby uzyskać więcej informacji, zobacz Jak wykrywać, włączać i wyłączać protokół SMBv1, SMBv2 i SMBv3 w systemie Windows.
Jeśli nadal jest zainstalowany, należy natychmiast wyłączyć protokół SMB1. Aby uzyskać więcej informacji na temat wykrywania i wyłączania użycia protokołu SMB 1.0, zobacz Stop using SMB1. Aby zapoznać się z usługą rozliczeń oprogramowania, które wcześniej lub obecnie wymaga protokołu SMB 1.0, zobacz SMB1 Product Clearinghouse.