Фильтрация по HTTP+DNSBL

<< Кликните, чтобы показать Содержание >>

Руководство Администратора | CHM EPUB PDF A4/Letter   

Фильтрация по HTTP+DNSBL

Задача

Если сообщение получено или передано методом GET HTTP-протокола и адрес сервера есть в списке dnsbl (например, dnsbl.sorbs.net), то необходимо пометить сообщение меткой "possible malware or proxy".

Описание логики решения

Проверьте метод HTTP-запроса, используя фильтр HTTP-протокола. Чтобы убедиться, что адрес сервера присутствует в некотором DNSBL-списке, необходимо использовать фильтр сообщений. Таким образом для решения общей задачи будут использованы два фильтра: фильтр HTTP-протокола и фильтр сообщений. В фильтре HTTP-протокола будет проверен метод GET и поставлена некоторая метка на все GET-запросы (например "HTTP_GET").

Эта метка останется и в сообщениях, которые будут извлечены из этих запросов и будет доступна далее в фильтре сообщений. В фильтре сообщений, для сообщений, содержащих метку "HTTP_GET", будет проверено наличие адреса сервера в DNSBL-списке через выполнение действия "dnsbl".

Если адрес сервера будет входить в DNSBL-список, то на это сообщение будет установлена метка (например, "DNSBL_EXIST"). Далее в фильтре сообщений необходимо будет проверить для сообщения уже две метки – "HTTP_GET" и "DNSBL_EXIST" и уже для сообщений с обеими метками установить метку "possible malware or proxy".

Также для корректной работы действия "dnsbl" необходимо в конфигурации службы EtherSensor Analyser настроить DNS-серверы для проверки DNSBL.

Решение

1. Настройка DNS-серверов в конфигурации службы EtherSensor Analyser для проверки DNSBL.

Настройку можно производить в консоли управления или в конфигурационном файле.

В файле конфигурации службы EtherSensor Analyser:

Корневой тег <AnalyserConfig>, далее вложенный тег <RawHttpFilter> – включаем фильтр HTTP-протокола. Тег настроек фильтров <Filter> (включаем фильтр сообщений). Далее вложенный тег <DnsBl> – настройки DNS-серверов для проверок адресов в DNSBL-списках в фильтре сообщений.

<?xml version="1.0" encoding="utf-8"?>

<AnalyserConfig version="3.2">

 

<!-- other service settings -->

  <RawHttpFilter enabled="true" filename="http-filter.xml" />

  <Filter enabled="true" filename="msg_filter.xml">

 

<!-- other filter settings -->

 

    <DnsBl>

      <AttemptsCount>3</AttemptsCount>

      <TtlForUnknown>3600</TtlForUnknown>

      <MinTtl>300</MinTtl>

      <MaxTtl>604800</MaxTtl>

      <Server ipaddress="127.0.0.1" port="53" />

    </DnsBl>

 

  </Filter>

 

</AnalyserConfig>

В данном случае предполагается, что DNS-сервер располагается по адресу 127.0.0.1:53.

2. Файл фильтра HTTP-протокола может выглядеть так (http-filter.xml):

<?xml version="1.0" encoding="utf-8"?>

<filter name="HTTP filter" version="1.0">

 

  <table name="main">

 

    <rule enabled="true">

      <match>

        <c name="method" value="GET"/>

      </match>

      <action name="tag" value="HTTP_GET"/>

    </rule>

 

    <rule enabled="true">

      <action name="accept" />

    </rule>

  </table>

</filter>

Подробное описание условия фильтрации "method" и действия "tag" смотрите в разделах Условие METHOD и Действие TAG.

3. Файл фильтра сообщений может выглядеть так (msg_filter.xml):

<?xml version="1.0" encoding="utf-8"?>

<filter name="Message filter" version="1.0">

 

  <table name="main">

 

    <rule enabled="true">

      <match>

        <c name="tag" tag="HTTP_GET"/>

      </match>

      <action name="dnsbl-rh"

              address="both"

              tag="DNSBL_EXIST"

              value="dnsbl.sorbs.net" />

    </rule>

 

    <rule enabled="true">

      <match>

        <and>

          <c name="tag" tag="HTTP_GET"/>

          <c name="tag" tag="DNSBL_EXIST"/>

        </and>

      </match>

      <action name="tag" value="MALWARE_OR_PROXY"/>

    </rule>

 

  </table>

</filter>

Подробное описание условия "tag", действия "tag" и действия "dnsbl" смотрите в разделах Условие TAG, Действие TAG и Действие DNSBL-LH, DNSBL-RH.

Комментарии и общие рекомендации

1. Для более быстрого разрешения имён DNS в конфигурации службы EtherSensor Analyser желательно указывать как можно более быстрые DNS-сервера. Это могут быть как серверы Интернет-провайдера, так и собственные DNS-серверы.

2. Действие "dnsbl" (разрешение имён DNS для DNSBL) является относительно длительной операцией (особенно если указано использование нескольких DNSBL-сервисов), в связи с этим старайтесь выполнять его в фильтре только для тех сообщений, для которых это необходимо.

3. Старайтесь применять действие "dnsbl" в конце фильтра, в месте, где понадобятся результаты его работы.

4. Следует помнить, что на этапе фильтрации HTTP-протокола ещё не существует сообщений, проверка на их наличие в трафике будет выполнена позже. Однако метки и теги, установленные для запросов, на этом этапе будут сохранены в сообщении (если оно будет извлечено из этих запросов).