Linux қауіпсіздік модульдері - Linux Security Modules

Linux қауіпсіздік модульдері (LSM) Бұл жақтау мүмкіндік береді Linux ядросы алуан түрлілігін қолдау компьютердің қауіпсіздік модельдері қауіпсіздікті жүзеге асырудың оңтайлылығынан аулақ болу керек. Рамкаға сәйкес лицензияланған GNU жалпыға ортақ лицензиясы және Linux 2.6 бастап Linux ядросының стандартты бөлігі болып табылады. AppArmor, SELinux, Smack, және TOMOYO Linux ресми ядродағы қазіргі уақытта қабылданған модульдер.

Дизайн

LSM а-ны сәтті жүзеге асыру үшін барлық қажеттіліктерді қамтамасыз етуге арналған міндетті қол жетімділікті бақылау модулі, Linux ядросына ең аз өзгерістер енгізе отырып. LSM жақындауға жол бермейді жүйелік шақырудың интерпозициясы ретінде қолданылған Systrace өйткені ол масштабталмайды мультипроцессорлы ядроларға жатады және бағынады TOCTTOU (нәсілдік) шабуылдар. Оның орнына LSM кірістіреді «ілгектер «(модульге көтеріледі) қолданушы деңгейіндегі жүйелік шақыру ядроның әр нүктесінде инодтар мен тапсырмаларды басқару блоктары сияқты маңызды ішкі ядро ​​объектісіне қол жеткізуге әкеледі.

Жобаның мәселені шешу үшін ауқымы аз қатынасты басқару негізгі ядроға үлкен және күрделі өзгертулерді енгізбеу үшін. Бұл генералға арналмаған »ілмек«немесе»жоғары қоңырау«механизм де, ол да қолдамайды Операциялық жүйе деңгейіндегі виртуалдандыру.

LSM кіруді басқару мақсаты проблемамен өте тығыз байланысты жүйелік аудит, бірақ әр түрлі. Аудиторлық қол жеткізуге жасалған әр әрекеттің тіркелуін талап етеді. LSM мұны жеткізе алмайды, өйткені ядроның жағдайларын анықтау үшін бұл көптеген ілгектерді қажет етеді «қысқа тұйықталу«сәтсіздікке ұшыраған жүйелік қоңыраулар және маңызды объектілерге жақындамас бұрын қате кодын қайтарады

LSM дизайны қағазда сипатталған Linux қауіпсіздік модульдері: Linux ядросына арналған жалпы қауіпсіздік[1] USENIX Security 2002 ұсынылған.[2] Сол конференцияда қағаз болды Авторизация ілгегін орналастырудың статикалық талдауы үшін CQUAL қолдану[3] барлық қажетті ілгектердің Linux ядросына енгізілгендігін тексеру үшін ядро ​​кодының автоматты статикалық талдауын зерттеді.

Бала асырап алу

Тарих

2001 жылғы Linux ядролық саммитінде NSA ұсынды SELinux Linux 2.5-ке қосылыңыз.[4] Линус Торвалдс сол уақытта SELinux-тен бас тартты, өйткені ол дамуда көптеген түрлі қауіпсіздік жобалары бар екенін және олардың барлығы бір-бірінен ерекшеленетіндіктен, қауіпсіздік қауымдастығы түпкілікті қауіпсіздік моделі бойынша әлі де ортақ пікірге келе алмады. Оның орнына Линус қауіпсіздік қоғамдастығына «оны модуль етіңіз» деп тапсырды.

Жауапқа, Криспин Кован ұсынды[5] LSM: Linux ядросының интерфейсі, Linux ядросының ішінен a дейін «ілгектерді» (көтеруді) қамтамасыз етеді. жүктелетін модуль модульге қол жетімділікті бақылауды күшейтуге мүмкіндік беру үшін. Келесі екі жыл ішінде LSM дамуын LSM қауымдастығы жүргізді, оның ішінен айтарлықтай үлес қосылды Immunix корпорациясы, NSA, Макафи, IBM, Кремний графикасы және көптеген тәуелсіз салымшылар. LSM ақыр соңында Linux ядросының негізгі ағымына қабылданды және Linux 2.6 стандартты бөлігі ретінде 2003 жылдың желтоқсанында енгізілді.

2006 жылы кейбір ядроларды әзірлеушілер SELinux негізгі Linux ядросының бастапқы ағашына енгізілген LSM модулі болып табылады. Егер кеңінен қолданылатын LSM модулі бір ғана болуы керек болса, ол негізделген болатын, демек LSM жанама мәні қажет емес, ал LSM жойылып, оның орнына SELinux керек. Дегенмен, негізгі ядролардың сыртында басқа LSM модульдері бар (AppArmor, Linux-ке кіруді анықтау жүйесі, FireFlier, CIPSO, Multi ADM және т.б.), сондықтан бұл дәлел екі нәтижеге әкелді: 1. осы модульдерді жасаушылар өз модульдерін ағынды етуге күш жұмсай бастады және 2. 2006 ж. Kernel Summit, Линус тағы бір рет LSM қауіпсіздіктің ең жақсы моделі болып табылатын төрелік жасағысы келмейтіндіктен қалады деп сендірді.

LSM қосымша қауіпсіздік модульдерінен қалуы мүмкін Smack (2.6.25 нұсқасы), TOMOYO Linux (2.6.30 нұсқасы, 2009 ж. маусым) және AppArmor (2.6.36 нұсқасы) негізгі сызық ядросында қабылданды.

Қабылдау

Кейбір Linux ядроларының әзірлеушілері LSM-ді әртүрлі себептермен ұнатпайды. LSM мүмкіндігінше аз шығындар енгізуге тырысады, әсіресе модуль жүктелмеген жағдайда, бірақ бұл шығын нөлге тең емес, ал кейбір Linux әзірлеушілері бұл шығынға қарсы. LSM тек қол жетімділікті басқаруға арналған, бірақ іс жүзінде адамдарға LSM-ді басқа себептермен пайдалануға жол бермейді, сондықтан Linux ядроларының кейбір жасаушылары оны басқа мақсаттарда пайдалану арқылы «теріс пайдалану» мүмкін екенін ұнатпайды, әсіресе егер мақсат Linux ядросын айналып өту GPL Linux ядросының жұмысын кеңейтуге арналған меншік модулі бар лицензия.

Кейбір қауіпсіздік әзірлеушілері LSM-ді ұнатпайды. Grsecurity авторы LSM-ді ұнатпайды[6] өзінің тарихына байланысты және LSM өзінің барлық белгілерін экспорттайтындықтан, зиянды модульдерді енгізуге ықпал етеді (руткиттер ), сондай-ақ қауіпсіздік модульдері. Авторы RSBAC LSM ұнатпайды[7] өйткені ол RSBAC қажеттіліктеріне қатысты толық емес. Атап айтқанда, RSBAC авторы: «LSM тек қосымша, шектеулі қол жеткізуді басқару туралы. Алайда, RSBAC жүйесі көптеген қосымша функционалдылықтарды ұсынады, мысалы, сілтемелерді қайта бағыттау, safe_delete, Linux DAC-ті ішінара өшіру. Мұның бәріне жамау керек. бөлек патчтағы ядро ​​функциясына. «. The Дазуко жоба дәлелдеді[8] LSM API-ні бағыттау жылжымалы мақсат болып табылады, өйткені ол әрбір ядро ​​шыққан сайын өзгеріп, қосымша техникалық қызметке әкеледі. Басқа әзірлеушілер LSM модульдерінің қабаттасқанын қалайды, мысалы. Yama LSM құрастырушысы.[9]

Әдебиеттер тізімі

  1. ^ «Linux қауіпсіздік модульдері: Linux ядросына арналған жалпы қауіпсіздік». 2002. Алынған 2007-02-03.
  2. ^ «11-ші USENIX қауіпсіздік симпозиумы». 2002. Алынған 2007-02-03.
  3. ^ «Ілгекті орналастырудың авторизациясын статикалық талдау үшін CQUAL қолдану». 2002. Алынған 2007-02-03.
  4. ^ Стивен Смэлли, Тимоти Фрейзер, Крис Вэнс. «Linux қауіпсіздік модульдері: Linux үшін жалпы қауіпсіздік ілгектері». Алынған 2015-10-26.CS1 maint: авторлар параметрін қолданады (сілтеме)
  5. ^ Криспин Кован (2001-04-11). «Linux қауіпсіздік модулінің интерфейсі». linux-ядро тарату тізімі. Алынған 2007-02-03.
  6. ^ «қауіпсіздік». қауіпсіздік. Алынған 2007-02-03.
  7. ^ «RSBAC және LSM». RSBAC. Алынған 2007-02-03.
  8. ^ «дазуко». дазуко. Алынған 2017-12-26.
  9. ^ Edge, Jake (23 маусым 2010). «LSM қабаттасуы (тағы)». www.lwn.net. Алынған 28 мамыр 2015.

Сыртқы сілтемелер