Npaj kom muaj zog OpenBSD's W^X Security Mechanism

Theo De Raadt qhia tawm npaj yuav ntxiv dag zog rau W^X (Sau XOR Execute) lub cim xeeb tiv thaiv mechanism. Lub ntsiab ntawm cov txheej txheem yog cov txheej txheem nco nplooj ntawv tsis tuaj yeem nkag mus rau ib txhij rau kev sau ntawv thiab ua tiav. Yog li, cov lej tuaj yeem raug tua tsuas yog tom qab sau ntawv tsis taus, thiab kev sau ntawv mus rau nplooj ntawv nco tau tsuas yog tom qab kev ua haujlwm raug kaw. Lub tshuab W^X pab tiv thaiv cov neeg siv-qhov chaw siv los ntawm kev tawm tsam tsis sib xws, suav nrog cov khoom hla dhau, thiab ua haujlwm hauv OpenBSD los vim.

Los ntawm kev pib ua haujlwm ntawm W^X, nws tau pom tseeb tias qhov no yog txoj kev ntev, vim tias muaj ntau cov ntawv thov siv JIT. Kev siv JIT tuaj yeem muab faib ua peb pawg:

  • Hloov lub cim xeeb ntawm W thiab X xeev, lees txais "tus nqi" ntawm lub kaw lus hu tiv thaiv.
  • Tsim cov npe ntawm ib khub ntawm W thiab X daim ntawv qhia ntawm tib lub cim xeeb.
  • Qhov kev xaiv "qhuav" tshaj plaws yuav tsum muaj W|X lub cim xeeb qauv uas tso cai rau ib txhij kaw thiab ua tiav.

Tam sim no, muaj tsawg dua cov kev pab cuam siv qhov kev xaiv thib peb thiab ntau dua siv thawj thiab thib ob. Txawm li cas los xij, vim tias nws yog qhov tsim nyog los khiav cov kev pab cuam nrog W|X JIT (feem ntau yog Chromium thiab Iridum), qhov "wxallowed" filesystem mount xaiv tau ntxiv, uas tso cai rau lub cim xeeb siv ib txhij rau kev sau ntawv thiab ua tiav, yog tias qhov ELF ua tiav. cov ntaub ntawv raug cim nrog tus cim "wxneeded", thiab cov ntawv thov lawv tus kheej tau ntxiv kev tiv thaiv siv cov txheej txheem cog lus ΠΈ unveil txhawm rau txwv cov npe ntawm kev hu xov tooj siv thiab qhov chaw ntawm cov ntaub ntawv kaw lus muaj nyob rau hauv daim ntawv thov, feem.

Txhawm rau ua kom nyuaj ntxiv rau kev siv cov kev tsis zoo hauv cov ntawv thov no, ntxiv rau cov txheej txheem tau thov MAP_STACK, uas txheeb xyuas seb qhov kev hu xov tooj puas raug tua los ntawm nplooj ntawv nco tau. Yog tias nplooj ntawv sau tau, cov txheej txheem raug yuam kom xaus. Txoj kev no, tus neeg tawm tsam yuav tsis tuaj yeem siv qhov kev hu xov tooj thiab yuav raug yuam kom sim nrhiav cov cuab yeej tsim nyog hauv kev siv JIT lossis txawm tias ua haujlwm nyuaj dua ntawm kev txheeb xyuas qhov system hu xov tooj ncaj qha rau hauv. txhob txwm txuas libc.

Cov txheej txheem Chrome / Iridium twb muaj kev tiv thaiv zoo heev los ntawm kev cog lus thiab nthuav tawm, tab sis tshem tawm lub peev xwm siv, piv txwv li, sau ntawv (2) system hu tau pom tseeb muaj qee qhov zoo dua, vim nws tsim teeb meem ntxiv rau tus neeg tawm tsam. Txawm li cas los xij, cov teeb meem tseem tuaj yeem tshwm sim yog tias kev siv JIT siv ib txwm hu xov tooj los ntawm W|X nco. Txawm li cas los xij, muaj laj thawj vam tias qhov no yuav tsis tshwm sim, txij li ABI tau hloov pauv ntau zaus, tab sis tsis muaj leej twg tau tshaj tawm cov teeb meem.

Cov kev hloov pauv twb muaj nyob rau hauv cov duab tsis tu ncua ntawm OpenBSD-Tam sim no ceg, txhua tus neeg nyiam raug caw tuaj kuaj.

Cov xov xwm cuam tshuam txog qhov tshwm sim ntawm hom hauv Chrome / Iridium tsim nyog tau txais cov lus sib cais los ntawm Theo JITless. Los ntawm nws qhov kev xav, qhov no yog qhov siv tau rau qee qhov kev siv qauv, tab sis tej zaum tsis yog rau txhua tus, vim tias hom no yuav pom tseeb nce lub nra ntawm lub processor. Tam sim no, Chrome feem ntau yuav ua haujlwm yog tias koj lov tes taw "wxallowed" rau / usr / hauv zos, txawm hais tias yuav muaj teeb meem nrog qee qhov txuas ntxiv (ghostery yog ib qho piv txwv). Ib txoj kev lossis lwm qhov, Theo cia siab tias kev ua haujlwm puv ntoob hauv JITless hom yuav raug coj mus rau lub xeev ua haujlwm tau zoo nyob rau yav tom ntej.

Tau qhov twg los: opennet.ru

Ntxiv ib saib