SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Sama sa imong nahibal-an, ang code nga gipatuman sa enclave seryoso nga limitado sa pagpaandar niini. Dili kini makahimo sa mga tawag sa sistema. Dili kini makahimo sa mga operasyon sa I/O. Wala kini nahibal-an ang base nga adres sa bahin sa code sa aplikasyon sa host. Dili kini maka-jmp o makatawag sa code sa aplikasyon sa host. Wala kiniy ideya bahin sa istruktura sa espasyo sa adres nga nagdumala sa aplikasyon sa host (pananglitan, unsang mga panid ang gimapa o kung unsang klase nga datos ang nahimutang sa mga panid). Dili kini makahangyo sa operating system sa pagmapa sa usa ka piraso sa memorya sa host application niini (pananglitan, pinaagi sa /proc/pid/maps). Ang walay kapuslanan nga mga pagsulay sa buta nga pagbasa sa usa ka arbitraryong rehiyon sa panumduman sa usa ka aplikasyon sa host, wala pay labot ang mga pagsulay sa pagsulat, sa madugay o sa madali (lagmit ang kanhi) mosangpot sa pinugos nga pagtapos sa enclave nga programa. Kini mahitabo sa matag higayon nga ang virtual address space nga rehiyon nga gihangyo sa enclave dili ma-access sa host application.

Tungod sa ingon ka grabe nga mga kamatuoran, ang usa ka magsusulat sa virus makahimo ba sa paggamit sa SGX enclaves aron makab-ot ang iyang malisyosong mga tumong?

- Pag-hack alang sa pagsusi sa mga adres aron makita kung mabasa ba kini
- Pag-hack aron masusi ang mga adres alang sa pagkasulat
- Pag-hack aron ma-redirect ang dagan sa kontrol
– Unsa ang gihatag sa tulo ka hack nga gilista sa ibabaw sa kontrabida?
- Giunsa paggamit sa kontrabida kini nga mga hack aron makamugna ang ranzowari

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Base sa tanan sa ibabaw, kasagaran gidawat nga ang usa ka enclave makahimo lamang sa pag-alagad sa host application, ug nga ang enclave dili makahimo sa iyang kaugalingon nga inisyatiba, lakip na ang mga malisyoso. Kini nagpasabot nga ang mga enclave walay praktikal nga bili sa mga magsusulat sa virus. Kining dali nga pangagpas mao ang usa sa mga rason ngano nga ang proteksyon sa SGX walay simetriko: ang host application code dili maka-access sa enclave memory, samtang ang enclave code makabasa ug makasulat sa bisan unsang host application memory address.

Busa, kung ang malisyosong enclave code nakahimo sa paghimo og arbitraryong sistema nga mga tawag alang sa host application, pagpatuman sa arbitraryong code alang niini, pag-scan sa panumduman sa host application ug pagpangita sa abusadong ROP nga mga kadena niini, mahimo kining makuha sa hingpit nga kontrol sa host application, sa stealth mode. Dili lamang kini makawat ug maka-encrypt sa mga file sa gumagamit, apan molihok usab alang sa tiggamit. Pananglitan, ipadala ang mga email sa phishing alang kaniya o paghimo og mga pag-atake sa DoS. Kung wala’y kahadlok bisan ang labing moderno nga mekanismo sa pagpanalipod, sama sa mga stack canaries ug pagsulbad sa sanitization.

Ipakita namo kanimo ang pipila ka mga hack nga gigamit sa mga tig-atake aron mabuntog ang mga limitasyon nga gihulagway sa ibabaw aron mapahimuslan ang SGX alang sa ilang kaugalingong malisyoso nga katuyoan: ROP attacks. Mahimong ipatuman ang arbitraryong code nga nagtakuban isip proseso sa aplikasyon sa host (susama sa proseso sa hollowing, nga sagad gigamit sa malware), o sa pagtakuban sa usa ka andam na nga malware (aron maluwas ang malware niini gikan sa paglutos sa mga antivirus ug uban pang mga mekanismo sa depensa).

Pag-hack alang sa pagsusi sa mga adres aron makita kung mabasa ba kini

Tungod kay ang enclave wala mahibal-an kung unsang mga han-ay sa virtual address space ang ma-access sa host application, ug tungod kay ang enclave napugos sa pag-undang sa dihang misulay sa pagbasa sa usa ka dili ma-access nga adres, ang tig-atake nag-atubang sa tahas sa pagpangita og paagi sa pagpakasala- tolerant nga i-scan ang address space. Pangitag paagi sa pagmapa sa mga magamit nga virtual nga adres. Gisulbad sa kontrabida kini nga problema pinaagi sa sayop nga paggamit sa teknolohiya sa Intel TSX. Gigamit ang usa sa mga epekto sa TSX: kung ang function sa pag-access sa memorya gibutang sa usa ka transaksyon sa TSX, nan ang mga eksepsiyon nga naggikan sa pag-access sa dili balido nga mga adres gipugngan sa TSX nga wala makaabut sa operating system. Kung ang pagsulay gihimo aron ma-access ang usa ka dili balido nga adres sa memorya, ang kasamtangan nga transaksyon lamang ang gi-abort, dili ang tibuuk nga programa sa enclave. Nga. Gitugotan sa TSX ang usa ka enclave nga luwas nga maka-access sa bisan unsang adres gikan sa sulod sa usa ka transaksyon - nga wala’y peligro nga mahugno.

