SMB (rövidítve az angolból. Szerver üzenetblokk ) - alkalmazási rétegű hálózati protokoll a fájlok , nyomtatók és egyéb hálózati erőforrások távoli eléréséhez , valamint a folyamatok közötti kommunikációhoz . A közös internetes fájlrendszer (CIFS) néven is ismert protokoll első verzióját az IBM , a Microsoft , az Intel és a 3Com fejlesztette ki az 1980-as években; a másodikat (SMB 2.0) a Microsoft hozta létre, és a Windows Vista rendszerrel jelent meg . Jelenleg az SMB elsősorban a Microsoft Windows operációs rendszerekhez kapcsolódik , ahol a "Microsoft Windows Network" ( magyar Microsoft Windows hálózat ) és a "fájlok és nyomtatók megosztása" ( fájl- és nyomtatómegosztás ) megvalósítására szolgál.
A protokoll első változatát az IBM alkalmazottja , Barry Feigenbaum fejlesztette ki 1983 -ban [1] [2] . Az SMB-t eredetileg NetBIOS - on keresztül valósították meg ( NBF -en , IPX/SPX -en vagy NetBIOS-on TCP/IP -n keresztül), és az MS-NET hálózatokban és a LAN Manager for DOS -ban, valamint a Windows for Workgroups -ban használták . A Microsoft rendszeresen új funkciókkal bővítette a protokollt; például a Microsoft Networks SMB File Sharing Protocol Extensions második verziója 1988-ban, a 3. verzió - 1989 -ben , a 3.4-es verzió - 1992-ben jelent meg [3] .
1992- ben megjelent a Samba - az SMB protokoll ingyenes megvalósítása UNIX - szerű operációs rendszerekhez (eredetileg a SunOS számára ). Mivel a Microsoft nem publikálta a dokumentációt az SMB kiegészítései közül, a Samba fejlesztőinek vissza kellett fejteniük a protokollt.
1996- ban a Microsoft új nevet kezdett használni a Windows NT 4.0 rendszerben használt protokoll kiterjesztett verziójára – CIFS ( angol közös internetes fájlrendszer ); az új név megragadt, az SMB és a CIFS gyakorlatilag szinonimák lettek [2] . A Microsoft egy ideig az IETF -en keresztül próbálta a CIFS-t nemzetközi szabvánnyá alakítani , de 2000 után leállította a szabványosítási munkát .
A Windows 2000 először közvetlenül TCP -n keresztül vezette be az SMB-t (netBIOS nélkül); Ehhez a 445 -ös portot használják (az SMB az NBT -n keresztül a 139-es portot használta).
A Windows Vista bemutatta a protokoll új verzióját – az SMB 2.0 -t . A protokoll jelentősen leegyszerűsödött (az SMB-nek több mint 100 parancsa volt, míg az SMB 2-nek csak 19); ezzel párhuzamosan javult a teljesítmény (a gyorsítótárazási mechanizmusnak köszönhetően több SMB 2 parancs kombinálható egy hálózati kérésben és megnövelt olvasási és írási puffer), különösen a magas késleltetésű hálózatokban javult a skálázhatóság és a képesség a munkamenet automatikus folytatása a szerverrel való ideiglenes megszakadás esetén [4 ] . Az SMB 2 ugyanazt a portot (445) használja, mint az SMB, de más a csomagfejléc ( 0xFF 'S' 'M' 'B'SMB-ben 0xFE 'S' 'M' 'B', SMB 2-ben) [5] .
A Windows 8 a protokoll új verziójával rendelkezik – az SMB 3.0 . Az új funkciókat a fejlesztői webhely ismerteti .
2008-ban az Európai Bizottság nyomására a Microsoft közzétette magánprotokolljainak leírását, beleértve az SMB-t is, az MSDN webhelyén [6] .
Az SMB egy kliens-szerver technológián alapuló protokoll , amely egyszerű módot biztosít az ügyfélalkalmazások számára fájlok olvasására és írására, valamint szolgáltatások kérésére a szerverprogramoktól különböző típusú hálózati környezetekben. A kiszolgálók fájlrendszereket és egyéb erőforrásokat (nyomtatókat, levélszegmenseket, elnevezett csöveket és így tovább) biztosítanak a hálózaton való megosztáshoz. Az ügyfélszámítógépek rendelkezhetnek saját adathordozóval, de hozzáférhetnek a szerver által megosztott erőforrásokhoz is.
Az ügyfelek TCP/IP (pontosabban NetBIOS over TCP/IP ), NetBEUI vagy IPX/SPX használatával csatlakoznak a szerverhez . A kapcsolat létrejötte után az ügyfelek parancsokat küldhetnek a szervernek (ezeket a parancsokat SMB-parancsoknak vagy SMB-knek nevezik), amelyek hozzáférést biztosítanak számukra az erőforrásokhoz, lehetővé teszik számukra a fájlok megnyitását, olvasását, fájlok írását, és általában a teljes lista végrehajtását. fájlrendszerrel végrehajtható műveletek. SMB használata esetén azonban ezeket a műveleteket a hálózaton keresztül hajtják végre.
Mint fentebb említettük, az SMB különféle protokollok használatával működik . Az OSI hálózati modellben az SMB protokoll alkalmazás/bemutató réteg protokollként használatos, és az alacsony szintű szállítási protokolloktól függ. Az SMB használható TCP/IP , NetBEUI és IPX/SPX felett . Ha a TCP/IP vagy a NetBEUI foglalt, a NetBIOS API kerül felhasználásra. Az SMB a DECnet protokollon keresztül is küldhető . A Digital (jelenleg Compaq ) ezt kifejezetten a PATHWORKS termékükhöz tette. A NetBIOS-nak, ha TCP/IP-n keresztül használják, többféle neve van. A Microsoft bizonyos esetekben NBT -nek, bizonyos esetekben NetBT - nek nevezi . Az RFCNB név is előfordul .
Az SMB létezésének kezdete óta számos különböző protokollváltozatot fejlesztettek ki annak a számítástechnikai környezetnek a kezelésére, amelyben használták. Megállapodtunk, hogy a kliens és a szerver által használt protokoll tényleges verzióját a negprot (negotiate protocol) parancs határozza meg. A kapcsolat létrehozása előtt ezt az SMB-t kell elküldeni. A protokoll első verziója a Core Protocol volt, amely a PC NETWORK PROGRAM 1.0 SMB implementációjaként ismert. Megfelelően támogatja az alapvető műveletek teljes készletét, amely magában foglalja:
nyolc | 16 | 24 | 32 bites |
parancs | RCLS | Fenntartott | TÉVED |
---|---|---|---|
ERR(folyt.) | REB/FLG | Fenntartott | |
Fenntartott | |||
Fenntartott | |||
Fenntartott | |||
fa azonosítója | Folyamatazonosító | ||
Felhasználói azonosító | multiplex azonosító | ||
WCT | VWV | ||
BCC | BUF | ||
SMB fejléc szerkezet |
Az SMB fejlécszerkezet fő elemei a következők:
• Parancs – protokoll parancs.
• Az RCLS a hibaosztály kódja.
• ERR - hibakód.
• Faazonosító (TID) — a hálózati erőforráshoz való csatlakozás azonosítója.
• Folyamatazonosító (PID) – Az aktuális kapcsolat kliens folyamatazonosítója.
• Felhasználói azonosító (UID) — felhasználói azonosító; amelyet a szerver a felhasználó hozzáférési jogainak ellenőrzésére használ.
• Multiplex ID (MID) — felhasználói csoport azonosító; amelyet a szerver a felhasználói csoport engedélyeinek ellenőrzésére használ.
• A WCT a fejlécet követő paraméterek száma.
• A BCC a paramétereket követő adatbájtok száma.
A Microsoft SMB Protocol által használt biztonsági mechanizmus modellje alapvetően megegyezik az SMB protokoll bármely más változatának modelljével. Két biztonsági szintből áll: felhasználói szintből (felhasználói szint) és megosztási szintből (megosztott erőforrás szintje). A megosztás (közzétett erőforrás) egy fájlra, könyvtárra, nyomtatóra, minden olyan szolgáltatásra vonatkozik, amelyhez az ügyfelek hálózaton keresztül hozzáférhetnek.
A felhasználói szintű hitelesítés azt jelenti, hogy az ügyfélnek, amely megpróbál hozzáférni egy erőforráshoz a kiszolgálón, rendelkeznie kell felhasználónévvel (felhasználónévvel) és jelszóval (jelszóval). Ha ez a hitelesítés sikeres, az ügyfél hozzáfér az összes rendelkezésre álló kiszolgálói erőforráshoz, kivéve a megosztási szintű védelemmel rendelkezőket. Ez a védelmi szint lehetővé teszi a rendszergazdák számára, hogy meghatározzák, mely felhasználók és felhasználói csoportok férhetnek hozzá bizonyos adatokhoz. Windows NT , Windows 2000 , Windows XP rendszerben használatos .
A megosztási szintű hitelesítés azt jelenti, hogy az erőforrásokhoz való hozzáférést egy kifejezetten az adott erőforráshoz beállított jelszó szabályozza. A felhasználói szinttől eltérően ez a biztonsági szint nem igényel felhasználónevet a hitelesítéshez, és nem hoz létre semmilyen egyediséget az aktuális felhasználó számára. Ezt a szintet a Windows NT, a Windows 2000 és a Windows XP rendszerben használják, hogy a felhasználói szinten túlmutató biztonsági felügyeletet biztosítsanak. A Windows 95 , Windows 98 és Windows ME operációs rendszerek csak ezt a védelmi szintet valósítják meg.
Mindkét biztonsági szint titkosítást használ. A jelszó titkosításra kerül, mielőtt elküldené a szervernek. A protokoll támogatja az NTLM , NTLMv2 titkosítási típusokat és a LAN Manager (LM) régebbi verzióit . Mindkét titkosítási módszer Response-Revoke hitelesítést használ, amelyben a szerver egy véletlenszerűen generált karakterláncot küld a kliensnek, a kliens pedig egy elemzett karakterláncot ad vissza visszavonásként, amely bizonyítja, hogy az ügyfél elegendő hitelesítő adatokkal rendelkezik az adatok eléréséhez.
A Microsoft protokoll referencia-implementációjának teljes élettartama során az információbiztonsági szakértők olyan sebezhetőségeket azonosítottak, amelyek lehetővé teszik a távoli gazdagép elleni sikeres hálózati támadást. [7] [8] [9] A nem védett SMB szerverek elleni támadás megszervezése az egyik legvonzóbb a támadók körében [10] . Például az SMB protokoll sérülékenységei segítségével feltörték a Sony Pictures Entertainment [11] szervereit, és terjesztették a DoublePulsar , a WannaCry [12] (sebezhetőség EternalBlue ) és a Petya [13] kártevőt .
URI- sémák | |
---|---|
Hivatalos | |
nem hivatalos |
Fájlrendszerek ( lista , összehasonlítás ) | |||||||
---|---|---|---|---|---|---|---|
Korong |
| ||||||
Elosztott (hálózat) | |||||||
Különleges |
|