===== Analiza invazivnog USB uređaja Rubber Ducky ===== ===== Sažetak ===== U današnjem svijetu sve se češće postavlja pitanje **cyber sigurnosti** i koliko je uistinu sigurno spremati osobne i povjerljive podatke digitalno ili, još gore, isključivo digitalno, bez fizičkog zapisa. Modernizacijom interneta i IoT uređaja, postoji sve veći rizik da **zlonamjerni** akteri pokušaju doći do naših informacija i upotrijebiti ih u vlastitu korist. Za borbu protiv ovih prijetnji razvijeni su različiti alati i tehnologije za pomoć u zaštiti od cyber napada. Jedan takvih alata je **Hak5 Rubber Ducky USB**, koji koriste etički hakeri i testeri sigurnosni mjera računalnih sustava i mreža. Dok Rubber Ducky USB ima **potencijal da se koristi u zlonamjerne svrhe**, on je također vrijedan alat za stručnjake za cyber sigurnost, koji uvelike **pomaže u održavanju sigurnosti mreža i računalnih sustava**. ===== Uvod ===== 2005. godine **Darren Kitchen** osniva tvrtku **Hak5** s ciljem privlačenja što više zaljubljenika u cyber sigurnost. Prilikom **početnog postavljanja računala** svojih novih zaposlenika, osmislio je **automatizirani** način instalacije svih potrebnih aplikacija. Koristeći **USB** s unaprijed postavljenom **skriptom**, mogao si je uštedjeti brojne sate, što se pokazalo kao uistinu korisnim. Iz te, početne ideje, nastaje uređaj danas puno poznatiji pod nazivom Rubber Ducky USB. Rubber Ducky omogućuje jednostavno postavljanje i prenošenje skripte na ciljano računalo. S vremenom su se počele rađati skripte raznim namjena, kako dobronamjernih tako i malicioznih. **//TO A HUMAN IT’S A FLASH DRIVE. TO A COMPUTER IT’S A KEYBOARD, TYPING AT SUPERHUMAN SPEEDS.//**((Citat sa stranice originalnog proizvođača Rubber Ducky-a, Hak5)) {{ :racfor_wiki:malware:usb_rubber_ducky.png?400 | Rubber Ducky USB od tvrtke Hak5}} ===== Hotplug & Keystroke Injection ===== Prilikom čitanja Rubber Ducky dokumentacije upoznajemo se s dva nova pojma, a to su **//Hotplug//** i **//Keystroke Injection//**. **//Hotplug napad//** vrsta je cyber napada u kojem napadač prikriva svoj zlonamjerni software u obliku običnog **USB-a, CD-a, DVD-a, SD kartice ili bilo kojoj drugoj vrsti fizičke memorije**. To se najčešće događa tako da se USB uređaj (ili njegov ekvivalent) dobije kao promotivni materijal, koji pri svom prvom priključivanju u osobno računalo može pokrenuti unaprijed napisanu, a jako često i zlonamjernu, skriptu napadača. Posebna vrsta //**Hotplug napada**// pod nazivom //**Keystroke Injection**// služi napadaču da uređaj, oponaša tipkovnicu te time omogućava pokretanje komandi na računalu, brzinama znatno bržim od ljudskog ručnog tipkanja te naravno, bez pogreški. Uz ove dva najčešća napada, često se koristi i tzv. //**Keystroke Reflection napad**//, koji se uz pomoć //**Keystroke Injection-a**// pretvara kao da je //**HID ((Human Interface Device))**// te zapisuje sve bitne stavke s napadnutog računala u stvarnom vremenu (**lozinke, detalje bankovnog računa, povjerljivi e-mail-ovi** i sl.). **//Computers trust humans. Humans use keyboards. Hence the universal spec — HID, or Human Interface Device.//**((Citat sa stranice originalnog proizvođača Rubber Ducky-a, Hak5)) ===== DuckyScript ===== Kako bi se Rubber Ducky što bolje prilagodio pisanju //user friendly// //**Payload**//((Skripta prenesena na napadački USB, spremna zaraziti računalo)) skripti, Hak5 osmislio je programski jezik //**DuckyScript**//. On uvelike olakšava i ubrzava pisanje skripti te mu je cijela dokumentacija duga samo 32 stranice uz primjere dostupne na njihovoj **GitHub**((https://github.com/hak5/usbrubberducky-payloads)) stranici. Trenutna verzija programskog jezika je //**DuckyScript 3.0**//, a ona podržava razne nove funkcije od kojih su najbitniji //**prepoznavanje operacijskog sustava**// te petlje i funkcije. //**Prepoznavanje operacijskog sustava**// bitno je jer se time skripte mogu napraviti univerzalnima te iznimno potentnima. **Izvadak iz službenog Hak5 GitHub((https://github.com/hak5/usbrubberducky-payloads)) repozitorija:** {{ :racfor_wiki:seminari:duckyscript3_0.png?600 |Opis DuckyScript 3.0}} {{ :racfor_wiki:seminari:payload_studio.png?200|Payload Studio}} Skripte napisane u DuckyScript-u moraju se naposljetku konvertirati u **Payload**, koristeći //**Payload Studio**//((https://shop.hak5.org/products/payload-studio-pro)) te jednostavno pohraniti na Rubber Ducky USB. Nakon toga, jedino što preostaje je fizički, posredno ili neposredno, spojiti uređaj na žrtvino računalo te u samo nekoliko trenutaka pokrenuti tisuće unaprijed napisanih komandi. {{ :racfor_wiki:seminari:duckyscript_commands.gif? |Moguće komande unutar DuckyScripta}} ===== Napadi ===== 2012. godine došlo je do pokušaja //**social-engineering**// napada na multinacionalnu biotehničku tvrtku //**DSM**//. Na parkiralištu njihove podružnice u Nizozemskoj bili su raspršeni brojni USB uređaji. Srećom, jedan od zaposlenika odnio je USB IT sektoru firme i uspostavilo se da su uređaji ustvari Rubber Ducky USB uređaj. Napadači su se nadali da će netko od zaposlenika DSM-a naivno priključiti uređaj na jedan od svojih poslovnih uređaja te tako isporučiti sve lozinke i osjetljive podatke. //**Članak((https://www.zdnet.com/article/criminals-push-malware-by-losing-usb-sticks-in-parking-lots/)) napada priložen je na slici:**// {{ :racfor_wiki:seminari:dsm.png?600 |}} Također, jedan od najatraktivnijih napada je u obliku **poklon paketa**, čiji sadržaj u sebi krije Rubber Ducky USB. //**Jedan takav primjer možemo pronaći u članku((https://cyware.com/news/newly-discovered-rubber-ducky-attacks-use-free-gift-cards-to-trick-users-into-using-malicious-usb-sticks-fe36b267)):**// {{ :racfor_wiki:seminari:poklon_paket_usb.png?600 |}} ===== Nedostatci ===== Iako Rubber Ducky iz godine u godine dodaje nove mogućnosti i rješava razne pogreške, uređaj te njegov programski jezik daleko je od idealnog programskog sistema. Na nedostatke možemo naići pri slaganju i najjednostavnijih, početničkih skripti, što svakako nije odličje ispoliranog okruženja. **Neki od navedenih nedostataka su:** * Skripta može sadržavati **samo globalne varijable** * **Ne podržava nizove** * Ne podržava spajanje stringova * Varijable mogu biti **samo vrste integer** * Varijable ne mogu biti dulje od **16 bitova** * Varijable se ne mogu printati * Varijable se ne mogu slati u funkcije * **Funkcije ne mogu uzimati argumente** * Funkcije se oslanjaju isključivo na globalne varijable * i još mnogo toga... Svakako **najveći nedostatak** Rubber Ducky USB-a je potreba za **fizičkom prisutnošću** samog uređaja, koja napadača izlaže opasnostima i rizicima. ===== Etika i pravosuđe ===== Kao i kod svakog proizvoda, koji se može koristiti za dobro ili za zlo, postoji određena doza etičke odgovornosti koju krajnji korisnik, a tako i proizvođač mora poštovati. Kao što smo i analizirali, Rubber Ducky USB svakako se može koristi u zlonamjerne svrhe, ali postoje i raznovrsne prilike za dobronamjernim korištenjem u svrhu sigurnosti te //quality of life// primjena. Ta činjenica lišava tvrtku Hak5 bilo koje legalne odgovornosti. Rubber Ducky je legalan uređaj koji se u pravosudnom svijetu ponaša slično kao i nož. Dokle god se koristi u dobronamjerne svrhe, ne može se smatrati ilegalnim posjedovati ga. Ta se činjenica, naravno, mijenja čim se počne koristiti u zločinima protiv čovjeka. **Izvadak iz službenog Hak5 GitHub((https://github.com/hak5/usbrubberducky-payloads)) repozitorija:** {{ :racfor_wiki:seminari:payloads_legal.png?700 |Izvadak iz službenog Hak5 GitHub repozitorija}} ===== Zaključak ===== Rubber Ducky USB tvrtke Hak5 moćan je alat koji se može koristiti u razne svrhe, kako dobro- tako i zlonamjerne svrhe. Kao uređaj koji može simulirati unos s tipkovnice i izvršavati unaprijed programirane skripte munjevitom brzinom, hakeri ga mogu koristiti za pokretanje Hotplug i Keystroke Injection napada na računalne sustave i mreže. Međutim, također ga koriste stručnjaci za cyber sigurnost za provođenje etičkog hakiranja i testiranja prodora, što pomaže u prepoznavanju i popravljanju sigurnosnih ranjivosti prije nego što ih iskoriste pravi hakeri. Iako postoji određena razina etičke odgovornosti za tvrtku u širokoj dostupnosti Rubber Ducky USB-a, važno je da korisnici budu odgovorni i etični u korištenju uređaja. Poduzimajući ove korake, možemo pomoći ublažiti potencijalne rizike i obveze povezane s Rubber Ducky USB i poboljšati ukupnu sigurnost naših digitalnih života. ===== Literatura ===== [1] [[https://shop.hak5.org/products/usb-rubber-duck|Rubber Ducky]] [2] [[https://github.com/hak5/usbrubberducky-payloads|Payload GitHub]] [3] [[https://shop.hak5.org/products/payload-studio-pro|Payload Studio]] [4] [[https://www.youtube.com/watch?v=kfaHJwcG2mg&t=601s|Youtube: Do NOT Plug This USB In! – Hak5 Rubber Ducky]] [5] [[ https://www.zdnet.com/article/criminals-push-malware-by-losing-usb-sticks-in-parking-lots/|ZDNET: Criminals push malware by 'losing' USB sticks in parking lots]] [6] [[https://cyware.com/news/newly-discovered-rubber-ducky-attacks-use-free-gift-cards-to-trick-users-into-using-malicious-usb-sticks-fe36b267|Cyware Social: Newly Discovered ‘Rubber Ducky’ Attacks Use Free Gift Cards to Trick Users Into Using Malicious USB Sticks]]