Yandex ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° skbtrace, ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° прослСдяванС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Linux

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

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