Что внутри у антивируса для сайтов
Общая архитектура сервиса
Нашей задачей было создание удобного и эффективного сервиса для лечения и защиты сайтов от вирусов и атак. Решено было реализовать проект в форме SaaS, или говоря проще, в виде веб-сервиса.Ведь действительно, сегодня все самые удобные инструменты предоставляются людям в виде приложений и веб-сервисов. С ними удобно работать, они экономят время.
Итак, архитектурно Вирусдай — это централизованная система, взаимодействующая с подключенными к ней серверами (сайтами) пользователей.
Другими словами, пользователи могут работать со своими сайтами (управлять функциями сервиса Вирусдай: антивирусом, фаерволом и т.д.) через веб-интерфейс сервиса.
Удаленное управление файлами на серверах пользователей позволяет редактировать файлы и некоторые настройки; Даёт возможность предоставить людям различные специализированные сервисы, например, лечение (редактирование) файлов от вредоносного кода или установку системы защиты (фаервол). При этом всегда существует двусторонняя связь между сервером пользователя и Вирусдаем.
Итак, рассмотрим теперь каким же образом Вирусдай связывается с серверами пользователей.
Как Вирусдай взаимодействует с серверами пользователей
Для подключения к сервису достаточно поместить в корневой каталог сайта всего один *.PHP файл (файл синхронизации). Файл уникален для каждого пользователя. Вы можете получить ваш персональный файл синхронизации, авторизовавшись на сервисе Вирусдай.
Все операции по работе с сайтом (сканирование, лечение, установка и управление фаерволом, получение необходимых для работы системы данных и т.д.) происходят посредством взаимодействия с этим файлом. Человек просто подключает свои сайты к сервису и далее осуществляет все операции с ними, находясь в панели управления Вирусдая.
Все операции с сайтами пользователя производятся через файл синхронизации посредством HTTP запросов. В ответ на полученные от сервиса Вирусдай запросы файл синхронизации загружает с наших серверов (при необходимости) программы и выполняет соответствующие действия, выдавая в ответе результат их выполнения.
Такой подход позволяет решить массу проблем, связанных с постоянным обновлением программ на сайтах пользователя. Так же это позволяет создать централизованную систему управления множеством сайтов, расположенных на различных серверах. При работе с каждым сайтом (сервером) в отдельности экономится масса времени, а также распределяется нагрузка.
Плюсы связи через файл синхронизации
В мире существует немало сервисов, обменивающихся данными с серверами посредством FTP или SSH, однако, мы выбрали HTTP и вот почему мы сделали это. При таком подходе операции с файлами можно выполнять прямо на сервере пользователя. При этом нагрузка при выполнении программ распределяется на серверы пользователей; Отпадает необходимость каждый раз скачивать файлы с серверов пользователей для анализа, что экономит трафик в колоссальных объемах. Кроме того, большинство сайтов в сети работают по протоколу HTTP и поддерживают PHP, поэтому применение HTTP+PHP — это наиболее универсальный способ для взаимодействия с ними.
Выбранный подход не просто является достаточно универсальным, но также является удобным и простым для пользователей сервиса. Человек может не вникать в технические подробности устройства системы или настройки собственных серверов. Единственное, что требуется от пользователя — это добавить сайт в свой список и поместить файл синхронизации в корень сайта на своем сервере.
Загрузка файла в корень сайта — это понятная операция, доступная большинству веб-мастеров и владельцев сайтов. Мы особое место уделяем именно простоте использования сервиса, а подключение сайта к Вирусдаю таким способом — это просто и понятно.
Вопросы безопасности
Конечно же, в любом проекте или системе важную роль играют вопросы обеспечения безопасности. В нашем сервисе этому направлению мы уделяем особое внимание.
При взаимодействии Вирусдая с серверами пользователей используется несколько степеней защиты. Это и HTTPS при работе пользователя с сервисом, и уникальный файл синхронизации, который генерируется для каждого пользователя в отдельности, и цифровые подписи.
При каждом взаимодействии с файлом синхронизации необходима уникальная цифровая подпись и активная сессия. Это позволяет не пропускать несанкционированные запросы к файлу. При этом, даже если перехватить запрос, его невозможно будет повторить с тем же успехом, так как для этого потребуется новая цифровая подпись.