selinux android что это такое

Selinux android что это такое

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

Для функционирования программы необходимы права root пользователя.

Краткое описание:
Это простое приложение позволяет изменять режим SELinux, а так же запоминает ваш выбор при каждой перезагрузке устройства.

Требуется Android: 4.2+
Русский интерфейс: Нет

Обязательно следуйте инструкциям перед установкой The SELinux Switch:

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

Когда включен MagiskHide и вы переключаете SELinux в режим «Только предупреждение», после перезагрузки MagiskHide автоматически переведет SELinux в режим «Блокировка», однако фактически это не так. Это называется SELinux «Pseudo» State и имейте в виду, что это особенность, а не ошибка.

Вы должны убедиться, что BusyBox включен в настройках приложения Magisk, потому как по умолчанию он отключен. После включения BusyBox в Magisk, приложение The SELinux Switch будет способно изменить состояние SELinux в режим «Только предупреждение» (PERMISSIVE).

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

*********************
**DATE: 01-25-2018**
*********************
— The «Reviews» portion of this thread was disabled due to it being broken while navigating AND i feel that Feedback/Reviews should be posted as a thread post anyways.
— PLEASE NOTE: The «Star Ratings» were not affected.

*********************
**DATE: 12-18-2017**
*********************
— The SELinux Switch Version 6.0.7 Build 607
— App Installer & Flashable Zip Uploaded.
— Minor Correction For Cleanup Commands Within The Flashable Installer.
— Added NEW Holiday Globe Icon To App & Thread’s OP.

*********************
**DATE: 12-15-2017**
*********************
— The SELinux Switch Version 6.0.7 Build 607
— App Installer & Flashable Zip Uploaded.
— Re-Added Minor Enhancement For Quicker Launch Upon Booting Device.

— An issue was found with the Signature File and the new Version may require the member to uninstall and reinstall the app.
— As a personal suggestion, before uninstalling any app, first go to the apps details, force stop, clean/clear up the Data & Cache and then uninstall it. This helps me to make sure that I’ve done the residual cleaning before the removing of the app itself.
— I apologize for any inconveniences that this may be causing and have taken precautions to help elevate this from happening in the future.

*********************
**DATE: 12-14-2017**
*********************
— The SELinux Switch Version 6.0.6 Build 606
— App Installer & Flashable Zip Uploaded..
— Applied Some Fixes For Android Version Compatibility.
— Fixed Notification Icon For Colored Icon.
— Removed the External Installation Preference to Internal Preference.
— Improved The Background Performance For Even Lower Memory Required.
— A Few Various Other Minor Modifications Were Made.

*********************
**DATE: 10-09-2017**
*********************
— The OP of the thread was just updated for everyone to enjoy a recent article recognizing The SELinux Switch. A special thanks to @DJBhardwaj for such a great article.

*********************
**DATE: 08-29-2017**
*********************
— The SELinux Switch Version 6.0.3 Build 603
— App Installer & Flashable Zip Updated..
— Applied Some Additional Fixes To A Few Translations.
— Fixed A Forgotten Translation Translation That Was Incomplete.
— Applied A Small Functional Modification.

*********************
**DATE: 08-23-2017**
*********************
— The SELinux Switch Version 6.0.2 Build 602
— App Installer & Flashable Zip Updated..
— Applied Some Fixes.
— Applied a Few Modifications for Compatibility.
— A Special Thanks to @Thebear j koss For a Nice Dark Theme.

*********************
**DATE: 08-17-2017**
*********************
— Uploaded App Specific Screenshots On The Thread.
— Uploaded App Specific Screenshots On The XDA Labs Store.

*********************
**DATE: 08-16-2017**
*********************
— Updated Important OP Information.
— Added Important Magisk Information
— Added Important PSA Warning Information.
— Other Minor Changes/Updates Made.

*********************
**DATE: 08-08-2017**
*********************
— Launched New Thread
— App Installer & Flashable Zip Updated..
— Now available in the XDA Labs Store.

Версия 6.0.3:
selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такоеThe.SELinux.Switch.ver.6.0.3.build.603.apk ( 721.9 КБ )

Версия 6.0.3 для рекавери:
selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такоеThe.SELinux.Switch.ver.6.0.3.build.603.zip ( 653.75 КБ )

Источник

Руководство для начинающих по SELinux

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

Перевод статьи подготовлен для студентов курса «Безопасность Linux»

SELinux или Security Enhanced Linux — это улучшенный механизм управления доступом, разработанный Агентством национальной безопасности США (АНБ США) для предотвращения злонамеренных вторжений. Он реализует принудительную (или мандатную) модель управления доступом (англ. Mandatory Access Control, MAC) поверх существующей дискреционной (или избирательной) модели (англ. Discretionary Access Control, DAC), то есть разрешений на чтение, запись, выполнение.

У SELinux есть три режима:

По умолчанию настройки находятся в /etc/selinux/config

Изменение режимов SELinux

Чтобы узнать текущий режим запустите

Для изменения режима на permissive запустите следующую команду

или, для изменения режима с permissive на enforcing, выполните

Если вам нужно полностью отключить SELinux, то это можно сделать только через файл конфигурации

Для отключения измените параметр SELINUX следующим образом:

Настройка SELinux

Каждый файл и процесс помечается контекстом SELinux, в котором содержится дополнительная информация, такая как пользователь, роль, тип и т.д. Если вы впервые включаете SELinux, то сначала нужно настроить контекст и метки. Процесс назначения меток и контекста известен как маркировка. Чтобы начать маркировку, в файле конфигурации изменим режим на permissive.

После установки режима permissive, создадим в корне пустой скрытый файл с именем autorelabel

и перезагрузим компьютер

Примечание: мы используем режим permissive для маркировки, поскольку использование режима enforcing может привести к краху системы во время перезагрузки.

Не беспокойтесь, если загрузка застрянет на каком-то файле, маркировка занимает некоторое время. После завершения маркировки и загрузки вашей системы вы можете перейти к файлу конфигурации и установить режим enforcing, а также запустить:

Теперь вы успешно включили SELinux на своем компьютере.

Мониторим логи

В результате вы получите список ошибок. Если ошибок в логе не было, то никаких сообщений отображаться не будет.

Настройка политики SELinux

Политика SELinux — это набор правил, которыми руководствуется механизм безопасности SELinux. Политика определяет набор правил для конкретного окружения. Сейчас мы изучим как настраивать политики, чтобы разрешить доступ к запрещенным сервисам.

1. Логические значения (переключатели)

Переключатели (booleans) позволяют изменять части политики во время работы, без необходимости создания новых политик. Они позволяют вносить изменения без перезагрузки или перекомпиляции политик SELinux.

Пример
Предположим, мы хотим предоставить общий доступ к домашнему каталогу пользователя по FTP на чтение и запись, и мы уже расшарили его, но при попытке доступа мы ничего не видим. Это связано с тем, что политика SELinux запрещает FTP-серверу читать и писать в домашнем каталоге пользователя. Нам нужно изменить политику, чтобы FTP-сервер мог обращаться к домашним каталогам. Посмотрим, есть ли для этого какие-либо переключатели, выполнив

Эта команда выдаст список доступных переключателей с их текущим состоянием (включено/on или выключено/off) и описанием. Вы можете уточнить поиск, добавив grep, чтобы найти результаты, относящиеся только с ftp:

и найдете следующее

2. Метки и контекст

Это наиболее распространенный способ реализации политики SELinux. Каждый файл, папка, процесс и порт помечаются контекстом SELinux:

Здесь мы получили httpd_sys_content_t в качестве контекста для html-файлов. Нам нужно установить этот контекст безопасности для нашего текущего каталога, который сейчас имеет следующий контекст:

Альтернативная команда для проверки контекста безопасности файла или каталога:

Мы также будем использовать semanage для изменения контекста, после того как найдем правильный контекст безопасности. Чтобы изменить контекст /home/dan/html, выполните следующие команды:

3. Создание локальных политик

Могут возникнуть ситуации, когда вышеуказанные методы бесполезны для вас, и вы получаете ошибки (avc/denial) в audit.log. Когда такое происходит, то нужно создать локальную политику (Local policy). Все ошибки вы можете найти с помощью audit2why, как было описано выше.

Для устранения ошибок можно создать локальную политику. Например, мы получаем ошибку, связанную с httpd (apache) или smbd (samba), мы grep’аем ошибки и создаем для них политику:

