Linux глазами хакера
Шрифт:
Жаль, что мы не можем запретить маршрутизацию от источника на компьютере хакера, но мы не должны принимать такие пакеты на своей стороне и тем более на компьютере, который выполняет роль шлюза в Интернет (прокси-сервер или сетевой экран). Для этого необходимо установить 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 права, которые позволят выполнять ее любому пользователю:
Ложный
Следите за содержимым системной переменной окружения
14.12.5. Доверительные хосты
В файле .rhosts можно прописать адреса хостов, которым вы доверяете. Пользователи этих компьютеров смогут подключаться к серверу без аутентификации с помощью таких программ, как Telnet или FTP.
Мы уже столько раз говорили о безопасности, что нетрудно догадаться, что хакер может подделать адрес отправителя. Если ему удастся это сделать, то ваш сервер превращается в проходной двор.
14.12.6 Защита паролей
Для защиты паролей Linux достаточно только охранять файл /etc/shadow. Помимо этого вы должны контролировать сложность паролей, регулярно пытаясь подобрать пароль по популярным словарям, которые легко найти в Интернете (именно их используют хакеры). Если пароли сложные, то даже при получении файла взломщику понадобится слишком много времени, и скорей всего ничего не удастся.
Но не все так просто. Если пароли для доступа к системе защищаются самой ОС и обязательно шифруются, то остальные программы могут не иметь такой возможности. Например, в пользовательских программах для доступа к определенным сервисам, в частности FTP или POP3, может не использоваться шифрование, и в этом случае пароли могут находиться в конфигурационном файле в открытом виде.
Прежде чем устанавливать какую-либо программу, узнайте, где она хранит пароли и как они защищены (используется шифрование или нет). Устанавливайте такие права на файлы, чтобы доступ к ним мог получить только конкретный пользователь и администратор. Желательно, чтобы для группы стояли нулевые права, особенно если в ней может быть несколько пользователей.
Если отдельная группа создается для каждого пользователя, то группе можно выделить некоторые права. И все же, я бы не советовал этого делать, потому что неизвестно, что будет в будущем. Хакер может добавить себя в определенную группу, или вы сами можете случайно или намеренно объединить пользователей.
Всем своим пользователям я рекомендую не сохранять в программах паролей. Это значит, что при проверке почты надо каждый раз указывать свой пароль. Но это очень неудобно, особенно когда у пользователя более трех почтовых ящиков, а это в наше время является нормой. Да и при наличии одного очень трудно заставить пользователя помнить все пароли и не сохранять их в системе.
Но вводить пароль надо непосредственно в программе, и лучше всего, если он не будет отображаться на экране. Это значит, что надо стараться не указывать пароли в командной строке, которая не может использовать невидимые символы.