Кіріспе

Компьютерлік бағдарламалау және компьютерлік қауіпсіздікте, артықшылықтарды бөлу – ең аз артықшылық принципін іске асыруға арналған бағдарламалық тәсілдердің бірі. Артықшылықтарды бөлу арқылы бағдарлама белгілі бір міндетті орындау үшін қажетті нақты артықшылықтармен шектелген бөліктерге бөлінеді. Бұл компьютерлік қауіпсіздіктің осал тұстарын пайдаланудың ықтимал зардаптарын азайту үшін қолданылады. Артықшылықтарды бөлуді іске асырудың әдеттегі тәсілі – компьютерлік бағдарламаны екі процеске бөлу. Бағдарламаның негізгі бөлігі артықшылықтарынан айырылады, ал кіші бөлігі белгілі бір міндетті орындау үшін артықшылықтарын сақтайды. Екі бөлік содан кейін сокет жұбы арқылы байланысады. Осылайша, үлкен бағдарламаға қарсы жасалған кез келген сәтті шабуыл, екі бағдарлама артықшылықты операцияларды орындауға қабілетті болғанымен, минималды қолжетімділікке ие болады. Артықшылықтарды бөлу дәстүрлі түрде POSIX стандартында көрсетілген setuid(2)/setgid(2) және байланысты жүйелік шақыруларды пайдалана отырып, нақты пайдаланушы ID/топ ID-ін тиімді пайдаланушы ID/топ ID-нен ажырату арқылы жүзеге асырылады. Егер олар дұрыс орналаспаса, бұл желіге кеңінен енуге мүмкіндік береді. Көптеген желілік қызметтерге шикі сокетті немесе белгілі порттар диапазонындағы интернет сокетін ашу сияқты артықшылықты операцияларды орындау қажет болуы мүмкін. Әкімшілік құралдар да орындалу кезінде нақты артықшылықтарды талап етуі мүмкін. Мұндай бағдарламалық жасақтама, маңызды бөлім аяқталғаннан кейін артықшылықтарды толығымен алып тастап, одан кейін оны орындау үшін пайдаланылатын пайдаланушыны артықшылықтары жоқ тіркелгіге ауыстыруға бейім. Бұл әрекет Unix сияқты операциялық жүйелерде root құқықтарынан бас тарту деп белгілі. Артықшылықтары жоқ бөлік әдетте "nobody" пайдаланушысы немесе оған балама жеке пайдаланушы тіркелгісі арқылы іске қосылады. Артықшылықтарды бөлуді бір бағдарламаның функционалдығын бірнеше кіші бағдарламаларға бөлу арқылы, содан кейін файлдық жүйе рұқсаттарын пайдалана отырып, кеңейтілген артықшылықтарды нақты бөліктерге беру арқылы да жасауға болады. Осылайша, әртүрлі бағдарламалар операциялық жүйе арқылы бір-бірімен байланысады, сондықтан ықтимал осалдықтардың ауқымы шектеледі (өйткені артықшылықтары аз бөлігіндегі апатты пайдалануға болмайды, тек қызметтен бас тарту шабуылына себеп болады). Артықшылықтарды бөлу – OpenBSD қауіпсіздігінің маңызды ерекшеліктерінің бірі. Postfix іске асырылуы артықшылықтарды толық бөлуді іске асыруға бағытталған. Артықшылықтарды бөлу және қауіпсіздік принципін ескере отырып жасалған тағы бір электрондық пошта сервері – Dovecot. Solaris артықшылықтарды бөлуге арналған функциялар жиынтығын ұсынады.