Принципы работы

Компонент Dr.Web ICAPD использует протокол ICAP (Internet Content Adaptation Protocol, RFC 3507) для взаимодействия с внешним по отношению к Dr.Web для интернет-шлюзов UNIX прокси-сервером, обслуживающим соединения узлов локальной сети с веб-серверами по протоколу HTTP/HTTPS.

Протокол ICAP представляет собой легковесный HTTP-подобный протокол. Клиент отправляет на ICAP-сервер запрос, в состав которого входят заголовки, а также инкапсулированный HTTP-запрос, который необходимо проверить. В ответе ICAP-сервер возвращает модифицированный HTTP-запрос в инкапсулированном виде, а также один или несколько заголовков.

Для взаимодействия по протоколу ICAP используются следующие типы запросов (методы):

REQMOD — для проверки и модификации запросов;

RESPMOD — для проверки и модификации ответов;

OPTIONS — для получения информации о параметрах соединения с ICAP-сервером.

В запросах REQMOD и RESPMOD используются заголовки:

X-Client-IP — IP-адрес, c которого поступил проверяемый HTTP-запрос;

X-Server-IP — IP-адрес, на который направлен проверяемый HTTP-запрос;

X-Client-Username — имя клиента, прошедшего аутентификацию на прокси-сервер (в формате user или user@domain).

В ответах REQMOD и RESPMOD используются заголовки:

X-Response-Info — присутствует в ответе, если запрашиваемый ресурс принадлежит к категории потенциально опасных или нежелательных; всегда имеет значение Blocked;

X-Infection-Found — содержит информацию о наличии вирусов и других потенциально опасных или нежелательных объектов;

X-Virus-ID — содержит имя обнаруженного вируса;

X-Violations-Found — содержит информацию об ошибках, произошедших во время проверки.

В запросе OPTIONS может использоваться заголовок DrWeb-Get-Scan-Status. Если этот заголовок имеет значение Yes, то в ответе будет возвращена информация об используемых версиях сканирующего движка, сканирующего ядра и вирусных баз (см. ниже).

В ответе OPTIONS используются заголовки:

X-Allow-Out — содержит список полей заголовков, которые Dr.Web ICAPD может включать в ответы;

X-Include — значения заголовков, полученные из выполненного ранее запроса;

DrWeb-Core-Engine — версия сканирующего ядра Dr.Web;

DrWeb-Scan-Engine — версия сканирующего движка Dr.Web;

DrWeb-Scan-Status — информация о статусе текущей операции сканирования;

DrWeb-Database-Timestamp — метка времени вирусной базы;

DrWeb-Virus-Records — количество записей в базе.

Dr.Web ICAPD также может фильтровать веб-контент и блокировать доступ к потенциально опасным и нежелательным веб-ресурсам. Если пользователь запросит доступ к такому ресурсу, ему будет возвращена страница блокировки, сформированная на основе шаблона. На странице содержится сообщение о запрете доступа с кратким объяснением причины. Такая же страница будет возвращена, если Dr.Web ICAPD обнаружит угрозу или если при проверке передаваемых данных произошла ошибка.

Для проверки URL на предмет принадлежности к потенциально опасным и нежелательным категориям Dr.Web ICAPD использует как базу категорий веб-ресурсов, регулярно обновляемую с серверов обновлений компании «Доктор Веб», так и опрашивает облачный сервис Dr.Web Cloud.
К потенциально опасным ресурсам категориям относятся:

InfectionSource — веб-сайты, содержащие вредоносное ПО («источники распространения вирусов»).

NotRecommended — веб-сайты, используемые для мошенничества («социальной инженерии») и не рекомендованные к посещению.

AdultContent — веб-сайты, содержащие материалы порнографического или эротического содержания, веб-сайты знакомств и т. д.

Violence — веб-сайты, содержащие призывы к насилию, материалы о различных происшествиях с человеческими жертвами и т. д.

Weapons — веб-сайты, посвященные оружию и взрывчатым веществам, а также материалы с описанием их изготовления и т. д.

Gambling — веб-сайты, на которых размещены онлайн-игры на деньги, интернет-казино, аукционы, а также принимающие ставки и т. д.

Drugs — веб-сайты, пропагандирующие употребление, изготовление или распространение наркотиков и т. д.

ObsceneLanguage — веб-сайты, на которых содержится нецензурная лексика (в названиях разделов, статьях и пр.).

Chats — веб-сайты для обмена сообщениями в режиме реального времени.

Terrorism — веб-сайты, содержащие материалы агрессивно-агитационного характера, описания терактов и т. д.

FreeEmail — веб-сайты предоставляющие возможность бесплатной регистрации электронного почтового ящика.

SocialNetworks — социальные сети общего характера, деловые, корпоративные и тематические социальные сети, а также тематические веб-сайты знакомств.

DueToCopyrightNotice — веб-сайты, ссылки на которые указаны правообладателями произведений, защищенных авторскими правами (кинофильмы, музыкальные произведения и т. д.).

OnlineGames — веб-сайты, на которых размещены игры, использующие постоянное соединение с интернет-сетью.

Anonymizers — веб-сайты, позволяющие пользователю скрывать свою личную информацию и предоставляющие доступ к заблокированным веб-сайтам.

CryptocurrencyMiningPool — веб-сайты, предоставляющие доступ к сервисам, объединяющим пользователей с целью добычи (майнинга) криптовалют;

Jobs — веб-сайты, предназначенные для поиска работы.

В настройках компонента системный администратор может определять нежелательные для пользователей веб-ресурсы, а также формировать черные и белые списки. При запросе ресурсов, включенных в черный список, пользователю возвращается страница блокировки. Если же ресурс включен в белый список, то доступ к нему будет всегда разрешен, даже если он относится к одной из нежелательных категорий.

Один и тот же веб-сайт может принадлежать одновременно нескольким категориям. Доступ пользователя к такому веб-сайту будет заблокирован, если он принадлежит хотя бы одной из нежелательных категорий.
Один сайт может принадлежать к несколькими категориям. Если одна из этих категорий отнесена к нежелательным, доступ к сайту будет заблокирован.

 

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

 

В силу особенностей протокола ICAP, проверка данных большого объема (образы .iso, большие архивы, файлы видео и т. п.) может занимать продолжительное время. Рекомендуется настроить ограничения по MIME-типу данных, подлежащих проверке, а также ограничить в настройках прокси-сервера HTTP максимальный размер данных, проверяемых по протоколу ICAP (см. пример для прокси-сервера Squid).

Для регулярного автоматического обновления базы категорий веб-ресурсов с серверов обновлений компании «Доктор Веб» используется тот же компонент обновления Dr.Web Updater, который обновляет вирусные базы для сканирующего ядра Dr.Web Scanning Engine. Для обращения к облачному сервису Dr.Web Cloud используется компонент Dr.Web CloudD (использование облачного сервиса задается в основных настройках Dr.Web для интернет-шлюзов UNIX, и при необходимости может быть отключено). Для проверки передаваемых данных Dr.Web ICAPD использует агента сетевой проверки данных Dr.Web Network Checker, который, в свою очередь, инициирует их проверку сканирующим ядром Dr.Web Scanning Engine.

Для блокирования или пропуска запросов и ответов протокола HTTP компонент Dr.Web ICAPD может использовать как правила, внедренные в настройки, так и скрипт проверки, написанный на языке Lua.

Об интеграции Dr.Web ICAPD с прокси-сервером HTTP см. в разделе Интеграция с прокси-сервером Squid.