AWS - WAF Enum

AWS - WAF Enum

Підтримайте HackTricks

AWS WAF

AWS WAF - це брандмауер веб-додатків, призначений для захисту веб-додатків або API від різних веб-експлойтів, які можуть вплинути на їх доступність, безпеку або споживання ресурсів. Він дозволяє користувачам контролювати вхідний трафік, встановлюючи правила безпеки, які пом'якшують типові вектори атак, такі як SQL-ін'єкція або міжсайтовий скриптінг, а також визначаючи власні правила фільтрації.

Ключові концепції

Список керування доступом (Web ACL)

Список керування доступом (Web ACL) - це набір правил, які можна застосовувати до ваших веб-додатків або API. Коли ви асоціюєте Web ACL з ресурсом, AWS WAF перевіряє вхідні запити на основі правил, визначених у Web ACL, та виконує вказані дії.

Група правил

Група правил - це повторно використовуваний набір правил, які можна застосовувати до кількох Web ACL. Групи правил допомагають управляти та підтримувати послідовні набори правил для різних веб-додатків або API.

Кожна група правил має свій асоційований обсяг, який допомагає розраховувати та контролювати ресурси, які використовуються для виконання ваших правил, груп правил та Web ACL. Після того, як його значення встановлено під час створення, його неможливо змінити.

Правило

Правило визначає набір умов, які використовує AWS WAF для перевірки вхідних веб-запитів. Існують два основних типи правил:

  1. Звичайне правило: Цей тип правила використовує вказані умови для визначення того, чи слід дозволити, заблокувати або підрахувати веб-запити.

  2. Правило на основі швидкості: Підраховує запити з певної IP-адреси протягом п'ятихвилинного періоду. Тут користувачі визначають поріг, і якщо кількість запитів від IP перевищує цей ліміт протягом п'яти хвилин, наступні запити від цієї IP-адреси блокуються, поки швидкість запитів не знизиться нижче порогу. Мінімальний поріг для правил на основі швидкості - 2000 запитів.

Керовані правила

AWS WAF пропонує попередньо налаштовані, керовані набори правил, які підтримуються AWS та продавцями AWS Marketplace. Ці набори правил забезпечують захист від загроз і регулярно оновлюються для вирішення нових вразливостей.

Набір IP-адрес

Набір IP-адрес - це список IP-адрес або діапазонів IP-адрес, які ви хочете дозволити або заблокувати. Набори IP спрощують процес управління правилами на основі IP.

Набір шаблонів Regex

Набір шаблонів Regex містить один або кілька регулярних виразів (regex), які визначають шаблони для пошуку в веб-запитах. Це корисно для більш складних сценаріїв відповідності, таких як фільтрація конкретних послідовностей символів.

Токен блокування

Токен блокування використовується для контролю одночасності при внесенні змін до ресурсів WAF. Він забезпечує, що зміни не будуть випадково перезаписані кількома користувачами або процесами, які намагаються одночасно оновити той самий ресурс.

Ключі API

Ключі API в AWS WAF використовуються для аутентифікації запитів до певних операцій API. Ці ключі зашифровані та керуються безпечно для контролю доступу та забезпечення того, що зміни до конфігурацій WAF можуть робити лише авторизовані користувачі.

  • Приклад: Інтеграція API CAPTCHA.

Політика дозволів

Політика дозволів - це політика IAM, яка вказує, хто може виконувати дії з ресурсами AWS WAF. Визначаючи дозволи, ви можете контролювати доступ до ресурсів WAF та забезпечити, що лише авторизовані користувачі можуть створювати, оновлювати або видаляти конфігурації.

Область застосування

Параметр області в AWS WAF вказує, чи застосовуються правила WAF та конфігурації до регіонального додатка або розподілу Amazon CloudFront.

  • REGIONAL: Застосовується до регіональних служб, таких як балансувальники навантаження застосунків (ALB), REST API Amazon API Gateway, GraphQL API AWS AppSync, пул користувачів Amazon Cognito, служба AWS App Runner та екземпляр AWS Verified Access. Ви вказуєте регіон AWS, де знаходяться ці ресурси.

  • CLOUDFRONT: Застосовується до розподілів Amazon CloudFront, які є глобальними. Конфігурації WAF для CloudFront керуються через регіон us-east-1, незалежно від того, де подається вміст.

