Linux глазами хакера
Шрифт:
Теперь рассмотрим содержимое файла /etc/auto.misc. Здесь только одна строка без комментария, которая описывает команды подключения CD-ROM диска:
Первый
Как видите, все очень даже просто. Если попытаться обратиться к директории /misc/cd, и в приводе CD-ROM в этот момент будет находиться диск, то он будет автоматически смонтирован. Только есть одно замечание, адресоваться лучше командами Linux (например, выполнить команду
14.12. Короткие советы
Мы проанализировали достаточно много аспектов создания безопасной системы, но есть некоторые общие рекомендации, которые подытоживают рассмотренный в этой книге материал. Поэтому напоследок я собрал короткие советы, которые пригодятся вам в построении безопасного сервера или сети.
14.12.1. Дефрагментация пакетов
С помощью фрагментированных пакетов хакеры производят очень много атак на серверы. В Linux можно сделать так, чтобы ОС объединяла приходящие пакеты. Если у вас монолитное ядро (без поддержки модулей), то необходимо прописать 1 в файл /proc/sys/net/ipv4/ip_always_defrag. Это легко сделать с помощью команды:
В последних ядрах, которые используют RPM-модули, необходимо подгрузить модуль
14.12.2. Маршрутизация от источника
Мы уже не раз говорили о том, как пакеты проходят по сети, и достаточно подробно затронули эту тему в разд. 4.5.1. Напоминаю, что внутри сети пакеты передаются по MAC-адресу, а для обмена между сетями необходимо маршрутизирующее устройство, которое умеет работать с IP-адресами и направлять пакеты по нужному пути, который они сами определяют. Но эти устройства управляемы, и существует несколько методов заставить их устремить пакеты в нужное русло. Один из этих методов — маршрутизация от источника (source routing).
С помощью маршрутизации от источника можно установить путь прохождения пакета по сети. Иногда это действительно удобно, но мы же знаем, что это "палка о двух концах", и вполне логичным было бы source routing запретить, а лучше вообще никогда не придумывать.
Как маршрутизация от источника влияет на безопасность? Допустим, что ваш сетевой экран запрещает подключения с адреса 192.168.1.1, потому что через этот IP к вам пытался проникнуть хакер. Так как все пакеты злоумышленника маршрутизаторы направляют именно через этот адрес, то подключение становится невозможным. Но благодаря source routing злоумышленник может сам указать путь, по которому должен следовать пакет, и провести его в обход маршрутизатора или сервера с запрещенным адресом.
Жаль, что мы не можем запретить маршрутизацию от источника на компьютере хакера, но мы не должны принимать такие пакеты на своей стороне и тем более на компьютере, который выполняет роль шлюза в Интернет (прокси-сервер или сетевой экран).
Для этого необходимо установить 1 в файле /proc/sys/net/ipv4/conf/all/accept_source_route или выполнить команду:14.12.3. SNMP
Протокол SNMP (Simple Network Management Protocol, простой протокол сетевого управления) применяется для управления сетевыми устройствами, такими как маршрутизаторы, управляемые коммутаторы и даже бытовыми устройствами, подключенными к сети.
Существует три версии этого протокола. Первая версия была разработана очень давно и, конечно же, осуществляла открытый обмен паролями и данными. Шифрование было добавлено в SNMP, начиная со второй версии. Именно поэтому первую версию не рекомендуется использовать, а лучше даже запретить.
У SNMP есть еще один недостаток — протокол использует в качестве транспорта UDP-протокол, который не поддерживает виртуальное соединение, и передача осуществляется простой отправкой пакетов в сеть без подтверждения доставки и без каких-либо авторизаций, т.е. злоумышленник легко может подделать любые поля пакета.
Я не рекомендую использовать SNMP вообще, потому что для большинства задач можно обойтись без него. Конечно же, шифрование, добавленное во второй версии, значительно повысило безопасность, и его можно стало применять даже в особо важных случаях. Но необходимо сначала убедиться, что вы работаете именно со второй или более старшей версией и шифрование используется.
14.12.4. Полный путь
Когда вы запускаете какие-либо команды или программы, то необходимо указывать полный путь к ним. Большинство пользователей и администраторов просто указывают имя запускаемого объекта, что может стать причиной взлома. Да что там говорить, я сам грешу вводом коротких команд
Рассмотрим пример того, как злоумышленник может использовать короткие имена в своих целях на примере команды
□ хакер создает в каком-либо каталоге (например, в общедоступном /tmp) файл с таким же именем, как и у атакуемой программы;
□ в этот файл может быть записан сценарий, который выполняет необходимые хакеру действия.
Например, следующий код может быть записан в такой файл:
В данном примере выполняется всего три команды. Первые две изменяют права доступа к файлам /etc/passwd и /etc/shadow так, чтобы любой пользователь смог их прочитать. При этом все сообщения, которые могут возникнуть во время выполнения команд, направляются на нулевое устройство /dev/null, чтобы они не отображались на экране. После этого выполняется системная команда
Теперь устанавливаем программе ls права, которые позволят выполнять ее любому пользователю:
Ложный файл готов. Теперь необходимо сделать так, чтобы он выполнялся вместо системной команды