Historikisht, shumica e punonjësve përdorin tastierë me valë dhe minj nga Logitech. Duke futur edhe një herë fjalëkalimet tona, ne, specialistët e ekipit Raccoon Security, pyetëm veten: sa e vështirë është të anashkalosh mekanizmat e sigurisë së tastierës me valë? Studimi zbuloi të meta arkitekturore dhe gabime softuerike që lejojnë aksesin në të dhënat hyrëse. Poshtë prerjes është ajo që kemi marrë.
Pse Logitech?
Sipas mendimit tonë, pajisjet hyrëse Logitech janë ndër më cilësoret dhe më të përshtatshmet. Shumica e pajisjeve që kemi janë të bazuara në zgjidhjen Logitech
Marrës dongle me mbështetje Logitech Unifying
Tastiera mund të bëhet një burim informacioni për sulmuesit. Logitech, duke marrë parasysh kërcënimin e mundshëm, u kujdes për sigurinë - përdori algoritmin e kriptimit AES128 në kanalin radio të tastierës pa tel. Mendimi i parë që mund të ketë një sulmues në këtë situatë është të përgjojë informacionin kryesor kur ai transmetohet përmes një kanali radio gjatë procedurës së lidhjes. Në fund të fundit, nëse keni një çelës, mund të përgjoni sinjalet e radios së tastierës dhe t'i deshifroni ato. Sidoqoftë, përdoruesi rrallë (ose edhe kurrë) duhet të unifikojë tastierën, dhe një haker me një radio skanimi do të duhet të presë një kohë të gjatë. Për më tepër, jo gjithçka është aq e thjeshtë me vetë procesin e përgjimit. Në studimin e fundit në qershor 2019, eksperti i sigurisë Markus Mengs publikoi në internet
Ne do të flasim për studimin tonë të sigurisë të dongle Logitech bazuar në NRF24 SoC nga Nordic Semiconductor. Le të fillojmë, ndoshta, me vetë kanalin e radios.
Si "fluturojnë" të dhënat në një kanal radioje
Për analizën e frekuencës kohore të sinjalit të radios, ne përdorëm një marrës SDR të bazuar në pajisjen Blade-RF në modalitetin e analizuesit të spektrit (mund të lexoni gjithashtu për këtë
Pajisja SDR Blade-RF
Ne kemi shqyrtuar gjithashtu mundësinë e regjistrimit të kuadrateve të sinjalit radio në një frekuencë të ndërmjetme, të cilat më pas mund të analizohen duke përdorur teknikat e përpunimit të sinjalit dixhital.
Komisioni Shtetëror për Frekuencat e Radios në Federatën Ruse
Spektri i brezit 2,4 GHz
Mjedisi i ndërhyrjes në gamë është mjaft kompleks. Përkundër kësaj, Logitech ishte në gjendje të siguronte pritje të besueshme dhe të qëndrueshme përmes përdorimit të protokollit të Enhanced ShockBurst në transmetuesin NRF24 në kombinim me algoritmet e përshtatjes së frekuencës.
Kanalet në një brez vendosen në pozicionet me numër të plotë MHz siç përcaktohet në
Sinjali i radios së tastierës në paraqitjen e kohës
Marrësi përdor parimin e korrelacionit të marrjes, kështu që paketa e transmetuar përmban një preambulë dhe një pjesë adresash. Kodimi rezistent ndaj zhurmës nuk përdoret; trupi i të dhënave është i koduar me algoritmin AES128.
Në përgjithësi, ndërfaqja radio e tastierës wireless Logitech mund të karakterizohet si plotësisht asinkrone me multipleksim statistikor dhe përshtatje të frekuencës. Kjo do të thotë që transmetuesi i tastierës ndërron kanalin për të transmetuar çdo paketë të re. Marrësi nuk e di paraprakisht as kohën e transmetimit dhe as kanalin e frekuencës, por dihet vetëm lista e tyre. Marrësi dhe transmetuesi takohen në kanal falë algoritmeve të koordinuara të anashkalimit dhe dëgjimit të frekuencës, si dhe mekanizmave të njohjes së përmirësuar të ShockBurst. Ne nuk kemi hetuar nëse lista e kanaleve është statike. Ndoshta, ndryshimi i tij është për shkak të algoritmit të përshtatjes së frekuencës. Diçka afër metodës së kërcimit të frekuencës (akordim pseudo-rastësor i frekuencës së funksionimit) mund të shihet në përdorimin e burimit të frekuencës së diapazonit.
Kështu, në kushtet e pasigurisë së frekuencës së kohës, për të siguruar marrjen e garantuar të të gjitha sinjaleve të tastierës, një sulmues do të duhet të monitorojë vazhdimisht të gjithë rrjetin e frekuencës prej 84 pozicionesh, gjë që kërkon një kohë të konsiderueshme. Këtu bëhet e qartë pse cenueshmëria e nxjerrjes së çelësit USB (CVE-2019-13054)
Një vështrim i problemit nga brenda
Për studimin tonë, ne zgjodhëm një nga tastierat tona ekzistuese Logitech K330 dhe një dongle Logitech Unifying.
Logitech K330
Le të hedhim një vështrim brenda tastierës. Një element interesant në tabelë për t'u studiuar është çipi SoC NRF24 nga Nordic Semiconductor.
SoC NRF24 në tastierën me valë Logitech K330
Firmware ndodhet në memorien e brendshme, mekanizmat e leximit dhe korrigjimit janë të çaktivizuar. Fatkeqësisht, firmware nuk është publikuar në burime të hapura. Prandaj, vendosëm t'i qasemi problemit nga ana tjetër - të studiojmë përmbajtjen e brendshme të marrësit dongle Logitech.
"Bota e brendshme" e marrësit të dongle është mjaft interesante. Dongle çmontohet lehtësisht, mban në bord lëshimin e njohur NRF24 me një kontrollues të integruar USB dhe mund të riprogramohet si nga ana USB, ashtu edhe direkt nga programuesi.
Dongle Logitech pa strehim
Meqenëse ekziston një mekanizëm standard për azhurnimin e firmuerit duke përdorur
Çfarë u bë: firmware RQR_012_005_00028.bin u nxor nga trupi i aplikacionit Firmware Update Tool. Për të kontrolluar integritetin e tij, kontrolluesi i dongle u lidh me një kabllo
Kabllo për lidhjen e dongle Logitech me programuesin ChipProg 48
Për të kontrolluar integritetin e firmuerit, ai u vendos me sukses në kujtesën e kontrolluesit dhe funksionoi si duhet, tastiera dhe miu u lidhën me dongle përmes Logitech Unifying. Është e mundur të ngarkoni firmware të modifikuar duke përdorur mekanizmin standard të përditësimit, pasi nuk ka mekanizma mbrojtës kriptografik për firmuerin. Për qëllime kërkimore, ne përdorëm një lidhje fizike me programuesin, pasi korrigjimi i gabimeve është shumë më i shpejtë në këtë mënyrë.
Hulumtimi i firmuerit dhe sulmi ndaj hyrjes së përdoruesit
Çipi NRF24 është projektuar bazuar në bërthamën informatike Intel 8051 në arkitekturën tradicionale të Harvardit. Për bërthamën, marrësi vepron si një pajisje periferike dhe vendoset në hapësirën e adresave si një grup regjistrash. Dokumentacioni për shembujt e çipit dhe kodit burimor mund të gjendet në internet, kështu që çmontimi i firmuerit nuk është i vështirë. Gjatë inxhinierisë së kundërt, ne lokalizuam funksionet për marrjen e të dhënave të shtypjes së tastierës nga kanali i radios dhe konvertimin e tyre në formatin HID për transmetim në host përmes ndërfaqes USB. Kodi i injektimit u vendos në adresat e memories së lirë, të cilat përfshinin mjete për përgjimin e kontrollit, ruajtjen dhe rivendosjen e kontekstit origjinal të ekzekutimit, si dhe kodin funksional.
Paketa e shtypjes ose lëshimit të një çelësi të marrë nga dongle nga kanali i radios deshifrohet, konvertohet në një raport standard HID dhe dërgohet në ndërfaqen USB si nga një tastierë e zakonshme. Si pjesë e studimit, pjesa e raportit HID që është më me interes për ne është pjesa e raportit HID që përmban një bajt me flamuj modifikues dhe një grup prej 6 bajte me kode të shtypjes së tastierës (për referencë, informacione rreth HID
Struktura e raportit të HID:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;
Menjëherë përpara transmetimit të strukturës HID te hosti, kodi i injektuar merr kontrollin, kopjon 8 bajt të të dhënave origjinale HID në memorie dhe i dërgon ato në kanalin anësor të radios në tekst të qartë. Në kod duket kështu:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
Kanali anësor është i organizuar në një frekuencë që ne vendosim me karakteristika të caktuara të shpejtësisë së manipulimit dhe strukturës së paketës.
Funksionimi i transmetuesit në çip
Sinjali i demoduluar i shpërthimit të shpërthimit në kanalin anësor
Pasi paketa të transmetohet në kanalin anësor, kodi i injektuar rikthen gjendjen e marrësit. Tani është përsëri gati për të punuar normalisht në kontekstin e firmuerit origjinal.
Në domenet e frekuencës dhe frekuencës së kohës, kanali anësor duket kështu:
Paraqitja spektrale dhe frekuenca kohore e kanalit anësor
Për të testuar funksionimin e çipit NRF24 me firmuerin e modifikuar, ne montuam një stendë që përfshinte një dongle Logitech me firmware të modifikuar, një tastierë me valë dhe një marrës të montuar në bazë të një moduli kinez me çipin NRF24.
Qarku i përgjimit të sinjalit të radios me tastierë pa tel Logitech
Moduli i bazuar në NRF24
Në stol, me tastierën që funksiononte normalisht, pasi e lidhëm me donglein e Logitech, vëzhguam transmetimin e të dhënave të qarta për goditjet e tasteve në kanalin e radios anësore dhe transmetimin normal të të dhënave të koduara në ndërfaqen kryesore të radios. Kështu, ne ishim në gjendje të siguronim përgjim të drejtpërdrejtë të hyrjes së tastierës së përdoruesit:
Rezultati i përgjimit të hyrjes së tastierës
Kodi i injektuar sjell vonesa të vogla në funksionimin e firmuerit të dongle. Megjithatë, ato janë shumë të vogla që përdoruesi t'i vërë re.
Siç mund ta imagjinoni, çdo tastierë Logitech që është në përputhje me teknologjinë Unifying mund të përdoret për këtë vektor sulmi. Meqenëse sulmi synon marrësin Unifying të përfshirë në shumicën e tastierave Logitech, ai është i pavarur nga modeli specifik i tastierës.
Përfundim
Rezultatet e studimit sugjerojnë përdorimin e mundshëm të skenarit të konsideruar nga sulmuesit: nëse një haker zëvendëson viktimën me një marrës dongle për një tastierë pa tel Logitech, atëherë ai do të jetë në gjendje të zbulojë fjalëkalimet në llogaritë e viktimës me të gjitha ato që pasojnë. pasojat. Mos harroni se është gjithashtu e mundur të injektoni tastierë, që do të thotë se nuk është e vështirë të ekzekutoni kodin arbitrar në kompjuterin e viktimës.
Po sikur papritmas një sulmues të mund të modifikojë nga distanca firmuerin e çdo dongle të Logitech nëpërmjet USB? Më pas, nga dongles të vendosura ngushtë, mund të krijoni një rrjet përsëritësish dhe të rrisni distancën e rrjedhjes. Megjithëse një sulmues "i pasur financiarisht" do të jetë në gjendje të "dëgjojë" hyrjen e tastierës dhe shtypjen e tasteve edhe nga një ndërtesë fqinje, pajisjet moderne të pritjes së radios me sisteme shumë selektive, marrës të ndjeshëm radio me kohë të shkurtër sintonizimi me frekuencë dhe antena shumë të drejtuara do t'i lejojnë ato. për të "dëgjuar" hyrjen e tastierës dhe shtypjen e tasteve edhe nga një ndërtesë fqinje.
Pajisje profesionale radio
Meqenëse kanali i transmetimit të të dhënave me valë të tastierës Logitech është mjaft i mbrojtur, vektori i sulmit të gjetur kërkon qasje fizike në marrës, gjë që kufizon shumë sulmuesin. Opsioni i vetëm i mbrojtjes në këtë rast do të ishte përdorimi i mekanizmave të mbrojtjes kriptografike për firmuerin e marrësit, për shembull, kontrollimi i nënshkrimit të firmuerit të ngarkuar në anën e marrësit. Por, për fat të keq, NRF24 nuk e mbështet këtë dhe është e pamundur të zbatohet mbrojtja brenda arkitekturës aktuale të pajisjes. Pra, kujdesuni për dongles tuaj, sepse opsioni i sulmit të përshkruar kërkon qasje fizike në to.
Raccoon Security është një ekip i veçantë ekspertësh nga Qendra e Kërkimit dhe Zhvillimit Vulcan në fushën e sigurisë praktike të informacionit, kriptografisë, dizajnit të qarkut, inxhinierisë së kundërt dhe krijimit të softuerit të nivelit të ulët.
Burimi: www.habr.com