Ang point ng pag-check ay nagpakita ng isang diskarte sa kaligtasan ng Ligtas na Pag-link

check point (isang pandaigdigang tagapagbigay ng mga solusyon sa seguridad ng IT) pinakawalan maraming araw na ang nakakaraan ang pagpapakilala ng mekanismo ng kaligtasan "Ligtas na Pag-link", ito nagpapahirap sa paglikha ng mga pagsasamantala na manipulahin ang kahulugan o pagbabago ng mga payo sa inilalaan na mga buffer kapag gumagawa ng isang tawag sa malloc.

Ang bagong mekanismo ng «Ligtas na Pag-link» ay hindi ganap na hadlangan ang posibilidad ng pagsasamantala sa mga kahinaan, ngunit may kaunting overhead kumplikado sa paglikha ng ilang mga kategorya ng mga pagsasamantalaBilang karagdagan sa pinagsamantalahan na overflow ng buffer, kinakailangan upang makahanap ng isa pang kahinaan na nagdudulot ng impormasyon tungkol sa lokasyon ng tambak sa memorya.

Ang mga patch ng pagpapatupad ng Ligtas na Pag-link ay inihanda para sa Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) at Google TCMalloc, pati na rin ang isang panukala upang gawing makabago ang proteksyon sa Chromium (mula noong 2012 ang Chromium ay naisama na sa mga solusyon sa parehong problema) Ang pamamaraan ng pangangalaga ng MaskPtr, ngunit ang solusyon ng Checkpoint ay nagpapakita ng mas mahusay na pagganap).

Ang mga iminungkahing patch ay naaprubahan na para sa paghahatid sa pagpapalabas ng Agosto ng Glibc 3.32 at ang Safe-Linking ay paganahin bilang default. Sa uClibc-NG, ang ligtas na suporta sa link ay kasama sa bersyon 1.0.33 at pinagana bilang default. Sa gperftools (lumang tcmalloc) ang mga pagbabago ay tinanggap, ngunit inaalok bilang isang pagpipilian sa isang hinaharap na paglabas.

Tumanggi ang mga developer ng TCMalloc na tanggapin ang pagbabago, cna may malakas na tagumpay sa pagganap at ang pangangailangan upang magdagdag ng mga advanced na pagsubok upang regular na mapatunayan na ang lahat ay gumagana nang maayos.

Mga pagsusulit na isinagawa ng Ipinakita ng mga inhinyero ng point point na ang paraan ng Ligtas na Pag-link ay hindi humahantong sa karagdagang pagkonsumo ng memorya at ang pagganap kapag gumaganap ng mga pagpapatakbo ng tambak sa average ay bumababa lamang ng 0.02%, at sa pinakamasamang kaso ng 1.5%

Ang pagpapagana ng Safe-Linking ay humahantong sa pagpapatupad ng 2-3 karagdagang mga tagubilin sa assembler sa bawat tawag sa libre () at 3-4 na tagubilin kapag tumatawag sa malloc (). Hindi kinakailangan ang pagsisimula ng pagsisimula at pagbuo ng random na halaga.

Maaaring magamit ang Ligtas na Pag-link hindi lamang upang madagdagan ang kaligtasan ng iba`t ibang mga pagpapatupad ng magbunton, sino rin upang magdagdag ng mga tseke ng integridad sa anumang istraktura ng data na gumagamit ng isang listahan ng mga indibidwal na naka-link na payo na matatagpuan sa tabi ng mga buffer.

Ang pamamaraan napakasimpleng ipatupad at nangangailangan lamang ng pagdaragdag ng isang macro at ilapat ito sa mga payo sa susunod na bloke ng code (halimbawa, para sa Glibc ilang mga linya lamang ang nabago sa code).

Ang kakanyahan ng pamamaraan ay upang mag-apply ng random na data mula sa mekanismo ng randomization ng ASLR address (mmap_base) upang maprotektahan ang mga indibidwal na naka-link na listahan tulad ng Fast-Bins at TCache. Bago ilapat ang halaga ng pointer sa susunod na item sa listahan, ang pag-convert ng mask at pag-check ng pagkakahanay ay ginaganap kasama ang gilid ng pahina ng memorya. Ang pointer ay pinalitan ng resulta ng operasyon na "(L >> PAGE_SHIFT) XOR (P)", kung saan ang P ay ang halaga ng pointer at ang L ay ang lokasyon sa memorya kung saan nakaimbak ang pointer na ito.

Kapag ginamit sa system ng ASLR (Address Space Layout Randomization), ang ilan sa mga L bit na may base address ng bunton ay naglalaman ng mga random na halaga na ginagamit bilang isang susi upang ma-encode ang P (sila ay nakuha sa pamamagitan ng isang operasyon ng paglilipat ng 12 bits para sa 4096-byte na mga pahina).

Ang nasabing pagmamanipula binabawasan ang peligro na makuha ang isang pointer sa isang pagsasamantala, Dahil ang pointer ay hindi nakaimbak sa kanyang orihinal na form, at upang mapalitan ito, kailangan mong malaman ang impormasyon tungkol sa lokasyon ng tumpok.

Ang pamamaraan ay mabisa sa pagprotekta laban sa mga pag-atake na gumagamit ng bahagyang pointer redefinition (mababang byte shift), kumpletong muling pagsulat ng mga payo (mag-redirect sa code ng umaatake) at baguhin ang posisyon ng listahan sa isang hindi nakahanay na direksyon.

Bilang isang halimbawa, ipinapakita na ang paggamit ng Safe-Linking sa malloc ay hahadlangan ang pagsasamantala sa kahinaan CVE-2020-6007 na natuklasan kamakailan ng parehong mga mananaliksik sa matalinong backlight ng Philips Hue Bridge na dulot ng overflow ng buffer at pinapayagan na kontrolin ang aparato.

Fuente: https://research.checkpoint.com


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.