kon anaa ang espesipikong adres host application, ang transaksyon sa TSX kasagaran malampuson. Sa talagsaon nga mga kaso, kini mahimong mapakyas tungod sa gawas nga mga impluwensya sama sa mga interrupts (sama sa scheduler interrupts), cache evictions, o dungan nga pagbag-o sa usa ka memory location pinaagi sa daghang mga proseso. Sa niining talagsaon nga mga kaso, ang TSX nagbalik sa usa ka error code nga nagpakita nga ang kapakyasan temporaryo. Sa kini nga mga kaso, kinahanglan nimo nga i-restart ang transaksyon.

kon ang gipiho nga adres dili magamit host application, gipugngan sa TSX ang eksepsiyon nga nahitabo (wala gipahibalo ang OS) ug gi-abort ang transaksyon. Ang usa ka error code gibalik sa enclave code aron kini makatubag sa kamatuoran nga ang transaksyon nakansela. Kini nga mga error code nagpakita nga ang adres nga gipangutana dili magamit sa aplikasyon sa host.

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Kini nga pagmaniobra sa TSX gikan sa sulod sa enclave adunay nindot nga bahin alang sa kontrabida: tungod kay kadaghanan sa mga hardware performance counter wala ma-update sa panahon nga ang enclave code gipatuman, imposible nga masubay ang TSX nga mga transaksyon nga gipatuman sulod sa enclave. Busa, ang malisyosong pagmaniobra sa TSX nagpabiling bug-os nga dili makita sa operating system.

Dugang pa, tungod kay ang hack sa ibabaw wala magsalig sa bisan unsang mga tawag sa sistema, dili kini mahibal-an o mapugngan pinaagi lamang sa pagbabag sa mga tawag sa sistema; nga kasagaran naghatag ug positibong resulta sa pagpakigbatok sa pagpangayam sa itlog.

Gigamit sa kontrabida ang hack nga gihulagway sa ibabaw aron pangitaon ang code sa aplikasyon sa host alang sa mga gadget nga angay alang sa pagporma sa kadena sa ROP. Sa samang higayon, dili niya kinahanglan nga susihon ang matag adres. Igo na ang pagsusi sa usa ka adres gikan sa matag panid sa virtual address space. Ang pagsusi sa tanan nga 16 gigabytes nga panumduman mokabat mga 45 minuto (sa usa ka Intel i7-6700K). Ingon usa ka sangputanan, ang kontrabida nakadawat usa ka lista sa mga executable nga panid nga angay alang sa pagtukod sa usa ka kadena sa ROP.

Hack alang sa pagsusi sa mga adres alang sa pagkasulat

Aron mahimo ang usa ka enclave nga bersyon sa usa ka pag-atake sa ROP, ang usa ka tig-atake kinahanglan nga makapangita alang sa wala magamit nga mga lugar sa panumduman sa host application. Gigamit sa tig-atake kini nga mga lokasyon sa memorya aron mag-inject sa usa ka peke nga stack frame ug mag-inject sa usa ka payload (shellcode). Ang hinungdan mao nga ang usa ka malisyoso nga enclave dili makapangayo sa aplikasyon sa host nga maggahin ug memorya alang sa iyang kaugalingon, apan mahimo’g dili magamit ang memorya nga gigahin na sa aplikasyon sa host. Kon, siyempre, siya nakahimo sa pagpangita sa maong mga dapit nga dili mahugno ang enclave.

Ang kontrabida naghimo niini nga pagpangita pinaagi sa pagpahimulos sa laing epekto sa TSX. Una, sama sa miaging kaso, gisusi niini ang adres alang sa paglungtad niini, ug dayon gisusi kung ang panid nga katumbas sa kini nga adres masulat. Aron mahimo kini, gigamit sa kontrabida ang mosunod nga hack: nagbutang siya usa ka function sa pagsulat sa usa ka transaksyon sa TSX, ug pagkahuman nahuman, apan sa wala pa kini makompleto, pugson niya nga gi-abort ang transaksyon (tin-aw nga pag-abort).

Pinaagi sa pagtan-aw sa return code gikan sa usa ka transaksyon sa TSX, ang tig-atake nakasabut kung kini masulat. Kung kini usa ka "klaro nga aborsyon", nasabtan sa kontrabida nga malampuson ang pagrekord kung gisunod niya kini. Kung ang panid kay read-only, nan ang transaksyon matapos sa usa ka sayup gawas sa "klaro nga abort".

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Kini nga pagmaniobra sa TSX adunay lain nga bahin nga maayo alang sa kontrabida (gawas sa imposibilidad sa pagsubay pinaagi sa mga counter sa pasundayag sa hardware): tungod kay ang tanan nga mga mando sa pagsulat sa panumduman nahimo lamang kung malampuson ang transaksyon, ang pagpugos sa transaksyon nga makompleto nagsiguro nga ang gisusi nga memory cell nagpabilin nga wala mausab.

Pag-hack aron ma-redirect ang dagan sa pagkontrol

Kung maghimo usa ka pag-atake sa ROP gikan sa usa ka enclave - dili sama sa tradisyonal nga mga pag-atake sa ROP - ang tig-atake mahimo’g makontrol ang rehistro sa RIP nga wala magpahimulos sa bisan unsang mga bug sa giatake nga programa (buffer overflow o ingon niana). Mahimong direktang i-overwrite sa usa ka tig-atake ang kantidad sa rehistro sa RIP nga gitipigan sa stack. Sa partikular, kini makapuli sa bili niini nga rehistro sa iyang kaugalingong ROP chain.

Bisan pa, kung ang kadena sa ROP taas, nan ang pag-overwrite sa usa ka dako nga tipik sa stack sa aplikasyon sa host mahimong mosangput sa pagkadunot sa datos ug wala damha nga pamatasan sa programa. Ang kontrabida, nga nagtinguha sa paghimo sa iyang pag-atake sa tago, wala matagbaw niini nga kahimtang sa mga kalihokan. Busa, nagmugna kini og peke nga temporaryo nga stack frame alang sa iyang kaugalingon ug gitipigan ang kadena sa ROP niini. Ang peke nga stack frame gibutang sa usa ka random nga masulat nga lokasyon sa panumduman, gibiyaan ang tinuod nga stack nga wala’y labot.

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Unsa ang gihatag sa tulo ka mga hack nga gilista sa ibabaw sa kontrabida?

(1) Una, ang malisyosong enclave pinaagi sa hack alang sa pagsusi sa mga adres aron makita kung kini mabasa, – nangita sa aplikasyon sa host alang sa mga magamit nga ROP gadgets.

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

(2) Unya pinaagi sa hack alang sa pagsusi sa mga adres alang sa pagkasulat, – usa ka malisyoso nga enclave nagpaila sa mga lugar sa panumduman sa aplikasyon sa host nga angay alang sa pag-inject sa usa ka payload.

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

(3) Sunod, ang enclave nagmugna ug ROP chain gikan sa mga gadgets nga nadiskubre sa lakang (1) ug gi-inject kini nga chain sa host application stack.

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

(4) Sa katapusan, kung ang host application makasugat sa ROP chain nga gihimo sa miaging lakang, ang malisyosong payload magsugod sa pagpatuman - uban ang mga pribilehiyo sa host application ug ang abilidad sa paghimo sa mga tawag sa sistema.

Giunsa paggamit sa usa ka kontrabida kini nga mga hack aron makamugna ang ranzowari

Human mabalhin sa host application ang kontrol ngadto sa enclave pinaagi sa usa sa mga ECALL (nga walay pagduda nga kini nga enclave kay malisyoso), ang malisyoso nga enclave mangita og libre nga luna sa memorya sa host application alang sa injecting code (pagkuha isip libre nga mga espasyo niadtong mga han-ay sa mga selula. nga puno sa mga sero). Unya pinaagi sa hack alang sa pagsusi sa mga adres aron makita kung kini mabasa, – ang enclave nangita alang sa executable nga mga panid sa host application ug nagmugna og ROP chain nga nagmugna og bag-ong file nga ginganlag “RANSOM” sa kasamtangan nga direktoryo (sa tinuod nga pag-atake, ang enclave nag-encrypt sa kasamtangan nga user file) ug nagpakita sa mensahe sa lukat. Sa samang higayon, ang aplikasyon sa host walay kapuslanan nga nagtuo nga ang enclave nagdugang lamang og duha ka numero. Unsa ang hitsura niini sa code?

Para sa kasayon ​​sa pagsabot, atong ipaila ang pipila ka mnemonics pinaagi sa mga kahulugan:

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Gitipigan namon ang orihinal nga mga kantidad sa mga rehistro sa RSP ug RBP aron mapasig-uli ang normal nga operasyon sa aplikasyon sa host pagkahuman ipatuman ang payload:

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Nangita kami og angay nga stack frame (tan-awa ang code gikan sa seksyon nga "hack for redirecting control flow").

Pagpangita angay nga ROP gadgets:

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Pagpangita usa ka lugar aron ma-inject ang payload:

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Nagtukod kami usa ka kadena sa ROP:

SGX malware: giunsa pagpahimulos sa mga kontrabida ang bag-ong teknolohiya sa Intel alang sa mga katuyoan gawas sa kung diin kini gipanamkon

Ingon niini kung giunsa ang teknolohiya sa SGX sa Intel, nga gidisenyo aron makontra ang mga malisyosong programa, gipahimuslan sa mga kontrabida aron makab-ot ang kaatbang nga mga katuyoan.

Source: www.habr.com

Idugang sa usa ka comment