Ключові функції

Критерії моніторингу (умови)

Умови вказують елементи вхідних HTTP/HTTPS-запитів, які моніторить AWS WAF, включаючи XSS, географічне розташування (GEO), IP-адреси, обмеження розміру, SQL-ін'єкцію та шаблони (відповідність рядків та регулярні вирази). Важливо зауважити, що запити, обмежені на рівні CloudFront за країною, не досягнуть WAF.

Кожен обліковий запис AWS може налаштувати:

  • 100 умов для кожного типу (крім Regex, де дозволено лише 10 умов, але цей ліміт можна збільшити).

  • 100 правил та 50 Web ACL.

  • Максимум 5 правил на основі швидкості.

  • Пропускну здатність 10 000 запитів на секунду, коли WAF реалізовано з балансувальником навантаження застосунків.

Дії правил

Дії призначаються кожному правилу, з варіантами:

  • Дозволити: Запит переадресовується на відповідний розподіл CloudFront або балансувальник навантаження застосунків.

  • Заблокувати: Запит негайно припиняється.

  • Підрахувати: Підраховує запити, які відповідають умовам правила. Це корисно для тестування правила, підтверджуючи точність правила перед встановленням його на Дозволити або Заблокувати.

  • CAPTCHA та виклик: Перевіряється, що запит не надійшов від бота за допомогою CAPTCHA-головоломок та тихих викликів.

Якщо запит не відповідає жодному правилу в межах Web ACL, він проходить типову дію (Дозволити або Заблокувати). Порядок виконання правил, визначений у межах Web ACL, є важливим і, як правило, слідує цій послідовності:

  1. Дозволити IP-адреси з білого списку.

  2. Заблокувати IP-адреси з чорного списку.

  3. Блокувати запити, які відповідають будь-яким шкідливим підписам.

Інтеграція з CloudWatch

AWS WAF інтегрується з CloudWatch для моніторингу, пропонуючи метрики, такі як AllowedRequests, BlockedRequests, CountedRequests та PassedRequests. Ці метрики повідомляються кожну хвилину за замовчуванням і зберігаються протягом двох тижнів.

Перелічення

Для взаємодії з розподілами CloudFront вам необхідно вказати регіон US East (N. Virginia):

  • CLI - Вкажіть регіон US East при використанні області CloudFront: --scope CLOUDFRONT --region=us-east-1.

  • API та SDK - Для всіх викликів використовуйте кінцеву точку регіону us-east-1.

Для взаємодії з регіональними службами вам слід вказати регіон:

  • Приклад з регіоном Європа (Іспанія): --scope REGIONAL --region=eu-south-2

# Web ACLs #

## Retrieve a list of web access control lists (Web ACLs) available in your AWS account
aws wafv2 list-web-acls --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve details about the specified Web ACL
aws wafv2 get-web-acl --name <value> --id <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

## Retrieve a list of resources associated with a specific web access control list (Web ACL)
aws wafv2 list-resources-for-web-acl --web-acl-arn <value> # Additional permissions needed depending on the protected resource type: cognito-idp:ListResourcesForWebACL, ec2:DescribeVerifiedAccessInstanceWebAclAssociations or apprunner:ListAssociatedServicesForWebAcl
## Retrieve the Web ACL associated with the specified AWS resource
aws wafv2 get-web-acl-for-resource --resource-arn <arn> # Additional permissions needed depending on the protected resource type: cognito-idp:GetWebACLForResource, ec2:GetVerifiedAccessInstanceWebAcl, wafv2:GetWebACL or apprunner:DescribeWebAclForService

# Rule groups #

