Posible ba na ang bilis ng iyong processor ang siyang mismong dahilan ng iyong seguridad? Upang maunawaan kung paano nakakamit ng mga processor ang kanilang bilis , dapat nating isaalang-alang na gumagana ang mga ito sa pamamagitan ng "paghula sa hinaharap"... Hindi, hindi sila mahika o may maliit na bolang kristal...
Ang paraan ng paggana ng mga processor ay sa halip na maghintay upang makita kung aling landas ang tatahakin ng isang programa, hinuhulaan ng chip ang malamang na ruta at inaasahan ito. Kung mali ang hula, itinatapon ang trabaho, ngunit nananatili ang mga bakas sa memorya. Dito pumapasok ang Spectre , isa sa mga pinakamahalagang kahinaan na natuklasan nitong mga nakaraang taon. Simula nang matuklasan ito, natutunan ng mga umaatake kung paano basahin ang mga bakas na ito, na lumilikha ng lalong sopistikadong mga variant; ang TONTOU ay isa sa mga bagong kahinaang ito.
Natuklasan ng mga mananaliksik ng MIT ang TONTOU (Time-of-Neutralization to Time-of-Use), isang sopistikadong bagong pamamaraan para sa pagsasamantala sa mga kahinaan ng Spectre v2 , na nagpapahintulot sa kernel memory na mabasa mula sa espasyo ng gumagamit.
Bagama't maraming taon nang nagdisenyo ang mga tagagawa at developer ng iba't ibang mekanismo ng proteksyon laban sa mga predictive na pag-atake, nagawa pa rin ng mga umaatake na makatuklas ng mga bagong ruta, at ipinapakita ng bagong pag-aaral na ito ng CSAIL kung paano malalampasan ang mga proteksyong ito.
Natuklasan ng mga mananaliksik na mayroong hindi maiiwasang agwat ng oras sa pagitan ng sandaling na-clear ang buffer at ang sandaling ginamit ang mga prediksyon, at sa maliit na agwat na ito ipinapasok ang code (minsan ay ilang instruksyon lamang) sa pamamagitan ng mga system interrupt, na ginagawang posible ang muling pagkontamina ng hardware at pagkuha ng mahahalagang datos.
Tungkol sa Pag-atake: Mga Pagkagambala at ang Paglabag sa Safe-RET
May depensa ang AMD laban sa mga kahinaan ng SRSO (Speculative Return Stack Overflow) na tinatawag na Saferet, na naglilinis ng makinarya ng prediksyon bago ang bawat paggamit. Nag-iiwan ito ng isang window ng kahinaan na maaaring samantalahin sa loob lamang ng ilang sampu-sampung nanosegundo. Upang atakehin ang isang napakaliit na window, bumuo ang mga mananaliksik ng isang pamamaraan na tinatawag nilang Interrupt Injection.
Patuloy na hinihinto ng mga processor ang kanilang mga gawain upang mahawakan ang mga interrupt, at maaaring i-configure ng mga karaniwang programa ang mga timer na ito . Dahil dito, tumpak na inayos ng mga mananaliksik ang isang timer at, gamit ang isang pamamaraan upang pabagalin ang CPU, naging sanhi ito ng pagkaantala ng processor sa eksaktong maling sandali . Sa panahon ng interrupt na ito, maaaring pilitin ng isang attacker na isagawa ang isang malaking bilang ng mga tawag, na umaapaw sa address stack. Kapag natapos na ang maling pagpapatupad, itinatapon ng processor ang proseso, ngunit ang na-access na data ay nananatili sa mga shared cache , kung saan maaari itong makuha sa pamamagitan ng pagsusuri ng mga oras ng pag-access.
Pagkuha at Pagsubok ng Password sa mga Totoong Sistema
Upang maipakita ang kalubhaan ng TONTOU, bumuo ang pangkat ng isang gumaganang exploit sa isang AMD system na nagpapatakbo ng kasalukuyang Linux kernel. Ang unang balakid ay ang pag-iwas sa depensa na nagra-randomize sa posisyon ng operating system sa memorya, na nagawa nilang gawin sa sampung pagtatangka, na tumagal ng halos siyam na minuto bawat pagsubok.
Kasunod nito, ipinakita nila ang isang lokal na pag-atake bilang isang walang pribilehiyong user upang matukoy ang root password hash, na matagumpay na nakakuha ng data sa rate na 5.47 bytes kada segundo na may 91.97% na katumpakan. Sa 50% ng mga pagsubok (na may average na 18 minuto), matagumpay nilang natukoy at na-extract ang mga nilalaman ng password file. Bagama't mabagal ang bilis nito, higit pa ito sa sapat upang kritikal na masira ang isang server.
Epekto sa Intel, AMD, at sa mitigation patch
Sinubukan ng pangkat ang apat na henerasyon ng mga processor ng Intel at AMD, at nakamit ang mga pagkabigo sa prediksyon sa parehong arkitektura. Bagama't napatunayang mabisa ang pamamaraan sa mga pamilyang Zen 1 hanggang 4 ng AMD , sa mga chip ng Intel, nilagpasan ng pag-atake ang dalawang magkaibang proteksyon , bagama't naobserbahan ang hindi pantay-pantay na pag-uugali sa pagitan ng iba't ibang henerasyon ng Intel, na nagmumungkahi na ang mga karaniwang depensa ay ipinapatupad nang iba sa hardware.
Bilang solusyon, iminumungkahi ng mga mananaliksik na linisin muli ang makinarya ng prediksyon pagkatapos matapos ang interrupt. Bagama't tila mabisa ang hakbang na ito para sa AMD, maaari itong maging kontra-produktibo para sa Intel, dahil ang pag-atake ay umaasa sa pag-alis ng interrupt sa isang pare-parehong estado at maaaring gawing mas maaasahan ang pag-atake.
Ipinaalam ng mga mananaliksik sa AMD at Intel noong unang bahagi ng Pebrero at sa mga tagapangalaga ng Linux kernel noong Marso. Bilang resulta, ang pagharang ng code upang mapagaan ang kahinaan ay isinama sa Linux kernel noong Agosto 5.
Panghuli, kung interesado kang matuto nang higit pa, makikita mo ang mga detalye sa sumusunod na link.