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:
- Авторизироваться в консоли AWS WAF https://console.aws.amazon.com/wafv2/.
- Перейти на вкладку Rules.
- Выбрать Create rule.
- Ввести необходимые параметры:
- 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.
- Для добавления условий к правилу, нужно заполнить следующие поля:
- When a request does/does not — условие, которое указывается AWS WAF применять или не применять действия при достижении определенного состояния.
- match/originate from — нужно выбрать тип условия которое будет добавлено к правилу:
- Cross-site scripting match conditions — условия для обработки Cross-site scripting
- IP match conditions — условия для обработки входящих запросов с IP адресов
- Geo match conditions — условия на основании геолокации
- Size constraint conditions — условия на основании размера запросов
- SQL injection match conditions — условия для обработки SQL injection
- String match conditions – условия для обработки строк
- Regular expression match conditions — условия для работы с регулярными выражениями.
- Чтобы добавить дополнительное условие в правило, нажмите: Add another condition и повторите шаги 4 и 5.
- Когда все готово, нажмите Create.
Если у Вас возникли вопросы или сложности в настройки WAF для AWS, обращайтесь наши специалисты всегда помогут решить проблему.