Ковыряем формат баз ClamAV

ClamAV – антивирусный пакет с открытым исходным кодом, зачастую использовался как кодовая база во времена расцвета fake-av темы.

Актуальная информация по сигнатурам: [En] signatures.pdf

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

Скачать clamav вместе с GUI можно тут http://ru.clamwin.com

Распаковка базы

Базы можно скачать на сайте clamav или через вышеназванный GUI.

Из ClamWin нам понадобиться утилита sigtool.exe

Запускаем sigtool.exe -u daily.cvd

И получаем распакованную базу, также старые распакованные базы можно посмотреть здесь.

Формат сигнатур

Старые форматы
  1. MD5:Size:MalwareName
  2. PESectionSize:MD5:MalwareName
  3. MalwareName:TargetType:Offset:HexSignature

Где TargetType  один из

Например

Рассмотрим реальные сигнатуры

MalwareNamePUA.PDF.LaunchActionObject-1
TargetType0 (любой файл)
Offset0
Теперь рассмотрим сигнатуру по частям:
255044462d*6f626a255044462d затем любое количество байт и 6f626a
6f626a{-2}3c3c6f626a от нуля до 2 байт пропуск и 3c3c
2f416374696f6e(0d|0a|2f|20|28|3c)2f416374696f6e и либо байт 0d либо 0a любо 2f и т.д.
Рассмотрим ещё одну особенность:

TargetType1 (Windows PE)
OffsetEP+0, что значит EntryPoint + 0 байт.
78d??????????80?? обозначает любой байт, 0? пол байта
B ещё одну:

TargetType3 (Normalized HTML)
Offset*  – любое место в файле

Новые форматы

Появились начиная с версии  0.94

  • SignatureName;TargetDescriptionBlock;LogicalExpression;Subsig0;Subsig1;Subsig2;…

Логические сигнатуры – новый тип, учитывает расположение (и существование) бинарных строк в файле

Например сигнатура

будет выглядеть так:

  • Whitelisting

Начиная с 3 января ClamAv меняет формат базы на YARA

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