Я решил написать скрипт, который объединял в себе некоторые способы защиты сайта от взлома.
Возможности скрипта:
Поиск шеллов. Осуществляется по кускам кода.
Парсинг логов. Производится на предмет обнаружения атак типа SQL injection, LFI/RFI, XSS, обращения к бэкдорам. Поиск ведется по кейвордам.
Есть возможность:
1) Снять слепок с файлов в нужной директории
2) Проверить файлы этой директории на изменение/удаление/появление новых по сравнению с состоянием, когда был сделан слепок.
Снять слепок можно, только когда скрипт запущен вручную.
Слепок пишется в бинарном виде в файл md5checksum.db
Два режима работы:
1) Вручную. Для работы вручную необходима авторизация. В этом случае скрипт интерактивный.
2) По крону
Можно отслеживать скрипты, к которым передаются подозрительно большие данные post-запросами. Для этого надо изменить значение параметра $max_postsise в конфиге.
Есть файл base.cfg с базой данных.
Рассмотрим его:
#extensions white list
php, txt, html
"Белый" список расширений. Скрипт будет обрабатывать только файлы с заданными расширениями.
#extensions black list
cpp, c, pl
"Черный" список расширений. Скрипт будет искать файлы с заданными расширениями.
#code check
function c99_buff_prepare|C99 Shell
...
Куски кода по которым обнаруживаются шеллы. В формате код|название
Далее идут кейворды, по которым обнаруживаются атаки.
(SQL injection, LFI/RFI, XSS, обращения к бэкдорам)
Конфиг скрипта:
Скачать: site_defender.zip
Возможности скрипта:
Поиск шеллов. Осуществляется по кускам кода.
Парсинг логов. Производится на предмет обнаружения атак типа SQL injection, LFI/RFI, XSS, обращения к бэкдорам. Поиск ведется по кейвордам.
Есть возможность:
1) Снять слепок с файлов в нужной директории
2) Проверить файлы этой директории на изменение/удаление/появление новых по сравнению с состоянием, когда был сделан слепок.
Снять слепок можно, только когда скрипт запущен вручную.
Слепок пишется в бинарном виде в файл md5checksum.db
Два режима работы:
1) Вручную. Для работы вручную необходима авторизация. В этом случае скрипт интерактивный.
2) По крону
Можно отслеживать скрипты, к которым передаются подозрительно большие данные post-запросами. Для этого надо изменить значение параметра $max_postsise в конфиге.
Есть файл base.cfg с базой данных.
Рассмотрим его:
#extensions white list
php, txt, html
"Белый" список расширений. Скрипт будет обрабатывать только файлы с заданными расширениями.
#extensions black list
cpp, c, pl
"Черный" список расширений. Скрипт будет искать файлы с заданными расширениями.
#code check
function c99_buff_prepare|C99 Shell
...
Куски кода по которым обнаруживаются шеллы. В формате код|название
Далее идут кейворды, по которым обнаруживаются атаки.
(SQL injection, LFI/RFI, XSS, обращения к бэкдорам)
Конфиг скрипта:
##############################
my $mode = 0; #1 - крон, 0 - вручную
my $s_root = '/var/www/xxx'; #директория для сканирования
my $access_log = '/home/daniel/logs/access_6.log'; #путь к файлу с логами
my $output = "/home/daniel/out.txt"; #файл для вывода работы скрипта
my $max_postsise = -1; #максимальный размер пост-данных. -1 - если не отслеживать
#если mode = 1
my $scan_logs = 1; #сканировать логи
my $scan_dir = 0; #искать шеллы
my $md5_mask = 0; #проверять состояние файлов по md5-маске
#если mode = 0
my $password = "6be2fb4b673873cd21cb95197e978abb"; #пароль в md5(md5($pass)) для авторизации
my $write_out = 1; #писать ли лог работы скрипта
##############################
Скачать: site_defender.zip