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

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

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

Хочу рассказать и показать как можно сделать сервис по проверке файлов различными антивирусами(аля 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 версия )
Теги:
Хабы:
+6
Комментарии 8
Комментарии Комментарии 8

Публикации

Истории

Работа

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн