Ua fa'atūina e le Checkpoint le auala e puipuia ai So'otaga Saogalemu, e fa'afaigata ai ona fa'aogaina fa'aletonu

Kamupani siaki tuuina atu Safe-So'otaga puipuiga masini, lea e faigata ai ona fai fa'aoga e fa'aogaina ai le fa'amalamalamaga po'o le suiga o fa'ailoga i pa'u e tu'ufa'atasia pe a fa'atino se valaau malloc. Safe-So'otaga e le taofia atoa le avanoa o le faʻaaogaina o faʻafitauli, ae i le laʻititi laʻititi e matua faʻalavelaveina ai le fausiaina o nisi vaega o faʻaoga, talu ai i le faʻaopoopoga i le faʻaogaina o le paʻu faʻafefe, e manaʻomia le suʻeina o se isi faʻafitauli e mafua ai le tafe o faʻamatalaga e uiga i le tu'uina o le fa'aputuga i le manatua.

Patches o loʻo faʻaaogaina le Safe-Sootaga ua saunia mo Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) ma Google TCMalloc, ma o loʻo faʻatulagaina foi mo le faʻaleleia o puipuiga i Chromium (i totonu
Talu mai le 2012, ua uma ona fausia le Chromium i le MaskPtr protection technique e faʻamoemoe e foia le faafitauli lava e tasi, ae o le fofo mai le Checkpoint e faʻaalia ai le maualuga o le faʻatinoga).
Ua uma ona faʻatagaina patches fautuaina mo le tuʻuina atu i le faʻasalalauga o Aukuso glibc 3.32 ma Safe-So'oga o le a mafai ona fa'aletonu. uClibc-NG lagolagoina Safe-So'otaga ulufale aofia i le fa'asa'olotoga 1.0.33 ma e mafai ona fa'aletonu. Suiga ile gperftools (tuai tcmalloc) talia, ae o le a ofoina atu o se filifiliga i se faʻasalalauga i le lumanaʻi.

Tagata atiae TCMalloc (new tcmalloc) musu e talia teuteuga, ta'u mai le ogaoga o le fa'aleagaina o le fa'atinoga ma le mana'omia o le fa'aopoopoina o su'ega tetele e siaki ai pea o lo'o galue mea uma e pei ona fa'amoemoeina. O suʻega a le au inisinia Checkpoint na faʻaalia ai o le Safe-Linking method e le oʻo atu ai i le faʻaaogaina o manatuaga faaopoopo, ma o le faʻatinoga pe a faʻatinoina galuega faʻaputu e faʻaititia i le averesi e naʻo le 0.02%, ma i le tulaga sili ona leaga e 1.5% (mo le faʻatusatusaga, o le faʻaputuga i luga ole ulu i totonu. o le metotia o loʻo faʻaaogaina i Chromium e faʻatatau i le "itiiti ifo i le 2%"). Fa'aofia
Safe-So'otaga e maua ai le 2-3 fa'atonuga fa'aopoopo e fa'atino i taimi uma e vala'au ai free(), ma fa'atonuga e 3-4 i taimi ta'itasi e vala'au ai malloc(). E le mana'omia le fa'atinoina o le amataga ma le fa'atupuina fa'afuase'i.

Ua fa'atūina e le Checkpoint le auala e puipuia ai So'otaga Saogalemu, e fa'afaigata ai ona fa'aogaina fa'aletonu

Safe-So'otaga e mafai ona fa'aoga e le gata e fa'aleleia ai le saogalemu o fa'aputuga fa'aputuga eseese, ae fa'apea fo'i le fa'aopoopoina o fa'atonuga fa'amaoni i so'o se fausaga fa'amaumauga e fa'aogaina ai lisi feso'ota'i tasi o fa'ailoga o lo'o tu'u i tafatafa o pa puipui. O le auala e matua faigofie lava e faʻatino ma naʻo le manaʻomia o le faʻaopoopoina o le tasi macro ma faʻaoga i faʻailoga i le isi poloka i le code (mo se faʻataʻitaʻiga, mo Glibc suiga na o ni nai laina o code). O le metotia e faʻavae i lalo i suiga nei:

+#define PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+#define REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

- nextp = p->fd;
+ isi = FAAALIA_PTR (p->fd);
...

O le ute o le auala o le faʻaaogaina lea o faʻamatalaga faʻafuaseʻi mai le ASLR address randomization mechanism (mmap_base) e puipuia ai lisi fesoʻotaʻi tasi e pei ole Fast-Bins ma TCache. A'o le'i fa'aogaina le tau i se fa'asino ile isi elemene ile lisi, e fa'atino ai se fa'aliliuga matapulepule ma siaki mo le fa'aogaina o itulau. O le faʻailoga ua suia i le taunuuga o le taʻaloga "(L >> PAGE_SHIFT) XOR (P)", pe a P o le tau o le faʻailoga ma L o le nofoaga manatua lea e teuina ai le faʻailoga.

Ua fa'atūina e le Checkpoint le auala e puipuia ai So'otaga Saogalemu, e fa'afaigata ai ona fa'aogaina fa'aletonu

Pe a faʻaaogaina i le faiga ASLR (Address Space Layout Randomization) o se vaega o le L bits ma le faʻaputuga faʻavae tuatusi o loʻo i ai tulaga faʻapitoa e faʻaaogaina e fai ma ki e faʻaoga ai le P (faʻapipiʻiina e le 12-bit shift operation mo itulau 4096-byte). O lenei togafiti e fa'aitiitia ai le lamatiaga o le fa'ao'oina o le fa'ailoga i se fa'aoga, talu ai e le o teuina le fa'ailoga i lona tulaga muamua ma suia e mana'omia ai le malamalama i le fa'asoa fa'aputuga. E le gata i lea, o le patch code o loʻo i ai foi se siaki faaopoopo mo le faʻaogaina o poloka, lea e le mafai ai e se tagata osofaʻi ona sui se faʻailoga i se tau e le fetaui ma e manaʻomia le malamalama i le numera o paʻu o loʻo faʻaogaina, lea i luga ole 64-bit faiga faʻaopoopo e mafai ai ona poloka. 15 mai le 16 osofaʻiga osofaʻiga e le faʻaogaina le faʻaogaina.

O le auala e aoga mo le puipuia mai osofaiga e faʻaogaina ai le toe tusiina o faʻailoga faʻapitoa (suia paita maualalo), toe tusi atoa le faʻailoga (toe faʻafeiloaʻi i le code a le tagata osofaʻi) ma suia le tulaga lisi i se tuatusi e le fetaui. Mo se faʻataʻitaʻiga, o loʻo faʻaalia o le faʻaogaina o le Safe-Linking i le malloc o le a mafai ai ona poloka le faʻaogaina talu ai nei. faailoaina e tagata su'esu'e vaivai lava e tasi CVE-2020-6007 i le Philips Hue Bridge malamalama malamalama, e mafua mai i se pa'u o lo'o tafe ma fa'atagaina oe e pulea le masini.

puna: opennet.ru

Faaopoopo i ai se faamatalaga