Blok zpráv serveru

SMB (zkráceně z angličtiny.  Server message block ) - síťový protokol aplikační vrstvy pro vzdálený přístup k souborům , tiskárnám a dalším síťovým zdrojům a také pro meziprocesovou komunikaci . První verze protokolu, známá také jako Common Internet File System (CIFS), byla vyvinuta společnostmi IBM , Microsoft , Intel a 3Com v 80. letech; druhý (SMB 2.0) byl vytvořen společností Microsoft a objevil se s Windows Vista . V současné době se SMB spojuje především s operačními systémy.Microsoft Windows , kde se používá k implementaci "Microsoft Windows Network" ( anglicky  Microsoft Windows Network ) a "Sharing Files and Printers" ( anglicky  File and Printer Sharing ).

Historie

První verzi protokolu vyvinul zaměstnanec IBM Barry Feigenbaum v roce 1983 [1] [2] .  SMB byl původně implementován přes NetBIOS (přes NBF , IPX/SPX nebo NetBIOS přes TCP/IP ) a byl používán v sítích MS-NET a LAN Manager pro DOS i Windows for Workgroups . Microsoft pravidelně přidával do protokolu nové funkce; například druhá verze Microsoft Networks SMB File Sharing Protocol Extensions se objevila v roce 1988, 3. verze - v roce 1989 , verze 3.4 - v roce 1992 [3] .

V roce 1992 se objevila Samba  - bezplatná implementace protokolu SMB pro operační systémy typu UNIX (původně pro SunOS ). Protože Microsoft nezveřejnil dokumentaci k většině svých přírůstků do SMB, vývojáři Samby museli protokol reverzně analyzovat.

V roce 1996 začal Microsoft používat nový název pro rozšířenou verzi protokolu, který byl používán ve Windows NT 4.0  - CIFS ( anglicky  Common Internet File System ); nový název uvízl, SMB a CIFS se staly prakticky synonymy [2] . Microsoft se nějakou dobu pokoušel přeměnit CIFS na mezinárodní standard prostřednictvím IETF , ale po roce 2000 práci na standardizaci zastavil .

Windows 2000 poprvé představil SMB přímo přes TCP (bez NetBIOS); k tomu slouží port 445 (SMB přes NBT používá port 139).

Windows Vista představil novou verzi protokolu - SMB 2.0 . Protokol byl značně zjednodušen (SMB měl přes 100 příkazů, zatímco SMB 2 měl pouze 19); současně se zlepšil výkon (díky cachovacímu mechanismu je možné kombinovat několik příkazů SMB 2 v jednom síťovém požadavku a zvětšit vyrovnávací paměti pro čtení a zápis), zejména v sítích s vysokou latencí, zlepšila se škálovatelnost a schopnost bylo přidáno automatické pokračování v relaci v případě dočasného odpojení od serveru [4] . SMB 2 používá stejný port (445) jako SMB, ale jinou hlavičku paketu ( 0xFF 'S' 'M' 'B'v SMB, 0xFE 'S' 'M' 'B'v SMB 2) [5] .

Windows 8 má novou verzi protokolu - SMB 3.0 . Nové funkce jsou uvedeny na webových stránkách vývojářů .

V roce 2008 na nátlak Evropské komise Microsoft zveřejnil popis svých soukromých protokolů, včetně SMB, na webu MSDN [6] .

Jak to funguje

SMB je protokol založený na technologii klient-server , který poskytuje klientským aplikacím snadný způsob, jak číst a zapisovat soubory a vyžadovat služby od serverových programů v různých typech síťových prostředí. Servery poskytují systémy souborů a další prostředky (tiskárny, poštovní segmenty, pojmenované kanály atd.), které lze sdílet v síti. Klientské počítače mohou mít svá vlastní paměťová média, ale také přístup ke zdrojům sdíleným serverem.

Klienti se připojují k serveru pomocí TCP/IP (konkrétněji NetBIOS přes TCP/IP ), NetBEUI nebo IPX/SPX . Po navázání spojení mohou klienti odesílat příkazy na server (tyto příkazy se nazývají příkazy SMB nebo SMB), což jim umožňuje přístup ke zdrojům, umožňuje jim otevírat, číst soubory, zapisovat do souborů a obecně provádět celý seznam akce, které lze provádět se systémem souborů. V případě použití SMB se však tyto akce provádějí prostřednictvím sítě.

Jak bylo uvedeno výše, SMB pracuje pomocí různých protokolů . V síťovém modelu OSI se protokol SMB používá jako protokol aplikační/prezentační vrstvy a závisí na nízkoúrovňových transportních protokolech. SMB lze použít přes TCP/IP , NetBEUI a IPX/SPX . Pokud je protokol TCP/IP nebo NetBEUI zaneprázdněn, použije se rozhraní API NetBIOS. SMB lze také odesílat přes protokol DECnet . Digital (nyní Compaq ) to udělal speciálně pro svůj produkt PATHWORKS. NetBIOS při použití přes TCP/IP má různé názvy. Microsoft to v některých případech nazývá NBT a v některých případech NetBT . Vyskytuje se také název RFCNB .

Od počátku existence SMB bylo vyvinuto mnoho různých variant protokolů, aby zvládly stále se zvyšující složitost výpočetního prostředí, ve kterém byl používán. Dohodli jsme se, že skutečnou verzi protokolu, kterou bude klient a server používat, určí příkaz negprot (negotiate protocol). Tento SMB musí být odeslán před navázáním připojení. První verzí protokolu byl Core Protocol, známý jako SMB implementace PC NETWORK PROGRAM 1.0. Správně podporuje celou sadu základních operací, která zahrnuje:

Formát záhlaví SMB

osm 16 24 32 bitů
příkaz RCLS Rezervováno CHYBOVAT
ERR(pokračování) REB/FLG Rezervováno
Rezervováno
Rezervováno
Rezervováno
ID stromu ID procesu
uživatelské ID multiplexní ID
WCT VWV
BCC BUF
Struktura záhlaví SMB

Hlavní prvky struktury hlavičky SMB jsou:
   • Příkaz  — příkaz protokolu.
   • RCLS  je kód třídy chyb.
   • ERR  - kód chyby.
   • ID stromu (TID)  — ID připojení k síťovému prostředku.
   • Process ID (PID)  – ID klientského procesu aktuálního připojení.
   • User ID (UID)  — identifikátor uživatele; používá server ke kontrole přístupových práv uživatele.
   • Multiplex ID (MID)  — identifikátor skupiny uživatelů; používá server ke kontrole oprávnění skupiny uživatelů.
   • WCT  je počet parametrů za záhlavím.
   • BCC  je počet bajtů dat následujících za parametry.

Model bezpečnostního mechanismu používaný protokolem Microsoft SMB Protocol je v zásadě totožný s modelem jakékoli jiné varianty protokolu SMB. Skládá se ze dvou úrovní zabezpečení: na úrovni uživatele (úroveň uživatele) a na úrovni sdílení (úroveň sdílených prostředků). Sdílená složka (publikovaný prostředek) označuje soubor, adresář, tiskárnu nebo jakoukoli službu, ke které mají klienti přístup přes síť.

Autentizace na úrovni uživatele znamená, že klient, který se pokouší o přístup k prostředku na serveru, musí mít uživatelské jméno (uživatelské jméno) a heslo (heslo). Pokud je toto ověření úspěšné, má klient přístup ke všem dostupným serverovým prostředkům s výjimkou těch s ochranou na úrovni sdílení. Tato úroveň ochrany umožňuje správcům systému určit, kteří uživatelé a skupiny uživatelů mají přístup k určitým datům. Používá se ve Windows NT , Windows 2000 , Windows XP .

Autentizace na úrovni sdílení znamená, že přístup k prostředku je řízen heslem nastaveným speciálně pro tento prostředek. Na rozdíl od uživatelské úrovně tato úroveň zabezpečení nevyžaduje uživatelské jméno pro ověření a nezakládá žádnou jedinečnost pro aktuálního uživatele. Tato úroveň se používá ve Windows NT, Windows 2000 a Windows XP k poskytnutí další úrovně kontroly zabezpečení nad rámec uživatelské úrovně. Operační systémy Windows 95 , Windows 98 a Windows ME implementují pouze tuto úroveň ochrany.

Obě tyto úrovně zabezpečení používají šifrování. Heslo je před odesláním na server zašifrováno. Protokol podporuje typy šifrování NTLM , NTLMv2 a starší verze LAN Manager (LM). Obě metody šifrování používají autentizaci Response-Revoke, při které server odešle klientovi náhodně vygenerovaný řetězec a klient vrátí analyzovaný řetězec jako odvolání, což dokazuje, že klient má dostatečné přihlašovací údaje pro přístup k datům.

Zabezpečení

Po celou dobu životnosti referenční implementace protokolu od společnosti Microsoft identifikovali specialisté na informační bezpečnost zranitelná místa, která umožňují úspěšný síťový útok na vzdálený hostitel. [7] [8] [9] Organizace útoku na nechráněné SMB servery je mezi útočníky jednou z nejatraktivnějších [10] . Například pomocí zranitelností v protokolu SMB byly hacknuty servery Sony Pictures Entertainment [11] a distribuován malware DoublePulsar , WannaCry [12] (zranitelnost EternalBlue ) a Petya [13] .

Viz také

Poznámky

  1. Christopher R. Hertel. SMB Filesharing URL Scheme  (anglicky)  (downlink) (8. ledna 2003). Získáno 21. října 2009. Archivováno z originálu 3. června 2012.
  2. 1 2 Andrew Tridgell. Mýty o sambě  (anglicky)  (odkaz není dostupný) . Získáno 2. června 2011. Archivováno z originálu 3. června 2012.
  3. Dan Shearer. Historie SMB  (anglicky)  (nedostupný odkaz) (16. listopadu 1996). Získáno 21. října 2009. Archivováno z originálu 3. června 2012.
  4. Joseph Barreto. SMB2, kompletní přepracování hlavního protokolu vzdáleného souboru pro Windows  (anglicky)  (downlink) (9. prosince 2008). Získáno 22. října 2009. Archivováno z originálu dne 3. června 2012.
  5. SMB2 (downlink) . Wireshark. Získáno 22. října 2009. Archivováno z originálu dne 3. června 2012. 
  6. [MS-CIFS : Common Internet File System (CIFS) Protocol]  (anglicky) . Získáno 11. srpna 2015. Archivováno z originálu 5. listopadu 2015.
  7. MS02-070: Chyba v podepisování SMB může povolit úpravu zásad skupiny . Microsoft (1. prosince 2007). Získáno 1. listopadu 2009. Archivováno z originálu 25. července 2017.
  8. MS09-001: Chyby zabezpečení v SMB mohou umožnit vzdálené spuštění kódu . Microsoft (13. ledna 2009). Získáno 1. listopadu 2009. Archivováno z originálu 5. října 2009.
  9. Bulletin zabezpečení společnosti Microsoft MS17-010 – kritické . technet.microsoft.com . Staženo 13. 5. 2017. Archivováno z originálu 21. 5. 2017.
  10. Alert (TA14-353A) Cílený destruktivní malware . US-CERT . Staženo 16. 5. 2017. Archivováno z originálu 20. 12. 2014.
  11. Hackeři společnosti Sony použili nástroj červa Server Message Block (SMB) . Staženo 16. 5. 2017. Archivováno z originálu 20. 12. 2014.
  12. Útok WannaCry Ransomware zasáhl oběti pomocí Microsoft SMB Exploit , eWeek . Staženo 13. května 2017.
  13. Petya ransomware virus je zpět uprostřed kybernetického útoku: švýcarská agentura , Reuters  (út 27. června 14:50:10 UTC 2017). Archivováno z originálu 27. června 2017. Staženo 27. června 2017.

Odkazy