Servermeddelelsesblok

SMB (forkortet fra engelsk.  Server message block ) - en applikationslagnetværksprotokol til fjernadgang til filer , printere og andre netværksressourcer samt til kommunikation mellem processer . Den første version af protokollen, også kendt som Common Internet File System (CIFS), blev udviklet af IBM , Microsoft , Intel og 3Com i 1980'erne; den anden (SMB 2.0) blev oprettet af Microsoft og dukkede op med Windows Vista . I øjeblikket er SMB primært forbundet med Microsoft Windows -operativsystemer , hvor det bruges til at implementere "Microsoft Windows-netværket" ( eng. Microsoft Windows Network ) og "Deling af filer og printere" ( eng. Fil- og printerdeling ).   

Historie

Den første version af protokollen blev udviklet af IBM - medarbejder Barry Feigenbaum i 1983 [1] [2] .  SMB blev oprindeligt implementeret over NetBIOS (over NBF , IPX/SPX eller NetBIOS over TCP/IP ) og blev brugt i MS-NET- netværk og LAN Manager til DOS samt Windows for Workgroups . Microsoft tilføjede jævnligt nye funktioner til protokollen; for eksempel dukkede den anden version af Microsoft Networks SMB File Sharing Protocol Extensions op i 1988, den 3. version - i 1989 , version 3.4 - i 1992 [3] .

I 1992 dukkede Samba op  - en gratis implementering af SMB-protokollen til UNIX -lignende operativsystemer (oprindeligt til SunOS ). Fordi Microsoft ikke har offentliggjort dokumentation for meget af dets tilføjelser til SMB, har Samba-udviklerne været nødt til at reverse engineering af protokollen.

I 1996 begyndte Microsoft at bruge et nyt navn til den udvidede version af protokollen, der blev brugt i Windows NT 4.0  - CIFS ( Engelsk  Common Internet File System ); det nye navn holdt fast, SMB og CIFS blev praktisk talt synonyme [2] . Microsoft forsøgte i nogen tid at gøre CIFS til en international standard gennem IETF , men stoppede standardiseringsarbejdet efter 2000 .

Windows 2000 introducerede først SMB direkte over TCP (ingen NetBIOS); port 445 bruges til dette (SMB over NBT brugte port 139).

Windows Vista introducerede en ny version af protokollen - SMB 2.0 . Protokollen er blevet meget forenklet (SMB havde over 100 kommandoer, mens SMB 2 kun havde 19); samtidig blev ydeevnen forbedret (på grund af caching-mekanismen er det muligt at kombinere flere SMB 2-kommandoer i én netværksanmodning og øgede læse- og skrivebuffere), især i netværk med høj latenstid, er skalerbarheden blevet forbedret, og evnen for automatisk at fortsætte sessionen i tilfælde af midlertidig afbrydelse af forbindelsen fra serveren blev tilføjet [4] . SMB 2 bruger den samme port (445) som SMB, men en anden pakkeheader ( 0xFF 'S' 'M' 'B'i SMB, 0xFE 'S' 'M' 'B'i SMB 2) [5] .

Windows 8 har en ny version af protokollen - SMB 3.0 . Nye funktioner er beskrevet på udviklerens websted .

I 2008 offentliggjorde Microsoft under pres fra Europa-Kommissionen en beskrivelse af sine private protokoller, herunder SMB, på MSDN -webstedet [6] .

Sådan virker det

SMB er en protokol baseret på klient-server- teknologi , der giver klientapplikationer en nem måde at læse og skrive filer og anmode om tjenester fra serverprogrammer i forskellige typer netværksmiljøer. Servere leverer filsystemer og andre ressourcer (printere, mailsegmenter, navngivne rør osv.), der skal deles på netværket. Klientcomputere kan have deres egne lagermedier, men de har også adgang til ressourcer, der deles af serveren.

Klienter opretter forbindelse til serveren ved hjælp af TCP/IP (mere specifikt NetBIOS over TCP/IP ), NetBEUI eller IPX/SPX . Efter at forbindelsen er etableret, kan klienter sende kommandoer til serveren (disse kommandoer kaldes SMB-kommandoer eller SMB'er), som giver dem adgang til ressourcer, giver dem mulighed for at åbne, læse filer, skrive til filer og generelt udføre hele listen over handlinger, der kan udføres med filsystemet. Men i tilfælde af brug af SMB udføres disse handlinger via netværket.

Som nævnt ovenfor arbejder SMB ved hjælp af forskellige protokoller . I OSI-netværksmodellen bruges SMB-protokollen som en applikation/præsentationslagsprotokol og afhænger af transportprotokoller på lavt niveau. SMB kan bruges over TCP/IP , NetBEUI og IPX/SPX . Hvis TCP/IP eller NetBEUI er optaget, bruges NetBIOS API. SMB kan også sendes over DECnet -protokollen . Digital (nu Compaq ) gjorde dette specifikt til deres PATHWORKS-produkt. NetBIOS, når det bruges over TCP/IP, har forskellige navne. Microsoft kalder det i nogle tilfælde NBT og i nogle tilfælde NetBT . Navnet RFCNB forekommer også .

Siden begyndelsen af ​​SMB's eksistens er der udviklet mange forskellige protokolvarianter til at håndtere den stadigt stigende kompleksitet i det computermiljø, hvori det blev brugt. Vi blev enige om, at den faktiske version af protokollen, der vil blive brugt af klienten og serveren, vil blive bestemt af kommandoen negprot (forhandle protokol). Denne SMB skal sendes først, før der oprettes forbindelse. Den første version af protokollen var Core Protocol, kendt som SMB-implementeringen af ​​PC NETWORK PROGRAM 1.0. Det understøtter korrekt hele sættet af grundlæggende operationer, som inkluderer:

SMB header format

otte 16 24 32 bit
kommando RCLS Reserveret ERR
ERR(fortsat) REB/FLG Reserveret
Reserveret
Reserveret
Reserveret
træ ID Proces ID
bruger ID multiplex-id
WCT VWV
BCC BUF
SMB-headerstruktur

Hovedelementerne i SMB-headerstrukturen er:
   • Kommando  — protokolkommando.
   • RCLS  er fejlklassekoden.
   • ERR  - fejlkode.
   • Træ-ID (TID)  — ID for forbindelsen til netværksressourcen.
   • Proces ID (PID)  - Klientproces-id'et for den faktiske forbindelse.
   • Bruger-ID (UID)  — bruger-id; bruges af serveren til at kontrollere brugerens adgangsrettigheder.
   • Multiplex ID (MID)  — brugergruppe-id; bruges af serveren til at kontrollere tilladelserne for brugerens gruppe.
   • WCT  er antallet af parametre efter overskriften.
   • BCC  er antallet af databytes efter parametrene.

Sikkerhedsmekanismemodellen, der bruges af Microsoft SMB-protokollen, er grundlæggende identisk med den for enhver anden variant af SMB-protokollen. Den består af to sikkerhedsniveauer: brugerniveau (brugerniveau) og deleniveau (delt ressourceniveau). En share (offentliggjort ressource) refererer til en fil, mappe, printer, enhver tjeneste, som klienter kan få adgang til via et netværk.

Autentificering på brugerniveau betyder, at en klient, der forsøger at få adgang til en ressource på serveren, skal have et brugernavn (brugernavn) og adgangskode (adgangskode). Hvis denne godkendelse lykkes, har klienten adgang til alle tilgængelige serverressourcer, undtagen dem med beskyttelse på deleniveau. Dette beskyttelsesniveau giver systemadministratorer mulighed for at angive, hvilke brugere og brugergrupper der har adgang til bestemte data. Det bruges i Windows NT , Windows 2000 , Windows XP .

Autentificering på aktieniveau betyder, at adgangen til en ressource styres af en adgangskode, der er indstillet specifikt til den pågældende ressource. I modsætning til brugerniveau kræver dette sikkerhedsniveau ikke et brugernavn til godkendelse og etablerer ikke nogen unikhed for den aktuelle bruger. Dette niveau bruges i Windows NT, Windows 2000 og Windows XP for at give et ekstra niveau af sikkerhedskontrol ud over brugerniveauet. Windows 95 , Windows 98 og Windows ME -operativsystemer implementerer kun dette beskyttelsesniveau.

Begge disse sikkerhedsniveauer bruger kryptering. Adgangskoden er krypteret, før den sendes til serveren. Krypteringstyperne NTLM , NTLMv2 og ældre versioner af LAN Manager (LM) understøttes af protokollen. Begge krypteringsmetoder bruger Response-Revoke-godkendelse, hvor serveren sender en tilfældigt genereret streng til klienten, og klienten returnerer en parset streng som tilbagekaldelse, hvilket beviser, at klienten har tilstrækkelige legitimationsoplysninger til at få adgang til dataene.

Sikkerhed

Gennem hele referenceimplementeringen af ​​protokollen fra Microsoft har informationssikkerhedsspecialister identificeret sårbarheder, der tillader et vellykket netværksangreb på en fjernvært. [7] [8] [9] Organiseringen af ​​angrebet på ubeskyttede SMB-servere er en af ​​de mest attraktive blandt angriberne [10] . Ved at bruge sårbarheder i SMB-protokollen blev Sony Pictures Entertainment [11] servere hacket, og malwaren DoublePulsar , WannaCry [12] (sårbarhed EternalBlue ) og Petya [13] blev distribueret .

Se også

Noter

  1. Christopher R. Hertel. SMB-fildelings-URL-skema  (engelsk)  (downlink) (8. januar 2003). Hentet 21. oktober 2009. Arkiveret fra originalen 3. juni 2012.
  2. 1 2 Andrew Tridgell. Myter om Samba  (engelsk)  (link ikke tilgængeligt) . Hentet 2. juni 2011. Arkiveret fra originalen 3. juni 2012.
  3. Dan Shearer. History of SMB  (engelsk)  (utilgængeligt link) (16. november 1996). Hentet 21. oktober 2009. Arkiveret fra originalen 3. juni 2012.
  4. Joseph Barreto. SMB2, et komplet redesign af den primære fjernfilprotokol til Windows  (engelsk)  (downlink) (9. december 2008). Hentet 22. oktober 2009. Arkiveret fra originalen 3. juni 2012.
  5. SMB2 (downlink) . Wireshark. Hentet 22. oktober 2009. Arkiveret fra originalen 3. juni 2012. 
  6. [MS-CIFS : Common Internet File System (CIFS) Protocol]  (eng.) . Hentet 11. august 2015. Arkiveret fra originalen 5. november 2015.
  7. MS02-070: Fejl i SMB-signering kan tillade, at gruppepolitik ændres . Microsoft (1. december 2007). Hentet 1. november 2009. Arkiveret fra originalen 25. juli 2017.
  8. MS09-001: Sårbarheder i SMB kunne tillade fjernudførelse af kode . Microsoft (13. januar 2009). Hentet 1. november 2009. Arkiveret fra originalen 5. oktober 2009.
  9. Microsoft Security Bulletin MS17-010 - Kritisk . technet.microsoft.com . Hentet 13. maj 2017. Arkiveret fra originalen 21. maj 2017.
  10. Advarsel (TA14-353A) Målrettet destruktiv malware . US-CERT . Hentet 16. maj 2017. Arkiveret fra originalen 20. december 2014.
  11. Sony Hackere brugte Server Message Block (SMB) Worm Tool . Hentet 16. maj 2017. Arkiveret fra originalen 20. december 2014.
  12. WannaCry Ransomware-angreb rammer ofre med Microsoft SMB-udnyttelse , eWeek . Hentet 13. maj 2017.
  13. Petya ransomware-virus er tilbage midt i et cyberangreb: schweizisk agentur , Reuters  (tirs 27. juni 14:50:10 UTC 2017). Arkiveret fra originalen den 27. juni 2017. Hentet 27. juni 2017.

Links