FreeBSD-ի համար մշակվում է մեկուսացման մեխանիզմ, որը նման է plegde-ին և unveil-ին

FreeBSD-ի համար առաջարկվում է հավելվածների մեկուսացման մեխանիզմի ներդրում, որը հիշեցնում է OpenBSD նախագծի կողմից մշակված plegde և unveil համակարգի կանչերը: Plegde-ում մեկուսացումը ձեռք է բերվում՝ արգելելով մուտքը դեպի համակարգային զանգեր, որոնք չեն օգտագործվում հավելվածում, իսկ բացահայտման դեպքում՝ ընտրովի բացելով մուտքը միայն առանձին ֆայլերի ուղիների, որոնց հետ հավելվածը կարող է աշխատել: Հավելվածի համար ձևավորվում է համակարգային զանգերի և ֆայլերի ուղիների մի տեսակ սպիտակ ցուցակ, իսկ մնացած բոլոր զանգերն ու ուղիներն արգելված են:

FreeBSD-ի համար մշակվող plegde-ի և unveil-ի անալոգի տարբերությունը կապված է լրացուցիչ շերտի տրամադրման հետ, որը թույլ է տալիս մեկուսացնել հավելվածները՝ առանց դրանց կոդում փոփոխություններ կատարելու կամ նվազագույն փոփոխությունների: Հիշեցնենք, որ OpenBSD-ում plegde-ը և unveil-ն ուղղված են հիմքում ընկած միջավայրի հետ սերտ ինտեգրմանը և օգտագործվում են յուրաքանչյուր հավելվածի կոդի վրա հատուկ ծանոթագրություններ ավելացնելով: Պաշտպանության կազմակերպումը պարզեցնելու համար զտիչները թույլ են տալիս զերծ մնալ մանրամասներից առանձին համակարգային զանգերի մակարդակով և շահարկել համակարգային զանգերի դասերը (մուտք/ելք, ֆայլեր կարդալ, ֆայլեր գրել, վարդակներ, ioctl, sysctl, գործընթացի գործարկում և այլն): . Մուտքի սահմանափակման գործառույթները կարող են կանչվել հավելվածի կոդում, քանի որ կատարվում են որոշակի գործողություններ, օրինակ, մուտքը վարդակներ և ֆայլեր կարող է մերժվել անհրաժեշտ ֆայլերը բացելուց և ցանցային կապ հաստատելուց հետո:

FreeBSD-ի համար plegde-ի և unveil-ի պորտի հեղինակը մտադիր է տրամադրել կամայական հավելվածները մեկուսացնելու հնարավորություն, ինչի համար առաջարկվում է վարագույրի կոմունալ ծրագիրը, որը թույլ է տալիս կիրառել առանձին ֆայլով սահմանված կանոններ հավելվածների համար: Առաջարկվող կոնֆիգուրացիան ներառում է հիմնական կարգավորումներով ֆայլ, որը սահմանում է համակարգային զանգերի դասեր և որոշակի հավելվածներին հատուկ ֆայլերի երթուղիներ (ձայնի հետ աշխատանք, ցանցային փոխազդեցություն, գրանցում և այլն), ինչպես նաև հատուկ հավելվածների համար մուտքի կանոններով ֆայլ:

Վարագույրի օգտակար ծրագիրը կարող է օգտագործվել չփոփոխված կոմունալ ծրագրերի, սերվերի գործընթացների, գրաֆիկական հավելվածների և նույնիսկ աշխատասեղանի ամբողջ աշխատաշրջանները մեկուսացնելու համար: Վարագույրը կարող է օգտագործվել Jail և Capsicum ենթահամակարգերի կողմից տրամադրվող մեկուսացման մեխանիզմների հետ միասին: Հնարավոր է նաև կազմակերպել nested մեկուսացում, երբ գործարկված հավելվածները ժառանգում են մայր հավելվածի համար սահմանված կանոնները՝ լրացնելով դրանք անհատական ​​սահմանափակումներով։ Միջուկի որոշ գործողություններ (վրիպազերծման հարմարություններ, POSIX/SysV IPC, PTY-ներ) լրացուցիչ պաշտպանված են խոչընդոտ մեխանիզմով, որը թույլ չի տալիս մուտք գործել միջուկի օբյեկտներ, որոնք չեն ստեղծվել ընթացիկ կամ հիմնական գործընթացի միջոցով:

Գործընթացը կարող է կարգավորել իր մեկուսացումը` զանգահարելով curtainctl կամ օգտագործելով libcurtain-ի plegde() և unveil() ֆունկցիաները, որոնք նման են OpenBSD-ում հայտնաբերվածներին: Հավելվածի աշխատանքի ընթացքում կողպեքներին հետևելու համար տրամադրվում է sysctl «security.curtain.log_level»: X11 և Wayland արձանագրություններին հասանելիությունը միացված է առանձին՝ նշելով «-X»/»-Y» և «-W» տարբերակները վարագույրի գործարկման ժամանակ, սակայն գրաֆիկական հավելվածների աջակցությունը դեռ բավականաչափ կայունացված չէ և ունի մի շարք չլուծված խնդիրներ ( Խնդիրները հիմնականում առաջանում են X11-ի օգտագործման ժամանակ, իսկ Wayland-ի աջակցությունը շատ ավելի լավ է իրականացվում): Օգտագործողները կարող են ավելացնել լրացուցիչ սահմանափակումներ՝ ստեղծելով տեղական կանոնների ֆայլեր (~/.curtain.conf): Օրինակ՝ Firfox-ից միայն ~/Downloads/ գրացուցակում գրելը թույլատրելու համար կարող եք ավելացնել «[firefox]» բաժինը «~/Downloads/: rw +» կանոնով։

Իրականացումը ներառում է mac_curtain միջուկի մոդուլը պարտադիր մուտքի վերահսկման համար (MAC, Պարտադիր մուտքի վերահսկում), FreeBSD միջուկի համար նախատեսված կարկատանների մի շարք՝ անհրաժեշտ կարգավորիչներով և զտիչներով, libcurtain գրադարան՝ հավելվածներում plegde և unveil ֆունկցիաները օգտագործելու համար, վարագույրի կոմունալ ծրագիրը, կազմաձևման ֆայլերի օրինակներ, օգտագործողի տարածքում որոշ ծրագրերի փորձարկումներ և կարկատակներ (օրինակ՝ $TMPDIR-ի օգտագործման համար՝ աշխատանքը ժամանակավոր ֆայլերի հետ միավորելու համար): Հնարավորության դեպքում հեղինակը մտադիր է նվազագույնի հասցնել փոփոխությունների քանակը, որոնք պահանջում են միջուկի և հավելվածների կարկատներ:

Source: opennet.ru

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