12.07.2015 Views

img - Xakep Online

img - Xakep Online

img - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Выбор режима работы SELinuxна тождество пользователя, игнорируя другую информацию,например, о роли пользователя в системе, функции иуровне доверия конкретной программы и необходимости вцелостности данных. Каждая учетная запись имеет полнуюсвободу действий в пределах своих полномочий.Как ты понимаешь, развернуться с DAC особенно негде:все или ничего; винда — и та дает больше возможностей понастройке доступа к объектам. Поэтому сегодня для Linuxдоступны решения, базирующиеся на совершенно другоймодели защиты — MAC (Mandatory Access Control, принудительныйконтроль доступа). Они позволяют определитьполитики безопасности над всеми процессами и объектами,решение о доступе принимается на основе большего количестваинформации об объекте, а не только основываясь натождестве пользователя. Причем MAC не отменяет, а дополняетDAC, так как сначала проверяются права Unix, и, еслиони запрещают доступ, то дальнейшая проверка просто непроизводится. Проверка прав выполняется только в томслучае, если стандартные права Unix разрешают доступ кобъекту. Любой объект помещается в некую виртуальную песочницу,которая позволяет приложению выполнять толькострого регламентированные задачи. Причем при описаниидоступа к объекту конкретные реализации могут придерживатьсяразных принципов: очень строгие правила по типу«что не разрешено явно — запрещено» и «минимальнонеобходимые привилегии». Например, можно настроитьсистему так, что веб-сервер будет слушать соединения настрого определенном порту, сможет читать файлы тольков указанном каталоге и так далее. То есть описать поведениесистемы в ее нормальном состоянии, создав жесткийкаркас, за который нельзя будет выскочить. Это позволяетвыполнять программы с правами обычного пользователя,а доступ к необходимым ресурсам указывать при помощиполитик. В дистрибутивах Linux используются два решения:SELinux в RedHat и клонах, а также AppArmor в Ubuntu.В ядре версии 2.6.30 появился код еще одного проекта —TOMOYO Linux (tomoyo.sf.jp), которому пророчат светлоебудущее, но пока по умолчанию он нигде не используется.Давай рассмотрим их особенности, а также плюсы и минусы.СВЕРХЗАЩИЩЕННЫЙ SELINUXПроект SELinux (Security Enhanced Linux, selinuxproject.org) зародился в недрах U.S. NSA (National Security Agency),хмурые неразговорчивые дядьки которого поставили своейцелью допилить Linux таким образом, чтобы его можно былоспокойно использовать не где-нибудь, а в правительственныхсистемах. Анонсирован общественности в 2000 году,затем разработчики справедливо решили: зачем что-тоделать самим, если в интернете есть много желающих? ВГрафический инструмент SELinux Administrationрезультате сегодня проект развивается под лицензией GNUGPL и уже включен в состав ядра ветки 2.6.х, также выполненаадаптация для FreeBSD и OpenSolaris.Реализация MAC требует четкого описания правил, чтоможет привести к образованию большого их количества.Поэтому в SELinux использована концепция роль-основанногоконтроля доступа Role-Based Access Control (RBAC), вкоторой определяются роли и доступ пользователей. Механизмзащиты в SELinux носит название Type Enforcement(TE) и позволяет закрепить за каждым процессом и файлом,которые необходимо контролировать, некую метку. Еслипроцесс, запущенный от имени администратора, скомпрометирован,то ущерб, который может быть причиненсистеме, ограничен только тем, к чему он может обращаться,согласуясь с установленными для него правилами (а ониописывают поведение очень тонко). Также в SELinux реализованамногоуровневая система обеспечения безопасности(MLS, Multi-Level Security model), но ее задействуюттолько в особых случаях, например, в правительственныхмногопользовательских системах, требующих чрезвычайновысокого уровня защиты. Когда в процессе работы системысубъект пытается оказать некое действие на объект, SELinuxпринимает решение о допустимости указанного действия,основываясь на контекстах безопасности объекта исубъекта. Субъект — это процессы, выполняемые от именизапустившего их пользователя. Объект — элементы файловойсистемы (файлы, каталоги, ссылки, сокеты и пр.) илидругие процессы, над которыми выполняются действия. Итеперь самое важное, что отличает SELinux от других решений,описанных далее — все важные защитные атрибутысохраняются в контекстах безопасности. Поэтому файловаясистема должна уметь хранить дополнительные атрибуты, исами атрибуты нужно как-то задать. Современные ядра всеобеспечивают, но при самостоятельной пересборке ядране забудь активировать параметр «Extended attributes» ввыбранной файловой системе.Атрибуты устанавливаются при инициализации системы.Отсюда делаем вывод, что объект уже должен существоватьна момент установки атрибутов. Сам атрибут включаетидентификатор владельца, роль и тип объекта. Причемидентификатор SELinux (создается командой semanage),хотя и может совпадать в номере с UID пользователя Linux(uid), но это две разные вещи. Не забываем еще об одномважном отличии — SELinux оперирует ролями, поэтомунесколько учетных записей Linux могут иметь одну и ту жеучетную запись SELinux. И главное — выполнение командыHTTP://WWWlinks• Сайт проекта SELinux— selinuxproject.org• Сайт проектаTOMOYO Linux —tomoyo.sf.jpINFOinfoКаждое приложениедолжно иметь доступтолько к тем файлами каталогам, которыедействительнонеобходимы для егоработы. И не болеетого.DVDdvdНа прилагаемомк журналу диске тынайдешь видеороликк этой статьеXÀÊÅÐ 08 /139/ 10 089

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!