sveučilište u zagrebu - lecto player · 2. seminarski rad 2.1 o usb standardu 2.1.1 osnovno o usb...

15
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR USB forenzika Ivan Spasić Zagreb, siječanj, 2017.

Upload: others

Post on 25-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

SEMINAR

USB forenzika

Ivan Spasić

Zagreb, siječanj, 2017.

Sadržaj

1. Uvod 3

2. Seminarski rad 4

2.1 O USB standardu 4

2.1.1 Osnovno o USB standardu 4

2.1.2 Kako funkcionira USB 6

2.2 USB napadi 8

2.2.2 Rubber Ducky 10

2.2.3 BadUSB 11

3. Zaključak 13

4. Literatura 14

5. Sažetak 15

1. Uvod

Razvojem osobnih računala za šire mase javila se potreba za standardizacijom postojećih priključaka i protokola za spajanje i komunikaciju sa vanjskom periferijom. Ovo je dovelo do pojave USB standarda koji je sa vremenom uspješno zamjenio starije standarde i konektore za priključivanje različitih računalnih perifernih jedinica kao što su npr. tipkovnice, miševi, printeri, mrežni priključci, te se uspješno integrirao i još uvijek se integrira u uređaje novih generacija. USB standard je uveo niz raznih noviteta u proces priključenja i kominakaciju sa USB kompatibilnimuređajima, te je tako omogućena identifikacija USB uređaja, kontrola napajanja USB uređaja te niz drugih funkcionalnosti.

Unatoč činjenici da se USB standard pojavio prije otprilike 20 godina, te činjenici da je tokom svog "životnog vijeka" prošao kroz više inačica, od USB 1.0 do USB 3.1, USB standard je poprilično složena tvorevina i još uvijek pati od nedostataka koji su jednostavno "ugrađeni" u samu arhitekturu USB standarda. Ovi propusti koriste se kao baza za jako neugodne i štetne exploitove.

3

2. Seminarski rad

2.1 O USB standardu

2.1.1 Osnovno o USB standardu

USB (Universal Serial Bus) je industrijski standard razvijen sredinom devedesetih u cilju standardiziranja spajanja i komuniciranja računalnih sustava sa perifernim jedinicama (tipkovnice, miševi, printeri, PDA-ovi, digitalne kamere, mrežni adapteri). Standard definira kablove, konektore, komunikacijski protokol i napajanje. Osim za komuniciranje sa računalnim sustavim, kao što su osobna računala, serveri iigraće konzole, USB se koristi i kao izvor napajanja za uređaje.

Razvoj USB-a je započeo 1994. godine pod vodstvom 7 tvrtki: Compaq, DEC, IBM, Intel, Microsoft, NEC i Nortel. Glavni cilj je bio zamijeniti gomilu različitih konektora iz računala sa jednom vrstom, te standardizirati i pojednostaviti programsku konfiguraciju uređaja spojenih preko USB-a. U siječnju 1996. godine pojavio se USB 1.0 standard. USB 1.0 standard je definirao dva načina prijenosa, Low Speed i Full Speed, brzinu prijenosa od 1.5 Mbit/s za Low Speed uređaje i 12 Mbit/s za Full Speed. Također dva standarda konektora su uvedena, standard-A i standard-B. Prva verzija USB-a koja je stekla veću popularnost je USB 1.1 . Brzina od 12 Mbit/s bila je predviđena za uređaje većih brzina, kao na primjer eksterni diskovi, dok je brzina od 1.5 Mbit/s bila predviđena za uređaje kao što su tipkovnica, joystick-ovi.

4

Slika 2: Certificirani logo USB standardaSlika 1: USB logo

Slika 3: Konfiguracija pinova za A i B standardkonektora

U travnju 2000. godine pojavila se nova verzija USB standarda USB 2.0 koji jeu cijelu priču uveo još jedan profil veće brzine, High Speed, sa maksimalne brzine 480 Mbit/s. Također, USB 2.0 specificirao je dodatne konektore kao što su mini-A i mini-B.

12. studenog pojavio se USB 3.0 standard. USB 3.0 standard propisuje novi SuperSpeed mod maksimalne brzine 5.0 Gbit/s, backwards-compatible konektore te novi kabel. Za razliku od prijašnjih USB standarda koji zbog svoje fizičke arhitekture nisu dozvoljavali duplex način rada, USB 3.0 zbog nove fizičke strukture, u svojem SuperSpeed modu omogućava full-duplex komunikaciju.

5

Slika 4: Hi-Speed USB logo

Slika 5: SuperSpeed USB logo

2.1.2 Kako funkcionira USB

Arhitektura USB komunikacije je asimetrična u svojoj topologiji i mogla bi se usporediti sa master/slave konceptom koji imamo kod jednostavnijih komunikacijskih protokola. Sastoji se od glavnog uređaja kojeg nazivamo host na koji se spajaju periferni uređaji (device-ovi) tvoreći tako slojevitu zvjezdastu topologiju. Dodatni USBrazdjelnici se mogu spojiti, tvoreći tako stablastu strukturu sa do maksimalno 5 razina. Također, USB host može biti opremljen sa više USB host kontrolera na koji semogu spojiti maksimalno 127 uređaja (uključujući i USB hub-ove).

Komunikacija sa USB uređajima se temelji na principu pipe-ova (cijevovoda). Pipe je konekcija od host-a prema logičkoj strukturi na device-u koja se naziva endpoint. USB uređaj može imati do 32 endpoint-a (16 IN i 16 OUT). Postoje dvije vrste pipe-a, stream i message pipe-ovi. Svaki od pipe-ova se koristi za neke od 4 vrste prijenosa, izokroni prijenos, prekidni prijenos, bulk prijenos, kontrolni prijenos.

Message pipe je dvosmjeran i koristi se u slučaju kontrolnog prijenosa. Kontrolni prijenos služi za slanje određenih komandi uređaju, posebno u inicijalnoj fazi za konfiguraciju uređaja. Stream pipe je pak jednosmjeran i koristi se kod izokronog, prekidnog i bulk prijenosa. Izokroni prijenos se koristi u situacijama kada želimo održati veliku brzinu prijenosa, ali sa mogućim greškama (koristi se kod uređaja za real-time prijenos zvuka ili slike, kao što su kamere i mikrofoni). Prekidni prijenos se koristi kod uređaja kod kojih zahtjevamo brzi odziv, kao što su na primjer USB miševi i tipkovnice. Bulk transfer se koristi u situacijama kada je potrebno prenijeti veću količinu podataka na primjer kod USB uređaja za pohranu podataka.

Prilikom prvog ukapčanja uređaja u USB host pokreće se proces enumeracije.Prvo se šalje reset signal uređaju. Brzina uređaja se određuje prilikom reseta. Nakon

6

Slika 7: Primjer USB topologije Slika 6: Ekvivalentni fizički model

reset faze, host od device-a čita podatke o njemu te mu dodjeljuje jedinstvenu 7-bitnuadresu. Ovisno o implementaciji USB host software stack-a, učitavaju se driveri za komunikaciju sa uređajem.

Funkcionalnost uređaja definira se posebnim kodom koji nazivamo USB klasom. Ovisno o klasi host učitava specifične drivere za komunikaciju sa uređajem. Neke od postojećih klasa uređaja:

Klasa Opis Primjer

01h Audio Zvučnici, mikrofon

03h Human InterfaceDevice

Tipkovnica, miš

09h USB hub USB Hub

0Eh Video WEB kamera

07h Printer CNC machine, printer

7

2.2 USB napadi

Dvije najčešće vrste napada koje koriste funkcionalnosti i propuste USB protokola kao samu bazu napada su social engineering napadi i HID spoofing napadi.

Social engineering USB napadi uobičajeno računaju na naivnost i pohlepu žrtve i najčešće, korištenjem nekakvih HTML datoteka, od žrtve zahtjevaju povjerljive podatke (phishing).

HID spoofing napadi su kompleksnije prirode. Oni iskorištavaju svojstvo HID klase USB uređaja. U osnovi, maliciozni uređaj se prilikom priključivanja predstavlja kao USB uređaj HID klase (tipkovnica ili miš najčešće) te pokušava izvršiti određeni set HID instrukcija koje će pak uzrokovat da žrtvino računalo napravi određenje radnje kao što su pokretanje određenog programa, "krađa" loziniki, fork bomb i mnoge druge. HID spoofing napadači obično koriste za svojevrsno instaliranje backdoor-a na računalo žrtve, kao uvertiru za puno kompleksnije napade.

Također, preko USB sučelja je moguće vršiti man in the middle napade, no zbog specijaliziranog hardware-a ovakvi napadi su puno rijeđi i najčešće ih vrše "specijalizirane organizacije".

8

Slika 8: Social engineering napadi

Slika 9: HID spoofing napadi

2.2.1

USB killer

USB killer je naprava koja napadaču nije u stanju pružiti mogućnost i pomoć prilikom izvođenja složenih napada, no unatoč tomu sposobna je žrtvi, točnije žrtvinom računalu, prouzročiti veliku štetu.

Uređaj, koji svojim izgledom nalikuje na običan USB stick, zapravo je sklop nekoliko kondenzatora većih snaga i pripadne regulatorske elektronike. Prilikom priključivanja u USB port žrtvinog računala, kondenzatori se nabijaju. Kad se kondenzatori nabiju, upravljačka elektronika pomoću mehaničkog releja sav naboj u vrlo kratkom vremenu preusmjerava na DATA pinove na USB portu, generirajući tako veliki naponski spike koji će u najmanju ruku spržiti ulazno USB sklopovlje na portu, te tako onesposobiti daljnje korištenje USB porta. Ovisno o hardware-u može doći i do oštećenja i uništenja matične ploče računala.

9

Slika 11: USB killer stick

Slika 10: USB MITM napad

2.2.2 Rubber Ducky

