เบเปเบฅเบดเบชเบฑเบเบเปเบฒเบ เบเบณ เบชเบฐ เปเปเบต เบเบปเบเปเบเบเบฒเบเบเบปเบเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบเบตเปเบเบญเบเปเบ, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเบฒเบเบเบตเปเบเบฐเบชเปเบฒเบเบเบฒเบเบเบนเบเบฎเบตเบเบเบตเปเบเบฑเบเปเบเบเบเปเบฒเบเบดเบเบฒเบกเบซเบผเบทเบเบฒเบเบเบฑเบเปเบเปเบเบญเบเบเบปเบงเบเบตเปเปเบเบซเบฒ buffers เบเบตเปเบเบทเบเบเบฑเบเบชเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบ malloc. Safe-Linking เบเปเปเปเบเปเบเบดเบเบเบฑเปเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบเบนเบเบฎเบตเบเบเปเบญเบเปเบซเบงเปเบเบฑเบเปเบปเบ, เปเบเปเบกเบตเบชเปเบงเบเปเบเบตเบเปเปเบญเบเบเบตเปเบชเบธเบ, เบกเบฑเบเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบชเบฑเบเบชเบปเบเบขเปเบฒเบเปเบซเบเปเบซเบผเบงเบเบเปเปเบเบฒเบเบชเปเบฒเบเบเบฒเบเบเบฐเปเบเบเบเบฒเบเบเบนเบเบฎเบตเบ, เปเบเบฒเบฐเบงเปเบฒเบเบญเบเบเบฒเบ buffer overflow เบเบตเปเบชเบฒเบกเบฒเบเบเบนเบเบฎเบตเบเปเบเป, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบญเบเบซเบฒเบเปเบญเบเปเบซเบงเปเบญเบทเปเบเบเบตเปเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฒเบเบฎเบปเปเบงเปเบซเบผเบเบญเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบ. เบเบฒเบเบเบฑเบเบงเบฒเบเบเบญเบ heap เปเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ.
Patches เบเบฒเบเบเบฐเบเบดเบเบฑเบ Safe-Linking เปเบเปเบเบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบ Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) เปเบฅเบฐ Google TCMalloc, เปเบฅเบฐเบเบฑเบเปเบเปเบเบทเบเบชเบฐเปเบซเบเบตเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบปเบเบเปเบญเบเปเบ Chromium (เปเบ
เบเบฑเบเบเบฑเปเบเปเบเปเบเบต 2012, Chromium เปเบเปเบชเปเบฒเบเปเบฅเปเบงเปเบเปเบเบฑเบเบเบดเบเบเบฒเบเบเบปเบเบเปเบญเบ MaskPtr เปเบเบทเปเบญเปเบเปเบชเปเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฝเบงเบเบฑเบ, เปเบเปเบเบฒเบเปเบเปเปเบเบเบฒเบ Checkpoint เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเปเบเบดเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบชเบนเบเบเบถเปเบ).
เปเบเปเบเบเบตเปเปเบเบฐเบเปเบฒเปเบเปเบฎเบฑเบเบเบฒเบเบญเบฐเบเบธเบกเบฑเบเปเบฅเปเบงเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบชเบปเปเบเปเบเปเบเบทเบญเบเบชเบดเบเบซเบฒ glibc 3.32 เปเบฅเบฐ Safe-Linking เบเบฐเบเบทเบเปเบเบตเบเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. uCibc-NG เบฎเบญเบเบฎเบฑเบ Safe-Linking เปเบเบปเปเบฒ เบฅเบงเบกเบขเบนเปเปเบเบเบฒเบเบเปเบญเบ 1.0.33 เปเบฅเบฐเบเบทเบเปเบเบตเบเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เบเบฒเบเบเปเบฝเบเปเบเบเปเบ gperftools (tcmalloc เปเบเบปเปเบฒ) เบเบญเบกเบฎเบฑเบ, เปเบเปเบเบฐเบเบทเบเบชเบฐเปเบซเบเบตเปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเบเปเบญเบเปเบเบญเบฐเบเบฒเบเบปเบ.
เบเบฑเบเบเบฑเบเบเบฐเบเบฒ TCMalloc (tcmalloc เปเบซเบกเป) เบเบฐเบเบดเปเบชเบเบเบตเปเบเบฐเบเบญเบกเบฎเบฑเบ เบเปเบฝเบเปเบเบ, เบญเปเบฒเบเปเบเบดเบเบเบฒเบเปเบชเบทเปเบญเบกเปเบเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบขเปเบฒเบเบฎเบธเบเปเบฎเบเปเบฅเบฐเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเบตเปเบกเบเบฒเบเบเบปเบเบชเบญเบเบขเปเบฒเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบเบทเปเบญเบเบงเบเบเบฒเปเบเบฑเบเบเบปเบเบเบฐเบเบดเบงเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเปเบฎเบฑเบเบงเบฝเบเบเบฒเบกเบเบฒเบ. เบเบฒเบเบเบปเบเบชเบญเบเปเบเบเบงเบดเบชเบฐเบงเบฐเบเบญเบ Checkpoint เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบ Safe-Linking เบเปเปเปเบเปเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบเปเบฅเบดเปเบเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเบตเปเบกเปเบเบตเบก, เปเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบดเบเบฑเบเบเบฒเบ heap เบซเบผเบธเบเบฅเบปเบเปเบเบเบชเบฐเปเบฅเปเบเบเบฝเบเปเบเป 0.02%, เปเบฅเบฐเปเบเบเปเบฅเบฐเบเบตเบฎเปเบฒเบเปเบฎเบเบเบตเปเบชเบธเบเปเบเบ 1.5% (เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ, เบเปเบฒเปเบเปเบเปเบฒเบเปเบเบตเบเบเปเบฒเปเบเปเบเปเบฒเบ. เปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเปเปเบ Chromium เปเบกเปเบเบเบฒเบเบเบฐเปเบเบงเปเบฒ "เบซเบเปเบญเบเบเบงเปเบฒ 2%"). เบฅเบงเบก
Safe-Linking เบเบปเบเปเบเปเบฎเบฑเบเปเบ 2-3 เบเปเบฒเปเบเบฐเบเปเบฒเบเบฒเบเบเบฐเบเบญเบเปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบ free() เบเบทเบเปเบญเบตเปเบ, เปเบฅเบฐเบเปเบฒเปเบเบฐเบเปเบฒ 3-4 เปเบเปเบฅเบฐเบเบฑเปเบ malloc() เบเบทเบเปเบญเบตเปเบ. เบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเบฑเปเบเบเบญเบเบเบฒเบเบชเปเบฒเบเบกเบนเบเบเปเบฒเปเบเบเบชเบธเปเบกเปเบกเปเบเบเปเปเบเปเบฒเปเบเบฑเบ.
Safe-Linking เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเบเปเปเบเบฝเบเปเบเปเปเบเบทเปเบญเบเบฑเบเบเบธเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ heap เบเปเบฒเบเป, เปเบเปเบเบฑเบเปเบเบทเปเบญเปเบเบตเปเบกเบเบฒเบเบเบงเบเบเบธเบกเบเบงเบฒเบกเบเบทเปเบชเบฑเบเปเบซเปเบเบฑเบเปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบเปเบเปเบเบตเปเบเปเบฒเปเบเปเบฅเบฒเบเบเบทเปเบเบปเบงเบเบตเปเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบเบฝเบงเบเบตเปเบงเบฒเบเปเบงเปเบเปเบฒเบ buffers เบเบปเบงเปเบญเบ. เบงเบดเบเบตเบเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเปเบฅเบฐเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเปเบเบตเปเบกเบกเบฐเบซเบฒเบเบฒเบเบซเบเบถเปเบเปเบฅเบฐเบเปเบฒเปเบเปเบกเบฑเบเบเบฑเบเบเบปเบงเบเบตเปเปเบเบซเบฒเบเบฅเบฑเบญเบเบเปเปเปเบเปเบเบฅเบฐเบซเบฑเบ (เบเบปเบงเบขเปเบฒเบ, เบชเปเบฒเบฅเบฑเบ Glibc. เบเบฒเบเบเปเบฝเบเปเบเบ เบเบฝเบเปเบเปเบชเบญเบเบชเบฒเบกเปเบชเบฑเปเบเบเบญเบเบฅเบฐเบซเบฑเบ). เบงเบดเบเบตเบเบฒเบเบเบปเปเบกเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
+#define PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))
+#define REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)
- เบเปเปเปเบ = p->fd;
+ nextp = REVEAL_PTR (p->fd);
...
เปเบเบเปเบเบทเปเบญเปเบเปเปเบฅเปเบงเบเบญเบเบงเบดเบเบตเบเบฒเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบเปเปเบกเบนเบเปเบเบเบชเบธเปเบกเบเบฒเบเบเบปเบเปเบเบเบฒเบ Randomization เบเบตเปเบขเบนเป ASLR (mmap_base) เปเบเบทเปเบญเบเบปเบเบเปเบญเบเบฅเบฒเบเบเบทเปเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบเบฝเบงเปเบเบฑเปเบ Fast-Bins เปเบฅเบฐ TCache. เบเปเบญเบเบเบตเปเบเปเบฒเบเบฐเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบเบปเบงเบเบตเปเปเบเบซเบฒเบญเบปเบเบเบฐเบเบญเบเบเปเปเปเบเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป, เบกเบฑเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบเบซเบเปเบฒเบเบฒเบเปเบฅเบฐเบเบงเบเปเบเบดเปเบเบเบฒเบเบเบฑเบเบฅเปเบฒเบเบฑเบเบซเบเปเบฒ. เบเบปเบงเบเบตเปเบเบทเบเปเบเบเบเบตเปเบเปเบงเบเบเบปเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ "(L>> PAGE_SHIFT) XOR (P)", เปเบเบดเปเบ P เปเบกเปเบเบเปเบฒเบเบญเบเบเบปเบงเบเบตเปเปเบฅเบฐ L เปเบกเปเบเบชเบฐเบเบฒเบเบเบตเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเบเบปเบงเบเบตเปเบเบทเบเปเบเบฑเบเปเบงเป.
เปเบกเบทเปเบญเปเบเปเปเบเบฅเบฐเบเบปเบ ASLR (Address Space Layout Randomization) เบชเปเบงเบเบซเบเบถเปเบเบเบญเบ L bits เบเบฑเบ heap base address เบเบฐเบเบญเบเบเปเบงเบเบเปเบฒเบชเบธเปเบกเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบฑเบเบเบธเบเปเบเปเบเบทเปเบญเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ P (เบชเบฐเบเบฑเบเปเบเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเบฝเบ 12-bit เบชเปเบฒเบฅเบฑเบเบซเบเปเบฒ 4096-byte). เบเบฒเบเบซเบกเบนเบเปเบเปเบเบตเปเบเปเบงเบเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบชเปเบฝเบเบเปเปเบเบฒเบเบฅเบฑเบเบฅเบญเบเบเบปเบงเบเบตเปเปเบเบเบฒเบเบเบนเบเบฎเบตเบ, เปเบเบทเปเบญเบเบเบฒเบเบเบปเบงเบเบตเปเบเปเปเปเบเปเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบฎเบนเบเปเบเบเบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเบกเบฑเบเปเบฅเบฐเบเบฒเบเบเปเบฝเบเปเบเบเบกเบฑเบเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบงเบฒเบกเบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเบเบชเบฑเบ heap. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบฅเบฐเบซเบฑเบ patch เบเบฑเบเบกเบตเบเบฒเบเบเบงเบเบชเบญเบเปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเปเบฒเปเบซเบเปเบเบเบญเบเบเบฑเบ, เปเบเบดเปเบเบเปเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเปเบเบกเบเบตเบเปเบฝเบเบเบปเบงเบเบตเปเบเปเบงเบเบเปเบฒเบเบตเปเบเปเปเบชเบญเบเบเปเบญเบเปเบฅเบฐเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเปเบฒเบเบงเบเบเบดเบเบเบตเปเบชเบญเบเบเปเบญเบ, เปเบเบดเปเบเปเบเบฅเบฐเบเบปเบ 64-bit เบเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฅเบฑเบญเบ. เบเบฒเบโเปเบเบกโเบเบต 15 โเปเบ 16 โเปเบเบทเปเบญโเบเบตเปโเบเปเปโเปเบเปโเบฎเบฑเบโเบเบงเบฒเบกโเปเบเบปเปเบฒโเปเบโเบเปเบฝเบงโเบเบฑเบโเบเบฒเบโเปเบเบกโเบเบต.
เบงเบดเบเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบเบฒเบเบเบปเบเบเปเบญเบเบเบฒเบเปเบเบกเบเบตเบเบตเปเปเบเปเบเบฒเบเบเบฝเบเบเบทเบเปเบซเบกเปเบเบญเบเบเบปเบงเบเบตเปเบเบฒเบเบชเปเบงเบ (เบเบฒเบเบเปเบฝเบเปเบเบ bytes เบเปเปเบฒ), เบเบฒเบเบเบฝเบเบเบทเบเปเบซเบกเปเบเบญเบเบเบปเบงเบเบตเปเบชเปเบฒเปเบฅเบฑเบ (เบเบฒเบเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเบฅเบฐเบซเบฑเบเบเบญเบเบเบนเปเปเบเบกเบเบต) เปเบฅเบฐเบเปเบฝเบเบเปเบฒเปเบซเบเปเบเบฅเบฒเบเบเบทเปเบขเบนเปเปเบเบเบตเปเบขเบนเปเบเบตเปเบเปเปเบชเบญเบเบเปเบญเบ. เปเบเบฑเบเบเบปเบงเบขเปเบฒเบ, เบกเบฑเบเปเบเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเบเปเบฒเปเบเป Safe-Linking เปเบ malloc เบเบฐเบเปเบงเบเปเบซเปเบเบฒเบเบชเบฐเบเบฑเบเบเบฒเบเบเบนเบเบฎเบตเบเบเปเปเบเบปเบเบกเบฒเบเบตเป เบเปเบฒเบเบปเบ เปเบเบเบเบฑเบเบเบปเปเบเบเบงเปเบฒเบเบงเบฒเบกเบชเปเบฝเบเบเบฝเบงเบเบฑเบ CVE-2020-6007 เปเบเปเบเบญเบฑเบเบชเบฐเบฅเบดเบเบฐ Philips Hue Bridge, เบเบตเปเปเบเบตเบเบเบฒเบเบเบฒเบเบฅเบปเปเบเบเบญเบ buffer เปเบฅเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเบญเบธเบเบฐเบเบญเบเปเบเป.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru