company_banner

Часто задаваемые вопросы по SELinux (FAQ)

Автор оригинала: National Security Agency
  • Перевод

Всем привет! Специально для студентов курса "Безопасность Linux" мы подготовили перевод официального FAQ проекта SELinux. Нам кажется, что данный перевод может быть полезен не только студентам, поэтому делимся им с вами.



Мы попытались ответить на некоторые наиболее часто задаваемые вопросы о проекте SELinux. В настоящее время вопросы разделены на две основные категории. Все вопросы и ответы приведены на странице FAQ.


Обзор


Обзор


  1. Что такое Linux с улучшенной безопасностью?
    Linux с улучшенной безопасностью (SELinux — Security-enhanced Linux) является эталонной реализацией архитектуры безопасности Flask для гибкого принудительного контроля доступа. Он был создан для демонстрации полезности гибких механизмов управления принудительным доступом и того, как такие механизмы могут быть добавлены в операционную систему. Архитектура Flask впоследствии была интегрирована в Linux и портирована на несколько других систем, включая операционную систему Solaris, операционную систему FreeBSD и ядро Darwin, порождая широкий спектр связанной с этим работы. Архитектура Flask обеспечивает общую поддержку для применения многих видов принудительных политик контроля доступа, в том числе основанных на концепциях Type Enforcement, Role-based Access Control и Multi-level Security.
  2. Что дает Linux с улучшенной безопасностью, чего не может дать стандартный Linux?
    Ядро Linux с улучшенной безопасностью устанавливает политики принудительного контроля доступа, которые ограничивают пользовательские программы и системные серверы минимальным набором привилегий, которые им требуются для выполнения своей работы. При таком ограничении способность этих пользовательских программ и системных демонов причинять вред в случае компрометации (например, из-за переполнения буфера или неправильной конфигурации) уменьшается или исключается. Этот механизм ограничения работает независимо от традиционных механизмов контроля доступа Linux. Он не имеет понятия суперпользователя «root» и не разделяет общеизвестные недостатки традиционных механизмов защиты Linux (например, зависимость от двоичных файлов setuid/setgid).
    Защищенность немодифицированной системы Linux зависит от корректности ядра, всех привилегированных приложений и каждой их конфигурации. Проблема в любой из этих областей может привести к компрометации всей системы. Напротив, защищенность модифицированной системы, основанной на ядре Linux с улучшенной безопасностью, зависит, прежде всего, от правильности ядра и конфигурации его политики безопасности. Хотя проблемы с правильностью или конфигурацией приложений могут позволить ограниченную компрометацию отдельных пользовательских программ и системных демонов, они не представляют угрозы безопасности для других пользовательских программ и системных демонов или безопасности системы в целом.
  3. Для чего она годится?
    Новые функции Linux с улучшенной безопасностью предназначены для обеспечения разделения информации на основе требований конфиденциальности и целостности. Они предназначены для предотвращения процессов чтения данных и программ, подделки данных и программ, обхода механизмов безопасности приложений, выполнения ненадежных программ или вмешательства в другие процессы в нарушение политики безопасности системы. Они также помогают ограничить потенциальный ущерб, который может быть нанесен вредоносными или некорректными программами. Также они должны быть полезны для обеспечения возможности использования одной системы пользователями с различными разрешениями безопасности для доступа к различным видам информации с различными требованиями безопасности без ущерба для этих требований.
  4. Как мне получить копию?
    Многие дистрибутивы Linux включают поддержку SELinux, уже встроенную в качестве функции по умолчанию или в качестве дополнительного пакета. Основной код юзерлэнда SELinux доступен на GitHub. Конечные пользователи обычно должны использовать пакеты, предоставляемые их дистрибутивом.
  5. Что входит в ваш релиз?
    Релиз NSA SELinux включает основной код юзерлэнда SELinux. Поддержка SELinux уже включена в основное ядро Linux 2.6, доступное на kernel.org. Основной код юзерлэнда SELinux состоит из библиотеки для манипулирования двоичной политикой (libsepol), компилятора политики (checkpolicy), библиотеки для приложений, обеспечивающих безопасность (libselinux), библиотеки для инструментов управления политикой (libsemanage) и нескольких связанных с политиками утилит (policycoreutils).
    В дополнение к ядру с поддержкой SELinux и основному юзерлэнд-коду вам понадобится политика и некоторые исправленные под SELinux пакеты юзерспейса для использования SELinux. Политику можно получить из SELinux reference policy project.
  6. Могу ли я установить Linux с усиленной защитой на существующую систему Linux?
    Да, вы можете установить только модификации SELinux на существующую систему Linux или же вы можете установить дистрибутив Linux, который уже включает поддержку SELinux. SELinux состоит из ядра Linux с поддержкой SELinux, основного набора библиотек и утилит, некоторых модифицированных пользовательских пакетов и конфигурации политики. Чтобы установить его в существующую систему Linux, в которой отсутствует поддержка SELinux, вы должны иметь возможность скомпилировать программное обеспечение, а также иметь другие необходимые системные пакеты. Если ваш дистрибутив Linux уже включает поддержку SELinux, вам не нужно собирать или устанавливать релиз NSA SELinux.
  7. Насколько совместим Linux с улучшенной безопасностью с немодифицированным Linux?
    Linux с улучшенной безопасностью обеспечивает двоичную совместимость с существующими приложениями Linux и с существующими модулями ядра Linux, но некоторые модули ядра могут потребовать модификации для правильного взаимодействия с SELinux. Эти две категории совместимости подробно обсуждаются ниже:
    • Совместимость приложений
      SELinux обеспечивает бинарную совместимость с существующими приложениями. Мы расширили структуры данных ядра, включив в них новые атрибуты защиты, и добавили новые вызовы API для приложений, обеспечивающих безопасность. Однако мы не изменили никаких структур данных, видимых для приложений, и не изменили интерфейс любых существующих системных вызовов, поэтому существующие приложения могут работать без изменений, если политика безопасности разрешает их работу.
    • Совместимость модулей ядра
      Первоначально SELinux предоставлял исходную совместимость только для существующих модулей ядра; необходимо было перекомпилировать такие модули по измененным заголовкам ядра, чтобы подхватить новые поля защиты, добавленные в структуры данных ядра. Поскольку LSM и SELinux теперь интегрированы в основное ядро Linux 2.6, SELinux теперь обеспечивает двоичную совместимость с существующими модулями ядра. Однако некоторые модули ядра могут плохо взаимодействовать с SELinux без изменений. Например, если модуль ядра непосредственно выделяет и устанавливает объект ядра без использования обычных функций инициализации, то у объекта ядра может отсутствовать надлежащая информация о безопасности. У некоторых модулей ядра также может отсутствовать надлежащий контроль безопасности их операций; любые существующие обращения к функциям ядра или функциям разрешений также будут запускать проверки разрешений SELinux, но для обеспечения соблюдения политик MAC могут потребоваться более детальные или дополнительные элементы управления.
      Linux с улучшенной безопасностью не должен создавать проблем взаимодействия с обычными системами Linux, если все необходимые операции разрешены конфигурацией политики безопасности.
  8. Каковы цели примера конфигурации политики безопасности?
    На высоком уровне цель состоит в том, чтобы продемонстрировать гибкость и защищенность принудительных средств управления доступом и предоставить простую работающую систему с минимальными изменениями в приложениях. На более низком уровне политика имеет ряд целей, описанных в документации по политике. Эти цели включают управление необработанным доступом к данным, защиту целостности ядра, системного программного обеспечения, информации о конфигурации системы и системных логов, ограничение потенциального ущерба, который может быть вызван использованием уязвимости в процессе, который требует привилегий, защиты привилегированных процессов от выполнение вредоносного кода, защита роли администратора и домена от входа без аутентификации пользователя, предотвращение вмешательства обычных пользовательских процессов в системные процессы или процессы администратора, а также защита пользователей и администраторов от использования уязвимостей в их браузере вредоносным мобильным кодом.
  9. Почему Linux был выбран в качестве базовой платформы?
    Linux был выбран в качестве платформы для первоначальной эталонной реализации этой работы из-за его растущего успеха и открытой среды разработки. Linux предоставляет отличную возможность продемонстрировать, что эта функциональность может быть успешной в главной операционной системе и, в то же время, способствовать защищенности широко используемой системы. Платформа Linux также предоставляет отличную возможность для этой работы получить максимально широкий обзор и, возможно, послужит основой для дополнительных исследований безопасности другими энтузиастами.
  10. Почему вы проделали эту работу?
    Национальная исследовательская лаборатория по обеспечению информационной безопасности Агентства национальной безопасности отвечает за исследования и передовые разработки технологий, необходимых для того, чтобы АНБ могло предоставлять решения, продукты и услуги для обеспечения информационной безопасности для информационных инфраструктур, критически важных для интересов национальной безопасности США.
    Создание жизнеспособной безопасной операционной системы остается важнейшей исследовательской задачей. Нашей целью является создание эффективной архитектуры, обеспечивающей необходимую поддержку защищенности, выполняющей программы в значительной степени прозрачно для пользователя и привлекательной для поставщиков. Мы считаем, что важным шагом в достижении этой цели является демонстрация того, как механизмы управления принудительным доступом могут быть успешно интегрированы в основную операционную систему.
  11. Как это связано с предыдущими исследованиями ОС АНБ?
    Исследователи из Национальной исследовательской лаборатории по обеспечению достоверности информации АНБ совместно с Secure Computing Corporation (SCC) разработали мощную и гибкую архитектуру принудительного контроля доступа на основе Type Enforcement, механизма, впервые разработанного для системы LOCK. NSA и SCC разработали два прототипа архитектуры на основе Mach: DTMach и DTOS (http://www.cs.utah.edu/flux/dtos/). NSA и SCC затем работали с исследовательской группой Flux из Университета Юты, чтобы перенести архитектуру в исследовательскую операционную систему Fluke. Во время этого переноса архитектура была доработана, чтобы обеспечить лучшую поддержку динамических политик безопасности. Эта улучшенная архитектура была названа Flask (http://www.cs.utah.edu/flux/flask/). Теперь NSA интегрировало архитектуру Flask в операционную систему Linux, чтобы передать эту технологию более широкому сообществу разработчиков и пользователей.
  12. Является ли Linux с улучшенной безопасностью надежной операционной системой?
    Фраза «Доверенная операционная система», как правило, относится к операционной системе, которая обеспечивает достаточную поддержку многоуровневой защиты и подтверждения корректности, чтобы соответствовать определенному набору государственных требований. Linux с улучшенной безопасностью включает полезные идеи из этих систем, но фокусируется на принудительном контроле доступа. Первоначальная задача разработки Linux с улучшенной безопасностью заключалась в создании полезной функциональности, обеспечивающей ощутимые преимущества защиты в широком спектре реальных сред для демонстрации этой технологии. SELinux сам по себе не является доверенной операционной системой, но предоставляет критически важную функцию защиты — принудительный контроль доступа — необходимый для доверенной операционной системы. SELinux был интегрирован в дистрибутивы Linux, которые были оценены в соответствии с Labeled Security Protection Profile. Информацию о проверенных и проверяемых продуктах можно найти по адресу http://niap-ccevs.org/.
  13. Она действительно защищена?
    Понятие защищенной системы включает в себя множество атрибутов (например, физическая безопасность, безопасность персонала и т. д.), и Linux с повышенной безопасностью обращается только к очень узкому набору этих атрибутов (то есть к элементам управления принудительным доступом в операционной системе). Иными словами, «защищенная система» означает достаточно защищенную, чтобы защитить некоторую информацию в реальном мире от реального противника, от которого предостерегается владелец и/или пользователь информации. Linux с улучшенной безопасностью предназначен только для демонстрации обязательных элементов управления в современной операционной системе, такой как Linux, и поэтому сам по себе вряд ли будет соответствовать какому-либо интересному определению защищенной системы. Мы верим, что технология, продемонстрированная в Linux с улучшенной безопасностью, будет полезна людям, которые создают защищенные системы.
  14. Что вы сделали для повышения гарантирования?
    Целью этого проекта было добавить элементы управления принудительным доступом, внеся минимальные изменения в Linux. Эта последняя цель сильно ограничивает то, что можно сделать для повышения гарантирования, поэтому не было работы, направленной на повышение гарантирования Linux. С другой стороны, усовершенствования основаны на предыдущей работе по разработке архитектуры безопасности с высокой степенью надежности, и большинство этих принципов проектирования перенесены в Linux с улучшенной безопасностью.
  15. Будет ли CCEVS оценивать Linux с повышенной безопасностью?
    Сам по себе Linux с повышенной безопасностью не предназначен для решения полного набора проблем безопасности, представленных профилем защиты. Хотя было бы возможно оценить только его текущую функциональность, мы считаем, что такая оценка будет иметь ограниченную ценность. Тем не менее, мы работали с другими, чтобы включить эту технологию в дистрибутивы Linux, которые были оценены, и дистрибутивы, которые находятся в оценке. Информацию о проверенных и проверяемых продуктах можно найти по адресу http://niap-ccevs.org/.
  16. Вы пытались исправить какие-либо уязвимости?
    Нет, мы не искали и не находили никаких уязвимостей в ходе нашей работы. Мы только внесли достаточный минимум, чтобы добавить наши новые механизмы.
  17. Эта система одобрена для правительственного использования?
    Security-enhanced Linux has no special or additional approval for government use over any other version of Linux.Linux с улучшенной безопасностью не имеет специального или дополнительного разрешения для правительственного использования над любой другой версией Linux.
  18. Чем это отличается от других инициатив?
    Linux с улучшенной безопасностью имеет четко определенную архитектуру для гибкого принудительного контроля доступа, которая была экспериментально проверена с помощью нескольких прототипных систем (DTMach, DTOS, Flask). Детальные исследования были выполнены для способности архитектуры поддерживать широкий спектр политик безопасности и доступны в http://www.cs.utah.edu/flux/dtos/ и http://www.cs.utah.edu/flux/flask/.
    Архитектура обеспечивает детальное управление многими абстракциями ядра и службами, которые не контролируются другими системами. Некоторые из отличительных характеристик системы Linux с расширенной безопасностью:
    • Чистое отделение политики от прав применения
    • Четко определенные интерфейсы политик
    • Независимость от конкретных политик и языков политик
    • Независимость от конкретных форматов и содержимого меток безопасности
    • Отдельные метки и элементы управления для объектов и сервисов ядра
    • Кэширование решений о доступе для эффективности
    • Поддержка изменений политики
    • Контроль за инициализацией процесса и наследованием и выполнением программы
    • Управление файловыми системами, каталогами, файлами и описаниями открытых файлов
    • Управление сокетами, сообщениями и сетевыми интерфейсами
    • Контроль за использованием «Возможностей»
  19. Каковы лицензионные ограничения на эту систему?
    Весь исходный код, найденный на сайте https://www.nsa.gov, распространяется на тех же условиях, что и оригинальный исходные коды. Например, исправления для ядра Linux и исправления для многих существующих утилит, доступных здесь, выпускаются в соответствии с условиями GNU General Public License (GPL).
  20. Есть ли экспортный контроль?
    Для Linux с расширенной безопасностью нет дополнительных элементов управления экспортом по сравнению с любой другой версией Linux.
  21. Планирует ли АНБ использовать ее внутри страны?
    По понятным причинам АНБ не комментирует оперативное использование.
  22. Меняет ли Заявление о гарантиях от 26 июля 2002 года Secure Computing Corporation позицию АНБ о том, что SELinux был предоставлен в рамках GNU General Public License?
    Позиция АНБ не изменилась. АНБ по-прежнему считает, что положения и условия Стандартной общественной лицензии GNU регулируют использование, копирование, распространение и модификацию SELinux. См. Пресс-релиз АНБ от 2 января 2001 г.
  23. Поддерживает ли АНБ программное обеспечение с открытым исходным кодом?
    Инициативы АНБ по повышению безопасности программного обеспечения охватывают как проприетарное, так и программное обеспечение с открытым исходным кодом, и мы успешно использовали как проприетарные, так и открытые модели в нашей исследовательской деятельности. Работа АНБ по повышению безопасности программного обеспечения мотивирована одним простым соображением: максимально эффективно использовать наши ресурсы, чтобы предоставить клиентам АНБ наилучшие возможные варианты обеспечения безопасности в наиболее широко используемых продуктах. Целью исследовательской программы АНБ является разработка технологических достижений, которыми можно поделиться с сообществом разработчиков программного обеспечения с помощью различных механизмов передачи. АНБ не поддерживает и не продвигает какой-либо конкретный программный продукт или бизнес-модель. Скорее, АНБ способствует повышению безопасности.
  24. Поддерживает ли АНБ Linux?
    Как отмечалось выше, АНБ не поддерживает и не продвигает какой-либо конкретный программный продукт или платформу; АНБ только способствует повышению безопасности. Архитектура Flask, продемонстрированная в эталонной реализации SELinux, была перенесена на несколько других операционных систем, включая Solaris, FreeBSD и Darwin, перенесена на гипервизор Xen и применяется к таким приложениям, как X Window System, GConf, D-BUS и PostgreSQL. Концепции архитектуры Flask широко применимы к широкому кругу систем и сред.

Сотрудничество


  1. Как мы планируем взаимодействовать с сообществом Linux?
    У нас есть набор веб-страниц на NSA.gov, которые будут служить нашим основным способом публикации информации о Linux с улучшенной безопасностью. Если вы заинтересованы в Linux с улучшенной безопасностью, мы рекомендуем вам присоединиться к списку рассылки разработчиков, просмотреть исходный код и предоставить свой отзыв (или код). Чтобы присоединиться к списку рассылки разработчиков, см. Страницу списка рассылки разработчиков SELinux.
  2. Кто может помочь?
    SELinux теперь поддерживается и дорабатывается сообществом разработчиков программного обеспечения для Linux с открытым исходным кодом.
  3. Финансирует ли АНБ какую-либо последующую работу?
    В настоящее время АНБ не рассматривает предложения о дальнейшей работе.
  4. Какой тип поддержки доступен?
    Мы намерены решать вопросы через список рассылки selinux@tycho.nsa.gov, но мы не сможем ответить на все вопросы, связанные с конкретным сайтом.
  5. Кто помог? Что они сделали?
    Прототип Linux с улучшенной безопасностью был разработан АНБ совместно с партнерами по исследованиям из NAI Labs, Secure Computing Corporation (SCC) и MITER Corporation. После первоначального публичного релиза последовало много других материалов. Смотрите список участников.
  6. Как я могу узнать больше?
    Мы рекомендуем вам посетить наши веб-страницы, прочитать документацию и прошлые исследовательские работы, а также принять участие в нашем списке рассылки selinux@vger.kernel.org

Считаете ли перевод полезным? Пишите комментарии!

  • +10
  • 5,4k
  • 8
OTUS. Онлайн-образование
556,57
Цифровые навыки от ведущих экспертов
Поделиться публикацией

Комментарии 8

    0
    Немного дополню:

    SELinux включен по умолчанию на RedHat линейке (в т.ч. CentOS)
    У SELinux есть два режима: enforcing/permissive, что вольно переведу как запрещать/наблюдать.

    На практике практически 100% администраторов отключают SELinux из-за нечетких логов.
    А именно в логах обычно ничего не содержится и не пишется, а приложение при этом не работает: часто это веб-серверы.
    Вот забыли вы SELinux отключить — а Apache рабортует что все отлично, а по факту не работает ничего.
      +1
      Поэтому администратор должен смотреть не лог приложения, а лог системы и обращать внимание на записи с меткой audit. В них всегда чётко указано, какое приложение попыталось получить доступ, куда и каким методом.
        +1
        Почему пользователь должен подтирать какахи и разбираться почему приложение не способно работать из коробки?
        SELinux отключают именно потому, что разработан он чужими для хищников. Приложения не умеют обеспечивать свою работоспособность самостоятельно. Какого либо пользовательского интерфейса по типу запроса прав в андроиде приложения не предоставляют.
          0
          Полностью с вами согласен. А по поводу отключенных SELinux, полностью выключенного файрвола и т.д… Часто с таким встречаюсь у маленьких компаний по Ростову… Обычно CentOS выбирают под 1С c Postgree, я про тех, с кем приходилось сталкиваться мне… Что у других происходит не скажу…
          +1
          Для удобного анализа журналов аудита есть набор инструментов setroubleshoot в состав которого входить утилита sealert. Она позволит вам проанализировать логи и предложит варианты решения вплоть докаманды которую нужно выполнить. Само собой выполнять бездумно ее рекомендации не следует, но основу для быстрого решения она предложит безусловно. Подробнее про нее было в habr.com/ru/company/kingservers/blog/209644. Жаль что в основную статью этот инструмент не попал.
            0
            В логах все отлично логируется — что и кем заблокировано.
            Отключают selinux из-за лени:
            — админов, хотя это из работа.
            — тестеров, катим обновления, новые правила selinux теоретически могут какую-нибудь существующую активность залочить.
            0
            Можно в следующий раз рассмотреть Tomoyo
              0
              В моем видении мира, на данный момент, нет места где использование SELinux было бы оправдано.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое