Анализ аттаки с помощью журнальных файлов

С.А.Гуденко (аспирант МФТИ)


К средствам мониторинга сетевых атак относятся такие программные продукты, как SNORT (IDS), для предотвращения атак используются различные системы типа Firewall. Хорошего результата можно достичь, грамотно конфигурируя программное обеспечение ЭВМ и контролируя качество паролей. Пример фрагмента журнального файла ZoneAlarm (разновидность FireWall) представлен ниже:

FWIN,2005/08/19,14:25:04 +4:00 GMT,61.235.154.103:44666,194.85.70.31:1027,UDP
FWIN,2005/08/19,14:39:36 +4:00 GMT,220.168.156.70:37740,194.85.70.31:1026,UDP
FWIN,2005/08/19,14:39:36 +4:00 GMT,220.168.156.70:37740,194.85.70.31:1027,UDP
FWIN,2005/08/19,14:44:34 +4:00 GMT,222.241.95.69:32875,194.85.70.31:1027,UDP


Эта распечатка демонстрирует попытки прощупывания ЭВМ с IP-адресом 194.85.70.31 на предмет откликов со стороны портов 1026 и 1027 (протоколы cap и exosee). Зондирование производится с нескольких разных адресов (61.235.154.103, 220.168.156.70 и 222.241.95.69). Объектом атаки в данном случае является рабочая станция, которая не поддерживает эти протоколы.

Для отслеживания работы ОС и приложений обычно предусматривается система журнальных файлов, которая фиксирует все события (приход запросов, соответствие запросов определенным критериям и т.д.)

Рассмотрим использование журнальных файлов на примере анализа успешной атаки вторжение через приложение SSH.

Если возникло подозрение относительно возможного вторжения, надо начинать с просмотра файлов secure и messages (каталог /var/log/ ОС LINUX). В нашем случае атака началась в пятницу вечером (8-го июля 2005 года). Ниже представлены фрагменты журнальных файлов, иллюстрирующие характер атаки.

Jul 8 18:23:18 fender sshd[15017]:Illegal user anonymous from 207.232.63.45
Jul 8 18:23:20 fender sshd[15019]: Illegal user bruce from 207.232.63.45 (Нью-Йорк, США)
Jul 8 18:23:22 fender sshd[15021]: Illegal user chuck from 207.232.63.45
Jul 8 18:23:23 fender sshd[15023]: Illegal user darkman from 207.232.63.45

Jul 9 13:15:13 fender sshd[16764]: Illegal user bruce from 129.237.101.171
Jul 9 13:15:14 fender sshd[16766]: Illegal user chuck from 129.237.101.171
Jul 9 13:15:16 fender sshd[16768]: Illegal user darkman from 129.237.101.171
Jul 9 13:15:17 fender sshd[16770]: Illegal user hostmaster from 129.237.101.171
….
Jul 10 15:25:34 fender sshd[28450]: Did not receive identification string from 80.18.87.243\par
Jul 10 16:56:16 fender sshd[28457]: Illegal user lynx from 80.18.87.243\par
Jul 10 16:56:17 fender sshd[28459]: Illegal user monkey from 80.18.87.243\par
Jul 10 16:56:18 fender sshd[28461]: Illegal user lion from 80.18.87.243\par
….
Jul 10 02:42:02 fender sshd[18064]: Did not receive identification string from 166.70.74.35
Jul 10 03:09:13 fender sshd[18067]: Illegal user admin from 166.70.74.35 (Солт Лейк Сити, США)
Jul 10 03:09:14 fender sshd[18069]: Illegal user admin from 166.70.74.35
Jul 10 03:09:16 fender sshd[18071]: Illegal user admin from 166.70.74.35
….
Jul 10 16:56:16 fender sshd[28457]: Illegal user lynx from 80.18.87.243 (Венеция, Италия)
Jul 10 16:56:17 fender sshd[28459]: Illegal user monkey from 80.18.87.243
Jul 10 16:56:18 fender sshd[28461]: Illegal user lion from 80.18.87.243
….
Jul 10 16:56:40 fender sshd[28509]: Failed password for root from 80.18.87.243 port 45208 ssh2
Jul 10 16:56:41 fender sshd[28511]: Accepted password for root from 80.18.87.243 port 45298 ssh2
….
Jul 10 19:13:49 fender sshd[31152]: Accepted password for root from 81.181.128.181 port 4943 ssh2

Из записей видно, что машина была атакована из 7 точек. Четыре расположены в США (IP=166.70.74.35; 207.232.63.45; 129.79.240.86 и 129.237.101.171), по одной в Италии, Румынии и Венгрии (IP=80.98.194.185). Производится подбор параметров доступа имя-пароль. Подбор продолжался около двух суток.

Успешный вариант был найден машиной из Италии (IP-адрес=80.18.87.243 Венеция). Практически сразу атака со стороны всех ЭВМ была прервана и хакер вошел на атакуемую ЭВМ (имя_ЭВМ=fender) из машины с IP=81.181.128.181 (Румыния).

Для дальнейшего анализа событий нами были использованы данные из файла .bash_history, куда записываются все команды исполняемые пользователем в терминальном режиме. Записи этого файла и результаты работы демона syslogd говорят о том, что через 3 минуты после успешного вторжения хакер заблокировал работу syslog.

Далее хакер заблокировал доступ к системе других пользователей, загрузил туда файл pass_file (объем 696057 байт), содержащий комбинации имя-пароль (небольшие фрагменты содержимого файла представлены ниже).

lynx lynx
monkey monkey
lion lion
heart heart
michel michel
alibaba alibaba
…..
root 123456
root 1234567
….
root 1234567890
root rootroot
root rootrootroot
root 123root123
root 987654321
….
root 4321
root 321
root root!
root root!@
root root!@#
….

Хакер рассчитывает на то, что пользователь ЭВМ ленив, и выбирает простой пароль (легче запомнить - легче подобрать). Кроме того, хакер скопировал на взломанную ЭВМ несколько скриптов и файл со списком адресов - кандидатов на взлом. После этого машина включилась в работу по подбору паролей на других ЭВМ.

К сожалению, факт атаки был установлен лишь утром в понедельник. Сначала была проведена частичная блокировка. Хакер почувствовал неладное и выдал команды last и ps, пытаясь понять, что происходит, дальнейшая его работа была полностью блокирована.

Какие выводы из этой истории можно сделать? На атакованной рабочей станции была установлена SSH устаревшей версии (имевшей уязвимость) и использован достаточно простой пароль. По этой причине нужно своевременно обновлять ОС и версии приложений. Про выбор паролей смотри RFC-2196. Особо опасными с точки зрения атак является ночь и выходные дни. Если нет насущной необходимости, лучше на это время блокировать доступ к ЭВМ или даже выключать ее.

Помимо журнальных файлов ОС надо просматривать и соответствующие файлы приложений, например, Firewall (BlackIce Defender, ZoneAlarm и т.д.), Apache, баз данных и пр. Если даже в вашей зоне ответственности только один компьютер, просмотр всех важных файлов достаточно трудоемок. По этой причине следует рассмотреть возможность использования специализированных скриптов, которые возьмут эту работу на себя, информируя вас в случае выявления тревожных событий. Результаты работы скриптов должны накапливаться в базе данных. Эти данные могут использоваться для получения данных об атакерах и формирования ACL (списков управления доступом).

Хакер может попытаться уничтожить следы своего пребывания, стерев или очистив определенные журнальные файлы. Вполне возможно, в нашем случае хакер так бы и поступил, восстановив перед уходом и доступ по SSH. По этой причине следует заранее побеспокоиться о периодическом копировании журнальных файлов на недоступное для хакера устройство или сохранении их в зашифрованном виде. Но хакер может поступить и более жестоко, например, разметив системный диск. Хорошая схема защиты должна предотвращать такого рода действия или позволять хотя бы быстро восстанавливать разрушенную конфигурацию системы.

Следует учитывать, что сами журнальные файлы могут стать объектом атаки типа DoS. Большой поток запросов, поступающих с нескольких ЭВМ, и обращенных к одному или нескольким ресурсам машины, могут привести к быстрому росту журнальных файлов, переполнить дисковое запоминающее устройство и блокировать работу.