VIKI.Guard

VIKI.Guard разработан на .Net Core и предназначен для мониторинга сетевого трафика и управлению правилами межсетевого экрана с учетом целевых и нецелевых стран. Позволяет включать правила при превышение пороговых значений и выключать их при снижение ниже пороговых значений. Может работать в консольном видимом режиме и в фоновом (Windows service, UNIX Daemon). Сервис обладает большой гибкостью и позволяет настраивать все необходимые параметры для отслеживания трафика. Так, если за заданное время трафик значительно увеличивается из нецелевых стран для сайта, то сервис включает запрещающие правила межсетевого экрана, которые блокируют доступность сайта на время, пока внешний трафик не спадет. Сервис сам отслеживает внешний трафик и сам отключает данные правила, как только аттака будет закончена. Таким образом, данный сервис не замедляет работу защищаемого сайта, что очень важно как для конечных пользователей, так и для SEO (англ. search engine optimization).

Преимущество VIKI.Guard в том, что он может блокировать вредоносный трафик только определенных стран, и не трогать трафик целевых стран, в которых находятся пользователи сайта. Для определения стран по IP используется удаленный Web сервис с локальным кэшированием для обеспечения быстродействия. Правила межсетевого экрана можно задавать самостоятельно какие угодно, хоть часть страны по набору IP диапозонов. Сервис обладает гибкой системой оповещения в соц. сети и логирования о своей работе.


Ниже приведен файл конфигурации сервиса:
{  

    "Settings": {

    /* название экземпляра сервиса для уведомления в slack */
    "InstanceName": "localhost",

    /* список кодов целевых стран */
    "TargetCountries": [ "RU", "BY" ],

    /* количество попыток получения страны по IP адресу. 
       При превышение возвращается неизвестная страна */
    "Attempts": 5,

    /* допустимый процент нецелевых стран в траффике */
    "NontargetCountriesPercent": 20,

    /* порог траффика (байт / сек) */
    "Threshold": 10240,

    /* интервал проверки (от 1 до 10 минут) */
    "Intervals": 1,

    /* процент повышенной нагрузки, если трафик превышает порог в интервале 
       более указанного процента времени вместе с траффиком нецелевых стран, 
       то включается режим DDoS  */
    "Percent": 30,
    /* список правил фаервола */
    "FirewallRules": {
      /* включить при обнаружении DDoS и выключить при завершении */
      "on": [ "_Test1" ],
      /* выключить при обнаружении DDoS и включить при завершении */
      "off": [ "_Test2" ]
    },

    /* Параметры Slack для уведомления (не обязательно)  */
    "Slack": {
      "Url": "https://hooks.slack.com/services/XXXXX/XXXXXXXXXXXX",
      "Channel": "ddos",
      "UserName": "guard-bot",
      "IconUrl": null,
      "IconEmoji": null
    },
    /* частота извещения в минутах в slack об штатной  работе сервиса, 
       если 0 - то извещается только факт старта */
    "NotificationInterval": 5
  }
}

Обзор сервиса VIKI.Guard