Yandex Π³ΠΎ ΠΎΠ±ΡΠ°Π²ΠΈ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π°Π»Π°ΡΠΊΠ°ΡΠ° skbtrace, ΠΊΠΎΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ½ΠΈΠΎΡ ΡΡΠ΅ΠΊ ΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠ½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎ Linux. ΠΠ»Π°ΡΠΊΠ°ΡΠ° Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠ΄Π°ΡΠΎΠΊ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΎ Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ BPFtrace. ΠΠΎΠ΄ΠΎΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Go ΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° MIT. ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΈ Π½Π° Linux 4.14+ ΠΈ ΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π°Π»Π°ΡΠΊΠΈ BPFTrace 0.9.2+.
ΠΠΎΠ΄Π΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ, Π°Π»Π°ΡΠΊΠ°ΡΠ° skbtrace Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠΊΡΠΈΠΏΡΠΈ Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ BPFtrace Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΊΠΎΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ Π³ΠΎ ΡΠ»Π΅Π΄Π°Ρ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π°Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΡΡΠ΅ΠΊΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Linux ΠΈ ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ. Π‘ΠΊΡΠΈΠΏΡΠΈΡΠ΅ ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΠΏΡΠ΅Π²Π΅Π΄ΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠΎΡΠΌΡΠ»Π°ΡΠΎΡ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° eBPF ΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ.
ΠΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π° skbtrace, ΠΌΠ΅ΡΠ΅ΡΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΠΎΠΌΠ΅ΡΡ Π²Π»Π΅Π·Π½ΠΈΡΠ΅ ΠΈ ΠΈΠ·Π»Π΅Π·Π½ΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΈ, ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ Π²Π΅ΠΊ Π½Π° TCP ΠΊΠΎΠ½Π΅ΠΊΡΠΈΡΠ°ΡΠ° ΠΎΠ΄ ΠΏΡΠΈΠΌΠ°ΡΠ΅ΡΠΎ SYN Π΄ΠΎ ΠΏΡΠΈΡΡΠΈΠ³Π½ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° FIN/RST, ΠΎΠ΄Π»ΠΎΠΆΡΠ²Π°ΡΠ°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΡΠ°Π½ΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΏΡΠ΅Π³ΠΎΠ²Π°ΡΠ°ΡΠ΅ ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π° TCP ΠΊΠΎΠ½Π΅ΠΊΡΠΈΡΠ°. Skbtrace, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Π΅ΠΌΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° TCP ΠΏΠ°ΠΊΠ΅ΡΠΈ, Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ ΡΠΈΠ΅ ΡΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½ΠΈ Π²ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈ Π΄Π° Π΄Π΅ΡΡΡΠ²ΡΠ²Π° ΠΊΠ°ΠΊΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° Π°Π»Π°ΡΠΊΠ°ΡΠ° tcpdump, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π΄Π° Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΡΡΡΠΈΠ½ΠΈ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ kfree_skb Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΏΡΠΈ ΡΡΠ»Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru