Cобственные сигнатуры для ClamAV.

Сайт одного из клиентов был взломан, срок давности взлома установлен не был, а значит какие-то проблемные скрипты уже могли оказаться в бекапах. В ходе проверки выяснилось, что далеко не все заражённые скрипты находятся автоматикой. При этом выручила возможность создать собственные сигнатуры для ClamAV и проверить аккаунт после этого.

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

1. Берём файлы, которые не определились как малварь, например:

# ls -la /home/user/ | grep malware
-rw-rw-r-- 1 user user 96 май 9 21:32 first.malware.php
-rw-r--r-- 1 user user 109 май 9 21:37 second.malware.php

2. С помощью утилиты sigtool генерируем hex дампы файлов командами:

cat /home/user/first.malware.php | /usr/local/cpanel/3rdparty/bin/sigtool --hex-dump | head -c 2048 >> /home/user/ownsigs.ndb
cat /home/user/second.malware.php | /usr/local/cpanel/3rdparty/bin/sigtool --hex-dump | head -c 2048 >> /home/user/ownsigs.ndb

3. Открываем файл ownsigs.ndb, выглядеть он будет примерно так:

3c3f706870200a247234323d222f602e... # здесь строка продолжается
3c3f706870200a2d3039716977706b70... # здесь строка продолжается

4. В начало каждой строки добавляем следующее:

{HEX}base64.first.malware:0:*:3c3f706870200a247234323d222f602e... # здесь строка продолжается
{HEX}base64.second.malware:0:*:3c3f706870200a2d3039716977706b70... # здесь строка продолжается

5. Сохраняем файл, копируем его в директорию с другими сигнатурами антивируса:

# cp /home/user/ownsigs.ndb /usr/local/cpanel/3rdparty/share/clamav/

6. Проверяем аккаунт пользователя, и видим что оба наших файла оказались найдены антивирусом и удалены:

# /usr/local/cpanel/3rdparty/bin/clamscan -i --remove
/home/user/first.malware.php: {HEX}base64.first.malware.UNOFFICIAL FOUND
/home/user/first.malware.php: Removed.
/home/user/second.malware.php: {HEX}base64.second.malware.UNOFFICIAL FOUND
/home/user/second.malware.php: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 6290254
Engine version: 0.99.2
Scanned directories: 1
Scanned files: 14
Infected files: 2
Data scanned: 0.11 MB
Data read: 0.04 MB (ratio 2.64:1)
Time: 8.887 sec (0 m 8 s)

Я работал на сервере с cPanel, здесь пути до нужных файлов и директорий отличаются от того что может быть в другой ОС или при наличии другой панели на сервере, однако алгоритм создания собственных сигнатур при этом абсолютно тот же.

В случае получения сообщения вида:

LibClamAV Error: Problem parsing database at line 2
LibClamAV Error: Can't load /usr/local/cpanel/3rdparty/share/clamav/ownsigs.ndb: Malformed database
LibClamAV Error: cli_loaddbdir(): error loading database /usr/local/cpanel/3rdparty/share/clamav/ownsigs.ndb
ERROR: Malformed database

Проверьте файл ownsigs.ndb и убедитесь что в нём не было допущено ошибки при вставке в начале строки (пункт 4 выше).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *