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

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

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

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

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

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

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

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster