LINUX.ORG.RU

Разрешить запуск только подписанных файлов

 


0

1

Всем привет

Подскажите, какие есть инструменты для реализации следующей задачи.

Необходимо запретить запуск любых исполняемых файлов, которые не подписаны ЭЦП (x509 сертификат).

О системе: Linux Debian, под руктом не сидим, у пользователя права ограничены. Но в теории допускаем, что в систему может попасть вредоносный исполняемых файл. Поэтому хотим запретить все, разрешить только то, что подписано нашей ЭЦП. Тоесть будем подписывать все исполняемые системные файлы нашей ЭЦП.

Какие есть идеи?

Ответ на: комментарий от Deleted

Спасибо, нашел несколько решений, буду разбираться.

А со скриптами, наверное запретим выполнение bash скриптов из папки пользователя совсем. Тоесть только системные скрипты пусть выполняются, и по идеи пользователь их не может модифицировать.

Ruslan ()
Ответ на: комментарий от Ruslan

Думаю почитать про selinux будет нелишним.

Deleted ()
Ответ на: комментарий от Ruslan

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

Deleted ()

Корень в ro и запрет на исполнение из всех мест кроме корня уже чем то не торт?

anonymous ()
Ответ на: комментарий от Deleted

скрипты тоже подписать! дописать в конец текстом цифровую подпись в ascii-armored виде

Harald ★★★★★ ()
Ответ на: комментарий от Harald

А подробнее?

Какие пакеты есть реализующие проверку этой подписи?

Ruslan ()
Ответ на: комментарий от anonymous

запрет на исполнение из всех мест кроме корня уже чем то не торт?

Как?

anonymous ()
Ответ на: комментарий от anonymous

Как?

Как? Как? Наверное монтированием всех остальных мест с соответствующей опцией?

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

От ручного вызова интерпретатора с корня не поможет.

anonymous ()

И да у этих ублюдков в GrSecurity в их заплатке ядра был флажок который запрещает исполнение любого кода не созданного в тулчейне с их же заплатками. И вот если включить эту паранойю то да perl, python, bash, sh… всё вообще шло лесом. И помоему эту фичу оттуда пока что так и не портировали.

init_6 ★★★★★ ()
Ответ на: комментарий от anonymous

От ручного вызова интерпретатора с корня не поможет.

Товарищь Сталин не может ошибатся - нет интерпретатора нет проблем.

init_6 ★★★★★ ()
Ответ на: комментарий от Deleted

Питон и перл и так запрещен, всмысле нечем их обрабатывать. Доустановить нельзя.

JS в браузере не считаем, там своя песочница у браузера.

Ruslan ()
Ответ на: комментарий от Ruslan

Доустановить нельзя.

Даже в пользовательский каталог?

anonymous ()
Ответ на: комментарий от anonymous

ld-linux.so тоже интерпретатор.

нет интерпретатора нет проблем

Ну ты понил да? А то до тех пор пока он есть проблем не оберешься.

init_6 ★★★★★ ()
Ответ на: комментарий от anonymous

Из пользовательского каталога нужно вообще запретить выполнять файлы

Ruslan ()

Бегло ознакомился с вариантами, на сколько понял, это:

1) DigSig

2) IMA/EVM

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

Ruslan ()

Можно через seccomp переопределить вызовы execv, execp, ... На свой который читает значение extended атрибута security.myattribute и соответственно проверяет хэш, выполняет или нет.

anonymous ()
Ответ на: комментарий от Ruslan

DigSig давно заброшен. IMA/EVM включены в ядро и развиваются, очень функциональны, но пользоваться ими на обычном дистрибутиве ими будет, вероятно, довольно проблематично. Для оффлайн-дистрибутивов для встраиваемых систем подходят.

ValdikSS ★★★★★ ()

По идее достаточно noexec в качестве опции монтирования для хомяка. Нечаянно запустить вредоносный исполняемый файл уже никак не получится. Специально, прописав нужные команды в командную строку - получится. Но не пофиг ли (как верно заметили выше, один фиг остаются интерпретаторы)? Если юзер осознанно хочет запустить что-то плохое, то он может вообще ручками выполнить то, что должен был выполнить скрипт (удалить какие-нибудь файлы, скопировать что-нибудь на флешку или отправить по сети с помощью браузера и т. д.). И от этого никак не уйти. Только доверять юзерам + ограничивать максимально их в правах (чтобы они не могли получить доступ к тому, к чему в принципе не должны).

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 3)

Придумал, как обойдись селинухом

Достаточно объявить, что его метки есть кеш результата проверки подписей. Грубо говоря, наваять кастомный restorecon, который выставляет метки согласно 2х разных политик для проверенных и непроверенных файлов(очевидно, вторая - без исполнимых меток), отобрать права менять их всему, кроме него, у всего отобрать права писать в исполнимые типы, добавить принудительный relabel всего при перезагрузке и обновлениях.

DonkeyHot ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.