Здесь http_policy и smb_policy — это названия локальных политик, которые мы создали. Теперь нам нужно загрузить эти созданные локальные политики в текущую политику SELinux. Это можно сделать следующим образом:

Наши локальные политики были загружены, и мы не должны больше получать никаких avc или denail в audit.log.

Это была моя попытка помочь вам понять SELinux. Я надеюсь, что после прочтения этой статьи вы будете чувствовать себя с SELinux более комфортно.

Источник

Что такое SELinux? Настройка, включение и отключение

SELinux, или Security Enhanced Linux, — это продвинутый механизм управления доступом, разработанный Агентством национальной безопасности (АНБ) США для предотвращения злонамеренных вторжений. Он реализует мандатную модель управления доступом (MAC — Mandatory Access control) в дополнение к уже существующей в Linux дискреционной модели (DAC — Discretionary Access Control), то есть разрешениям на чтение, запись, выполнение.

У SELinux есть три режима работы:
1. Enforcing — ограничение доступа в соответствии с политикой. Запрещено все, что не разрешено в явном виде. Режим по умолчанию.
2. Permissive — ведёт лог действий, нарушающих политику, которые в режиме enforcing были бы запрещены, но не запрещает сами действия.
3. Disabled — полное отключение SELinux.

Изменение режима SELinux

Файл конфигурации по умолчанию, где можно изменять режим работы — /etc/selinux/config.

Чтобы узнать текущий режим работы, нужно выполнить следующую команду (для работы с SELinux необходимы root-привилегии, поэтому здесь и далее приводятся команды для root-пользователя):

Изменение режима работы на permissive:

и наоборот, на enforcing:

Полностью отключить SELinux можно только через файл конфигурации. Откройте его любым текстовым редактором

и измените параметр SELINUX на disabled:

После чего перезагрузите систему

Политики SELinux

В основе структуры безопасности SELinux лежат политики. Политика — это набор правил, определяющих ограничения и права доступа для всего, что есть в системе. Под “всем” в данном случае понимаются пользователи, роли, процессы и файлы. Политика определяет связь этих категорий друг с другом.

Для понимания политик необходимо понимание базовых терминов. Политика SELinux определяет доступ пользователей к ролям, доступ ролей к доменам и доступ доменов к типам. Разберём значение этих терминов.

Пользователи

В SELinux есть набор предварительно заданных пользователей. Каждая стандартная учётная запись пользователя Linux соответствует одному или нескольким пользователям SELinux.

В Linux пользователи запускают процессы. Это может быть пользователь ivan, открывший документ в редакторе vi (учётная запись ivan запускает процесс vi) или служебная учётная запись, запустившая демон httpd. В SELinux процесс (демон или запущенная программа) называется субъектом.

Роли

Роль определяет, какие пользователи могут осуществлять доступ к заданному процессу. Роли не тождественны группам, они больше похожи на фильтры: пользователь может принадлежать к роли в любое время, если роль это позволяет. Определение роли в политике безопасности SELinux задаёт пользователей, имеющих доступ к этой роли. Роли используются потому, что один из элементов SELinux реализует ролевую модель управления доступом (RBAC — Role Based Access Control).

Субъекты и объекты

Субъект — это процесс, который может потенциально влиять на объект.

Объектом в SELinux называется все, над чем можно выполнять какие-либо действия. Это может быть файл, директория, порт, tcp-сокет, курсор, X-сервер. Действия, которые субъект может выполнить над объектом, являются разрешениями субъекта.

Домены

Домен — это контекст, в котором может работать субъект SELinux (процесс). Этот контекст представляет собой как бы оболочку вокруг субъекта, которая сообщает процессу, что он может и не может делать. Например, домен определяет, какие файлы, директории, ссылки, устройства или порты доступны для субъекта.

Типы

Тип — это контекст для файла, который устанавливает предназначение файла. Например, контекст файла может указывать, что это веб-страница, или что файл находится в директории /etc, или что владелец этого файла — конкретный пользователь. В терминах SELinux контекст файла называется его типом.

Политика SELinux определяет доступ пользователей к ролям, доступ ролей к доменам и доступ доменов к типам. Сначала пользователь должен быть авторизован для получения роли, затем роль должна быть авторизована для доступа к доменам. Домен, в свою очередь, может осуществлять доступ только к определенным типам файлов.

