Π€ΠΈΡΠΌΠ° Π§Π΅ΠΊΠΏΠΎΠΉΠ½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π·Π°ΡΠΈΡΠ° Safe-Linking, ΠΊΠΎΠΉΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Ρ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΊΡΠΌ Π±ΡΡΠ΅ΡΠΈ, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° malloc ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅. Safe-Linking Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΡΠ΅ΠΌΠΎΡΠΎ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅ΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π΄ΡΡΠ³Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΡΠΏΡΠΈΠ½Π°ΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΡΠ° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠΈ Safe-Linking Π·Π° Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) ΠΈ Google TCMalloc, ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π·Π° Π½Π°Π΄Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°ΡΠΈΡΠ°ΡΠ° Π² Chromium (Π²
ΠΡ 2012 Π³. Chromium Π²Π΅ΡΠ΅ Π΅ Π²Π³ΡΠ°Π΄ΠΈΠ» Π·Π°ΡΠΈΡΠ½Π°ΡΠ° ΡΠ΅Ρ
Π½ΠΈΠΊΠ° MaskPtr, Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΡΠΌ ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡ Checkpoint Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ).
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π²Π΅ΡΠ΅ ΡΠ° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π² ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅Π· Π°Π²Π³ΡΡΡ Glibc 3.32 ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. uClibc-NG ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π²ΠΏΠΈΡΠ°Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 1.0.33 ΠΈ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΡΠΎΠΌΠ΅Π½ΠΈ Π² gperftools (ΡΡΠ°Ρ tcmalloc) ΠΏΡΠΈΠ΅ΡΠΎ, Π½ΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠ°ΡΠΎ ΠΎΠΏΡΠΈΡ Π² Π±ΡΠ΄Π΅ΡΠ° Π²Π΅ΡΡΠΈΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ TCMalloc (Π½ΠΎΠ² tcmalloc) ΠΎΡΠΊΠ°Π·Π° Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ΅ ΠΏΡΠΎΠΌΡΠ½Π°, ΡΠΈΡΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π²Π»ΠΎΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΎΠ±ΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΡΠ΅Π΄ΠΎΠ²Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡΡΠ°. Π’Π΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° Checkpoint ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΡΡ Safe-Linking Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΡΠΏ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΡΠ΅Π΄Π½ΠΎ ΡΠ°ΠΌΠΎ Ρ 0.02%, Π° Π² Π½Π°ΠΉ-Π»ΠΎΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Ρ 1.5% (Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈΡΠ΅ ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄ΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Chromium, ΡΠ΅ ΠΎΡΠ΅Π½ΡΠ²Π° ΠΊΠ°ΡΠΎ βΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ 2%β). ΠΠΊΠ»ΡΡΠ²Π°Π½Π΅
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° 2-3 Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° free() ΠΈ 3-4 ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° malloc(). ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΡΠ°ΠΏΠΈΡΠ΅ Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
Safe-Linking ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΠΊΡΠΏΡΠΈΠ½Π°, Π½ΠΎ ΠΈ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ΅Ρ ΠΊΡΠΌ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΠΏΠΈΡΡΡΠΈ ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π΄ΠΎ ΡΠ°ΠΌΠΈΡΠ΅ Π±ΡΡΠ΅ΡΠΈ. ΠΠ΅ΡΠΎΠ΄ΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ°ΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΌΠ°ΠΊΡΠΎΡ ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ ΠΌΡ ΠΊΡΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΊΡΠΌ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π±Π»ΠΎΠΊ Π² ΠΊΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Glibc ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄). ΠΠ΅ΡΠΎΠ΄ΡΡ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
+#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);
...
Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠΈ ASLR (mmap_base), Π·Π° Π΄Π° ΡΠ΅ Π·Π°ΡΠΈΡΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΠΏΠΈΡΡΡΠΈ ΠΊΠ°ΡΠΎ Fast-Bins ΠΈ TCache. ΠΡΠ΅Π΄ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π° ΠΊΡΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π» ΠΊΡΠΌ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΡΠΊΠ°, ΡΡ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΊΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ ΡΠ΅ Π·Π°ΠΌΠ΅Π½Ρ Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° "(L >> PAGE_SHIFT) XOR (P)", ΠΊΡΠ΄Π΅ΡΠΎ P Π΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π° L Π΅ ΠΌΡΡΡΠΎΡΠΎ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ.
ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ASLR (Π Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ) ΡΠ°ΡΡ ΠΎΡ L Π±ΠΈΡΠ° Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ Π½Π° ΠΊΡΠΏΡΠΈΠ½Π°ΡΠ° ΡΡΠ΄ΡΡΠΆΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΡΠΎ ΠΊΠ»ΡΡ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° P (ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ ΡΡΠ΅Π· 12-Π±ΠΈΡΠΎΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π·Π° 4096-Π±Π°ΠΉΡΠΎΠ²ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ). Π’Π°Π·ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠΈΡΠΊΠ° ΠΎΡ ΠΎΡΠ²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π» Π² Π΅ΠΊΡΠΏΠ»ΠΎΠΉΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ Π½Π΅ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° ΡΠΈ ΡΠΎΡΠΌΠ° ΠΈ Π·Π°ΠΌΡΠ½Π°ΡΠ° ΠΌΡ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΡΠΏΡΠΈΠ½Π°ΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΊΠΎΠ΄ΡΡ Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° ΡΡΠ΄ΡΡΠΆΠ° ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠΎΡΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π» Ρ Π½Π΅ΠΏΠΎΠ΄ΡΠ°Π²Π½Π΅Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π±ΡΠΎΡ Π±ΠΈΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΎΠ΄ΡΠ°Π²Π½Π΅Π½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ 15 ΠΎΡ 16 ΠΎΠΏΠΈΡΠ° Π·Π° Π°ΡΠ°ΠΊΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠ΅ΡΠΎΠ΄ΡΡ Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ Π°ΡΠ°ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π» (ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π½ΠΈΡΠΊΠΈ Π±Π°ΠΉΡΠΎΠ²Π΅), ΠΏΡΠ»Π½ΠΎ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π» (ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΊΠΎΠ΄Π° Π½Π° Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ) ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π² ΡΠΏΠΈΡΡΠΊΠ° Π½Π° Π½Π΅ΠΏΠΎΠ΄ΡΠ°Π²Π½Π΅Π½ Π°Π΄ΡΠ΅Ρ. ΠΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Safe-Linking Π² malloc Π±ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π°ΡΠΊΠΎΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΎΡ ΡΡΡΠΈΡΠ΅ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ CVE-2020 6007- Π² ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½Π°ΡΠ° ΡΠ²Π΅ΡΠ»ΠΈΠ½Π° Philips Hue Bridge, ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π°Π΄ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru