<< Кликните, чтобы показать Содержание >> Фильтрация по 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-протокола ещё не существует сообщений, проверка на их наличие в трафике будет выполнена позже. Однако метки и теги, установленные для запросов, на этом этапе будут сохранены в сообщении (если оно будет извлечено из этих запросов).