​​Недавно узнал любопытную тему из области информационной безопасности, с которо…

By | 15 сентября, 2021

​​Недавно узнал любопытную тему из области информационной безопасности, с которой раньше не пересекался. Как-то не было необходимости. По роду своей деятельности я обычно единоличный посетитель вверенных мне серверов. Редко кого-то приходится туда пускать в консоль. А даже если приходится, то чаще всего временно и несистемно.

Есть shell для пользователей, которые позволяют настраивать различные ограничения (restricted shell) на выполнение команд. Например, rsh или rbash. У них есть ряд встроенных ограничений. И есть целый набор трюков, которые позволяют эти ограничения обходить. Например, открыть vi и выполнить там:
:set shell=/bin/bash

Еще более простой трюк с awk:
awk 'BEGIN {system("/bin/sh")}'

То же самое можно сделать через find:
find / -name file01 -exec /bin/awk 'BEGIN {system("/bin/sh")}' ;

Если запрещены редакторы и использование > и >>, а нужно создать скрипт, существует такой ход:
echo "rm -rf /" | tee script.sh

И таких способов очень много. Я где-то видел репозиторий с десятками подобных способов обхода различных ограничений. Ссылку не сохранил, а сейчас не получилось найти. Буду рад, если кто-то подскажет.

Посмотрел на всё это и еще раз убедился, что в хорошего безопасника можно вырасти только из крепкого админа. Сама по себе эта профессия не может существовать, а должна быть ответвлением или следующим этапом профессии системного администратора. Та же самая история с devops.

Кто-то на практике занимался подобными настройками? В случае с linux терминалом мне кажется это нереально всё закрыть. Постоянно найдется какая-то лазейка. Я когда то давно подобными ограничениями занимался на терминальном сервере Windows. Отключал и ограничивал все инструменты, которые может использовать пользователь, чтобы что-то сломать. Оставлял только то, что надо для непосредственной задачи.

#bash #terminal #security

Поделиться ссылкой