Jump to content
grandson

Poate un virus sa modifice structura unui dispozitv prin USB?

Recommended Posts

Salut, intrebarea suna ciudat dar are sens. 

Tastatura sau alte device-uri vin cu propriul microcontroller care ruleaza cod. In principiu nu se poate face nimic, dar teoretic, daca ar fi un dispozitiv indeajuns de avansat si ar avea o procedura de update de firmare s-ar putea ajunge la asa ceva. Daca ar avea, de asemenea, ar trebui sa verifice integritatea firmware-ului la care se face update/upgrade pe baza unei semnaturi digitale.

 

Se cunoaste faptul ca in sistemele de operare moderne (datorita arhitecturii procesoarelor) exista o separare de privilegii la nivel de "ring" unde ring0 = Kernel mode, sistemul de operare care are acces la toate resursele iar ring3 = usermode care e mult mai limitat. Dar se poate vede si altfel aceasta problema daca intram mai in adancime in problema:

 

1*0RFr8wQltP0GzfXEVsu61Q.jpeg

 

Intel-Rings.png

 

Cu alte cuvinte, exista de exemplu chiar si in procesor in firmware care permite executia codului assembler (in machine code) pe care il cunoastem. Se poate face update la el asa cum s-a intamplat cand au aparut vulnerabilitati in procesoare gen Specter sau Meltdown cand pentru fix a fost necesar update de microcode (firmware de procesor).

 

Exact acelasi lucru se poate intampla si cu alte device-uri. De exemplu placi video. Sau BIOS. Sau mai stiu eu ce.

Si ca sa rezum problema, daca un device e indeajuns de avansat incat sa aiba (doar ca exemplu) functionalitati gen firmware update, in teorie (si in practica daca e vulnerabil la asa ceva si nu verifica aceste firmware updates) se poate infecta si cand ajunge pe un alt device sa fie in continuare infectat. De asemenea, un antivirus de exemplu nu are ce sa faca.

 

PS: Asta nu inseamna ca acel device infectat va putea lua controlul asupra calculatorului la care e conectat ulterior. Sistemul de operare prin functionalitati gen Plug & Play si standarde gen PCI Express, USB sau altele, permit doar un numar de actiuni si nu sa faca ceea ce doresc. Acel device infectat va fi limitat la device-ul in sine, nu s-ar putea existinde la alte device-uri sau la sistemul de operare (decat desigur, daca exista probleme de securitate in OS).

 

Sper ca ajuta. 

  • Upvote 5
Link to comment
Share on other sites

Ca sa dezvolt pe ce zice @Nytro

 

Din cate inteleg eu da, un device poate fi infectat printr-un firmware update, dar dupa ce e infectat se poate transfera pe un nou calculator la care e conectat ulterior printr-un alt exploit

 

Sa zicem ca ai o imprimanta care vine cu un driver vulnerabil (code execution). O imprimanta infectata poate declansa executia de cod in driver, daca driverul e vulnerabil. Astfel ajungi sa ai cod malitios executat in ring 1.

 

Scenariul nu pare imposibil, avand in vedere ca driverele nu sunt mereu ultra-updatate(vin de pe CD). Un device rouge are o suprafata diferita de atac si ar putea teoretic sa se extinda.

 

 

On topic: La ce intreaba garconul asta- Stai linistit boss, nu se duce in tastatura! Poti sa ti-o bagi unde vrei tu...

Edited by yoyois
  • Upvote 2
Link to comment
Share on other sites

Eu am vazut un caz similar in sisteme embedded:
- stick USB normal, nou, fara nicio problema era introdus intr-un sistem, iar atunci cand se facea scrierea pe el erau afectate anumite block-uri  (nu stiu exact cum si in ce fel);
- daca introduceai acel stick USB cu date corupte in acelasi sistem sau intr-un alt sistem de acelasi tip genera un kernel panic instant, adica sistemul isi dadea reboot in loop cat timp era stick-ul conectat. Isi revenea doar dupa ce faceai remove la stick. 

 

Nu erau fisiere de update ci fisiere multimedia pe stick-ul respectiv. Tin minte ca problema era la un codec, la o metoda prin care se extrageau informatii dintr-un fisier video. 
 

Edited by tjt
  • Thanks 1
  • Upvote 3
Link to comment
Share on other sites

@yoyois In teorie se poate ca un driver care se instaleaza automat cand introduci un device intr-un port (e.g. USB) sa infecteze OS-ul, in practica, cel putin pe Windows x64, e necesar ca driver-ul sa fie semnat de catre Microsoft WHQL (daca e modificat, semnatura nu mai e valida). Nu conteaza ca driver-ul e vulnerabil, conteaza ca OS-ul sa fie. Cand driver-ul e vulnerabil un proces user-mode poate face privilege escalation in ring 0 (rin 1 si 2 nu sunt folosite de catre OS-urile moderne). Asadar nu se poate instala un driver modificat (Windows x64). Pe Linux nu stiu daca exista ceva de genul, dar cred ca Linux sta mai bine la capitolul drivere by-default in kernel. 

 

@tjt Foarte probabil acel OS sau driverele sale au un bug in functionalitate de parsare a sistemului de fisiere. In anumite conditii acest lucru poate fi exploatabil, dar cred ca e destul de dificil, mai ales cu protectiile disponibile in sistemele de operare moderne. Dar cu siguranta se poate intampla ce ai mentionat. De fapt, am patit ceva asemanator la o firma unde am lucrat, OS Embedded (Linux) cu JFFS2 ca filesystem. La anumite fisiere mai mari, cand nu mai era prea mult spatiu disponibil crapa. Cred ca bug-ul respectiv se putea reproduce printr-un device extern. 

  • Upvote 2
Link to comment
Share on other sites

Si un antivirus poate face asta. Nu doar de la un RAT, de la orice. Si dai tu Allow sau Deny la fiecare conexiune. Trebuie sa mergi prin setari sa activezi asta.

Acum multi ani foloseam ZoneAlarm pentru asta, dar cred ca sunt multe programe functionale pentru asa ceva. Ideal ar fi sa nu fie cazul. Sa nu descarcii mizerii de pe net care pot fi infectate.

  • Upvote 1
Link to comment
Share on other sites

18 minutes ago, Nytro said:

Si un antivirus poate face asta. Nu doar de la un RAT, de la orice. Si dai tu Allow sau Deny la fiecare conexiune. Trebuie sa mergi prin setari sa activezi asta.

Acum multi ani foloseam ZoneAlarm pentru asta, dar cred ca sunt multe programe functionale pentru asa ceva. Ideal ar fi sa nu fie cazul. Sa nu descarcii mizerii de pe net care pot fi infectate.

de la acel RAT ciudat imi vin tot felul de intrebari faza e ca persoana care a distribuit acel RAT a zis ca ar fi recomandat o reinstalare de windows am dat deja laptop ul pentru o reinstalare de la win 7 la win 10 si nu stiu cat de priceput e acel baiat i am explicat situatia dar nu sunt destul de sigur daca va scapa de el

Link to comment
Share on other sites

5 hours ago, Nytro said:

Si un antivirus poate face asta. Nu doar de la un RAT, de la orice. Si dai tu Allow sau Deny la fiecare conexiune. Trebuie sa mergi prin setari sa activezi asta.

Acum multi ani foloseam ZoneAlarm pentru asta, dar cred ca sunt multe programe functionale pentru asa ceva. Ideal ar fi sa nu fie cazul. Sa nu descarcii mizerii de pe net care pot fi infectate.

Scuza ma daca mai vin cu o intrebare dar daca am conectat castile dupa laptop ul infectat pe un telefon iphone (am facut actualizare software dupa ce am conectat castile) s ar putea sa se bage virusi am destule date importante

Link to comment
Share on other sites

7 hours ago, andr82 said:

Sunt virusi ce pot rula pe mai multe sisteme de operare si chiar pot migra de pe win pe alte OS-uri.

https://www.intego.com/mac-security-blog/clapzok-a-multi-platform-virus/

acest virus este destul de vechi si nu este open source din cate am recitit la Nytro “tastatura si alte device uri au propriul lor microcontroller” asta inseamna ca nu ma pot infecta?

Link to comment
Share on other sites

Cazurile pe care le-am mentionat eu sunt doar teoretice. Adica ar putea exista, dar din alte motive nu prea exista: Nu au rost. Cu alte cuvine, daca tu ai fi un malware autor, te-ai chiunui nu stiu cat timp sa faci un astfel de virus si sa stii ca infecteaza DOAR daca utilizatorul conecteaza la device castile/tastatura FIX facute de firma X, versiunea Y? Ca nu ai cum sa faci ceva generic. Nu e deloc practic. De asemenea, ar merge doar in foarte putine cazuri in care:

1. Device-ul este atat de avansat incat are ceva de genul (e.g. eu am niste casti Jabra la care le pot face firmware update)

2. Exista o vulnerabilitate (sau problema de design) care permite update-ul cu un firmware nesemnat

Si cel mai important: Daca infectezi acel device CE? Ce faci mai departe? De acolo nu prea poate pleca mai departe (si nici nu e comun sa se plimbe de la un device la altul). Adica acele casti (in cazul meu) ar putea sa redea niste injuraturi in locul manelelor pe care le ascult. Malware autorul nu prea are nimic de castigat l facerea asta. Doar daca ma uraste si nu mai vrea sa ascult manele :( 

  • Upvote 1
Link to comment
Share on other sites

40 minutes ago, Nytro said:

Cazurile pe care le-am mentionat eu sunt doar teoretice. Adica ar putea exista, dar din alte motive nu prea exista: Nu au rost. Cu alte cuvine, daca tu ai fi un malware autor, te-ai chiunui nu stiu cat timp sa faci un astfel de virus si sa stii ca infecteaza DOAR daca utilizatorul conecteaza la device castile/tastatura FIX facute de firma X, versiunea Y? Ca nu ai cum sa faci ceva generic. Nu e deloc practic. De asemenea, ar merge doar in foarte putine cazuri in care:

1. Device-ul este atat de avansat incat are ceva de genul (e.g. eu am niste casti Jabra la care le pot face firmware update)

2. Exista o vulnerabilitate (sau problema de design) care permite update-ul cu un firmware nesemnat

Si cel mai important: Daca infectezi acel device CE? Ce faci mai departe? De acolo nu prea poate pleca mai departe (si nici nu e comun sa se plimbe de la un device la altul). Adica acele casti (in cazul meu) ar putea sa redea niste injuraturi in locul manelelor pe care le ascult. Malware autorul nu prea are nimic de castigat l facerea asta. Doar daca ma uraste si nu mai vrea sa ascult manele :( 

Singura aplicabilitate vad eu sa fie ca la stuxnet cu centrala nucleara din iran. Atunci americanii vazusera ca iranienii foloseau xp si plcuri siemens, insa nu foloseau conexiuni la internet.

Singura modalitate de infectare deci era usbul.

Dar, na, lucrurile astea tin de spionaj international, nu vor targeta ei orice pulete, mai ales ca trebuie sa aiba acces fizic la reteaua lui.

Mai multe detalii pe: https://en.m.wikipedia.org/wiki/Stuxnet

  • Like 1
  • Thanks 1
  • Haha 1
  • Upvote 2
Link to comment
Share on other sites

 

Si CIA-ul avea un tool "Sonic Screwdriver" leakuit de wikileaks Vault 7 https://wikileaks.org/vault7/#Dark Matter?cia

Quote

Among others, these documents reveal the "Sonic Screwdriver" project which, as explained by the CIA, is a "mechanism for executing code on peripheral devices while a Mac laptop or desktop is booting" allowing an attacker to boot its attack software for example from a USB stick "even when a firmware password is enabled". The CIA's "Sonic Screwdriver" infector is stored on the modified firmware of an Apple Thunderbolt-to-Ethernet adapter.

Edit: nu ar trebui sa te ingrijoreze decat daca incerci pornesti un program nuclear cu care sa poti ameninta alte tari :D

Edited by TheFFO
  • Upvote 3
Link to comment
Share on other sites

  • Active Members
On 7/21/2020 at 5:02 PM, grandson said:

Esti foarte amuzant 🤧

 

Scuzati-ma ca fac off topic, dar am auzit de un program netlimiter, acesta poate bloca conexiunile de la un virus gen rat?

Sunt arogant cu oamenii prosti ca tine care nu se pot informa de pe Google si pun intrebari idioate, la fel ca ultima pe care ai pus-o. Daca Nytro ti-a raspuns nu inseamna ca nu te crede idiot, doar are bun simt. Si nu incerca sa-mi mai dai quote, esti total irelevant.

  • Upvote 1
  • Downvote 1
Link to comment
Share on other sites

On 7/22/2020 at 11:24 PM, TheFFO said:

Si CIA-ul avea un tool "Sonic Screwdriver" leakuit de wikileaks Vault 7 https://wikileaks.org/vault7/#Dark Matter?cia

Edit: nu ar trebui sa te ingrijoreze decat daca incerci pornesti un program nuclear cu care sa poti ameninta alte tari :D

Eu ma intreb cum ajunge cineva sa dezvolte exploituri in adaptoare "Thunderbolt-to-Ethernet".

 

Zic ca iti trebuie access la bootloaderul microcipului si eventual la codul care ruleaza pe el.

Au furat baietii documente de la producatorii de cipuri? Sau cum ajungi sa faci reverse engeneering pe hardware atat de closed-source?

 

Sau e vorba si de insideri, ce parere aveti?

Edited by yoyois
  • Like 1
Link to comment
Share on other sites

E mai socant ca faceau astfel de lucruri de dinainte de 2008.

Pentru hardware, teoretic nu e nevoie de documentatie, probabil microprocesorul de pe device are o arhitectura standard si e documentat. Asta inseamna ca probabil se poate gasi public documentatie pentru pinii de debug (JTAG) prin care sa faca debugging la firmware realtime. De modificat probabil printr-un firmware update care destul de probabil nu era semnat.

In prezent se pot face multe lucruri pentru a se preveni astfel de lucruri (mitigations, prevenire 100% nu exista) dar sunt costisitoare si cred ca foarte putini producatori de hardware au protectii la nivel de procesor sa nu permita debug, firmware cryptat in mediul de stocare si decryptat cu un TPMS, firmware-uri semnate si verificate cum trebuie etc.

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...