Как стать автором
Обновить

Делаем домашний VirusTotal

Время на прочтение2 мин
Количество просмотров7.3K
Доброго времени суток!

Хочу рассказать и показать как можно сделать сервис по проверке файлов различными антивирусами(аля virustotal.com).

С чего же начать?! Ах дааа… С картинки!





Часть 0



Начнем с того, что скачаем исходники. Сцылко

Внутри архива Вы обнаружите 2 папки «daemon» и «www».

daemon — как уже поняли это «демон» на perl, который будет проверять файлы антивирусами, файл конфига, sh скрипт для запуска «демона» и его контроля, структура БД.

www — это php оболочка, которая будет загружать файлы на проверку, и выдавать нам результат.

Чать 1



И что же спросите Вы с этим всем делать? Нууу… давайте разбираться.

Начинать будет с запуска «демона».
  1. Для этого скопируем конфиг в /etc/checker/checker.conf (разумеется подправим)
  2. Демон в /etc/init.d/checker.pl
  3. Создадим таблицы в бд checker из файла ckecker.sql
  4. Запустим checker_control.sh и добавим его в cron, чтобы запускался через каждые 5 мин (на ваше усмотрение)


«Демон» пашет!

Часть 2



Даже не знаю нужно или нет рассказывать про установку того что находится в папке «www». Т.к. это нужно просто скопировать в Вашу www директорию на сервере. Настроить конфиг www/engine/options.php

Часть 3



ВНИМАНИЕ! в конфиге «демона» находятся все настройки, связанные с антивирусами, пример:

avast =>	
{
	type => 'command', #это команда
	name => 'Avast!', #название антивируса - Avast
	id => 1, # id
	command => '/usr/bin/avast', #путь до антивируса
	args => '-t N %%', #необходимые аргументы
	clean => qr/\bOK$/, #Сообщение от антивируса когда файл чист
	infected => qr/\binfected by/, #Сообщение от антивируса когда файл заражен
	match => qr/.*\[infected by:\s(.*)\]/, #регулярка вытаскивает название вируса
	engine_command => '/usr/bin/avast -V', #команда на получение версии
	engine => qr/avast v(\d\.\d\.\d)/, #регулярка вытаскивает версию антивируса
}


Возможно Вам придется подредактировать эти параметры, т.к. от версии к версии меняются команды и ответы

В статье не описаны способы установки антивирусов, Вы должны об этом позаботиться сами!

Отдых для глаз



Результат проверки файла



История проверок



Заключение



Хочу сказать что можно добавить все антивирусы, которые смогуть работать на ОС Вашего сервера.
На своем домашнем серверке я настраивал 9 антивирусов.
Можете прикрутить регистрацию пользователей, оплату, и зарабатывать на этом. Лично мне без разницы!

Для тех кто ищет ссылки в конце статьи — ссылка на github

UPD: И в качестве альтернативы perl — Qt версия от RankoR ( qt версия )
Теги:
Хабы:
Всего голосов 28: ↑17 и ↓11+6
Комментарии8

Публикации

Истории

Работа

PHP программист
113 вакансий

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань