ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Ρ€ΡƒΡ‚ΠΊΠΈΡ‚ Π·Π° Linux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ io_uring Π·Π° заобикалянС Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° систСмни повиквания

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚ ARMO дСмонстрираха ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΈΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€ΡƒΡ‚ΠΊΠΈΡ‚ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ спСцифични систСмни извиквания Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° чСсто срСщани ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅/запис Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ‚ външСн ΡΡŠΡ€Π²ΡŠΡ€. ВмСсто систСмни извиквания, Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° асинхронният Π²Ρ…ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ интСрфСйс io_uring, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ ΠΎΡ‚ ядрото, Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Linux 5.1.

Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΅, Ρ‡Π΅ вмСсто ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ систСмни извиквания Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Ρ‡Π΅Ρ‚Π΅Π½Π΅/запис, recv/send/connect/bind/listen), ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΠ±Ρ‰ΠΈ систСмни извиквания Π½Π° io_uring (io_uring_enter, io_uring_setup, io_uring_register ΠΈ Ρ‚.Π½.), ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΎΡ‚ стандартнитС инструмСнти Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π° активност. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ io_uring ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΠΊΠΎΠ»ΠΎ 60 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅ функция, която позволява стартиранСто Π½Π° Π½ΠΎΠ²ΠΈ процСси Ρ‡Ρ€Π΅Π· io_uring.

Π—Π° Π΄Π° сС дСмонстрира Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Ρ€ΡƒΡ‚ΠΊΠΈΡ‚Π° Curing, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° дСйствия ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ‚ външСн ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ. ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅/ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ДСмонстрацията Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΡˆΠ΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° заявка Π΄ΠΎ TCP ΠΏΠΎΡ€Ρ‚ 8888 Π½Π° външСн хост ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° "/etc/shadow". Π˜Π·Π²ΠΎΠ΄ΡŠΡ‚ Π΅, Ρ‡Π΅ слСд ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° систСмата ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° root ΠΏΡ€Π°Π²Π°, атакуващият инсталира Ρ€ΡƒΡ‚ΠΊΠΈΡ‚, Π·Π° Π΄Π° установи ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° систСма.

Π’ СкспСримСнта активността Π½Π° Ρ€ΡƒΡ‚ΠΊΠΈΡ‚Π° Curing Π½Π΅ бСшС ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° ΠΎΡ‚ инструмСнтитС Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Falco ΠΈ Tetragon, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със сигурността, Π½Π° хостовС ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ (ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС интСграция с инфраструктура, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Kubernetes). Π’Π΅Π·ΠΈ инструмСнти ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° систСмни повиквания, Π·Π° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΊΠ°Ρ‚ΠΎ стартиранС Π½Π° процСси, ΠΌΡ€Π΅ΠΆΠΎΠ²Π° активност ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½ΠΎ Π½Π΅ Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° подсистСмата io_uring Π·Π° Ρ‚Π°ΠΊΠΈΠ²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ инструмСнти, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π°... Linux БистСмитС Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠ°Ρ‚Π° сигурност, ΡΡŠΡ‰ΠΎ Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚ Π½Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Π½Π΅ Π½Π° систСмни повиквания.

Π—Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ заобикалянСто Π½Π° инструмСнтитС Π·Π° наблюдСниС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° активност, вмСсто Π΄Π° сС ΠΏΡ€ΠΈΡ…Π²Π°Ρ‰Π°Ρ‚ систСмни повиквания, сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ KRSI (Kernel Runtime Security Instrumentation), ΠΊΠΎΠΉΡ‚ΠΎ сС появи Π² ядрото. Linux 5.7, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява BPF ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½ΠΈ към всяка LSM ΠΊΡƒΠΊΠ°. НапримСр, KRSI, Π½Π° Π½ΠΈΠ²ΠΎ LSM ΠΊΡƒΠΊΠ°, позволява наблюдСниС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΌΡ€Π΅ΠΆΠΎΠ² Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈ стартиранС Π½Π° процСси, нСзависимо Π΄Π°Π»ΠΈ Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ са ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½ΠΈ Ρ‡Ρ€Π΅Π· спСцифични систСмни извиквания ΠΈΠ»ΠΈ Ρ‡Ρ€Π΅Π· io_uring.

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚Π° io_uring Π΅ Π±ΠΈΠ»Π° ΠΎΠ±Π΅ΠΊΡ‚ Π½Π° ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π½Π°Ρ‚Π° поява Π½Π° сСриозни уязвимости. Π’ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° потрСбитСлски заявки Π·Π° прост инструмСнт Π·Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° io_uring Π±Π΅Π· прСстрояванС Π½Π° ядрото, ядрото Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ. Linux 6.6 Π΄ΠΎΠ±Π°Π²ΠΈ систСмната ΠΊΠΎΠΌΠ°Π½Π΄Π° io_uring_disabled. Google Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° io_uring ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² ChromeOS. Android ΠΈ сами ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, обяснявайки, Ρ‡Π΅ Π»ΠΎΡˆΠ°Ρ‚Π° ситуация със сигурността ΠΏΡ€ΠΈ io_uring надвишава прСдимствата Π·Π° производитСлността ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° io_uring.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с DDoS Π·Π°Ρ‰ΠΈΡ‚Π°, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΡƒΠ΅Π± хостинг със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS Π°Ρ‚Π°ΠΊΠΈ, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster