ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Netflix Π²ΡΡΠ²ΠΈΠ»Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² TCP-ΡΡΠ΅ΠΊΠ°Ρ
Linux ΠΈ FreeBSD, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΠ°Ρ
ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΡ
TCP-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (packet-of-death). ΠΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠ·Π²Π°Π½Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ
ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ
Π² TCP-ΠΏΠ°ΠΊΠ΅ΡΠ΅ (MSS, Maximum segment size) ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (SACK, TCP Selective Acknowledgement).
CVE-2019-11477 (SACK Panic) — ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΄ΡΠ°Ρ
Linux Π½Π°ΡΠΈΠ½Π°Ρ Ρ 2.6.29 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΊΡΠ°Ρ
(panic) ΡΠ΄ΡΠ° ΡΠ΅ΡΠ΅Π· ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠ΅ΡΠΈΠΈ SACK-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ·-Π·Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅. ΠΠ»Ρ Π°ΡΠ°ΠΊΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π΄Π»Ρ TCP-ΡΠΎΠ΅Π΄ΠΈΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ MSS Π² 48 Π±Π°ΠΉΡ (Π½ΠΈΠΆΠ½ΠΈΠΉ Π»ΠΈΠΌΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° Π² 8 Π±Π°ΠΉΡ) ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Π½ΡΡ
SACK-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΡΡ
ΠΏΡΡΠ΅ΠΉ Π·Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ SACK (Π·Π°ΠΏΠΈΡΠ°ΡΡ 0 Π² /proc/sys/net/ipv4/tcp_sack) ΠΈΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ MSS (ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ sysctl net.ipv4.tcp_mtu_probing Π² 0 ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ MSS);
CVE-2019-11478 (SACK Slowness) — ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° SACK (ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΄ΡΠ° Linux ΠΌΠ»Π°Π΄ΡΠ΅ 4.15) ΠΈΠ»ΠΈ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΡ
SACK-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ (TCP retransmission). ΠΠ±Ρ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΡΠΈ Π·Π°ΡΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ;
CVE-2019-5599 (SACK Slowness) — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊΠ°ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ SACK Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΡΠΌΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠΏΠΈΡΠΊΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎ FreeBSD 12 Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² RACK. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ RACK;
CVE-2019-11479 — Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π² ΡΠ΄ΡΠ΅ Linux ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ TCP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 8 Π±Π°ΠΉΡ Π΄Π°Π½Π½ΡΡ
, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ°, ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° CPU ΠΈ Π·Π°Π±ΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΡΠΈΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ MSS.
Π ΡΠ΄ΡΠ΅ Linux ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΡΡΠ°Π½Π΅Π½Ρ Π² Π²ΡΠΏΡΡΠΊΠ°Ρ
4.4.182, 4.9.182, 4.14.127, 4.19.52 ΠΈ 5.1.11. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ FreeBSD Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΡΠ°. Π Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΡΠ΄ΡΠΎΠΌ ΡΠΆΠ΅ Π²ΡΠΏΡΡΠ΅Π½ΠΎ Π΄Π»Ρ Debian, RHEL, SUSE/openSUSE. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π² Ubuntu, Fedora ΠΈ Arch Linux.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru