Уязвимост, която позволява TCP Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΏΡ€Π΅Π· VPN Ρ‚ΡƒΠ½Π΅Π»ΠΈ, Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΡ‚Π²Π»Π΅Ρ‡Π΅Π½ΠΈ

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° Π°Ρ‚Π°ΠΊΠ° (CVE-2019-14899), която позволява ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²Π΅Π½ΠΈ, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Π² TCP Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π°Π½ΠΈ ΠΏΡ€Π΅Π· VPN Ρ‚ΡƒΠ½Π΅Π»ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ засяга Linux, FreeBSD, OpenBSD, Android, macOS, iOS ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ систСми. Linux ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° rp_filter (Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ ΠΏΡŠΡ‚) Π·Π° IPv4, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π² Ρ€Π΅ΠΆΠΈΠΌ β€žΠ‘Ρ‚Ρ€ΠΈΠΊΡ‚β€œ Π½Π΅ΡƒΡ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠœΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ позволява замСстванС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ TCP Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‰ΠΈ Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ Ρ‚ΡƒΠ½Π΅Π», Π½ΠΎ Π½Π΅ позволява вклиняванС във Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ слоСвС Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ TLS, HTTPS, SSH). АлгоритмитС Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ във VPN, нямат Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ„Π°Π»ΡˆΠΈΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈΠ΄Π²Π°Ρ‚ ΠΎΡ‚ външния интСрфСйс ΠΈ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΎΡ‚ ядрото ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ VPN интСрфСйса. Най-вСроятната Ρ†Π΅Π» Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π° Π΅ Π΄Π° сС намСси Π² Π½Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ HTTP Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π½ΠΎ Π½Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠ° Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° DNS ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ.

ДСмонстрирано Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ подправянС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Ρ‚ΡƒΠ½Π΅Π»ΠΈ, създадСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° OpenVPN, WireGuard ΠΈ IKEv2/IPSec.Tor Π½Π΅ Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ² Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° SOCKS Π·Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с интСрфСйс Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°. Π—Π° IPv4 Π΅ възмоТна Π°Ρ‚Π°ΠΊΠ°, Π°ΠΊΠΎ rp_filter Π΅ настроСн Π½Π° Ρ€Π΅ΠΆΠΈΠΌ β€žLooseβ€œ (sysctl net.ipv4.conf.all.rp_filter = 2). ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ систСми ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…Π° Ρ€Π΅ΠΆΠΈΠΌ β€žΠ‘Ρ‚Ρ€ΠΈΠΊΡ‚β€œ, Π½ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ систСмСн 240, ΠΈΠ·Π΄Π°Π΄Π΅Π½ миналия Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ, Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ бСшС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ Π½Π° β€žLooseβ€œ ΠΈ Ρ‚Π°Π·ΠΈ промяна бСшС ΠΎΡ‚Ρ€Π°Π·Π΅Π½Π° Π² настройкитС ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Linux дистрибуции.

ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ rp_filter ΠΏΡ€ΠΈΠ»Π°Π³Π° Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡŠΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Π·Π° Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈ подправянС Π½Π° адрСса Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ Π½Π° 0, Π½Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° адрСса Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° ΠΈ всСки ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚Π΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ интСрфСйси Π±Π΅Π· ограничСния. Π Π΅ΠΆΠΈΠΌ 1 β€žΠ‘Ρ‚Ρ€ΠΎΠ³β€œ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° всСки ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈΠ΄Π²Π°Ρ‰ ΠΎΡ‚Π²ΡŠΠ½, Π·Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ Π°ΠΊΠΎ мрСТовият интСрфСйс, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚, Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с оптималния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π·Π° доставка Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ сС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Ρ. Π Π΅ΠΆΠΈΠΌ 2 β€žΠ Π°Π·Ρ…Π»Π°Π±Π΅Π½β€œ ΠΎΠ±Π»Π΅ΠΊΡ‡Π°Π²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π°, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Π±Π°Π»Π°Π½ΡΡŒΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠ»ΠΈ асимСтричното ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π΄Π° работят, ΠΊΠΎΠ³Π°Ρ‚ΠΎ
ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΡŠΡ‚ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΏΡ€Π΅Π· ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс, Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π΅ пристигнал входящият ΠΏΠ°ΠΊΠ΅Ρ‚.

Π’ свободСн Ρ€Π΅ΠΆΠΈΠΌ входящият ΠΏΠ°ΠΊΠ΅Ρ‚ сС провСрява спрямо Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, Π½ΠΎ сС счита Π·Π° Π²Π°Π»ΠΈΠ΄Π΅Π½, Π°ΠΊΠΎ Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΏΡ€Π΅Π· всСки Π½Π°Π»ΠΈΡ‡Π΅Π½ ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° Π°Ρ‚Π°ΠΊΠ° сС основава Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΏΠΎΠ΄ΠΏΡ€Π°Π²Π΅Π½ адрСс Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ Π½Π° VPN интСрфСйса, ΠΈ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ‰Π΅ Π²Π»Π΅Π·Π΅ Π² систСмата ΠΏΡ€Π΅Π· външния ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс, Π° Π½Π΅ ΠΏΡ€Π΅Π· VPN, Π² rp_filter Π Π΅ΠΆΠΈΠΌ β€žΠ Π°Π·Ρ…Π»Π°Π±Π΅Π½β€œ Ρ‚Π°ΠΊΡŠΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ няма Π΄Π° бъдС ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½.

Π—Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π°Ρ‚Π°ΠΊΠ°, нападатСлят трябва Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° шлюза, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ потрСбитСлят ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ€Π΅Π· MITM организация, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΆΠ΅Ρ€Ρ‚Π²Π°Ρ‚Π° сС ΡΠ²ΡŠΡ€Π·Π²Π° с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π° ΠΎΡ‚ нападатСля Π±Π΅Π·ΠΆΠΈΡ‡Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· Ρ…Π°ΠΊΠ²Π°Π½Π΅ Π½Π° Ρ€ΡƒΡ‚Π΅Ρ€). Π§Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° шлюза, ΠΏΡ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ потрСбитСлят Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ към ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, нападатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ Π² контСкста Π½Π° мрСТовия интСрфСйс Π½Π° VPN, Π½ΠΎ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ насочСни ΠΏΡ€Π΅Π· Ρ‚ΡƒΠ½Π΅Π»Π°.

Π§Ρ€Π΅Π· Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ IP Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° VPN интСрфСйса Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½, сС правят ΠΎΠΏΠΈΡ‚ΠΈ Π΄Π° сС повлияС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, установСна ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ влияниСто Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС наблюдава само Ρ‡Ρ€Π΅Π· пасивСн Π°Π½Π°Π»ΠΈΠ· Π½Π° криптирания Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΡΠ²ΡŠΡ€Π·Π°Π½ с с Сксплоатацията Π½Π° Ρ‚ΡƒΠ½Π΅Π»Π°. Π—Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Π°Ρ‚Π°ΠΊΠ°, трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ IP адрСса Π½Π° мрСТовия интСрфСйс Π½Π° Ρ‚ΡƒΠ½Π΅Π»Π°, Π·Π°Π΄Π°Π΄Π΅Π½ ΠΎΡ‚ VPN ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, Ρ‡Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° към ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ хост Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€Π΅Π· Ρ‚ΡƒΠ½Π΅Π»Π°.

Π—Π° Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ IP Π½Π° виртуалния ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс Π½Π° VPN, ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ SYN-ACK сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π΄ΠΎ систСмата Π½Π° ΠΆΠ΅Ρ€Ρ‚Π²Π°Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ послСдоватСлно изброяват цСлия Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ адрСси (Π½Π° ΠΏΡŠΡ€Π²ΠΎ място, адрСситС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ във VPN, сС изброяват ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ OpenVPN ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° 10.8.0.0/24). Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° адрСс ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈ въз основа Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ с RST Ρ„Π»Π°Π³.

По ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ сС опрСдСля Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° към Π΄Π°Π΄Π΅Π½ сайт ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° ΠΏΠΎΡ€Ρ‚Π° ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° - Ρ‡Ρ€Π΅Π· сортиранС Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π°Ρ‚Π° Π½Π° ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅Ρ‚Π΅, към потрСбитСля сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° SYN ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠ°Ρ‚ΠΎ адрСс Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС записва сайта IP сС замСства ΠΈ Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° мСстоназначСниС Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° IP VPN. ΠŸΠΎΡ€Ρ‚ΡŠΡ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ (80 Π·Π° HTTP), Π° Π½ΠΎΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Π° ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС изчислСн Ρ‡Ρ€Π΅Π· Π³Ρ€ΡƒΠ±Π° сила, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΠΊΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ числа промяната Π² ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΡ‚Π΅Ρ‚Π° Π½Π° ACK ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π² комбинация с липсата Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ с RST Π·Π½Π°ΠΌΠ΅.

На Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ атакуващият Π·Π½Π°Π΅ всичкитС Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° (ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ IP адрСс/ΠΏΠΎΡ€Ρ‚ ΠΈ Ρ†Π΅Π»Π΅Π²ΠΈ IP адрСс/ΠΏΠΎΡ€Ρ‚), Π½ΠΎ Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΆΠ΅Ρ€Ρ‚Π²Π°Ρ‚Π° Ρ‰Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅, атакуващият трябва Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ TCP послСдоватСлността ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Π·Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ (seq ΠΈ ack) - Π²Ρ€ΡŠΠ·ΠΊΠΈ. Π—Π° Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Ρ‚Π΅Π·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, атакуващият Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ RST ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΎΠΏΠΈΡ‚Π²Π°ΠΉΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ послСдоватСлни Π½ΠΎΠΌΠ΅Ρ€Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ ACK ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, пристиганСто Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π½ΠΎΠΌΠ΅Ρ€ΡŠΡ‚ ΠΏΠΎΠΏΠ°Π΄Π° Π² TCP ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π°.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° атакуващият изяснява правилността Π½Π° дСфиницията, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ със ΡΡŠΡ‰ΠΈΡ Π½ΠΎΠΌΠ΅Ρ€ ΠΈ наблюдава пристиганСто Π½Π° ACK ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·Π±ΠΈΡ€Π° точния Π½ΠΎΠΌΠ΅Ρ€ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° послСдоватСлност. Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° сС услоТнява ΠΎΡ‚ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ Ρ‚ΡƒΠ½Π΅Π» ΠΈ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ ΠΈΠΌ Π² прихванатия ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° само Ρ‡Ρ€Π΅Π· косвСни ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. Π”Π°Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ACK ΠΏΠ°ΠΊΠ΅Ρ‚, адрСсиран Π΄ΠΎ VPN ΡΡŠΡ€Π²ΡŠΡ€Π°, сС опрСдСля въз основа Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ латСнтността Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΊΠΎΡ€Π΅Π»ΠΈΡ€Π°Ρ‚ с ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. НапримСр, Π·Π° OpenVPN Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ 79 Π²ΠΈ позволява Ρ‚ΠΎΡ‡Π½ΠΎ Π΄Π° ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈΡ‚Π΅, Ρ‡Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ACK.

Π”ΠΎΠΊΠ°Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ Π½Π΅ бъдС Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към ядрото Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΊΠ°Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ във Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π° β€žprerouteβ€œ, Π±Π»ΠΎΠΊΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ виртуалният IP адрСс Π½Π° Ρ‚ΡƒΠ½Π΅Π»Π° Π΅ посочСн ΠΊΠ°Ρ‚ΠΎ адрСс Π½Π° мСстоназначСниС.

iptables -t raw -I PREROUTING! -i wg0 -d 10.182.12.8 -m addrtype! --src-Ρ‚ΠΈΠΏ Π›ΠžΠšΠΠ›Π•Π -j ΠŸΠ£Π‘ΠšΠΠΠ•

ΠΈΠ»ΠΈ Π·Π° nftables

nft добавянС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ip raw
nft add chain ip raw prerouting '{ type filter hook prerouting priority 0; }'
nft add ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ip raw prerouting 'iifname != "wg0" ip daddr 10.182.12.8 fib saddr type != local drop'

Π—Π° Π΄Π° сС Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΡƒΠ½Π΅Π»ΠΈ с IPv4 адрСси, просто Π·Π°Π΄Π°ΠΉΡ‚Π΅ rp_filter Π½Π° β€žΠ‘Ρ‚Ρ€ΠΎΠ³β€œ Ρ€Π΅ΠΆΠΈΠΌ (β€žsysctl net.ipv4.conf.all.rp_filter = 1β€œ). ΠžΡ‚ страна Π½Π° VPN, ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡ€Π΅Π΄Π΅Π½ Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ Ρ‡Ρ€Π΅Π· добавянС Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠΆΠΊΠ° към ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с Сднакъв Ρ€Π°Π·ΠΌΠ΅Ρ€.

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

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