Strojni trojanci na integriranih vezjih
Matej Kovačič
25. sep 2013 ob 12:56:57
V zadnjih letih se na področju informacijske varnosti čedalje več govori o problematiki zlonamerne strojne programske opreme (ang. firmware), pa tudi o sami zlonamerni strojni programski opremi oziroma trojanskih konjih skritih v fizični strojni opremi. O prvih smo že pisali (npr. o napadu na krmilnik trdega diska ali zlonamerni strojni programski opremi na mrežni kartici), tokrat pa se bomo spustili prav na nivo strojne opreme.
Trojanski konj oz. trojanec (ang. trojan horse, trojan) je zlonamerna programska koda ali zlonamerna strojna oprema, ki pa ima navidezno koristno funkcijo oziroma je vključena v legitimno in koristno programsko kodo ali strojno opremo.
Strojni trojanci so zlonamerna sprememba integriranega vezja, s pomočjo katere napadalec lahko pridobi dostop do sistema, ali pa mu omogoča izvedbo tim. napada preko stranskega kanala (ang. side channel attack) (prevsem časovnega napada (ang. timing attack) in napada z analizo porabe električne energije (ang. power analysis)). Znani so tudi primeri strojnih trojancev s tim. ubijalskim stikalom (ang. kill switch) ali vprogramirano odpovedjo po določenem času, kar omogoča izvedbo DOS napada na strojno opremo.
Osnovni problem tim. strojnih trojancev (ang. hardware trojan) je, da napadalcu, ki takšno opremo izdela, omogočajo nepooblaščen dostop do sistema ne glede na zaščite na nivoju programske opreme. Proti takšni zlonamerni napravi ne pomaga ne antivirus, ne požarni zid, konec koncev tudi nobena zaščita na nivoju operacijskega sistema. Sodobna informacijska varnost pač temelji na zaupanju strojni opremi.
Kljub temu, da se o problemu strojnih trojancev v zadnjem času čedalje več govori in kljub problematiki proizvodnje ponarejenih integriranih vezij, zaenkrat še ni bilo javno zaznati kakšnega konkretnega strojnega trojanca "v divjini". A razkritja Edwarda Snowdena sprožajo številne špekulacije tudi na tem področju.
Po nekaterih podatkih naj bi tovrstno tehnologijo leta 1982 uporabila ameriška obveščevalna služba CIA proti tedanji Sovjetski zvezi, in sicer v sabotažne namene. Takrat naj bi šlo za uporabo zlonamerne programske opreme na SCADA sistemu za prečrpavanje zemeljskega plina. Ameriška CIA naj bi tedanji Sovjetski zvezi podtaknila defekten SCADA sistem, ki je nadzoroval plinske črpalke in ventile, zaradi česar je prišlo do velike eksplozije na sibirskem plinovodu. Po nekaterih ocenah je ta dogodek močno oslabil ekonomijo tedanje Sovjetske zveze. (Nekateri viri sicer trdijo, da naj bi bil ta dogodek v resnici zgolj mit, do eksplozije je sicer zares prišlo, vendar naj bi bil vzrok človeška napaka).
Zaradi posledic, ki jih ima zlonamerna strojna oprema lahko za varnost, (zdrava) bojazen pred strojnimi trojanci zato vsekakor ni odveč. Kot v svoji knjigi Hladna vojna in bitka za informacijsko tehnologijo omenja nekdanji direktor Iskre Delte Janez Škrubej, so bile tovrstne skrbi precej prisotne v 1980-tih letih v tedanji Sovjetski zvezi, zaradi česar je sovjetska tajna služba KGB skušala priti do svoje lastne informacijske tehnologije.
Zgodnji začetki: Illinois Malicious Processor
Ena prvih odmevnejših raziskav iz področja strojnih trojancev je bil tim. Illinois Malicious Processor iz leta 2008. Raziskovalci Samuel T. King, Joseph Tucek, Anthony Cozzie, Chris Grier, Weihang Jiang in Yuanyuan Zhou so v članku Designing and implementing malicious hardware opisali razvoj zlonamernega procesorja, ki je omogočal nepooblaščen dostop do sistema, krajo gesel, dvig uporabniških privilegijev na sistemu, itd.
Za svojo raziskavo so uporabili poseben programabilni LEON procesor, ki se uporablja večinoma na mednarodni vesoljski postaji ISS oziroma v elektronskih napravah, ki jih uporabljajo v vesolju. Pokazali pa so, da je strojnega trojanca mogoče implementirati že s spremembo zgolj 1341 logičnih vrat na procesorju, ki ima sicer več kot milijon logičnih vrat.
Izdelava nezaznavnega strojnega trojanca
Problema strojnih trojancev se sicer zavedajo zlasti vojaške organizacije, pa tudi proizvajalci čipov, zato se za odkrivanje morebitnih zlonamernih sprememb uporablja več različnih mehanizmov. Najpomembnejši je optični pregled strukture integriranega vezja oziroma ožičenja na njem, uporablja pa se tudi tim. formalna verifikacija ter funkcionalno testiranje čipa ter preverjanje s pomočjo referenčnega tim. zlatega čipa (ang. golden chip, gre za tim. side-channel comparison ter trojan detection circuitry). Nekatera testiranja so že del proizvodnega procesa integriranih vezij, nekatera testiranja se izvajajo občasno, z namenom odkritja ponarejenih ali zlonamerno spremenjenih čipov.
Metode za zaznavanje strojnih trojancev implementiranih na integriranih vezjih naj bi torej obstajale, potrebno bi bilo le njihovo izvajanje. Pa je res tako?
Pred kratkim se je izkazalo, da te doslej znane metode proti nekaterim strojnim trojancem ne zadostujejo. Še več, raziskovalci Georg T. Becker, Francesco Regazzoni, Christof Paar ter Wayne P. Burleson so pokazali, da je strojne trojance mogoče povsem nezaznavno implementirati na najnovejše in široko uporabljane sodobne procesorje (med drugim tudi Intelove Ivy Bridge procesorje) ter celo, da tehnologija za implemetacijo strojnih trojancev že obstaja (vendar se trenutno uporablja za druge namene - za skrivanje delovanja integriranih vezij).
V članku z naslovom Stealthy Dopant-Level Hardware Trojans so namreč demonstrirali izdelavo dveh strojnih trojancev in sicer vgradnjo zlonamerne strojne opreme na Intelov generator naključnih števil, ki je implementiran Ivy Bridge procesorjih ter vgradnjo zlonamerne strojne opreme na strojno implementacijo AES šifrirnega čipa, ki naj bi bil odporen na napad preko stranskega kanala (ang. side channel attack).
Pri vsem tem pa ne gre spregledati dejstva, da te zlonamerne strojne opreme ni mogoče zaznati ne z optičnim pregledom (kovinsko in polisilikonsko ožičenje modificiranega čipa je nespremenjeno), ne z izvedbo BIST testa (ang. build-in-self-test, gre za postopek samotestiranja strojne opreme), ne s preverjanjem s pomočjo referenčnega zlatega čipa.
Ideja napada temelji na spremembi polaritete tim. dopanta v posameznih tranzistorjih, s čimer je mogoče spreminjati posamezna logična vrata tranzistorja. Dopant je posebna snov, ki v mikro količini primešana drugi snovi, povzroči spremembo električnih lastnosti danega materiala. Električne lastnosti polprevodnika je namreč mogoče spremeninjati z dodajanjem primesi v polprevodnik. Ta postopek se imenuje dopiranje, dodane primesi pa dopanti. Dopiranje je zato zelo pomembno pri izdelavi polprevodniških elementov ter integriranih vezij, z njim lahko ustvarjamo N-tipe polprevodnikov (v njih kot nosilci električnega toka prevladujejo negativni elektroni) ter P-tipe polprevodnikov (v njih kot nosilci električnega toka prevladujejo pozitivne vrzeli prazne kovalentne vezi, ki omogočajo prevodnost).
Z ustreznim dopiranjem so tako raziskovalci uspeli ustvariti ustrezne spremembe logičnih vrat tranzistorjev na integriranem vezju, te spremembe pa je nemogočeoz. zelo težko zaznati. Če so spremembe napravljene na pravih mestih, je z njimi mogoče na integrirano vezje vgraditi zlonamerno strojno opremo. Mimogrede, podoben postopek se že komercialno uporablja za zakrivanje delovanja integriranih vezij. To kaže, da izvedba tovrstnega napada v praksi ni tako nemogoča, kot se zdi na prvi pogled.
Kot rečeno, so raziskovalci moč napada demonstrirali na dveh konkretnih primerih. V prvem primeru so s pomočjo strojnega trojanca spremenili generator naključnih števil (tim. strojni RNG) na Intelovem Ivy Bridge procesorju.
Intelov strojni RNG privzeto generira 128-bitna naključna števila. To pomeni, da je vseh možnih kombinacij posameznega naključnega števila 2128 oziroma 340282366920938463463374607431768211456.
Raziskovalci pa so s svojo spremembo procesorja obseg naključnih števil lahko poljubno zmanjšali. Na primer na 232 kar vrne samo še 4294967296 možnih kombinacij. Te pa je veliko lažje uganiti.
Delovanja tega trojanca ni mogoče zaznati ne z BIST testom (JTAG testiranje je zaradi varnostnih razlogov onemogočeno), niti s tim. funkcionalnim testiranjem. Pri tem so raziskovalci BIST testiranje je spremenili tako, da zazna vse ostale napake, razen specifič no te. Prav tako tako modificiran generator naključnih števil prestane teste ameriškega National Institute of Standards and Technology (NIST) za ugotavljanje naključnosti generiranih števil.
V drugem primeru so raziskovalci napad implementirali na strojno implementacijo AES šifrirnega čipa, ki naj bi bil odporen na napade preko stranskega kanala (ang. side channel attack). Gre za posebno namensko integrirano vezje, iMDPL (Improved Masked Dual-Rail Logic), ki so ga spremenili tako, da je glede na vhodne podatke spreminjal porabo električne energije (vendar samo na napadalcu znan način). Raziskovalci so v članku pokazali, kako je na ta način mogoče implementirati "uhajanje" AES šifrirnega ključa, pri čemer pa integrirano vezje še vedno opravlja svojo nalogo - zaščito pred ostalimi napadi preko stranskega kanala. Tudi v tem primeru nikakršno funkcionalno testiranje ne zazna strojnega trojanskega konja.
Zlom varnosti?
In tako smo pri koncu zgodbe o informacijski varnosti. Kot smo namreč omenili na začetku, sodobna informacijska varnost temelji na zaupanju strojni opremi. V primeru, da imamo v sistemu podtaknjeno zlonamerno strojno opremo, nam padejo tudi vsi ostali varnostni mehanizmi. Začenši s šifriranjem, da o raznih antivirusih, požarnih zidovih ter ostalih še bolj primitivnih mehanizmih zaščite niti ne govorimo.
Bi nas to moralo skrbeti? Če smo povprečen uporabnik, ki cele dneve veselo objavlja svoje "življenjske dosežke" na socialnih omrežjih niti ne. Če pa imamo resno razvojno podjetje ali če bi radi imeli vsaj približno resno državo, pa bi bilo potrebno nekoliko razmišljati tudi v tej smeri.
Proizvodni proces procesorjev in ostalih integriranih vezij je namreč razdrobljen po celem svetu in možnosti za vstavljanje zlonamernih modifikacij v resnici ni tako malo. Po drugi strani pa je razvoj praktično vseh zmogljivejših procesorjev skoncentriran v krogu nekaj ameriških podjetij. Ki so tako ali drugače tudi povezane z ameriško vlado in njenimi tričrkovnimi agencijami.
Kot rečeno, varnost na tem nivoju je izven dometa povprečnega posameznika. Pa to velja tudi za slovenske državne ustanove?