Malware - классное программное обеспечение, которое отлично портит настроение системному администратору. А если кроме шуток, то это точно не то ПО, которое хочется увидеть на своём сервере. Но есть сканеры и на этот случай. Как раз сегодня мне достался один сайт на проверку, который куда-то периодически перенаправляет пользователей. И сегодня испробуем, LMD - сканер вредоносных программ для Linux, распространяется по лицензии GNU GPLv2. Если проще - утилита проверки зараженного сайта на вредоносный код, позволяющий сразу и вылечить его.

Официальный сайт

Перечислять возможности не буду, их просто много, к тому же они все есть на официальном сайте. А мы попробуем это ПО в действии. Для начала, перейдём в opt и скачаем это

1
2
cd /opt
wget -c http://www.rfxn.com/downloads/maldetect-current.tar.gz

теперь разархивируем

1
tar xvf maldetect-current.tar.gz

Переходим в каталог и устанавливаем

1
2
cd maldetect <TAB>
sh install.sh

Теперь немного конфигурации. Открываем файл

1
/usr/local/maldetect/conf.maldet

и редактируем эти строки

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# [ EMAIL ALERTS ]
##
# Включить ли оповещение на почту
# [0 = disabled, 1 = enabled]
email_alert=1
 
# Тема письма
email_subj="MLD Scan Report from $(hostname)"
 
# Адрес админа, кому шлём
# [ values are comma (,) spaced ]
email_addr="yourmail@yourdomain.com"
 
#Если всё ок, то репорт не отсылаем, в почте и так немало писем к утру может быть
email_ignore_clean=0
 
##
# [ QUARANTINE OPTIONS ]
##
# Отправлять ли ПО в карантин (почему нет, у меня уже целая коллекция этих зверьков)
# [0 = alert only, 1 = move to quarantine & alert]
quar_hits=1
 
# Try to clean string based malware injections
# [NOTE: quar_hits=1 required]
# [0 = disabled, 1 = clean]
quar_clean=1
 
# The default suspend action for users wih hits
# Cpanel suspend or set shell /bin/false on non-Cpanel
# [NOTE: quar_hits=1 required]
# [0 = disabled, 1 = suspend account]
quar_susp=0

# minimum userid that can be suspended
quar_susp_minuid=500

А теперь самый кульминационный момент, к которому мы шли: как проверить сайт на вредоностное ПО. После установки и конфигурирования, давайте это запустим:

1
maldet -l -a /var/www

Этой командой просканим всё добро в /var/www. Опция -a просканит всё, а -l покажет это (не люблю гадать что и когда закончится, явное лучше неявного). После этого можно посмотреть репорт:

1
maldet --report 040114-17.975

В конце остаётся пожелать видеть только чистые репорты. :)

PS Кстати, по горе-сайту… Обновлять wordpress администратор мог бы и почаще. Древняя версия привела к тому, что я увидел это:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
malware detect scan report for SITENAME:
SCAN ID: 040315-1258.27559
TIME: Apr  3 12:59:30 +0300
PATH: /var/www/html/
TOTAL FILES: 4760
TOTAL HITS: 3
TOTAL CLEANED: 0

FILE HIT LIST:
{HEX}php.cmdshell.unclassed.357 : /var/www/html/wp-content/plugins/revslider/temp/update_extract/revslider/resvlide.php => /usr/local/maldetect/quarantine/resvlide.php.21705
{HEX}php.cmdshell.unclassed.357 : /var/www/html/wp-content/plugins/revslider/temp/update_extract/revslider.zip => /usr/local/maldetect/quarantine/revslider.zip.27939
{HEX}php.cmdshell.unclassed.357 : /var/www/html/wp-content/plugins/revslider/temp/plagmain.php => /usr/local/maldetect/quarantine/plagmain.php.6538
===============================================
Linux Malware Detect v1.4.2 < proj@rfxn.com >

Зверьков в карантин, один файлик (его в списке нет) я уже поправил вручную (добавили код в functions.php).