Таким образом, можно подменить все опасные программы, которые должны быть недоступны простым пользователям.
Хакеры чаще всего не проверяют утилиты, которые запускают, а ведь угрозу можно увидеть, если выполнить команду:
cat /usr/bin/who
Вот тут и проявляется недостаток использования сценариев — их можно просмотреть. Программы, написанные на языке С и откомпилированные в исполняемый файл, при просмотре обнаруживают абсолютно ни о чем не говорящий мусор.
14.9.2. Ловля на живца
В разд. 4.11 мы затронем тему построения сети, где публичные ресурсы вынесены на самостоятельные серверы и защищаются отдельно от основной сети. Мы уже коснулись вопроса создания серверов-приманок, и сейчас настало время поговорить об этом более подробно.
Администраторы очень любят оставлять приманки для хакеров, потому что они позволяют идентифицировать злоумышленника на начальном этапе. Эта технология даже получила название honeypot (горшок меда). Как это работает? В сети устанавливается один или несколько компьютеров, в которых изначально заложены ошибки конфигурирования или легкие для подбора пароли. Основная задача этого комплекса — отслеживание обращений извне и регистрация любых взломов.
На рис. 14.4 приведена схема классической honeypot-сети. От Интернета ее отделяет сетевой экран, за которым находится публичная сеть (общедоступные ресурсы и подставные серверы/компьютеры). Далее идет второй сетевой экран, который защищает и скрывает приватную сеть.
Рис. 14.4. Построение honeypot-сети
Как только хакер попадает в капкан, администраторы начинают идентификацию и его поиск. Пока злоумышленник пытается проникнуть далее в хорошо защищенную сеть, специалисты по безопасности уже успевают прийти к нему домой и физически остановить нездоровое любопытство.
Чтобы ваш капкан не ловил всех подряд и не давал сложных срабатываний, его защита должна быть достаточной, дабы сервер нельзя было сломать программами, автоматизирующими поиск уязвимостей. Иначе число ежедневно пойманных в ловушку хакеров будет исчисляться сотнями, а то и более, ведь количество сканирований популярного ресурса велико.
Я настраиваю свои honeypot-серверы на максимальную безопасность, просто сетевой экран, который их защищает (на рис. 14.3 это Firewall 1), пропускает практически любой трафик.
Это позволяет решить сразу несколько потенциальных проблем:
□ не вызывает подозрений у хакера. Слишком открытые серверы с дырявыми сервисами насторожат профессионала, и он не будет трогать такие компьютеры;
□ уменьшается количество срабатываний системы на каждого начинающего хакера, который случайно нашел программу для взлома;
□ позволяет выявлять атаки, которые еще неизвестны специалистам по безопасности, и защищаться даже от них. Если сервер с правильными настройками взломан, значит, компьютеры за пределами второго сетевого экрана тоже уязвимы, но вы еще не знаете об этой лазейке или могли совершить ошибку в конфигурировании.
Как только вы заметили взлом поддельного сервера, выполняются следующие шаги:
□ анализируется уязвимость, через которую проник хакер. Найдя ошибку в конфигурировании или дырявый сервис, необходимо отыскать заплатку и установить ее на компьютеры защищенной сети, чтобы хакер после взлома второго сетевого экрана не смог воспользоваться этой уязвимостью;
□ выясняется источник угрозы, IP-адрес хакера, и вся найденная информация сообщается в правоохранительные органы.
Так как на honeypot-компьютерах сервисы не обрабатывают, а только эмулируют реальные подключения пользователей, то для таких серверов нет необходимости устанавливать мощное оборудование. Достаточно устаревшего железа, которое вы уже давно не используете. В любой организации кабинет администратора завален старыми системными блоками, которые лежат только как запасные части.
Если у вас нет старых компьютеров, то в honeypot можно превратить и серверы, которые используются в качестве публичных. В принципе, каждый публичный сервер итак должен содержать мощные системы журналирования и мониторинга, и от honeypot их должно отличать отсутствие заведомо открытых уязвимостей и легких паролей.
Чтобы хакер ничего не заподозрил и обратил внимание на подставные компьютеры, одной защиты мало. Необходимо, чтобы honeypot создавали видимость действия и обрабатывали какой-либо трафик. Для этого могут быть написаны специальные утилиты, которые с определенным интервалом производят соединения между подставными компьютерами, имитируя работу пользователей. Компьютер, который находится в сети и ничего не делает, вызовет подозрение, и его будет ломать только "чайник".
14.10. Взлом паролей
Очередной идиотизм, который могли придумать хакеры, — это подбор паролей. Когда взломщик не может изобрести ничего оригинального, он запускает подбор паролей. Об этом мы уже говорили в разд. 1.1.7, но тогда мы затронули эту тему только вскользь, а сейчас поговорим более подробно. Нам предстоит свести всю отрывочную информацию, которую мы получали в предыдущих главах, в одно целое и узнать еще много нового по этому вопросу.
14.10.1. По словарю или все подряд
Существует два метода подбора паролей: по словарю и полный перебор всех возможных вариантов. Рассмотрим каждый из них.
Подбор по словарю. В этом случае хакер сначала готовит файл с наиболее часто используемыми для паролей словами. Затем запускается программа подбора паролей, которая последовательно проверяет все термины из указанного словаря.
Преимущество этого метода состоит в том, что пароль может быть найден достаточно быстро, если он простой и есть в словаре. Взломщик для подбора может использовать, например, словарь английского языка, и количество возможных вариантов не превысит 20 000 слов (я имею в виду наиболее часто используемые).
Задача хакера — составить как можно более эффективный словарь, который при этом может быть и незначительного размера. Для этого сначала собирается вся возможная информация об администраторе: имя и фамилия его и родственников, день рождения, клички домашних животных, интересы, любимые фильмы, музыка и т.д. Полученные данные добавляются в начало словаря. Все исследовательские конторы пришли к одному и тому же выводу, что большинство людей выбирают в качестве пароля имена своих любимых собачек, кошечек, знаменательные даты, номера телефонов, а чаще всего что- то связанное с хобби. Хорошо подобранный словарь может сломать практически любую систему, т.к. всегда найдутся неопытные пользователи с такими паролями.
С другой стороны, если использованы все рекомендации по подбору пароля (длинный и сложный, состоящий из букв и символов, да еще с использованием разного регистра), то вероятность того, что такая комбинация окажется в словаре хакера, стремится к нулю. И поэтому время, затраченное злоумышленником, окажется зря потерянным.
Полный перебор. В этом случае программа последовательно перебирает все возможные комбинации букв, цифр и символов в различных регистрах.
Количество вариантов при таком алгоритме исчисляется миллиардами и прямо пропорционально зависит от длины пароля.
Метод дает 100% гарантию удачного подбора, но реализация может отнять недели или даже месяцы. Если администратор системы ежемесячно меняет пароли, то пока хакер занимается подбором, результат уже устаревает.
14.10.2. Удаленно или локально
Подбор паролей разделяют на удаленный и локальный. В первом случае хакер пытается подключиться к компьютеру по сети с разными паролями. Это наиболее опасный для него метод, потому что каждая неверная попытка регистрации записывается в журнал безопасности. Если вы хотя бы иногда заглядываете туда, то уже на раннем этапе сможете найти злоумышленника и предотвратить подбор с помощью запрета подключения с IP-адреса хакера. Есть еще одна проблема — подбор осуществляется к определенному сервису, но нет гарантии, что другая программа тоже будет использовать этот пароль. Кроме того, большинство сервисов имеют настройки, лимитирующие попытки входа. И если хакер не уложится в это ограничение, то соединение разрывается, и его приходится восстанавливать. Каждое подключение — это лишние затраты времени, которые увеличивают время подбора даже по словарю.
Для того чтобы подбор оказался долгим занятием, в некоторых сервисах есть возможность при неправильном указании параметров доступа искусственно делать задержку между попытками ввода. Ярким примером является сама ОС. Попробуйте при регистрации в Linux указать неверный пароль или имя пользователя. ОС будет производить проверку намного дольше, чем при указании правильных параметров. Чем больше задержка, тем больше времени необходимо хакеру для подбора пароля.