ΠžΡ‚ΠΊΡ€ΠΈΠ΅Π½Π° Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° ΠΈΡΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ранливост Π²ΠΎ tty потсистСмот Π½Π° ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Linux

Π˜ΡΡ‚Ρ€Π°ΠΆΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ ΠΎΠ΄ Ρ‚ΠΈΠΌΠΎΡ‚ Π½Π° Google Project Zero објавија ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° ΠΈΡΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ранливост (CVE-2020-29661) Π²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ€Π°ΠΊΡƒΠ²Π°Ρ‡ΠΎΡ‚ TIOCSPGRP ioctl ΠΎΠ΄ tty потсистСмот Π½Π° ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Linux, Π° исто Ρ‚Π°ΠΊΠ° Π΄Π΅Ρ‚Π°Π»Π½ΠΎ Π³ΠΈ испитаа Π·Π°ΡˆΡ‚ΠΈΡ‚Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ ΡˆΡ‚ΠΎ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Π°Ρ‚ Ρ‚Π°ΠΊΠ²ΠΈΠΎΡ‚ ранливости.

Π“Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° ΡˆΡ‚ΠΎ Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ бСшС ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½Π° Π²ΠΎ ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Π½Π° Линукс Π½Π° 3 Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ ΠΌΠΈΠ½Π°Ρ‚Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π° Π²ΠΎ ΠΊΠ΅Ρ€Π½Π΅Π»ΠΈΡ‚Π΅ Π΄ΠΎ Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° 5.9.13, Π½ΠΎ ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ дистрибуции Π³ΠΎ Ρ€Π΅ΡˆΠΈΡ˜Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ Π²ΠΎ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ ΠΏΠΎΠ½ΡƒΠ΄Π΅Π½ΠΈ ΠΌΠΈΠ½Π°Ρ‚Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Π‘Π»ΠΈΡ‡Π½Π° ранливост (CVE-2020-29660) бСшС ΠΏΡ€ΠΎΠ½Π°Ρ˜Π΄Π΅Π½Π° истоврСмСно Π²ΠΎ ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠΎΡ‚ TIOCGSID ioctl, Π½ΠΎ исто Ρ‚Π°ΠΊΠ° Π΅ вСќС ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½Π° насСкадС.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ ΠΎΠ΄ Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π±Ρ€Π°Π²ΠΈΡ‚Π΅, ΡˆΡ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Ρ‚Ρ€ΠΊΠ° Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ drivers/tty/tty_jobctrl.c, кој сС ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡˆΠ΅ Π·Π° создавањС услови Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ послС бСсплатно искористСни ΠΎΠ΄ корисничкиот простор ΠΏΡ€Π΅ΠΊΡƒ ioct ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ со ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° TIOCSPGRP. ДСмонстриран Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Сксплоат Π·Π° Π΅ΡΠΊΠ°Π»Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ˜Π°Ρ‚Π° Π½Π° Debian 10 со ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ 4.19.0-13-amd64.

Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, ΠΎΠ±Ρ˜Π°Π²Π΅Π½ΠΈΠΎΡ‚ напис сС фокусира Π½Π΅ Ρ‚ΠΎΠ»ΠΊΡƒ Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° Π½Π° создавањС Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Сксплоат, Ρ‚ΡƒΠΊΡƒ Π½Π° Ρ‚ΠΎΠ° ΠΊΠΎΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π²ΠΎ ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Π·Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Ρ‚Π°ΠΊΠ²ΠΈ слабости. Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ Π½Π΅ Π΅ ΡƒΡ‚Π΅ΡˆΠ΅Π½; ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ ΠΊΡƒΠΏΠΎΡ‚ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° пристапот Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС ослободи Π½Π΅ сС користат Π²ΠΎ пракса, бидСјќи Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ Π΄ΠΎ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° пСрформанситС ΠΈ Π·Π°ΡˆΡ‚ΠΈΡ‚Π° Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° CFI (Control Flow Integrity), која Π³ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π° СксплоатитС Π²ΠΎ ΠΏΠΎΠ΄ΠΎΡ†Π½Π΅ΠΆΠ½ΠΈΡ‚Π΅ Ρ„Π°Π·ΠΈ Π½Π° Π½Π°ΠΏΠ°Π΄ΠΎΡ‚, ΠΈΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅.

Кога размислувамС ΡˆΡ‚ΠΎ Π±ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€Π°Π·Π»ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠ»Π³ Ρ€ΠΎΠΊ, ΠΎΠ½Π° ΡˆΡ‚ΠΎ сС ΠΈΠ·Π΄Π²ΠΎΡ˜ΡƒΠ²Π° Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ статички Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ ΠΈΠ»ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Ρ˜Π°Π·ΠΈΡ†ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΈ Π·Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Rust ΠΈ C Π΄ΠΈΡ˜Π°Π»Π΅ΠΊΡ‚ΠΈ со Π±ΠΎΠ³Π°Ρ‚ΠΈ ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ (ΠΊΠ°ΠΊΠΎ Checked C) Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°.Π±Ρ€Π°Π²ΠΈ, ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΈ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, исто Ρ‚Π°ΠΊΠ°, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠΎΡ‚ panic_on_oops, ΠΏΡ€Π΅Ρ„Ρ€Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° структуритС Π½Π° Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° пристапот Π΄ΠΎ систСмскитС ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ seccomp.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€