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 ).
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] .
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:
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.
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 .
URI- ordninger | |
---|---|
Officiel | |
uofficiel |
Filsystemer ( liste , sammenligning ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribueret (netværk) | |||||||
Særlig |
|