Десять роковых ошибок хакера. Познание секретов маскировки

Докучаев Дмитрий aka Forb

Xakep, номер #056, стр. 056-054-1


(forb@real.xakep.ru)

Молодой хакер, на счету которого было огромное количество взломанных машин, безуспешно пытался зайти на сервер международного банка. Эту систему он наконец-то взломал, потратив на нее несколько бессонных ночей. "Неужели засекли? Я же чистил логи и был предельно осторожен", - вертелось у него в голове. Внезапно его раздумья прервал тонкий писк UPS, что означало отключение электропитания. Затем раздался громкий стук в дверь, за которой стояли вооруженные работники федеральной службы. Эта история закончилась бы печально, если бы горе-хакер не... проснулся от писка своего будильника.

На самом деле, мало кто из хакеров станет взламывать банковские системы, не зная азов собственной безопасности. Админы на стратегически важных системах - люди неглупые и получают за свою работу хорошие деньги, поэтому соревноваться с ними в знаниях компьютерных технологий очень опасно.

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

Тебе интересно, о каких нарушениях идет речь? В этом материале я кратко изложу десять ошибок хакера, которые, на мой взгляд, являются самыми популярными. Ошибки актуальны в основном для unix-like систем, поэтому любителей Windows попрошу не питать особых надежд.

1. Чистка логов

Как ни странно, мало кто любит чистить логи во взломанной системе. А ведь именно по логам админ обнаруживает вторжение. Давай рассмотрим механизм создания логов в unix-like операционке.

Как правило, служебная информация скидывается в файл при помощи функции syslog(). Эта функция напрямую работает с демоном syslogd, либо с его альтернативой (syslog-ng, например). У этого демона есть свой конфигурационный файл (по умолчанию /etc/syslog.conf), в котором подробно указывается местонахождение log-файлов и критерии для того или иного лога, чтобы корректно отделить мух от котлет. Хакер часто забывает, что админ может сменить названия дефолтовых журналов, перенаправив /var/log/secure, к примеру, в /usr/admin/secure. К тому же логи могут писаться в консоль конкретному юзеру, что сильно затрудняет положение хакера.

Чистка таких файлов должна осуществляться с особой осторожностью: проверенными логвайперами, либо руками (идеальный вариант). Я лично встречал такие логвайперы, после применения которых журналирование данных останавливалось. Думаю, добропорядочный админ при таком раскладе быстро заметит неполадки в системе.

Как ни странно, руками вычистить текстовые логи очень просто. Вначале необходимо узнать, есть ли в логах данные, которые следует убрать (например, ip хакера или логин в системе). Затем эта информация старательно вычищается из отдельно взятого журнала с последующим перенаправлением во временный файл. И лишь после этого временный файл переименовывается в настоящий. Эти операции осуществляются при помощи стандартных команд grep и mv. Их можно также провести и при помощи внешних редакторов (vi, ee, mc).

Содержание  Вперед на стр. 056-054-2