14.9.1. Осведомлен, значит защищен
14.9.1. Осведомлен, значит защищен
Очень часто я использую чрезвычайно эффективный, но сложный в реализации метод — информирование при запуске потенциально опасных программ. Сложность заключается в том, что надо уметь программировать под Linux хотя бы на каком-нибудь языке. Лучше, если это будет С, но можно и Perl. В крайнем случае, подойдет умение писать сценарии (командные файлы).
Итак, в чем заключается мой метод? Войдя в систему, хакер всегда оглядывается и старается найти способ укрепиться в системе, чтобы оставаться долгое время незаметным для администратора. Для этого взломщик чаще всего выполняет команды who, su, cat и др. Ваша задача установить на них ловушки. Например, можно изменить код программы su так, чтобы сразу после ее выполнения администратору направлялось письмо.
Получив сообщение о том, что была выполнена опасная команда, и она запускалась не администратором, есть повод проверить систему на наличие в ней постороннего.
Если вы не умеете программировать, можно обойтись и средствами самой ОС. Допустим, что вы хотите получать сообщения каждый раз, когда выполняется команда who. Взломщик часто выполняет такую директиву, когда входит в систему, чтобы узнать, есть ли там администратор. Определить место расположения программы можно командой:
which who
В результате вы должны увидеть путь типа /usr/bin/who.
Для начала запоминаем права на файл, выполнив команду:
ls -al /usr/bin/who
Для данной программы должны быть права -rwxr-xr-x, что соответствует числу 755.
Теперь необходимо переименовать файл /usr/bin/who в /usr/bin/system_who. Это можно сделать следующей командой:
mv /usr/bin/who /usr/bin/system_who
Меняем права доступа:
chmod 755 /usr/bin/system who
Теперь, чтобы выполнить команду who, нужно использовать имя system_who. Но скопированный файл может стать неисполняемым, поэтому второй командой мы восстанавливаем права.
Затем создаем заглушку для программы who. Это будет файл с именем who, в директории /usr/bin. Когда хакер будет выполнять команду who, то будет запускаться наш файл. Для этого выполним команду:
cat /usr/bin/who
Теперь все команды, вводимые с консоли, будут записываться в файл /usr/bin/who. Наберите две строки:
/usr/bin/system_who
id | mail -n -s attack root@FlenovM
После этого нажмите сочетание клавиш <Ctrl>+<D> и измените права на созданный нами файл /usr/bin/who, установив значение 755.
Выполните команду who. Все вроде нормально, но если проверить почту, то в вашем ящике будет лежать новое письмо с заголовком "attack" (рис. 14.3), и в нем будут находиться параметры (все, что вернет команда id) пользователя, выполнившего команду. Это из-за того, что запустилась не системная команда, а наш файл, который содержит две строки:
? /usr/bin/system_who — сначала запускаем системный файл who, который мы переименовали, чтобы взломщик ничего не заподозрил;
? id | mail -n -s attack root@FlenovM — выполняется команда id, а результат направляется с помощью почтовой программы mail в почтовый ящик root@FlenovM. Ключ -s задает заголовок письма. Ключ -n предотвращает чтение файла /etc/mail.rc. Я рекомендую указывать только эти атрибуты, чтобы на экране не появлялось лишней информации, и взломщик ничего не заподозрил. Хакер не должен знать, что программа отправила администратору какое-нибудь сообщение.
Рис. 14.3. Пример сообщения об атаке
Таким образом, можно подменить все опасные программы, которые должны быть недоступны простым пользователям.
Хакеры чаще всего не проверяют утилиты, которые запускают, а ведь угрозу можно увидеть, если выполнить команду:
cat /usr/bin/who
Вот тут и проявляется недостаток использования сценариев — их можно просмотреть. Программы, написанные на языке С и откомпилированные в исполняемый файл, при просмотре обнаруживают абсолютно ни о чем не говорящий мусор.
Данный текст является ознакомительным фрагментом.