Checkpoint ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Safe-Linking, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимости

Π€ΠΈΡ€ΠΌΠ° Π§Π΅ΠΊΠΏΠΎΠΉΠ½Ρ‚ прСдставСни ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° 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(). Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° инициализация ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° стойност Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Checkpoint ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Safe-Linking, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимости

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 Π΅ мястото Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° указатСлят.

Checkpoint ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Safe-Linking, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимости

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² систСмата ASLR (Рандомизация Π½Π° ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° адрСсното пространство) част ΠΎΡ‚ L Π±ΠΈΡ‚Π° с основния адрСс Π½Π° ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ стойности, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° P (ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ Ρ‡Ρ€Π΅Π· 12-Π±ΠΈΡ‚ΠΎΠ²Π° опСрация Π·Π° измСстванС Π·Π° 4096-Π±Π°ΠΉΡ‚ΠΎΠ²ΠΈ страници). Π’Π°Π·ΠΈ манипулация намалява риска ΠΎΡ‚ ΠΎΡ‚Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» Π² Сксплойт, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ указатСлят Π½Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° си Ρ„ΠΎΡ€ΠΌΠ° ΠΈ замяната ΠΌΡƒ изисква ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π°. ОсвСн Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° корСкцията ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° подравняванС Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅, която Π½Π΅ позволява Π½Π° атакуващия Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» с Π½Π΅ΠΏΠΎΠ΄Ρ€Π°Π²Π½Π΅Π½Π° стойност ΠΈ изисква ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° броя Π±ΠΈΡ‚ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΠ΄Ρ€Π°Π²Π½Π΅Π½ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π° 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈΡ‚Π΅ систСми Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ позволява Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ 15 ΠΎΡ‚ 16 ΠΎΠΏΠΈΡ‚Π° Π·Π° Π°Ρ‚Π°ΠΊΠ°, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ подравняванСто.

ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Π°Ρ‚Π°ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ частично прСнаписванС Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» (промяна Π½Π° ниски Π±Π°ΠΉΡ‚ΠΎΠ²Π΅), пълно прСнаписванС Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π» (прСнасочванС към ΠΊΠΎΠ΄Π° Π½Π° атакуващия) ΠΈ промяна Π½Π° позицията Π² списъка Π½Π° Π½Π΅ΠΏΠΎΠ΄Ρ€Π°Π²Π½Π΅Π½ адрСс. ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Safe-Linking Π² malloc Π±ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Сксплоатация наскоро ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ‚Π΅ изслСдоватСли Π½Π° уязвимости CVE-2020 6007- Π² ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½Π°Ρ‚Π° свСтлина Philips Hue Bridge, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π²ΠΈ позволява Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π°Π΄ устройството.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€