Я могу мешать SElinux работать?

После быстрого исследования (и некоторые взгляды) я могу дать Вам следующий список возможных вариантов:

  • считайте ее bash_history. Но это обычно только пишется на выходе из системы. askubuntu.com имеет сообщение об изменении того поведения (редактирование: @jordanm, по-видимому, имел ту же идею и был быстрее для регистрации...).
  • Если бы она была на физическом терминале (/dev/ttyX), то Вы могли бы использовать программу conspy.
  • Сделайте ее использование screen. Если Вы просто хотите помочь, и не шпионить за нею она могла бы быть готова выполнить свою сессию в экране. Затем можно просто присоединить к ее сессии sudo -u herUsername screen -x
  • Вы могли записать сценарий обертки оболочки, который регистрирует команды к файлу журнала по Вашему выбору. Необходимо было бы установить ее оболочку на тот сценарий (Это - просто идея, это могло бы или не могло бы работать).
  • Используя cat /dev/pts/X | tee /dev/pts/X была первая вещь, которая прибыла по моему мнению. Но после того, как попытка действительно не работает и является очень грязным решением. Каждый символ только печатается к одному из приложенных терминалов (который является причиной вызова tee также). При испытании его я мог шпионить за каждым вторым символом. С небольшим воображением Вы могли предположить то, что она готова...

1
04.12.2013, 11:10
5 ответов

Во-первых, можно мешать SELinux работать путем неправильного конфигурирования его. Это не делает ничего для отключения любого бэкдора, все же.

Затем можно мешать SELinux делать что-либо путем конфигурирования его во времени выполнения. Если Вы работаете setenforce 0, SELinux прекращает осуществлять ограничения безопасности. Это все еще активно, все же. Все, что Вы сделали, потенциально делают Вашу систему менее безопасной путем удаления ограничений безопасности.

Если Вы не хотите, чтобы SELinux применялся вообще, можно выключить его во время начальной загрузки с параметром ядра selinux=0. Таким образом, SELinux не будет принимать решений. Вы теряете любое преимущество безопасности, которое это может принести, конечно. И если существует бэкдор, у Вас нет способа знать, что это не все еще активно. Код все еще присутствует, в конце концов.

Хорошо затем необходимо удалить код из ядра. Поэтому перекомпилируйте свое ядро с параметром конфигурации CONFIG_SECURITY_SELINUX не набор. Перезагрузка и теперь код SELinux не работают больше. Победа?

Ха! Нет: как Вы знаете, что бэкдор находится в коде, этим управляет этот параметр конфигурации? Если бы я собирался скрыть бэкдор, то я удостоверился бы, что это была бы часть кода, который все используют.

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

Возбудите! Нет, бэкдор может все еще быть там. Что, если был бэкдор в ядре, которое влияло на компилятор, так, чтобы при компиляции ядра это ввело бэкдор в ядро, даже если источник бэкдора не присутствовал? Это было бы самоподдерживающимся бэкдором: скомпилируйте с backdoored компилятором или под backdoored ядром, и получающееся ядро все еще backdoored. Неправдоподобные звуки? Вы думаете, что никто не мог сделать это? Извините, но это было сделано. Действительно считайте лекцию Премии Turing Ken Thompson, “Отражения о Доверии Доверию”.

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

А-ч, но остерегаются! Злонамеренная операционная система (или вредоносное программное обеспечение с доступом уровня ядра, в этом отношении), возможно, ввела бэкдор в Ваше встроенное микропрограммное обеспечение. Таким образом, если Вы не доверяете своему текущему ядру, Вы не можете доверять своему BIOS, также.

Нет, нет, это не пойдет. Необходимо будет сделать собственные аппаратные средства.Удачи!

9
27.01.2020, 23:10
  • 1
    Таким образом, Вы говорите, что существует шанс... :D –  111--- 13.05.2015, 15:44

Отключение по сравнению с удалением

Я не думаю, что Вы сможете удалить SELinux. Лучшее, которое можно надеяться сделать, отключают его (который я обсуждаю ниже в более поздних разделах).

Для удаления его, Вы попытались бы удалить пакет libselinux, однако попытка сделать так приводит к этому:

$ sudo yum remove libselinux
...
--> Finished Dependency Resolution
Error: Trying to remove "kernel", which is protected
Error: Trying to remove "yum", which is protected

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

Отключение SELinux

