Բացահայտվել է Linux միջուկի tty ենթահամակարգում խոցելիության օգտագործման տեխնիկան

Google Project Zero թիմի հետազոտողները հրապարակել են Linux միջուկի tty ենթահամակարգից TIOCSPGRP ioctl մշակիչի ներդրման խոցելիությունը (CVE-2020-29661) օգտագործելու մեթոդ, ինչպես նաև մանրամասն ուսումնասիրել են պաշտպանության մեխանիզմները, որոնք կարող են արգելափակել այդպիսին: խոցելիություններ.

Խնդիր առաջացնող սխալը շտկվել է Linux միջուկում անցյալ տարվա դեկտեմբերի 3-ին: Խնդիրն ի հայտ է գալիս միջուկներում մինչև 5.9.13 տարբերակ, սակայն բաշխումների մեծ մասը շտկել է խնդիրը անցյալ տարի առաջարկված միջուկային փաթեթների թարմացումներում (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch): Նմանատիպ խոցելիություն (CVE-2020-29660) միաժամանակ հայտնաբերվել է TIOCGSID ioctl զանգի իրականացման ժամանակ, սակայն այն նույնպես արդեն շտկվել է ամենուր:

Խնդիրն առաջացել է կողպեքների տեղադրման ժամանակ սխալի պատճառով, որը հանգեցնում է վարորդների/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-ը:

Source: opennet.ru

Добавить комментарий