Олар жүйеге түбірлік кіруге мүмкіндік беретін firejail-де осалдықты анықтады

Жақында олар бұл туралы жаңалықты жариялады осалдық анықталды (CVE-2022-31214 астында бұрыннан бар) Firejail қолданбасының құмсалғыш құралында, анықталған ақау жергілікті пайдаланушыға хост жүйесінде түбір болуға мүмкіндік беретіні егжей-тегжейлі көрсетілген.

Firejail оқшаулау үшін Linux жүйесінде аттар кеңістігі механизмін, AppArmor және жүйелік шақыруды сүзгілеуді (seccomp-bpf) пайдаланады, бірақ ол suid түбірлік жалауша утилитасымен байланыстыру немесе sudo көмегімен іске қосу арқылы алатын оқшауланған шығарылымды конфигурациялау үшін жоғары артықшылықтарды қажет етеді.

Осалдық «–қосылу=» опциясының логикасындағы қатеге байланысты », әлдеқашан іске қосылған оқшауланған ортаға (құм жәшігіне арналған кіру пәрменіне ұқсас) жұмыс істеп тұрған процестің идентификаторымен анықталған ортамен қосылуға арналған. Іске қосу алдындағы кезеңде firejail көрсетілген процестің артықшылықтарын анықтайды және оларды «–қосылу» опциясымен ортаға қосылатын жаңа процеске қолданады.

Қосар алдында, көрсетілген процестің firejail ортасында жұмыс істеп тұрғанын тексереді. Бұл тексеру /run/firejail/mnt/join файлының бар-жоғын бағалайды. Осалдықты пайдалану үшін, шабуылдаушы жалған оқшауланбаған firejail ортасын имитациялай алады монтаждау аттар кеңістігін пайдаланып, содан кейін оған «--join» опциясы арқылы қосылыңыз.

Егер конфигурация жаңа процестерде қосымша артықшылықтарды алуға тыйым салу режимін қоспаса (prctl NO_NEW_PRIVS), firejail пайдаланушыны жалған ортаға қосады және бастапқы процестің пайдаланушы идентификаторларының (аттар кеңістігінің пайдаланушысы) пайдаланушы аттары кеңістігінің конфигурациясын қолдануға тырысады. PID 1).

Біріктіру функциясының артындағы логиканың көпшілігі бастапқы кодта `src/firejail/join.c` файлынан. Кодтың маңызды бөлімдері арқылы орындалады жоғарылатылған артықшылықтар (тиімді UID 0). Пәрмен ретінде жіберілген процестің идентификаторы жол аргументі оның r екенін анықтау үшін тексеріледіконтейнер және оның кейбір қасиеттерін анықтаңыз Бұл жаңа енгізу процесіне де қатысты.

Мақсатты процеске қосылу туралы шешім қабылдаудың негізгі критерийлері succeeds - мақсаттың аттар кеңістігінде файлдың болуы, процесс /run/firejail/mnt/join ішінде табылды. Бұл тексеру f`қосуға_дайын()` функциясы. Файл l арқылы ашылады`O_RDONLY|O_CLOEXEC` жалаушалары және `fstat()` ізі нәтижесі болуы керек келесі талаптарға сай болуы керек:

– файл қалыпты файл болуы керек.
– файл 0 пайдаланушы идентификаторына тиесілі болуы керек (бастапқы пайдаланушыдан көрініп тұрғандай
аттар кеңістігі).
– файл өлшемі 1 байт болуы керек.

Нәтижесінде, «firejail --join» арқылы қосылған процесс аттар кеңістігінде аяқталады пайдаланушының бастапқы пайдаланушы идентификаторы өзгермеген артықшылықтармен, бірақ шабуылдаушы толығымен басқаратын басқа орнату нүктесі кеңістігінде.

Алынған «қосылған» қабық енді бастапқы пайдаланушыда өмір сүреді
аттар кеңістігі әлі де бастапқы қалыпты пайдаланушы артықшылықтарын сақтайды орнату аттар кеңістігі шабуылдаушы басқаратын кеңістік болады. ретінде
nonewprivs конфигурациясы қолданылмаған, шабуылдаушы енді жасай алады
осы орнату аттар кеңістігінде setuid-root бағдарламаларын іске қосыңыз

Атап айтқанда, шабуылдаушы өзі жасаған орнату нүктесінің кеңістігінде setuid-root бағдарламаларын іске қоса алады, бұл оған, мысалы, файл иерархиясындағы /etc/sudoers конфигурациясын немесе PAM параметрлерін өзгертуге және пәрмендерді түбір ретінде іске қосу мүмкіндігін алуға мүмкіндік береді. sudo немесе оның утилиталарын пайдалану.

Соңында, firejail утилитасы орнатылған openSUSE, Debian, Arch, Gentoo және Fedora-ның ағымдағы нұсқаларында сыналған функционалды эксплойт әзірленгенін айта кеткен жөн.

Мәселе firejail 0.9.70 нұсқасында түзетілді. Қауіпсіздікті түзету ретінде конфигурацияны (/etc/firejail/firejail.config) "қосылу жоқ" және "force-nonewprivs иә" күйіне орнатуға болады.

Finalmente егер сіз бұл туралы көбірек білгіңіз келсе, егжей-тегжейін тексере аласыз келесі сілтеме.


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады.

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.