BASH must die

Иван Скляров

Xakep, номер #061, стр. 061-060-3


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

Ложка дегтя в бочке меда

Теперь обсудим плюсы и минусы способа. Как ни горько это признавать, но он совершенно не защищает систему от деструктивных действий хакера. Например, простым вызовом unlink(name_file) хакер может удалять практически любые файлы, присутствующие в системе. Кроме того, несмотря на то, что большинство шеллкодов выполняют /bin/sh, ничто не мешает хакеру вызвать, например, /usr/bin/emacs или даже /bin/vi, и с их помощью натворить немало бед. Хакер может написать даже собственную простейшую оболочку, аналогичную xsh, и запустить ее в системе через шеллкод.

Однако среднестатистический скрипт-киддис не способен провести даже простейших изменений в шеллкоде. К тому же во все программы, имеющие интерактивный обмен с пользователем, нам ничто не мешает сделать корректировки, аналогичные тем, которые были сделаны в оболочке (благо они open sources). При этом ненужные в повседневной работе программы можно удалить.

У этого способа есть и еще один большой побочный эффект. В защищенной оболочке откажутся нормально работать программы, использующие функцию system(), а также «упрощенные» функции для организации каналов – popen() и pclose(). Эти функции в своей работе используют вызов /bin/sh, а т.к. sh является ссылкой на защищенную оболочку, то эта защищенная оболочка просто не даст возможности выполнить команду без ввода пароля. Можно было бы сказать, что это даже к лучшему, т.к. приведенные функции небезопасны от природы, если бы не одно но: таких программ слишком много! Данными вызовами пользуются даже некоторые кривые сервисы, из-за чего может просто отказаться грузиться система. Поэтому внедрение описываемой защиты может оказаться поистине ювелирной работой, где все должно быть подогнано и проверено на совместимость. Конечно, этим имеет смысл заниматься только в том случае, когда безопасность стоит на первом месте.

Disclaimer

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

Назад на стр. 061-060-2  Содержание  Вперед на стр. 061-060-4