Checkpoint har erbjudit en skyddsteknik som kallas Safe-Linking, vilket komplicerar utnyttjandet av sÄrbarheter.

Företaget Checkpoint har presenterat Skyddsmekanismen Safe-Linking gör det svÄrare att skapa exploateringar som manipulerar tilldelningen eller Àndringen av pekare till buffrar som allokeras vid anrop av malloc. Safe-Linking blockerar inte helt möjligheten att utnyttja sÄrbarheter, men med minimala overheadkostnader komplicerar det avsevÀrt skapandet av vissa kategorier av exploateringar, eftersom förutom den utnyttjade buffertöverskridningen mÄste ytterligare en sÄrbarhet hittas som orsakar lÀckage av information om heapens (minnes) placering.

Patcher med implementering av Safe-Linking har förberetts för Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) och Google TCMalloc, och har ocksÄ föreslagits för att modernisera skyddet i Chromium (i
Chromium har sedan 2012 en teknik som riktar sig mot samma problem, kallad MaskPtr, men lösningen frÄn Checkpoint visar högre prestanda).
De föreslagna patcherna har redan godkÀnts för leverans i augustiutgÄvan Glibc 3.32 och implementeringen av Safe-Linking kommer att inkluderas som standard. I uClibc-NG kommer stöd för Safe-Linking har gÄtt att ingÄ i version 1.0.33 och inkluderas som standard. För gperftools (gamla tcmalloc) planeras Àndringar antogs, men de kommer att erbjudas i en av framtida utgÄvor som ett alternativ.

Utvecklare TCMalloc (nya tcmalloc) avböjde att acceptera Àndring, och hÀnvisade till en betydande prestandaförlust och behovet av att lÀgga till utökade tester för att regelbundet kontrollera att allt fungerar korrekt. Tester utförda av Checkpoint:s ingenjörer visade att metoden Safe-Linking inte medför nÄgon extra minnesanvÀndning, och prestandan vid utförande av operationer med heapen minskar i genomsnitt endast med 0.02%, medan det under dÄliga omstÀndigheter kan gÄ ner med 1.5% (för jÀmförelse uppskattas overheadkostnaderna i den metod som tillÀmpas i Chromium som "mindre Àn 2%"). Att aktivera
Safe-Linking medför att 2-3 ytterligare assemblerinstruktioner utförs vid varje anrop av free() och 3-4 instruktioner vid anrop av malloc(). Ingen initialisering eller generering av slumpvÀrden krÀvs.

Checkpoint har erbjudit en skyddsteknik som kallas Safe-Linking, vilket komplicerar utnyttjandet av sÄrbarheter.

Safe-Linking kan anvÀndas inte bara för att öka sÀkerheten för olika heap-implementeringar, utan ocksÄ för att lÀgga till integritetskontroller i alla datastrukturer dÀr enkelriktade pekarlistor anvÀnds, placerade bredvid sjÀlva buffrarna. Metoden Àr mycket enkel att implementera och krÀver endast tillÀgg av en makro och dess anvÀndning för pekarna till nÀsta block i koden (till exempel för Glibc Àndras bara nÄgra rader kod). Metoden sammanfattas i följande Àndringar:

+#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;
+ nextp = REVEAL_PTR (p->fd);



Metodens kÀrna Àr att anvÀnda slumpmÀssiga data frÄn adresseringsslumptalsmekanismen ASLR (mmap_base) för att skydda enkelriktade pekarlistor, sÄsom Fast-Bins och TCache. Innan tillÀmpning pÄ vÀrdet av pekaren till nÀsta element i listan genomförs en maskering och kontroll av justering vid minnesblockets grÀns. Pekaren ersÀtts med resultatet av operationen "(L >> PAGE_SHIFT) XOR (P)", dÀr P Àr pekarens vÀrde, och L Àr platsen i minnet dÀr denna pekare sparas.

Checkpoint har erbjudit en skyddsteknik som kallas Safe-Linking, vilket komplicerar utnyttjandet av sÄrbarheter.

Vid anvÀndning i systemet ASLR (Address Space Layout Randomization) innehÄller en del av bitarna L med den grundlÀggande heap-adressen slumpmÀssiga vÀrden, som anvÀnds som nyckel för att koda P (utdragen med en 12-bitars skiftning för 4096-bytes sidor). SÄdan manipulation minskar risken för att en pekare fÄngas i ett exploit, eftersom pekaren inte lagras i sitt ursprungliga format och för att ersÀtta den krÀvs kunskap om heapens placering. Dessutom finns det en extra justeringskontroll i patchkoden som hindrar en angripare frÄn att ersÀtta pekaren med ett ojusterat vÀrde och krÀver kunskap om antalet bitar som justeringen utförts pÄ, vilket pÄ 64-bitars system dessutom blockerar 15 av 16 attacker som inte tar hÀnsyn till justering.

Metoden Àr effektiv för att skydda mot attacker dÀr delvis överskrivning av pekare (Àndring av de lÀgsta bytes) anvÀnds, fullstÀndig överskrivning av pekare (omdirigering till angriparens kod) och byte av listpositionen vid en ojusterad adress. Som exempel visas att anvÀndningen av Safe-Linking i malloc skulle blockera exploatering av nyligen identifierad de samma forskarna sÄrbarheter CVE-2020-6007 i den smarta belysningen Philips Hue Bridge, orsakad av en buffertöverflödning som möjliggör kontroll över enheten.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster