Есть ли способ различать системные пакеты и установленные вручную пакеты в Linux?

Переключение на другую учетную запись пользователя с root-прав по умолчанию небезопасно.

Гораздо безопаснее напрямую перейти в нужный каталог от имени пользователя root, чем использовать suили sudoдля переключения пользователей, поскольку последнее позволяет зараженному пользователю автоматически выполнять произвольные команды от имени пользователя root через ioctl TIOCSTI, отправляя команды на tty пользователя root.

Например, предположим, что существует двоичный файл hacksu, использующий преимущества ioctl TIOCSTI, и что злоумышленник изменил файл.bashrc учетной записи [user] зараженного пользователя для выполнения этого двоичного файла при запуске оболочки.

$ tail -n3 /home/[user]/.bashrc
echo hi
/opt/hacksu -- $'echo "hello world" >> /tmp/file1\nfg'
echo bye
$ _

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

root@host:~# su - [user]

Следующие 8 строк выводятся на терминал без участия пользователя, поскольку поиск.bashrc происходит автоматически.

echo "hello world" >> /tmp/file
1
fg
[1]+  Stopped                 su - [user]
root@host:~# echo "hello world" >> /tmp/file1
root@host:~# fg
su - [user]
bye

Теперь пользователь root понимает, что что-то не так, и закрывает оболочку [пользователя], чтобы проверить, что сделал.bashrc [пользователя].

[user]@host:~$ logout
root@host:~# ll /tmp/file1
-rw-r--r-- 1 root root 12 Apr 15 00:47 /tmp/file1  # owned by root (!)
root@host:~# cat -v /tmp/file1
hello world
root@host:~# # oops..

В приведенном выше сценарии [пользователь] только что записал в произвольный файл как пользователь root. На практике выполняемые команды могли делать все, что мог root. Представьте, например, если бы вместо /etc/shadowбыл вызван двоичный файл hacksu.

Исходный код двоичного файла POC hacksuможно найти по адресуhttps://www.halfdog.net/Security/2012/TtyPushbackPrivilegeEscalation/. Не переключайтесь на другого пользователя в качестве root, если вы не устранили угрозу зараженной учетной записи пользователя.

1
03.04.2020, 13:41
3 ответа

Ваши теги неясны, мы не знаем, какой менеджер пакетов вы используете. Но поскольку вы использовали тег arch -linux, я буду отвечать за pacman.

Ну, первый вопрос сложный, насколько мне известно, на самом деле это невозможно и сильно зависит от вашей установки. Не существует одной стандартной установки Linux, так как существует множество различных дистрибутивов, сред рабочего стола, параметров установщика и т. д. Но один из способов — посмотреть, какие группы пакетов установлены вместе с вашей установкой, и получить другие (, которые, вероятно, будут установлены пользователем )с помощью следующей команды :comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort), где base — это один из группы, которые вы предварительно установили наверняка.

Ко второй части вопроса :Вы можете получить информацию о пакете, используя pacman -Si <yourpackage>, и если вы хотите, чтобы вывод сводился только к зависимостям, проверьте эту тему

1
28.04.2021, 23:18

на уровне rpmвы не можете по-настоящему знать. В зависимости от используемого менеджера пакетов там может храниться некоторая информация.

Обратите внимание, что это работает только в том случае, если пользователь запускал команды установки с помощью sudo. Если он стал root, вы никогда не узнаете, кто это сделал.

Ням

yum history

дает вам список транзакций и какой пользователь запустил команду.

Днф

dnf history

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

dnf history info <ID>

и далее вы увидите пользователя, запустившего команду

молния

нет никакого способа узнать это, афаик.

1
28.04.2021, 23:18

Проверьте пакеты, включенные в рассматриваемый дистрибутив, во время установки на веб-сайте дистрибутива. Они предварительно -установлены; все остальное добавил пост -инста;;/

0
28.04.2021, 23:18

Теги

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