Autorzy: Victor de Paulo / Conrado Gouvêa / Andre „Dexter” Bereza
BadUSB to atak umożliwiający wykonanie złośliwego kodu na komputerze z zainfekowanego urządzenia USB.
Atak
BadUSB to atak mający na celu wykonanie złośliwego kodu umieszczonego w oprogramowaniu sprzętowym urządzenia USB. Zazwyczaj jesteśmy przyzwyczajeni do ataków pochodzących z urządzeń pamięci masowej, takich jak pendrive'y czy zewnętrzne dyski twarde. Ponieważ BadUSB jest hostowany w oprogramowaniu sprzętowym, atak nie wymaga użycia pamięci masowej i podatne na niego jest każde urządzenie, nawet klawiatury, myszy, kamery internetowe i drukarki.
Cel ataku: komputer-gospodarz
Po podłączeniu urządzenia USB do komputera system operacyjny komputera komunikuje się z urządzeniem. Komunikacja ta odbywa się między innymi po to, aby system operacyjny mógł sprawdzić, który sterownik zostanie użyty do komunikacji.
Urządzenie USB zawierające złośliwy kod może wykonywać polecenia na komputerze, niezależnie od tego, czy działa on pod kontrolą systemu Windows czy Linux. Na konferencji Black Hat badacze zaprezentowali urządzenie, które przechwytuje hasło użytkownika na ekranie blokady, dzięki czemu złośliwy kod może wykonywać polecenia z „sudo” (eskalacją uprawnień). Podczas ataku badacze skonfigurowali wirtualne urządzenie Ethernet, wysyłające hasła użytkowników przez sieć. Ponieważ jest to atak polegający na eskalacji uprawnień, istnieje wiele możliwości przeprowadzenia ataku.
Ciekawym sposobem ataku jest symulacja klawiatury z dowolnego urządzenia. Urządzenie jest normalnie rozpoznawane przez komputer, ale w pewnym momencie inne urządzenie USB jest symulowane jako klawiatura i wpisuje polecenia do komputera-hosta.
Cel ataku: urządzenie USB
Drugą stroną ataku jest umieszczenie złośliwego oprogramowania w urządzeniach USB, które nie zawierają złośliwego oprogramowania. Komputer, który jest już zainfekowany złośliwym oprogramowaniem, może modyfikować oprogramowanie sprzętowe urządzenia USB.
Czynniki utrudniające atak
Po podłączeniu zainfekowanego urządzenia do komputera istnieje niewiele sposobów ochrony. Jeśli chodzi o ścieżkę odwrotną, czyli zanieczyszczenie urządzeń USB z zainfekowanego komputera, istnieją sposoby, aby utrudnić przeprowadzenie ataku:
- Zapobiegaj aktualizacji oprogramowania sprzętowego: Urządzenie, którego aktualizacja oprogramowania sprzętowego jest zablokowana, staje się trudniejsze do zaatakowania. Oprogramowanie sprzętowe zainstalowane przez producenta będzie chronione, jeśli atakujący nie będzie mógł go zmienić.
- Szczegóły działania urządzenia: Załóżmy, że atakującemu udało się zmodyfikować oprogramowanie układowe klawiatury USB. Atak będzie mniej skuteczny, jeśli atakujący nie będzie wiedział, że ma do czynienia z klawiaturą i nie zainstaluje oprogramowania układowego zgodnego z tym urządzeniem, czyli takiego, które sprawi, że urządzenie będzie nadal funkcjonowało jako klawiatura.
- Niejasność oprogramowania sprzętowego: Producent urządzenia implementuje oprogramowanie sprzętowe w taki sposób, że tylko on wie, jak ono działa. Ukrywanie oprogramowania sprzętowego jest procesem naturalnym i nie wymaga, aby producent stosował je celowo. Jednakże zmotywowany przeciwnik będzie w stanie odkryć, jak działa oprogramowanie sprzętowe, i trudność ta zostanie przezwyciężona.
- Motywacja przeciwnika: Wszystkie ataki USB są złożone i wymagają od przeciwnika dużego zaangażowania. Dlatego też ataki mogą być przeprowadzone tylko przez zmotywowanych przeciwników.
Rozwiązanie
Niestety nie ma jednego rozwiązania tego problemu. BadUSB to wada systemu aktualizacji oprogramowania sprzętowego niektórych urządzeń USB. Aby ją rozwiązać, konieczna jest interwencja producenta. Rozwiązanie to pojawi się prawdopodobnie dopiero w urządzeniach nowej generacji i układach scalonych wyposażonych w mechanizmy bezpiecznego aktualizowania oprogramowania sprzętowego. Istnieją jednak sposoby, aby zmniejszyć ryzyko stania się celem ataku.
Możliwe rozwiązania i ich ograniczenia:
- Biała lista urządzeń: Urządzenia USB nie zawsze mają unikalny numer seryjny.
- Zablokowanie USB: Mimo że rozwiązuje to problem, całkowite zablokowanie USB stwarza poważne problemy użytkowe i jest mało prawdopodobne, że rynek wykorzysta tę metodę jako rozwiązanie problemu.
- Skanuj oprogramowanie sprzętowe urządzenia w poszukiwaniu złośliwego oprogramowania: Oprogramowanie sprzętowe urządzenia można odczytać tylko wtedy, gdy oferuje ono taką funkcjonalność. Zainfekowane urządzenie nie wykona analizy oprogramowania sprzętowego lub ukryje złośliwe oprogramowanie.
- Podpisywanie kodu oprogramowania sprzętowego (na potrzeby aktualizacji): Niestandardowa aktualizacja oprogramowania sprzętowego nie jest już możliwa. Aktualizacja będzie możliwa wyłącznie do oprogramowania sprzętowego producenta (tj. podpisanego oprogramowania sprzętowego).
- Wyłącz aktualizację oprogramowania sprzętowego: będziesz musiał zaufać fabrycznemu oprogramowaniu sprzętowemu, którego nie można modyfikować.
Inne problemy
Badacze, którzy odkryli lukę, nie opublikowali kodu pokazującego, w jaki sposób można wykorzystać tę lukę. Twierdzą, że tylko silnie zmotywowani przeciwnicy będą w stanie przeprowadzić atak i nie chcieliby, aby każdy był w stanie to zrobić.
Inna grupa badaczy napisała kod służący do przeprowadzenia ataku i udostępniła go na otwartej platformie (GitHub). Grupa ta nie zgadza się z pomysłem ukrywania kodu i udostępniła go, aby zmusić producentów do szybszej pracy nad rozwiązaniem problemu.
https://srlabs.de/badusb/
https://www.blackhat.com/us-14/briefings.html#badusb-on-accessories-that-turn-evil
https://www.youtube.com/watch?v=nuruzFqMgIw[/ Vc_column_text] [vc_column_text]