SMB (lyhennetty englanniksi. Server message block ) - sovelluskerroksen verkkoprotokolla tiedostojen , tulostimien ja muiden verkkoresurssien etäkäyttöön sekä prosessien väliseen viestintään . Protokollan ensimmäisen version, joka tunnetaan myös nimellä Common Internet File System (CIFS), kehittivät IBM , Microsoft , Intel ja 3Com 1980-luvulla; toisen (SMB 2.0) loi Microsoft ja se ilmestyi Windows Vistan kanssa . Tällä hetkellä SMB liittyy pääasiassa Microsoft Windows -käyttöjärjestelmiin , joissa sitä käytetään toteuttamaan "Microsoft Windows Network" ( eng. Microsoft Windows Network ) ja "Sharing Files and Printers" ( eng. File and Printer Sharing ).
Protokollan ensimmäisen version kehitti IBM :n työntekijä Barry Feigenbaum vuonna 1983 [1] [2] . SMB toteutettiin alun perin NetBIOSin yli ( NBF , IPX/SPX tai NetBIOS yli TCP/IP ) ja sitä käytettiin MS-NET- verkoissa ja LAN Managerissa DOS : lle sekä Windows for Workgroups -käyttöjärjestelmille . Microsoft lisäsi säännöllisesti uusia ominaisuuksia protokollaan; esimerkiksi Microsoft Networksin SMB File Sharing Protocol Extensions -laajennusten toinen versio ilmestyi vuonna 1988, kolmas versio - vuonna 1989 , versio 3.4 - vuonna 1992 [3] .
Vuonna 1992 ilmestyi Samba - SMB-protokollan ilmainen toteutus UNIX - tyyppisille käyttöjärjestelmille (alunperin SunOS :lle ). Koska Microsoft ei ole julkaissut dokumentaatiota monista SMB-lisäyksistään, Samba-kehittäjien on täytynyt kääntää protokolla.
Vuonna 1996 Microsoft alkoi käyttää uutta nimeä Windows NT 4.0 :ssa käytetyn protokollan lisätylle versiolle - CIFS ( englanninkielinen yhteinen Internet-tiedostojärjestelmä ); uusi nimi jumissa, SMB ja CIFS tulivat käytännössä synonyymeiksi [2] . Microsoft yritti jonkin aikaa muuttaa CIFS:stä kansainväliseksi standardiksi IETF :n kautta , mutta lopetti standardointityön vuoden 2000 jälkeen.
Windows 2000 esitteli ensimmäisen kerran SMB:n suoraan TCP :n kautta (ei NetBIOSia); porttia 445 käytetään tähän (SMB over NBT käyttää porttia 139).
Windows Vista esitteli uuden version protokollasta - SMB 2.0 . Protokollaa on yksinkertaistettu huomattavasti (SMB:ssä oli yli 100 komentoa, kun taas SMB 2:ssa vain 19); samalla suorituskykyä parannettiin (välimuistimekanismin ansiosta on mahdollista yhdistää useita SMB 2 -komentoja yhteen verkkopyyntöön ja luku- ja kirjoituspuskurit lisääntyivät), erityisesti verkoissa, joissa on korkea latenssi, skaalautuvuus parani ja kyky Lisättiin istunnon automaattinen jatkaminen tilapäisen yhteyden katketessa palvelimeen [4 ] . SMB 2 käyttää samaa porttia (445) kuin SMB, mutta eri pakettiotsikkoa ( 0xFF 'S' 'M' 'B'SMB: 0xFE 'S' 'M' 'B'ssä, SMB 2:ssa) [5] .
Windows 8 :ssa on uusi versio protokollasta - SMB 3.0 . Uudet ominaisuudet on esitelty kehittäjien verkkosivustolla .
Vuonna 2008 Microsoft julkaisi Euroopan komission painostuksesta kuvauksen yksityisistä protokollistaan, mukaan lukien SMB, MSDN -verkkosivustolla [6] .
SMB on asiakas-palvelin- tekniikkaan perustuva protokolla, joka tarjoaa asiakassovelluksille helpon tavan lukea ja kirjoittaa tiedostoja ja pyytää palveluita palvelinohjelmilta erilaisissa verkkoympäristöissä. Palvelimet tarjoavat tiedostojärjestelmiä ja muita resursseja (tulostimet, sähköpostisegmentit, nimetyt putket ja niin edelleen) jaettavaksi verkossa. Asiakastietokoneilla voi olla omat tallennusvälineet, mutta ne voivat myös käyttää palvelimen jakamia resursseja.
Asiakkaat muodostavat yhteyden palvelimeen käyttämällä TCP/IP :tä (tarkemmin sanottuna NetBIOS over TCP/IP ), NetBEUI tai IPX/SPX . Kun yhteys on muodostettu, asiakkaat voivat lähettää komentoja palvelimelle (näitä komentoja kutsutaan SMB-komennoiksi tai SMB-komennoiksi), mikä antaa heille pääsyn resursseihin, antaa heille mahdollisuuden avata, lukea tiedostoja, kirjoittaa tiedostoihin ja yleensä suorittaa koko luettelon toiminnot, jotka voidaan suorittaa tiedostojärjestelmällä. SMB:tä käytettäessä nämä toimet suoritetaan kuitenkin verkon kautta.
Kuten edellä mainittiin, SMB toimii eri protokollien avulla . OSI - verkkomallissa SMB-protokollaa käytetään sovellus/esityskerroksen protokollana ja se riippuu matalan tason siirtoprotokollasta. SMB:tä voidaan käyttää TCP/IP :n , NetBEUI :n ja IPX/SPX :n kautta . Jos TCP/IP tai NetBEUI on varattu, käytetään NetBIOS-sovellusliittymää. SMB voidaan lähettää myös DECnet - protokollan kautta . Digital (nykyisin Compaq ) teki tämän nimenomaan PATHWORKS-tuotteelleen. NetBIOSilla, kun sitä käytetään TCP/IP:n yli, on useita nimiä. Microsoft kutsuu sitä joissain tapauksissa NBT :ksi ja joissakin tapauksissa NetBT :ksi . Myös nimi RFCNB esiintyy .
SMB:n olemassaolon alusta lähtien on kehitetty monia erilaisia protokollamuunnelmia käsittelemään jatkuvasti kasvavaa monimutkaisuutta laskentaympäristössä, jossa sitä käytettiin. Sovimme, että protokollan todellinen versio, jota asiakas ja palvelin käyttävät, määräytyy negprot (negotiate protocol) -komennolla. Tämä SMB on lähetettävä ensin ennen yhteyden muodostamista. Protokollan ensimmäinen versio oli Core Protocol, joka tunnetaan PC NETWORK PROGRAM 1.0:n SMB-toteutuksena. Se tukee kunnolla kaikkia perustoimintoja, jotka sisältävät:
kahdeksan | 16 | 24 | 32 bittiä |
komento | RCLS | Varattu | ERR |
---|---|---|---|
ERR(jatkoa) | REB/FLG | Varattu | |
Varattu | |||
Varattu | |||
Varattu | |||
puun tunnus | Prosessin tunnus | ||
käyttäjätunnus | multiplex ID | ||
WCT | VWV | ||
BCC | BUF | ||
SMB-otsikkorakenne |
SMB-otsikkorakenteen pääelementit ovat:
• Komento — protokollakomento.
• RCLS on virheluokkakoodi.
• ERR - virhekoodi.
• Puun tunnus (TID) — verkkoresurssin yhteyden tunnus.
• Prosessitunnus (PID) - Varsinaisen yhteyden asiakasprosessin tunnus.
• User ID (UID) — käyttäjän tunniste; palvelin käyttää tarkistaakseen käyttäjän käyttöoikeudet.
• Multiplex ID (MID) — käyttäjäryhmän tunniste; jota palvelin käyttää tarkistaakseen käyttäjäryhmän käyttöoikeudet.
• WCT on otsikkoa seuraavien parametrien lukumäärä.
• BCC on parametreja seuraavan datan tavumäärä.
Microsoft SMB-protokollan käyttämä suojausmekanismimalli on periaatteessa identtinen minkä tahansa muun SMB-protokollan muunnelman kanssa. Se koostuu kahdesta suojaustasosta: käyttäjätaso (käyttäjätaso) ja jakotaso (jaetun resurssin taso). Osuus (julkaistu resurssi) tarkoittaa tiedostoa, hakemistoa, tulostinta tai mitä tahansa palvelua, jota asiakkaat voivat käyttää verkon kautta.
Käyttäjätason todennus tarkoittaa, että asiakkaalla, joka yrittää käyttää palvelimen resurssia, on oltava käyttäjätunnus (käyttäjänimi) ja salasana (salasana). Jos tämä todennus onnistuu, asiakkaalla on pääsy kaikkiin käytettävissä oleviin palvelinresursseihin, lukuun ottamatta niitä, joissa on jakotason suojaus. Tällä suojaustasolla järjestelmänvalvojat voivat määrittää, millä käyttäjillä ja käyttäjäryhmillä on pääsy tiettyihin tietoihin. Sitä käytetään Windows NT :ssä , Windows 2000 :ssa ja Windows XP :ssä .
Jakotason todennus tarkoittaa, että pääsyä resurssiin ohjataan salasanalla, joka on asetettu erityisesti tälle resurssille. Toisin kuin käyttäjätaso, tämä suojaustaso ei vaadi käyttäjänimeä todennusta varten, eikä se luo ainutlaatuisuutta nykyiselle käyttäjälle. Tätä tasoa käytetään Windows NT:ssä, Windows 2000:ssa ja Windows XP:ssä tarjoamaan lisäsuojaustaso käyttäjätason lisäksi. Windows 95 , Windows 98 ja Windows ME -käyttöjärjestelmät toteuttavat vain tämän suojaustason.
Molemmat suojaustasot käyttävät salausta. Salasana salataan ennen kuin se lähetetään palvelimelle. Protokolla tukee salaustyyppejä NTLM , NTLMv2 ja LAN Managerin (LM) vanhempia versioita. Molemmissa salausmenetelmissä käytetään Response-Revoke-todennusta, jossa palvelin lähettää asiakkaalle satunnaisesti luodun merkkijonon ja asiakas palauttaa jäsennetyn merkkijonon peruutuksena, mikä todistaa, että asiakkaalla on riittävät valtuustiedot päästäkseen käsiksi tietoihin.
Koko Microsoftin protokollan referenssitoteutuksen elinkaaren ajan tietoturvaasiantuntijat ovat tunnistaneet haavoittuvuuksia, jotka mahdollistavat onnistuneen verkkohyökkäyksen etäisäntään. [7] [8] [9] Suojaamattomiin SMB-palvelimiin kohdistuvan hyökkäyksen organisaatio on yksi houkuttelevimmista hyökkääjien keskuudessa [10] . Esimerkiksi SMB-protokollan haavoittuvuuksia käyttämällä hakkeroitiin Sony Pictures Entertainmentin [11] palvelimia ja levitettiin haittaohjelmia DoublePulsar , WannaCry [12] (haavoittuvuus EternalBlue ) ja Petya [13] .
URI- järjestelmät | |
---|---|
Virallinen | |
epävirallinen |
Tiedostojärjestelmät ( luettelo , vertailu ) | |||||||
---|---|---|---|---|---|---|---|
Levy |
| ||||||
Hajautettu (verkko) | |||||||
Erityinen |
|