Можно использовать команды getenforce и setenforce видеть текущий режим SELinux, а также изменить его.

$ setenforce 
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

Пример

$ setenforce 0

$ getenforce 
Disabled

Они только изменяют его для текущей сессии. Если бы необходимо было перезагрузить затем SELinux, то возвратился бы на перезагрузку.

Для внесения изменений постоянными можно отредактировать этот файл на основанных на Redhat дистрибутивах, /etc/sysconfig/selinux.

$ cat /etc/sysconfig/selinux 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

Примечание: Каталог, /etc/sysconfig/selinux на самом деле ссылка на это местоположение:

$ pwd
/etc/sysconfig

$ ls -l selinux 
lrwxrwxrwx. 1 root root 17 Dec 18  2010 selinux -> ../selinux/config

SELinux, действительно ли это - бэкдор?

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

Эти атрибуты могут использоваться для управления, какие приложения (процессы) могут затронуть который каталоги и файлы на диске. Это может также управлять природой доступа приложений к этим местоположениям.

Пример

Если у Вас был каталог, /home/userX, и Вы выполняли веб-сервер Apache в своей системе, затем нет технически никакой причины, что этот процесс потребовал бы доступа к /home каталоги, таким образом, SELinux мог запретить этот доступ процесса к этому конкретному основанному на местоположении на контекстах (правила), которые были размечены на диске.

Удаление его?

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

Ссылки

3
27.01.2020, 23:10
  • 1
    +1 Хорошо отметил характеристику гибкой ссылки selinux файла. В случае, если, если Вы редактируете его sed, --follow-symlinks необходим для /etc/sysconfig/selinux так, чтобы символьная ссылка не была breaked впоследствии. –  Ivan Chau 04.12.2013, 11:41
  • 2
    Это только отключает SELinux. Если существует бэкдор в нем, у Вас нет способа знать, что бэкдор отключен (и было бы странно ввести бэкдор в некоторое программное обеспечение, но ограничить его опцией, которая может быть легко отключена). –  Gilles 'SO- stop being evil' 04.12.2013, 22:46
  • 3
    я взял комментарий о бэкдоре к OP, не поняв, каков SELinux на самом деле был. Но Вы правы, если бы это - "бэкдор" или имеет "бэкдор", было бы очень маловероятно, что "бэкдор" повиновался бы отключению. –  slm♦ 04.12.2013, 22:48
  • 4
    @Gilles - SELinux не является съемным пакетом, лучше всего я могу сказать. Я обновил для упоминания этого. –  slm♦ 04.12.2013, 22:57
  • 5
    Debian имеет разделенный пакет tho. –  Braiam 05.12.2013, 03:07

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

Удаление его делает Вашу систему более уязвимой против других нападений. Если Вы имеете проблемы безопасности и не любите SELinux, Вы могли бы интересоваться концепциями безопасности других как, например, AppAmor или grsecurity (который кажется, больше активно не разрабатываются). Посмотрите, например, Что использовать для укрепления поля Linux? Apparmor, SELinux, grsecurity, ВКУС, chroot?.

1
27.01.2020, 23:10
  • 1
    Даже если Вы восстанавливаете ядро без SELinux, как Вы знаете, что предполагаемый бэкдор не был бы включен? –  Gilles 'SO- stop being evil' 04.12.2013, 22:52

Я подозреваю, что SElinux является бэкдором, и я хочу мешать ему работать над моей системой.

Если Вы подозреваете, что SElinux является черным ходом, то у Вас есть более серьезная проблема на Ваших руках, чем просто отключение ее функциональности.

SElinux является на самом деле базовым компонентом в самом Linux; это - часть восходящего дерева "магистрали", означая, что это интегрировалось в основной исходный код Linux в течение прошлых 10 лет. Если это - действительно, бэкдор, то это - бэкдор, который был помещен там самим Linus Torvalds, который лично утвердил его включение в 2003.

И если, поэтому, Torvalds и все другие базовые специалисты по обслуживанию Linux готовы включать закулисное программное обеспечение в Linux, Вы не можете доверять ни одному коду, который они производят.

Так, единственный способ решить проблему, которую Вы предложили, состоит в том, чтобы переключиться на альтернативную ОС полностью, BSD, например.

1
27.01.2020, 23:10

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

См. официальную документацию об этом.

0
27.01.2020, 23:10

Теги

Похожие вопросы