Механизм, при котором процесс, запущенный в определенном домене, может осуществлять только определенные действия над определенными типами объектов, называется принудительным присвоением типов (Type Enforcement — TE).

Работа политики SELinux

Политика SELinux не заменяет традиционную дискреционную модель управления доступом (DAC). Если правило DAC запрещает пользователю доступ к файлу, правила политики SELinux не будут применяться, потому что первая линия обороны уже заблокировала доступ. SELinux начинает работать уже после DAC.

Результат будет выглядеть примерно следующим образом:

Можно заметить, что файлы связаны с различными приложениями:

Следующая команда показывает активную политику:

Изменение переключателей SELinux

Несмотря на то, что прочитать файлы модулей политики невозможно, есть простой способ их настройки. Она осуществляется при помощи булевых переключателей SELinux (boolean).
Чтобы разобраться, как они работают, запустим команду semanage с опцией boolean:

Если у вас будет ошибка

То нужно установить policycoreutils-python

Теперь запускаем semanage с опцией boolean

Будет выведен список различных переключателей, которые можно включить или выключить, краткое описание их функций и текущее состояние:

Первый пункт в этом списке позволяет демону FTP осуществлять доступ к домашним директориям пользователей. В данный момент переключатель выключен (off), то есть доступ запрещен.
Для изменения значений используется команда setsebool. В качестве примера давайте разрешим анонимный доступ FTP на запись. Проверим состояние переключателя командой getsebool:

Она покажет, что в данный момент переключатель выключен:

Изменим значение переключателя и включим его:

Снова проверим состояние переключателя, оно должно поменяться:

Теперь после перезагрузки изменения не потеряются

Заключение

Мы рассмотрели базовые принципы работы SELinux, включение системы и режимы её работы, показали пример обеспечения безопасности системы. Также была разобрана работа политики безопасности и ее настройка при помощи булевых переключателей. Более подробную информацию о SELinux можно найти в соответствующих man-страницах.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

selinux android что это такое. Смотреть фото selinux android что это такое. Смотреть картинку selinux android что это такое. Картинка про selinux android что это такое. Фото selinux android что это такое

О SELinux написано довольно много, но у большинства этих материалов есть два недостатка. Либо это короткие практические советы как сделать что-то конкретное, но без объяснений того как это устроено и работает. А если статья (или глава в книге) описывает теоретические вопросы, то как-то длинно и запутанно.

Что такое SELinux?

SELinux (Security Enhanced Linux) это система безопасности основанная на моделях мандатного и ролевого доступа. Была разработана в начале нулевых (2000-х) годов для того, чтобы исправить недостатки традиционной системы безопасности UNIX (DAC). SELinux реализована как компонент ядра Linux начиная с версии ядра 2.6. То есть SELinux можно использовать в любом дистрибутиве Linux с ядром 2.6 или более поздним. Конечно не во всех дистрибутивах использование SELinux облегчено до максимума, но в принципе можно установить почти в любом.

SELinux и DAC

SELinux работает «после» DAC. То есть операции, запрещенные в DAC не могут быть разрешены в SELinux.
Иными словами SELinux дополняет и конкретизирует действия разрешенные через DAC. При этом SELinux работает независимо от DAC.

Субъекты и объекты

Когда говорят о SELinux всегда упоминаются субъекты и объекты. То есть SELinux это разрешения и запреты которые применяются в действиях между субъектами и объектами.

Объекты это то, над чем действия выполняются. Чаще всего под объектами подразумеваются файлы данных. Но это могут быть и устройства и даже программы. Пример:
cat /var/log/syslog | grep SELinux
в этой команде программа grep объект для программы cat. И соответственно программа cat субъект по отношению к программе grep.

Как включить или выключить SELinux

Включение или выключение SELinux выполняется командой selinuxenabled с параметром 1 (включить SELinux) или 0 (выключить SELinux). Если нужно чтобы SELinux был включен/выключен при запуске системы, тогда редактировать файл /etc/selinux/config (параметр SELinux=disable).

Режимы работы SELinux

Команда sestatus позволяется узнать текущий режим работы SELinux.

Журналирование SELinux (аудит)

Контекст безопасности (метка, label) SELinux

Это набор данных состоящий из:

Если файловая система не поддерживает запись меток SELinux (как например NFS), тогда метки записываются отдельно от файлов, при этом связь между файлами и метками происходит по путям файлов. Это может привести к «разрыву» между файлом и его меткой в том случае если файл будет перемещен по другому пути (например каталог с такими файлами будет перемонтирован в другую точку монтирования).

Метка файла может оказаться неверной даже в случае если файловая система поддерживает запись таких меток, но к файлу были неправильно применены операции копирования или перемещения внутри файловой системы. Например при копировании в другую папку файл может получить метку установленную для этой папки (наследование меток), вместо той метки, которая у него была раньше. Поэтому важно правильно выполнять операции копирования и перемещения файлов при использовании SELinux.

Пользователь SELinux

Это описательный тип пользователя, а не какой-то конкретный пользователь с логином и паролем. Принципиально это то же самое что и группа пользователей в «старой» системе безопасности DAC. При добавлении, в систему, каждого нового пользователя он по умолчанию (или явным образом) сопоставляется с каким-либо типом пользователя SELinux и в дальнейшем будет иметь те разрешения или запреты, которые указаны для его типа пользователя.

Перечень разрешенных действий. Возможен переход из одной роли в другую, для изменения полномочий. При этом идентичность пользователя не изменяется (в отличии от команд su/sudo). Роли не совмещаются, они заменяют одна другую.

Политика безопасности определяет допустимые переходы из одной роли в другую. То есть невозможно перейти из любой роли в любую роль. Поскольку роли всегда связаны с типами (доменами), то часто говорят не о смене ролей, а о смене домена (Domain Transition).

Типы (домены) SELinux

Политика SELinux (SELinux Policy)

Политика MLS/MCS

Однако, логика тут есть, просто она другая. Если субъект, имеющий уровень «секретно», запишет данные в файл с уровнем «несекретно» то этот файл станет (потенциально) содержать данные уровня «секретно», но при этом будет доступен субъектам уровня «несекретно». То есть станет возможна утечка информации. Поэтому в MLS запись в файлы разрешена только с нижних уровней на верхние.

Эту особенность нужно понимать при присвоении меток уровней доступа.

Эта часть контекста используется только в специальных политиках MLS/MCS. В общих политиках типа targeted или strict эта часть контекста просто установлена в максимальный уровень разрешений и таким образом не влияет на доступ.

Резюме

Максимальную защиту SELinux дает когда переключен в режим enforced и при этом используется политика strict или политика MLS/MCS.

Если SELinux переключен в режим enforced, но используется политика targeted, то защита осуществляется только применительно к «известным» программам, для которых в политике определены разрешения и запреты. «Неизвестная» программа фактически имеет административные привилегии.

Если вы живете в г. Краснодар, для вас есть простой способ установить SELinux и научиться им пользоваться. Подробнее.

Даже небольшая сумма может помочь написанию новых статей 🙂

Или поделитесь ссылкой на эту статью со своими друзьями.

Источник

Русские Блоги

Подробное описание selinux для Android

1. Базовые знания

Теоретически процесс имеет те же разрешения, что и пользователь, который его выполняет. Например, если вы запускаете браузер от имени пользователя root, браузер имеет полномочия пользователя root и может делать что угодно в системе Linux. То есть, как и в версии до 4.4, пока мы даем узлу достаточно разрешений, мы можем выполнять произвольные операции по желанию.

Linux DAC имеет очевидные недостатки. Одним из важных моментов является то, что права root являются «незаконными» и могут делать почти все. Как только злоумышленник получает права root, он получает полный контроль над системой. Кроме того, каждый процесс получает все разрешения, соответствующие этому пользователю по умолчанию, и может изменять / удалять все файловые ресурсы этого пользователя, что, очевидно, сложно предотвратить вредоносным ПО. Следовательно, новая модель безопасности разрабатывается вне DAC, называемая MAC (обязательный контроль доступа), принудительный контроль доступа, то есть система строго ограничивает каждый доступ, а конкретная стратегия ограничения предоставляется разработчиком. Философия MAC очень проста: то есть любой процесс, который хочет делать что-либо в системе SELinux, должен сначала предоставить разрешения в файле конфигурации политики безопасности. Если разрешение не отображается в файле конфигурации политики безопасности, процесс не имеет разрешения.

Ввиду недостатков DAC LinuxMAC требует, чтобы система проводила целевую проверку для каждого доступа и каждого доступа к файловому ресурсу. И эта целевая проверка основана на определенной стратегии. В ядре Linux все механизмы MAC построены на основе модулей безопасности Linux (LSM), включая SELinux, Apparmor, Smack и TOMOYOLinux. В настоящее время SELinux стал де-факто отраслевым стандартом.
Для Linux DAC, MAC, очевидно, может компенсировать недостатки DAC. С одной стороны, права root ограничены. Даже если у вас есть права root, если вы не можете пройти проверку MAC, вы действительно не сможете выполнять связанные операции. Кроме того, каждая власть была уточнена более полно, что может ограничивать доступ пользователей к ресурсам.

2. Разработка SELinux и SEAndroid

Предполагается, что в последующих версиях Google потребует обязательного открытия SELinux для обеспечения безопасности мобильных телефонов.

SELinux обеспечивает Android следующими эффектами:

Полномочия ROOT строго ограничены, и ситуация с «беспределом» ROOT в прошлом будет значительно улучшена.
* Благодаря защите SELinux снижается риск атаки на критические системные процессы. Обычные процессы не будут иметь разрешения на прямое подключение к критическим системным процессам.
* Дальнейшее усиление механизма песочницы APP, чтобы приложение не могло выполнять ненормальное или агрессивное поведение.
* Это изменит историю, что после установки приложения разрешения уже мертвы, и станет возможной динамическая настройка разрешений приложения.

3. Базовая архитектура и принципы SElinux и SEAndroid

Общая структура SELinux показана на рисунке ниже:

SELinux состоит из пяти основных компонентов:

* Вспомогательный модуль, используемый для обработки файловой системы, а именно SELinuxFS.
* Интеграция наборов перехватчиков модулей безопасности Linux.
* Security Policy Database。
* Модуль проверки метки безопасности.
* Доступ к векторному кэшу (AVC) для доступа к векторному кешу для повышения скорости проверки.

1. u: это также означает пользователя, который представляет пользователя SELinux, создавшего этот файл.

3. touch_device: тип мертвого объекта и домен процесса фактически означают одно и то же. Он указывает, что типом, соответствующим корневому каталогу, является touch_device.

Рисунок 6: Обработка SContext

1. u означает пользователя. Пользователь SELinux определен в SEAndroid и имеет значение u.

4. S0 относится к механизму многоуровневой безопасности (MLS), разработанному SELinux для нужд военной и образовательной промышленности. Проще говоря, MLS классифицирует процессы и файлы системы, и ресурсы разных уровней должны быть доступны процессам соответствующего уровня.

Поскольку init имеет атрибут domain, его можно объединить с пользователем SELinux u и ролью SELinux для формирования юридического контекста безопасности, такого как домен.

Стандартный формат SContext следующий:

1. Пользователь: Пользователь, а не Linux UID.

2. Роль: роль, пользователь может принадлежать к нескольким ролям, и разные роли имеют разные разрешения. Это более высокоуровневая и более удобная идея управления разрешениями в SELinux, а именно управление доступом на основе ролей (управление доступом на основе ролей, именуемое RBAC, SELinux не рекомендуется).

Диапазон: уровень многоуровневой безопасности (MLS). MLS классифицирует процессы и файлы системы, и для доступа к различным уровням ресурсов требуются процессы соответствующих уровней.

Выше мы проанализировали контекст безопасности объекта в механизме безопасности SEAndroid, а затем продолжим анализ политики безопасности в механизме безопасности SEAndroid. Политика безопасности в механизме безопасности SEAndroid описывается на основе контекста безопасности, то есть она определяет, имеет ли субъект полномочия для доступа к объекту через контекст безопасности субъекта и объекта.

Как правило, описание TE находится в device / mediatek / common / sepolicy / и external / sepolicy. SEAndroid определяет 33 файла политик te для системы. Эти 33 файла политик:

Для служб безопасности пользовательский сервер Security Server в основном используется для защиты ресурсов пользовательского пространства и для управления контекстом безопасности объектов пространства ядра.Он состоит из службы установки приложений PackageManagerService, демона установки приложения installd и процесса приложения. Процесс инкубатора Zygote и состав процесса инициализации. Среди них PackageManagerService и installd отвечают за создание контекста безопасности каталога данных приложения, процесс Zygote отвечает за создание контекста безопасности процесса приложения, а процесс init отвечает за управление безопасным доступом к свойствам системы.

4. Метод решения проблем SELinux

* [307: logd.auditd]: указывает, что этот ЖУРНАЛ был напечатан auditd;

* Type = 1400: SYSCALL; если type = AVC означает события ядра, type = USER_AVC означает события диспетчера объектов пользовательского пространства;

* avc: denied < write >: field depend on what type of event is being audited.;

* Tcontext = u: object_r: sysfs: s0: целевой контекст u: object_r: sysfs: s0;

* tclass : the object class of the target /> * permissive: permissive (1)or enforcing (0)。

Примерное значение приведенного выше утверждения: процесс om.zte.engineer использует исходный контекст радио для доступа к типу файлов sysfs и записи файлов, но SELinux запрещает доступ.

1. Извлеките весь журнал avc. Например, adb shell «cat / proc / kmsg | grepavc»> avc_log.txt

3. Добавьте соответствующие политики в правила политики selinux, соответствующие Решению MTK, вы можете добавить их в KK: mediatek / custom / common / sepolicy, L: device / mediatek / common / sepolicy, например
allow zygoteresource_cache_data_file:dir rw_dir_perms;
allow zygote resource_cache_data_file:filecreate_file_perms;
===>mediatek/custom/common/sepolicy/zygote.te (KK)
===> device/mediatek/common/sepolicy/zygote.te (L)

Сделав это, вы можете разрешить zygote выполнять операции создания и чтения / записи для resource_cache_data_file. Обратите внимание, что audit2allow может автоматически и механически преобразовывать журнал в политику, не зная истинного намерения вашей операции. Может возникнуть проблема с расширением разрешений, и часто политика не может быть скомпилирована и передана.

Если вы напрямую конвертируете политику SELinux в соответствии с журналом avc: denied, это часто вызывает проблемы с усилением разрешений. Например, если вы хотите получить доступ к определенному устройству, если устройство не уточняет метку SELinux, Может появиться:

[11281.586780] avc: denied < read write >for pid=1217comm=»mediaserver» name=»tfa9897″ dev=»tmpfs»ino=4385 scontext=u:r:mediaserver:s0 tcontext=u:object_r:device:s0tclass=chr_file permissive=0
Если вы напрямую конвертируете SELinuxPolicy в соответствии с этим LOG: allowmediaserver device: chr_file ; тогда разрешение mediaserver на чтение и запись на всех устройствах будет освобождено. Чтобы предотвратить это, Google использует оператор neverallow для ограничения, так что при компиляции sepolicy вы не можете ее скомпилировать.

Следующее в основном знакомит с тем, как восполнить то, что не хватает, шаг за шагом, чтобы устранить проблему avc: denied, возьмите в качестве примера приведенный выше журнал avc:

Какие полномочия отсутствуют: полномочия ;

Кому не хватает авторитета: scontext = u: r: radio: s0;

У какого файла нет прав доступа: tcontext = u: object_r: sysfs: s0

Какой тип файла: tclass = file

allow radio sysfs:file write;

В приведенном выше примере мы можем резюмировать общее правило: разрешить определенному scontext иметь определенное разрешение для определенного tcontext.

Итак, вы можете получить универсальную формулу:

Scontext tcontext tclass avc отказано в разрешении

allow radio sysfs : file write

Иногда журнал отклоненных avc не отображается сразу, поэтому проблема может заключаться в том, что вам не будет предложено указать другую проблему с разрешениями, пока вы не решите одну проблему с разрешениями, поэтому иногда нам приходится пробовать по одному и добавлять по одному.

SEAndroid определяет самый базовый тип параметра в политике безопасности в te-файле и в то же время группирует общие типы вместе, чтобы сформировать набор, называемый атрибутом, и выполнение правил политики также может использовать атрибуты в качестве объекта выполнения. SEAndroid определяет в общей сложности 17 атрибутов для всех типов:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *