Web Application Firewall— защитный экран уровня приложений, назначение его выявления и блокировка атак на web-сервера, в том числе и с использованием уязвимостей нулевого дня:

  • sql инъекции;
  • удаленное выполнение кода;
  • межсайтовый скриптинг;
  • межстайтовая подделка запросов;
  • удалённый инклуд;
  • локальный инклуд;
  • обход авторизации;
  • небезопасные прямые ссылки на объекты;
  • подбор паролей.

Облако AWS так же предоставляет возможность использования WAF для защиты приложения, однако все правила, которые есть в панели управления AWS WAF стоят денег, единственным выходом для использования этого средства защиты является использование собственных правил или уже готовых образцов из интернета.

Правила AWS WAF

Для базовой настройки и фильтрации запросов к сайту мы рекомендуем начать с правил, которые находятся в репозитории https://github.com/aws-samples/aws-waf-sample и разворачиваются с помощью CloudFormation. Для работы с этими правила их лучше выгрузить в личный репозиторий и уже там вносить в них правки и дополнения.

Основные правила для фильтрации с которых можно начать, находятся в директории waf-owasp-top-10. Эти правила содержат базовые ограничения основанные на размерах запросов, директориях сайта и CSRF заголовках.

Создание дополнительных правил

Последовательность действий для создание дополнительных (кастомных) правил AWS WAF:

  1. Авторизироваться в консоли AWS WAF https://console.aws.amazon.com/wafv2/.
  2. Перейти на вкладку Rules.
  3. Выбрать Create rule.
  4. Ввести необходимые параметры:
    • Name — имя правила
    • CloudWatch metric name — имя метрики CloudWatch, которую создаст AWS WAF
    • Rule type — типа правила Regular rule или Rate–based rule. Описание типов правил находится на странице —  How AWS WAF Works https://github.com/awsdocs/aws-waf-and-shield-advanced-developer-guide/blob/master/doc_source/how-aws-waf-works.md.
    • Rate limit — ограничение количества для Rate–based rule. К примеру, количество запросов с 1 адреса, которое может быть выполнено в течении 5 минут. Минимальное значение — 100.
  5. Для добавления условий к правилу, нужно заполнить следующие поля:
    • When a request does/does not — условие, которое указывается AWS WAF применять или не применять действия при достижении определенного состояния.
    • match/originate from — нужно выбрать тип условия которое будет добавлено к правилу:
      1. Cross-site scripting match conditions — условия для обработки Cross-site scripting
      2. IP match conditions — условия для обработки входящих запросов с IP адресов
      3. Geo match conditions — условия на основании геолокации
      4. Size constraint conditions — условия на основании размера запросов
      5. SQL injection match conditions — условия для обработки SQL injection
      6. String match conditions – условия для обработки строк
      7. Regular expression match conditions — условия для работы с регулярными выражениями. 
  6. Чтобы добавить дополнительное условие в правило, нажмите: Add another condition и повторите шаги 4 и 5.
  7. Когда все готово, нажмите Create.

Если у Вас возникли вопросы или сложности в настройки WAF для AWS, обращайтесь наши специалисты всегда помогут решить проблему.