Kao što je već spomenuto HID spoofing predstavljaju najčešće USB napade. HID spoofing iskorištava uvriježenost tipkovnica kao sredstva komunikacije računala i"čovjeka" (HID – Human Interface Device). Što znači da će većina modernih operacijskih sustava bilo koji USB uređaj koji se predstavlja kao tipkovnica automatski detektirati i prihvatiti kao tipkovnicu.

Princip rada Rubber Ducky USB-a je prilično jednostavan. Uređaje se sastoji od 60 MHz 32-bitnog mikrokontrolera sa pripadajućim firmware-om, priključka za mikro SD karticu, tip A konektora, te nekolicinu popratnih komponenti.

Prilikom priključenja uređaja u računalo žrtve, uređaj se predstavlja kao tipkovnica te počinje izvršavati naredbe sa SD kartice. Ovisno o cilju koji želi postići svojim napadom, napadač na SD karticu sprema takozvane payload skripte koje je prethodno napisao u posebnom "programskom jeziku", Ducky Script. Na GitHub stranicama USB Rubber Ducky projekta su dostupne neke skripte koje je izdala zajednica korisnika. Među nekima su skripta za download Netcat-a i pokretanje reverse shell-a, otvaranje WiFi backdoor-a, skripta za pokretanje Fork Bomb-a.

10

Slika 12: Rubber Ducky logo

Slika 13: Rubber Ducky USB stick

Iako je Rubber Ducky USB dostupan na tržištu, pojavile su se mnoge DIY verzije projekta koje koriste isti firmware, ali su puno jeftinije. Također, neki "članovi" hack zajednice su odlučili napraviti svoju verziju. Jedan od takvih pokušaja je USB DriveBy od haker entuzijasta Samy Kamkara, koji je za razliku od Rubber Ducky-a u stanju emulirati miš.

2.2.3 BadUSB

Prethodni USB pentesting uređaji sastojali su se od specijaliziranog hardware-a, mozak cijelog uređaja je obično nekakav mikrokontroler opće namjene dostupan svima, te je cijena uređaja relativno visoka. Sa strane napadača, ove metode su suviše "hardware specific", previše koštaju i preograničene su.

2014. godine je na hakerskoj konvenciji BlackHat 2014 predstavljen BadUSB tvrtke Security Research Labs, modificirani firmware (točnije malware) kompatibilan sa jednim velikim dijelom postojećih USB uređaja. BadUSB malware se programira usamu memoriju USB uređaja (USB stickova, USB hubova, USB kamera, SD adaptera itd.) na mjesto originalnog firmware-a.

11

Slika 14: USB DriveBy

Slika 15: Blok shema USB stick-a

Malware je odavde u stanju izvoditi velik spektar različitih napada kao što je HID spoofing na račun trenutno logiranog korisnika, instalirati dodatne maleware-e koji supak u stanju inficirati kontrolere ostalih USB uređaja spojenih na računalo. Također BadUSB je u stanju predstaviti USB uređaj kao mrežnu karticu i na taj način počiniti svojevrsni DNS spoofing napad.

Zaraženi USB uređaj je u stanju detektirati boot-anje računala, te umjesto operacijskog sustava boot-ati maliciozni kod koji će potom zaraziti OS računala.

BadUSB maleware je relativno nov exploit i tvrtka Security Research Labs, zbog njegove opasnosti, sve source kodove drži pod ključerm. Online su dostupne samo proof-of-concept i demonstracije napada.

12

Slika 16: Demonstrirani napadi i ideje tvrtke Security Research Labs

3. Zaključak

Od pojave prve verzije do danas USB standard je prošao kroz mnoge promijene koje su mu omogućile da se uspješno integrira u računalne sustave. No bez obzira na sve revizije koje je doživio, USB protokol je u suštini ostao isti. Jedna od glavnih primjena USB-a je u uređajima za interakciju sa korisnikom (HID) i sam protokol je optimiziran da krajnjem korisniku omogući što jednostavniju implementaciju u njegov vlastiti računalni sustav što je pak za sobom ostavilo neke sigurnosne propuste. Uvriježenost USB-a je dovela do toga da krajnji korisnik nije svijestan da su USB uređaji sami po sebi zapravo računalni sustavi sa pozamašnom količinom procesne moći. Uz malo modifikacija i uz sve dostupne propuste koje nudi USB protokol, USB uređaji pod krinkom klasičnih korisničkih uređaja mogu postati maliciozne naprave koje su u stanju prouzročiti veliku štetu te otvoriti put novim napadima.

13

4. Literatura

http://www.usbmadesimple.co.uk/

https://en.wikipedia.org/wiki/USB

https://hackmag.com/security/rubber-ducky/

http://usbrubberducky.com/

https://hakshop.com/products/usb-rubber-ducky-deluxe

14

5. Sažetak

Ukratko je opisana povijest USB standarda, od njegove pojave do danas. Opisan je osnovni princip rada USB protokola, samih USB uređaja te arhitektura topologije USB sustava. Potom su opisani određeni propusti i loše strane USB protokola, te su ukratko predstavljene neke metode i exploitovi koji koriste prije navedene propuste.

15