## List of the rule groups available in your AWS account
aws wafv2 list-rule-groups --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve the details of a specific rule group
aws wafv2 get-rule-group [--name <value>] [--id <value>] [--arn <value>] [--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>]
## Retrieve the IAM policy attached to the specified rule group
aws wafv2 get-permission-policy --resource-arn <rule-group-arn> # Just the owner of the Rule Group can do this operation

# Managed rule groups (by AWS or by a third-party) #

## List the managed rule groups that are available
aws wafv2 list-available-managed-rule-groups --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## List the available versions of the specified managed rule group
aws wafv2 list-available-managed-rule-group-versions --vendor-name <value> --name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve high-level information about a specific managed rule group
aws wafv2 describe-managed-rule-group --vendor-name <value> --name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--version-name <value>]
## Retrieve high-level information about all managed rule groups
aws wafv2 describe-all-managed-products --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve high-level information about all managed rule groups from a specific vendor
aws wafv2 describe-managed-products-by-vendor --vendor-name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

# IP sets #

## List the IP sets that are available in your AWS account
aws wafv2 list-ip-sets --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve the specific IP set
aws wafv2 get-ip-set --name <value> --id <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve the keys that are currently being managed by a rate-based rule.
aws wafv2 get-rate-based-statement-managed-keys --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>\
--web-acl-name <value> --web-acl-id <value> --rule-name <value> [--rule-group-rule-name <value>]

# Regex pattern sets #

## List all the regex pattern sets that you manage
aws wafv2 list-regex-pattern-sets --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieves the specified regex pattern sets
aws wafv2 get-regex-pattern-set --name <value> --id <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

# API Keys #

## List API keys for the specified scope
aws wafv2 list-api-keys --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
## Retrieve decrypted API key
aws wafv2 get-decrypted-api-key --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> --api-key <value>

# Logs #

## List of logging configurations (storage location of the logs)
aws wafv2 list-logging-configurations --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--log-scope <value>]
## Retrieve the logging configuration settings associated with a specific web ACL
aws wafv2 get-logging-configuration --resource-arn <value> [--log-scope <CUSTOMER | SECURITY_LAKE>] [--log-type <value>]

# Miscelaneous #

## Retrieve a list of the tags associated to the specified resource
aws wafv2 list-tags-for-resource resource-arn <value>

## Retrieve a sample of web requests that match a specified rule within a WebACL during a specified time range
aws wafv2 get-sampled-requests --web-acl-arn <value> --rule-metric-name <value> --time-window <value> --max-items <1-500> --scope <value>

## Obtains the web ACL capacity unit (WCU) requirements for a specified scope and ruleset
aws wafv2 check-capacity --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> --rules <value>

## List of available releases for the AWS WAFv2 mobile SDK
aws wafv2 list-mobile-sdk-releases --platform <IOS | ANDROID>
## Retrieves information for the specified mobile SDK release
aws wafv2 get-mobile-sdk-release --platform <value> --release-version <value>

Післяексплуатаційний / Обхід

З точки зору атакувальника, ця служба може допомогти атакувальнику виявити захист WAF та мережеві вразливості, які можуть допомогти йому скомпрометувати інші веб-сайти.

Однак атакувальник також може бути зацікавлений у розрушенні цієї служби, щоб веб-сайти не були захищені WAF.

У багатьох операціях видалення та оновлення буде необхідно надати токен блокування. Цей токен використовується для контролю одночасного доступу до ресурсів, що гарантує, що зміни не будуть випадково перезаписані кількома користувачами або процесами, які намагаються одночасно оновити той самий ресурс. Для отримання цього токену ви можете виконати відповідні операції списку або отримання для конкретного ресурсу.

wafv2:CreateRuleGroup, wafv2:UpdateRuleGroup, wafv2:DeleteRuleGroup

Атакувальник може скомпрометувати безпеку порушеного ресурсу, виконавши такі дії:

  • Створення груп правил, які, наприклад, можуть блокувати легітимний трафік з легітимних IP-адрес, що призводить до відмови в обслуговуванні.

  • Оновлення груп правил, здатних змінювати їх дії, наприклад, з Блокувати на Дозволити.

  • Видалення груп правил, які забезпечують критичні заходи безпеки.

