Kasutaja tarvikud

Lehe tööriistad


runded-mikrokontrolleri-vastu

Ründed mikrokontrolleri vastu

ZigBee seadmed, mis on võrguga liitunud, omavad võrguvõtit ja talletavad seda kusagil oma mälus või püsivaras (firmware). Sama kehtib kõigi teiste võtmete kohta, mida seade teab. Mikrokontrollerisse püsivara paigaldamise järel seadistatakse kiibi kaitsmed (fuses) nõnda, et püsivara sealt enam välja lugeda ei saaks. Võimalik on ainult püsivara uuesti kirjutada käivitades eelnevalt käsu, mis taastab kontrolleri algseaded (chip erase). Tavaliselt pole mikrokontrolleri säilmälule (non-volatile memory, NVM) ega muutmälule (random access memory; RAM) võimalik otse kontrolleri kontaktidelt ligi pääseda.

ZigBee lõppseadmed ja ka marsruuterid asuvad tihti kohtades, kus nende füüsilise kaitse pole tagatud. On leiutatud mitmeid meetodeid, kuidas ZigBee seadmetes olevatest mikrokontrolleritest on võimalik võrguvõtit välja võtta (local key extraction). Mikrokontrollerid on paigutatud korpuste ehk kapslite sisse. Kapsel annab mikrokontrollerile välimuse ja ühtlasi piirab kontrolleri sisule ligipääsu vaid kontrolleri küljes olevate kontaktide abil. Kapslit on keeruline, kuid siiski mitte võimatu avada (chip decapsulation). Avamiseks on erinevaid meetodeid [22]:

  • Mehaaniline avamine, mille lihtsustamiseks võib kapslit eelnevalt puhuriga kuumutada. Tõenäosus kontrolleri lõhkumiseks on suur.
  • Happega, mis söövitab kapsli pinda, kuid ei mõju kapsli sisule. Tavaliselt kasutatakse väävel- ja lämmastikhappe segu. See meetotod võtab teistest oluliselt rohkem aega ja samuti on oht, et hape siiski söövitab mõnd olulist detaili.
  • Laseri või plasmaga põletatakse kapsli sisse auk. Võimaldab väga täpselt avada väikeseid ja õrnu kapsleid.

Pärast kapsli avamist on võimalik pääseda kogu kontrolleri sisu juurde. Kontroller koosneb tavaliselt mitmest komponendist ja kapsli avamisel pääseb nende kontaktidele ligi.

Näiteks Freescale MC13244 kontrolleri kapsli sees on omakorda kolm kontrollerit: keskprotsessor (CPU), säilmälu ja raadio. Kui terve kapsli korral ei ole võimalik säilmälu poole otse pöörduda, siis kapsli avamise järel saab sellele ligi. Mälus asuva püsivara sees asub ka võrguvõti, mis on sealt kättesaadav. Samast kontrollerist on võimalik säilmälu sisu lugeda ka kapslit avamata [22]. Üht kontrolleri kontaktidest kasutatakse säilmälu toiteks. Kui mikrokontrolleri käivitumisel sellele kontaktile toidet mitte anda, siis keskprotsessor arvab, et säilmälu on vigane ja püüab automaatselt käivituda välise mälu pealt, mida ründaja saab kontrollerile ette sööta. Seejärel aga antakse kiibi säilmälule toide ja ettesöödetud püsivaraga saab mälu sisu välja lugeda.

Texas Instrumentsi ZigBee kontroller CC2430 versioon 4 omab järgmist turvaviga: CHIP_ERASE käsu andmisel, kustutatakse kogu püsivara, aga muutmälu sisu ei muudeta [3][23]. Kontroller kasutab Intel 8051 protsessorit, mille kompilaatori omapära tõttu laetakse kõik püsivaras deklareeritud väärtused kontrolleri käivitumisel muutmällu. Kui ründaja käivitab esmalt mikrokontrolleri ja seejärel annab käsu CHIP_ERASE, siis on tal kaitsmete eemaldamise tõttu võimalik võrguvõtit sisaldava muutmälu poole otse pöörduda.

Turvavigu, millega mälu sisu lugeda leidub veel ka Ember EM250 mikrokontrolleris [23], samuti saab Texas Instrumentsi CC2420 kontrollerisse käivitumisel mööda SPI siini (serial peripheral interface bus) saadetavat võrguvõtit välja lugeda [22].

Kui mälu sisu on välja loetud, siis on tarvis ründajal sealt leida võrguvõti. Mälu sisust aru saamine eeldab teadmisi nii mälu kasutanud tarkvarast kui ka protsessori arhitektuurist ja on keeruline. Ründajat abistab fakt, et nii säil- kui muutmälu hulk on väga piiratud. Näiteks Texas Instrumentsi CC2430 kontrolleril on 8 kilobaiti ehk 64 kilobitti RAMi [23]. Otsitava võtme pikkus on 128 bitti. Väga suure tõenäosusega see 128-bitine võti mälus ühe bitijadana. Kui ründaja on raadioeetrist hõivatud vähemalt ühe paketti, mis sisaldab antud võtmega arvutatud terviklusinfot, siis saab kogu mälu sisu 128-biti kaupa läbi proovida ja tuvastada, milline bitijada osutub võtmeks. Kaasaegse arvuti abil saab kogu mälu sisu kontrollida ära mõne sekundi jooksul.

Ka mitmetes teistes ZigBee mikrokontrollerites on leitud sarnaseid nõrkusi ja alati on olemas risk, et selline nõrkus leitakse kasutuses olevas mikrokontrolleris.

Kaitse

Kasutada võimalikult uut riistvara, milles teadaolevaid mälule otse ligipääsu võimaldavaid vigu ei ole leitud. Võrgusõlmedele on soovitav ehitada sisse rikkumist tuvastav moodul (tamper detection), mille häiresse mineku korral kustutatakse kõikide mälude sisu [2]. Võrgu turvapoliitika koostamisel tuleb arvestada võtme lekkimise riskiga ja rakendada selle leevendamiseks võtmevahetust.

Viimati muudetud 2015-05-26 Mait Peekma

Lehekülje tarvikud