AWS - WAF Enum

AWS - WAF Enum

Support HackTricks

AWS WAF

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

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

Web ACL (Список контролю доступу)

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

Група правил

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

Кожна група правил має свою асоційовану ємність, яка допомагає розрахувати та контролювати операційні ресурси, що використовуються для виконання ваших правил, груп правил і веб 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.

  • РЕГІОНАЛЬНИЙ: Застосовується до регіональних послуг, таких як Application Load Balancers (ALB), Amazon API Gateway REST API, AWS AppSync GraphQL API, пул користувачів 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-ін'єкції та шаблони (рядки та відповідність regex). Важливо зазначити, що запити, обмежені на рівні 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>

Post Exploitation / Bypass

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

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

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

wafv2:CreateRuleGroup, wafv2:UpdateRuleGroup, wafv2:DeleteRuleGroup

Атакуючий зможе скомпрометувати безпеку ураженого ресурсу, виконуючи:

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

  • Оновлення груп правил, маючи можливість змінювати їх дії, наприклад, з Block на Allow.

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

# 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

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

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

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

  • Видалити Web 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>

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

Оригінальний Web 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"
}

Команда для оновлення Web 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 зможе видалити конфігурацію журналювання з вказаного Web 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, таких як Web ACL, групи правил, набори IP, набори шаблонів regex та конфігурації журналювання.

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

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

Посилання

Support HackTricks

Last updated