# Create Rule Group
aws wafv2 create-rule-group --name <value> --capacity <value> --visibility-config <value> \
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--description <value>]
# Update Rule Group
aws wafv2 update-rule-group --name <value> --id <value> --visibility-config <value> --lock-token <value>\
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--description <value>]
# Delete Rule Group
aws wafv2 delete-rule-group --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

Наступні приклади показують групу правил, яка блокуватиме законний трафік з конкретних IP-адрес:

aws wafv2 create-rule-group --name BlockLegitimateIPsRuleGroup --capacity 1 --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=BlockLegitimateIPsRuleGroup --scope CLOUDFRONT --region us-east-1 --rules file://rule.json

Файл rule.json виглядатиме наступним чином:

[
{
"Name":"BlockLegitimateIPsRule",
"Priority":0,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:global/ipset/legitIPv4/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
},
"Action":{
"Block":{}
},
"VisibilityConfig":{
"SampledRequestsEnabled":false,
"CloudWatchMetricsEnabled":false,
"MetricName":"BlockLegitimateIPsRule"
}
}
]

Потенційний вплив: Несанкціонований доступ, порушення даних та можливі атаки типу DoS.

wafv2:CreateWebACL, wafv2:UpdateWebACL, wafv2:DeleteWebACL

З цими дозволами зловмисник може:

  • Створити новий веб-ACL, вводячи правила, які дозволяють зловмисному трафіку пройти або блокують законний трафік, ефективно роблячи WAF непрацездатним або спричиняючи відмову в обслуговуванні.

  • Оновити існуючі веб-ACL, змінюючи правила для дозволу атак, таких як внедрення SQL-запитів або міжсайтовий скриптінг, які раніше були заблоковані, або перешкоджати нормальному потоку трафіку, блокуючи дійсні запити.

  • Видалити веб-ACL, залишаючи захищені ресурси цілком незахищеними, відкриваючи їх для широкого спектру веб-атак.

Ви можете видалити вказаний WebACL, якщо ManagedByFirewallManager дорівнює false.

# Create Web ACL
aws wafv2 create-web-acl --name <value> --default-action <value> --visibility-config <value> \
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--captcha-config <value>] [--description <value>]
# Update Web ACL
aws wafv2 update-web-acl --name <value> --id <value> --default-action <value> --visibility-config <value> --lock-token <value>\
--scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--rules <value>] [--captcha-config <value>] [--description <value>]
# Delete Web ACL
aws wafv2 delete-web-acl --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

Наступні приклади показують, як оновити веб-ACL для блокування легітимного трафіку з конкретного набору IP-адрес. Якщо IP-адреса походження не відповідає жодному з цих IP-адрес, то за замовчуванням також буде заблоковано, що може призвести до DoS.

Оригінальний веб-ACL:

{
"WebACL": {
"Name": "AllowLegitimateIPsWebACL",
"Id": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f",
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/AllowLegitimateIPsWebACL/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f",
"DefaultAction": {
"Allow": {}
},
"Description": "",
"Rules": [
{
"Name": "AllowLegitimateIPsRule",
"Priority": 0,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/ipset/LegitimateIPv4/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
},
"Action": {
"Allow": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "AllowLegitimateIPsRule"
}
}
],
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "AllowLegitimateIPsWebACL"
},
"Capacity": 1,
"ManagedByFirewallManager": false,
"LabelNamespace": "awswaf:123456789012:webacl:AllowLegitimateIPsWebACL:"
},
"LockToken": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}

Команда для оновлення веб-ACL:

aws wafv2 update-web-acl --name AllowLegitimateIPsWebACL --scope REGIONAL --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --default-action Block={} --visibility-config SampledRequestsEnabled=false,CloudWatchMetricsEnabled=false,MetricName=AllowLegitimateIPsWebACL --rules file://rule.json --region us-east-1

Файл rule.json виглядатиме наступним чином:

