Π Π°ΡΠΊΡΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ (CVE-2020-12695) Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ UPnP, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ «SUBSCRIBE». Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ CallStranger. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· ΡΠ΅ΡΠ΅ΠΉ, Π·Π°ΡΠΈΡΡΠ½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠ΅ΠΊ Π΄Π°Π½Π½ΡΡ
(DLP), ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅ΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ DDoS-Π°ΡΠ°ΠΊ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΡΡ
ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ UPnP-ΡΡΡΡΠΎΠΉΡΡΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ ΠΊΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅ΠΌΡ, Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΡ, ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, IP-ΠΊΠ°ΠΌΠ΅ΡΡ, TV-ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΈ, ΠΌΠ΅Π΄ΠΈΠ°ΡΠ΅Π½ΡΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠ΅ΡΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΡ «SUBSCRIBE» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΌΡ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ Π°ΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ HTTP-ΠΏΠ°ΠΊΠ΅ΡΡ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Callback ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UPnP-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠΊΡΠΈ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Ρ
ΠΎΡΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ «SUBSCRIBE» ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ UPnP ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Callback ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ URL, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ UPnP, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΡΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎ 17 Π°ΠΏΡΠ΅Π»Ρ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΎ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ hostapd c ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° (WPS AP). ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΡΠ΅ΠΉ. Π Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΠΏΡΡΠ΅Π½Ρ (Debian, OpenWRT, Ubuntu, RHEL, SUSE, Fedora, Arch). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ UPnP-ΡΡΠ΅ΠΊΠ° pupnp, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ
Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ.
ΠΡΠΎΡΠΎΠΊΠΎΠ» UPnP ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½ΠΈΠΌΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΡΠ΅ΡΡΡ
ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΡΠΎΡΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π΅ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ UPnP Π½Π° Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° ΡΠ΅ΡΠ΅Π· Π»ΡΠ±ΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ UPnP-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΡΡΠ°Π²ΠΊΠΈ Xbox One ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°ΡΠ°ΠΊΠΎΠ²Π°Π½Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡ 2869, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΡcΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ SUBSCRIBE ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Open Connectivity Foundation (OCF) Π±ΡΠ»Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Π° ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°, Π½ΠΎ Π²Π½Π°ΡΠ°Π»Π΅ ΠΎΡΠΊΠ°Π·Π°Π»Π°ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΅Ρ ΠΊΠ°ΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΡΡΡΠ° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ·Π½Π°Π½ΠΎ ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π±ΡΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ UPnP ΡΠΎΠ»ΡΠΊΠΎ Π½Π° LAN-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° Π½Π΅Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅, Π½Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ
ΠΌΠΎΠΆΠ΅Ρ ΡΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° Π΄Π»Ρ ΡΡΠ°ΡΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΡΡ
ΠΏΡΡΠ΅ΠΉ Π·Π°ΡΠΈΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ UPnP-ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ Π²Π½Π΅ΡΠ½ΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΠΊΡΠ°Π½ΠΎΠΌ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ HTTP-Π·Π°ΠΏΡΠΎΡΡ «SUBSCRIBE» ΠΈ «NOTIFY» Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π°ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» UPnP Π½Π° Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΠ΅ΡΠ΅Π²ΡΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ
. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ SUBSCRIBE Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΌΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ΅ΡΠΈ.
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ²ΠΎΠΈΡ
ΡΡΡΡΠΎΠΉΡΡΠ² ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Python ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru