Я надеюсь, вы никогда не были жертвой компьютерной атаки. Но если вам когда-то не повезло, и это произошло – не стоит отчаиваться, все поправимо. Более того, как показывает практика, люди, чья система однажды была взломана компьютерными мошенниками или вандалами, обращают большее внимание на безопасность и избегают повторения неприятностей. Может быть, и эта статья окажется кому-то полезной и поможет справиться с возникшими трудностями.
Хакеры крайне редко упрощают нам процесс своей поимки, а те, которые все же каким-то образом способствуют этому – не хакеры, а обыкновенные лохи. Поэтому даже при запущенном зараженном приложении, имеющемся трояне и даже протекающей в настоящее время атаке неспециалисту не так то просто понять это на фоне остальных законных действий в системе. Возьмем пример Unix-системы (результаты команды top):
8:54pm up 40 min, 2 users, load average: 0.00, 0.01, 0.04 48 processes: 45 sleeping, 3 running, 0 zombie, 0 stopped CPU states: 1.3% user, 0.9% system, 0.0% nice, 97.6% idle Mem: 254200K av, 249128K used, 5072K free, 0K shrd, 57964K buff Swap: 522104K av, 960K used, 521144K free 39936K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 1281 matt 18 0 11984 11M 10144 R 1.1 4.5 0:00 kdeinit 825 root 16 0 83820 17M 3584 R 0.7 6.8 1:17 X 1306 matt 11 0 1028 1028 836 R 0.1 0.4 0:00 top 1 root 8 0 476 476 420 S 0.0 0.1 0:00 init 2 root 9 0 0 0 0 SW 0.0 0.0 0:00 keventd 3 root 19 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU0 4 root 9 0 0 0 0 SW 0.0 0.0 0:00 kswapd 5 root 9 0 0 0 0 SW 0.0 0.0 0:00 bdflush 6 root 9 0 0 0 0 SW 0.0 0.0 0:00 kupdated 8 root 9 0 0 0 0 SW 0.0 0.0 0:00 khubd 9 root 9 0 0 0 0 SW 0.0 0.0 0:00 kjournald 135 root 9 0 0 0 0 SW 0.0 0.0 0:00 kjournald 460 root 9 0 560 560 472 S 0.0 0.2 0:00 syslogd 465 root 9 0 444 444 384 S 0.0 0.1 0:00 klogd 545 root 8 0 636 636 480 S 0.0 0.2 0:00 cardmgr 677 root 9 0 1816 1816 1300 S 0.0 0.7 0:00 sendmail
Сложно? Неочевидно? Не стоит расстраиваться и сомневаться в своих умственных способностях. Это – естественная реакция любого нормального человека. Можно пойти несколько другим путем.
Самый критический шаг в процессе поиска злонамеренной деятельности - анализ поведения сети. Это особенно верно, если вы не имеете четкого подтверждения работы эксплоита в вашей системе. Многие взломщики устанавливают новые сервисы или открывают порты на машинах жертвы. Ведь подавляющему большинству хакеров даже не нужны ваши личные или корпоративные секреты (конечно, в случае обнаружения они также могут вызвать определенный интерес и служить в качестве своеобразного «приза»). Их интересует именно ваш сервер, точнее его мощности. Ваш взломанный сервер может использоваться как для рассылки всяческого спама, так и для участия в массовых компьютерных атаках. Да мало ли что можно придумать в качестве грязной работы для чужого сервера!
Так, что же вам стоит сделать? Для начала стоит посмотреть, какие сервисы законно должны идти, и какие порты при этом могут использоваться. Затем стоит запустить portscan. Имеются различия? Никакие непредусмотренные порты не должны быть открыты.
Пример работы сканера (Nmap):
[/home/matt]$ nmap -sT -v -v -v localhost Starting nmap V. 2.54BETA31 ( www.insecure.org/nmap/ ) Warning: You are not root -- using TCP pingscan rather than ICMP Host localhost.localdomain (127.0.0.1) appears to be up ... good. Initiating Connect() Scan against localhost.localdomain (127.0.0.1) Adding open port 25/tcp Adding open port 6000/tcp The Connect() Scan took 0 seconds to scan 1554 ports. Interesting ports on localhost.localdomain (127.0.0.1): (The 1552 ports scanned but not shown below are in state: closed) Port State Service 25/tcp open smtp 6000/tcp open X11
Далее стоит запустить сниффер пакетов. Отфильтруйте нормальный трафик (DNS, HTTP и т.д.) из общей массы. Снова, смотрим, что у нас имеется в остатке необычного. При этом стоит иметь в виду, что некоторые эксплоиты не работают непрерывно, а их активность зависит от выполнения некоторых условий (самое простое из которых – определенное время суток или дата). Поэтому мы можем и не наблюдать их работу именно сейчас. Выявить закономерность их работы (или хотя бы сам факт такой работы) можно лишь скрупулезным мониторингом всех событий за длительный период времени при использовании тщательно продуманного фильтра, отсекающего все протекающие законные события.
Пример простого фильтра для отсечения нормального трафика - tcpdump
[root@localhost matt]# /usr/sbin/tcpdump -elXnvvv -i eth0 dst port not 22 and dst port not 80 and dst port not 53
Другой инструмент, который можно использовать в исследовании - netstat. Он используется для получения списка активных сетевых соединений. При использовании его наряду с инструментами Unix, такими как lsof и fuser (или fport в случае Windows), мы получим своего рода карту – какие программы используют какие порты.
Пример Netstat
[/home/matt]$ netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:printer *:* LISTEN tcp 0 0 *:x11 *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost.localdom:smtp *:* LISTEN
Что изменилось?
Эксплоит в общем случае может делать только одну из трех операций: добавлять, удалять или модифицировать файлы. Что было удалено или изменено? Логи, как мы и говорили ранее, файлы или все сразу, если эксплоит особо вредный. Файлы, добавленные в систему – как правило, инструменты, типа снифферов или вирусов, которые могут использоваться для будущей «работы». В процессе поиска новых файлов вы их легко обнаружите – пусть даже они и будут скрытыми. Это все – мелочи, рассчитано на полных даунов. Чего действительно стоит опасаться, так это модифицированных файлов. С какого такого резона они изменились? И чем это нам грозит? Ситуацию с ними можно сравнить с проблемой с генетически модифицированной пищей – вроде бы съедобно, сразу от нее, как правило, не умирают. Но вот все последствия приема такой пищи не могут определить даже самые продвинутые специалисты-генетики (последствия варьируются от «безвредно» до «в лучшем случае – бесплодие детей, в худшем – же лучше и не задумываться»). Измененные файлы – самое опасное наследство взлома и самая тяжелая часть восстановления системы. Злоумышленник мог сотворить множество неприятных для вас вещей: создать новые аккаунты, двойную регистрацию, вставить трояны, целые галереи «черных ходов» - и т.д. Если вдуматься обо всех возможных последствиях, то и жить не захочется. Не в том, конечно, фатальном смысле, а в том, что «а не удалить ли мне систему на х...?» (на харде, а не то, что некоторые могли подумать). Действительно, многие эксперты-радикалы советуют в случае, когда нет возможности восстановить систему из backup, отформатировать винт и установить все заново. Но это, конечно, слишком серьезный шаг, в большинстве случаев систему можно обеззаразить.
С чего стоит начать? Критичны системные файлы. Все, что каким-либо образом относится к регистрации, паролям, привилегиям также требует особого внимания.
Далееe, можно использовать инструменты find command для Unix или любых аналогичные аналогичные средства, проверяющими файловую систему на произошедшие изменения. Такие программы проверяют три параметра: время последнего доступа к файлу, время изменения статуса и время последней модификации файла. Вы можете составить список всех файлов, измененных в результате произошедшего инцидента. Просмотрите его, удалите или замените все зараженные файлы. В случае заражения каких-либо программ, следует переустановить с инсталляционного диска. Модификация бинариев часто означает наличие в вашей системе Трояна, открывающего «черный ход».
Unix find command (измененные файлы в /etc за последние 10 минут):
[root@localhost matt]# find /etc -mtime -10 /etc /etc/sysconfig/hwconf /etc/mtab /etc/mail/statistics /etc/dhcpc /etc/dhcpc/dhcpcd-eth1.cache /etc/dhcpc/dhcpcd-eth1.info /etc/dhcpc/dhcpcd-eth1.info.old /etc/aliases.db /etc/adjtime /etc/pcmcia /etc/pcmcia/backup_wireless.opts /etc/pcmcia/wireless.opts /etc/pcmcia/1/etc/kde/kdm /etc/kde/kdm/kdmsts /etc/ioctl.save /etc/.aumixrc
Все новые и модифицированные файлы перед уничтожением неплохо бы скопировать на отдельную машину, а еще лучше записать на CD для последующего изучения. Они являются непосредственными «свидетелями преступления» и могут многое рассказать о том, что именно произошло на вашем компьютере. Такие файы могут нести «отпечатки пальцев» эксплоитов – как уже известных, так и новых и представляют интерес для специалистов в области компьютерной безопасности. Если вы не уверены в своей компетенции в данном вопросе, то можно обратиться за помощью к опытным специалистам в данном вопросе. Из российских фирм можно порекомендовать Positive Technologies, а из иностранных - CERT или Xforce. Даже обладая только этими файлами они, в большинстве случаев, смогут восстановить всю картину происшествия и вернуть систему в рабочее состояние.
Прежде чем запустить систему снова
Что ж, осталось произвести только несколько стандартных шагов, которые необходимо сделать перед запуском очищенной системы. Убедитесь, что установлены все патчи, модификации, что настроено разграничение доступа. На всякий случай запустите последнюю версию Xspider, чтобы убедится, что вы ничего не пропустили. Далее, обязательно смените административные пароли в системе, которая была взломана, удалите также все учетные записи, которые могли бы использоваться для удаленного доступа к системе.
Осталось сделать три шага – настроить мониторинг протекающих процессов, сохранение логов в надежном месте (лучше всего – на отдельной машине). Стоит после инцидента внимательнее относиться к этим вещам, по крайней мере, в первое время. Будьте внимательны! Стоит ожидать повторных атак на вашу систему, кроме того, в случае недостаточно тщательного обеззараживания системы могли остаться «черные ходы», которые будут при этом выявлены. Как говорится, “Береженного Бог бережет” (сказала монашенка, натягивая на свечку второй презерватив).
Заключение
Я надеюсь, вы никогда не были жертвой компьютерной атаки. Но если вам когда-то не повезло, и это произошло – не стоит отчаиваться, все поправимо. Более того, как показывает практика, люди, чья система однажды была взломана компьютерными мошенниками или вандалами, обращают большее внимание на безопасность и избегают повторения неприятностей. Может быть, и эта статья окажется кому-то полезной и поможет справиться с возникшими трудностями.
В заключение, хочу порекомендовать инструменты, которые вы можете использовать в подобной работе:
Анализ процессов
Анализ работы сети
Анализ защищенности системы
Анализ диска и файлов
Целостность файлов