[
{
"Name": "BlockLegitimateIPsRule",
"Priority": 0,
"Statement": {
"IPSetReferenceStatement": {
"ARN": "arn:aws:wafv2:us-east-1:123456789012:regional/ipset/LegitimateIPv4/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
}
},
"Action": {
"Block": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": false,
"CloudWatchMetricsEnabled": false,
"MetricName": "BlockLegitimateIPRule"
}
}
]

Потенційний вплив: Несанкціонований доступ, порушення конфіденційності даних та можливі атаки типу DoS.

wafv2:AssociateWebACL, wafv2:DisassociateWebACL

Дозвіл wafv2:AssociateWebACL дозволив би зловмиснику асоціювати веб-ACL (списки керування доступом) з ресурсами, обхід контролів безпеки, дозволяючи несанкціонованому трафіку досягати додатку, що потенційно може призвести до використання уразливостей, таких як внедрення SQL-коду або міжсайтовий скриптінг (XSS). Натомість, з дозволом wafv2:DisassociateWebACL, зловмисник може тимчасово вимкнути захисні заходи, викриваючи ресурси уразливостям без виявлення.

Додаткові дозволи можуть знадобитися в залежності від типу захищеного ресурсу:

  • Асоціювати

  • apigateway:SetWebACL

  • apprunner:AssociateWebAcl

  • appsync:SetWebACL

  • cognito-idp:AssociateWebACL

  • ec2:AssociateVerifiedAccessInstanceWebAcl

  • elasticloadbalancing:SetWebAcl

  • Відсоціювати

  • apigateway:SetWebACL

  • apprunner:DisassociateWebAcl

  • appsync:SetWebACL

  • cognito-idp:DisassociateWebACL

  • ec2:DisassociateVerifiedAccessInstanceWebAcl

  • elasticloadbalancing:SetWebAcl

# Associate
aws wafv2 associate-web-acl --web-acl-arn <value> --resource-arn <value>
# Disassociate
aws wafv2 disassociate-web-acl --resource-arn <value>

Потенційний вплив: Порушення безпеки ресурсів, збільшення ризику експлуатації та можливі перебої в обслуговуванні в середовищах AWS, захищених AWS WAF.

wafv2:CreateIPSet, wafv2:UpdateIPSet, wafv2:DeleteIPSet

Зловмисник може створювати, оновлювати та видаляти набори IP, керовані AWS WAF. Це може бути небезпечно, оскільки може створювати нові набори IP для допуску зловмисного трафіку, модифікувати набори IP для блокування законного трафіку, оновлювати існуючі набори IP для включення зловмисних IP-адрес, видаляти довірені IP-адреси або видаляти критичні набори IP, які призначені для захисту критичних ресурсів.

# Create IP set
aws wafv2 create-ip-set --name <value> --ip-address-version <IPV4 | IPV6> --addresses <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
# Update IP set
aws wafv2 update-ip-set --name <value> --id <value> --addresses <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
# Delete IP set
aws wafv2 delete-ip-set --name <value> --id <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

Наступний приклад показує, як перезаписати існуючий набір IP на бажаний набір IP:

aws wafv2 update-ip-set --name LegitimateIPv4Set --id 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --addresses 99.99.99.99/32 --lock-token 1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f --scope CLOUDFRONT --region us-east-1

Потенційний вплив: Несанкціонований доступ та блокування легітимного трафіку.

wafv2:CreateRegexPatternSet, wafv2:UpdateRegexPatternSet, wafv2:DeleteRegexPatternSet

Зловмисник з цими дозволами зможе маніпулювати наборами шаблонів регулярних виразів, які використовуються AWS WAF для контролю та фільтрації вхідного трафіку на основі конкретних шаблонів.

  • Створення нових шаблонів регулярних виразів допоможе зловмиснику дозволити шкідливий вміст

  • Оновлення існуючих шаблонів дозволить зловмиснику обійти правила безпеки

  • Видалення шаблонів, які призначені для блокування зловмисних дій, може призвести до того, що зловмисник відправить шкідливі дані та обійде заходи безпеки.

# Create regex pattern set
aws wafv2 create-regex-pattern-set --name <value> --regular-expression-list <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> [--description <value>]
# Update regex pattern set
aws wafv2 update-regex-pattern-set --name <value> --id <value> --regular-expression-list <value> --lock-token <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>
# Delete regex pattern set
aws wafv2 delete-regex-pattern-set --name <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1> --id <value> --lock-token <value>

Потенційний вплив: Обхід контролів безпеки, дозвіл на впровадження шкідливого вмісту та можливе розкриття чутливих даних або перешкоджання послугам та ресурсам, захищеним AWS WAF.

(wavf2:PutLoggingConfiguration & iam:CreateServiceLinkedRole), wafv2:DeleteLoggingConfiguration

Зловмисник з дозволом wafv2:DeleteLoggingConfiguration може видалити конфігурацію ведення журналу з вказаного веб-ACL. Після цього, з дозволами wavf2:PutLoggingConfiguration та iam:CreateServiceLinkedRole, зловмисник може створити або замінити конфігурації ведення журналу (після видалення), щоб або уникнути ведення журналу взагалі, або перенаправити журнали на несанкціоновані місця призначення, такі як бакети Amazon S3, група журналів Amazon CloudWatch Logs або потік Amazon Kinesis Data Firehose під контролем.

Під час процесу створення служба автоматично налаштовує необхідні дозволи для запису журналів у вказане місце призначення ведення журналу:

  • Amazon CloudWatch Logs: AWS WAF створює політику ресурсу на визначеній групі журналів CloudWatch Logs. Ця політика забезпечує, що у AWS WAF є необхідні дозволи для запису журналів у групу журналів.

  • Amazon S3 Bucket: AWS WAF створює політику бакета на визначеному бакеті S3. Ця політика надає AWS WAF необхідні дозволи для завантаження журналів у вказаний бакет.

  • Amazon Kinesis Data Firehose: AWS WAF створює роль, спеціально призначену для взаємодії з Kinesis Data Firehose. Ця роль дозволяє AWS WAF доставляти журнали до налаштованого потоку Firehose.

Можливо визначити лише одне місце призначення ведення журналу на один веб-ACL.

# Put logging configuration
aws wafv2 put-logging-configuration --logging-configuration <value>
# Delete logging configuration
aws wafv2 delete-logging-configuration --resource-arn <value> [--log-scope <CUSTOMER | SECURITY_LAKE>] [--log-type <value>]

Потенційний вплив: Приховання видимості подій безпеки, ускладнення процесу реагування на інциденти та сприяння таємним зловмисним діям в середовищах, захищених AWS WAF.

wafv2:DeleteAPIKey

Зловмисник з цими дозволами зможе видаляти існуючі ключі API, що робить CAPTCHA неефективним та перешкоджає функціоналу, який на ньому ґрунтується, таким як відправлення форм та контроль доступу. Залежно від реалізації цієї CAPTCHA, це може призвести або до обхіду CAPTCHA, або до DoS, якщо управління помилками не належним чином налаштоване в ресурсі.

# Delete API key
aws wafv2 delete-api-key --api-key <value> --scope <REGIONAL --region=<value> | CLOUDFRONT --region=us-east-1>

Потенційний вплив: Вимкнення захисту CAPTCHA або порушення функціональності додатку, що може призвести до порушення безпеки та можливої крадіжки даних.

wafv2:TagResource, wafv2:UntagResource

Зловмисник може додавати, змінювати або видаляти теги з ресурсів AWS WAFv2, таких як веб-ACL, групи правил, набори IP-адрес, набори регулярних виразів та конфігурації журналювання.

# Tag
aws wafv2 tag-resource --resource-arn <value> --tags <value>
# Untag
aws wafv2 untag-resource --resource-arn <value> --tag-keys <value>

Потенційний вплив: Втручання в ресурси, витік інформації, маніпулювання витратами та порушення операцій.

Посилання

Підтримайте HackTricks

Last updated