Π Netfilter, ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, Π΅ ΠΎΡΠΊΡΠΈΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2022-25636), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ. Π‘ΡΠΎΠ±ΡΠ°Π²Π° ΡΠ΅ Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π΄Π° ΠΏΠΎΠ²ΠΈΡΠΈ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² Ubuntu 21.10 Ρ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° Π·Π°ΡΠΈΡΠ° KASLR. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ 5.4. ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΡ (ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π΅ ΡΠ° ΡΡΡΡΠ°Π²Π΅Π½ΠΈ). ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ Π³ΡΠ΅ΡΠΊΠ° Π² ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ²Π° flow->rule->action.entries Π² ΡΡΠ½ΠΊΡΠΈΡΡΠ° nft_fwd_dup_netdev_offload (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π²ΡΠ² ΡΠ°ΠΉΠ»Π° net/netfilter/nf_dup_netdev.c), ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π°ΠΏΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΎΡ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΠ½Π° ΠΎΠ±Π»Π°ΡΡ ΠΈΠ·Π²ΡΠ½ Π°Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈΡ Π±ΡΡΠ΅Ρ. ΠΡΠ΅ΡΠΊΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° βdupβ ΠΈ βfwdβ Π² ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΡΠ°, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ (offload). Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π»ΠΈΠ²Π°Π½Π΅ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π½Π° Π΅ΡΠ°ΠΏΠ° ΠΏΡΠ΅Π΄ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎΡΠΎ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° offload, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠ° ΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ loopback ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ Π»Π΅ΡΠ΅Π½ Π·Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Ρ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ°, ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΊΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° net_device, Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ΅ Π²ΡΡΡΠ°Ρ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠ°ΡΠ°. ΠΠ° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² nftables, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ CAP_NET_ADMIN, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (network namespaces). Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅ΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
