AWS - WAF Enum
AWS - WAF Enum
AWS WAF
AWS WAF to firewall aplikacji internetowych zaprojektowany do ochrony aplikacji internetowych lub interfejsów API przed różnymi atakami internetowymi, które mogą wpłynąć na ich dostępność, bezpieczeństwo lub zużycie zasobów. Umożliwia użytkownikom kontrolowanie ruchu przychodzącego poprzez ustawianie reguł bezpieczeństwa, które łagodzą typowe wektory ataków, takie jak wstrzyknięcia SQL lub ataki typu cross-site scripting oraz poprzez definiowanie niestandardowych reguł filtrowania.
Kluczowe pojęcia
Web ACL (Access Control List)
Web ACL to zbiór reguł, które można zastosować do aplikacji internetowych lub interfejsów API. Gdy skojarzysz Web ACL z zasobem, AWS WAF sprawdza przychodzące żądania na podstawie zdefiniowanych reguł w Web ACL i podejmuje określone działania.
Grupa reguł
Grupa reguł to wielokrotnie używany zbiór reguł, które można zastosować do wielu Web ACL-ów. Grupy reguł pomagają zarządzać i utrzymywać spójne zestawy reguł w różnych aplikacjach internetowych lub interfejsach API.
Każda grupa reguł ma swoją powiązaną pojemność, która pomaga obliczyć i kontrolować zasoby operacyjne używane do uruchamiania twoich reguł, grup reguł i Web ACL-ów. Po ustawieniu wartości podczas tworzenia, nie można jej modyfikować.
Reguła
Reguła definiuje zestaw warunków, które AWS WAF wykorzystuje do sprawdzania przychodzących żądań internetowych. Istnieją dwa główne typy reguł:
Reguła regularna: Ten typ reguły używa określonych warunków do określenia, czy zezwolić, zablokować czy zliczyć żądania internetowe.
Reguła oparta na częstości: Liczy żądania z określonego adresu IP w ciągu pięciu minut. Użytkownicy określają próg, a jeśli liczba żądań z danego IP przekroczy ten limit w ciągu pięciu minut, kolejne żądania z tego IP są blokowane, aż wskaźnik żądań spadnie poniżej progu. Minimalny próg dla reguł opartych na częstości to 2000 żądań.
Zarządzane reguły
AWS WAF oferuje prekonfigurowane, zarządzane zestawy reguł utrzymywane przez AWS i sprzedawców z AWS Marketplace. Te zestawy reguł zapewniają ochronę przed powszechnymi zagrożeniami i są regularnie aktualizowane, aby rozwiązywać nowe podatności.
Zestaw adresów IP
Zestaw adresów IP to lista adresów IP lub zakresów adresów IP, które chcesz zezwolić lub zablokować. Zestawy IP ułatwiają zarządzanie regułami opartymi na adresach IP.
Zestaw wzorców Regex
Zestaw wzorców Regex zawiera jedno lub więcej wyrażeń regularnych (regex), które definiują wzorce do wyszukiwania w żądaniach internetowych. Jest to przydatne do bardziej złożonych scenariuszy dopasowywania, takich jak filtrowanie określonych sekwencji znaków.
Token blokady
Token blokady służy do kontroli współbieżności podczas aktualizacji zasobów WAF. Zapewnia, że zmiany nie zostaną przypadkowo nadpisane przez wielu użytkowników lub procesy próbujące jednocześnie aktualizować ten sam zasób.
Klucze API
Klucze API w AWS WAF służą do uwierzytelniania żądań do określonych operacji interfejsu API. Klucze te są szyfrowane i zarządzane w sposób bezpieczny, aby kontrolować dostęp i zapewnić, że tylko upoważnieni użytkownicy mogą dokonywać zmian w konfiguracjach WAF.
Przykład: Integracja z interfejsem API CAPTCHA.
Polityka uprawnień
Polityka uprawnień to polityka IAM, która określa, kto może wykonywać działania na zasobach AWS WAF. Poprzez definiowanie uprawnień możesz kontrolować dostęp do zasobów WAF i zapewnić, że tylko upoważnieni użytkownicy mogą tworzyć, aktualizować lub usuwać konfiguracje.
Zakres
Parametr zakresu w AWS WAF określa, czy reguły i konfiguracje WAF mają zastosowanie do regionalnej aplikacji czy dystrybucji Amazon CloudFront.
REGIONAL: Dotyczy usług regionalnych, takich jak Load Balancer aplikacji (ALB), interfejs API REST Amazon API Gateway, interfejs API GraphQL AWS AppSync, pulpit użytkownika Amazon Cognito, usługa AWS App Runner i instancja AWS Verified Access. Określasz region AWS, w którym znajdują się te zasoby.
CLOUDFRONT: Dotyczy dystrybucji Amazon CloudFront, które są globalne. Konfiguracje WAF dla CloudFront są zarządzane przez region
us-east-1
, niezależnie od tego, gdzie jest dostarczana zawartość.
Główne funkcje
Kryteria monitorowania (Warunki)
Warunki określają elementy przychodzących żądań HTTP/HTTPS, które AWS WAF monitoruje, obejmując XSS, lokalizację geograficzną (GEO), adresy IP, ograniczenia wielkości, wstrzyknięcia SQL i wzorce (dopasowanie ciągów i regex). Ważne jest, że żądania ograniczone na poziomie CloudFront na podstawie kraju nie dotrą do WAF.
Każde konto AWS może skonfigurować:
100 warunków dla każdego typu (z wyjątkiem Regex, gdzie dozwolone jest tylko 10 warunków, ale ten limit można zwiększyć).
100 reguł i 50 Web ACL-ów.
Maksymalnie 5 reguł opartych na częstości.
Przepustowość 10 000 żądań na sekundę przy implementacji WAF z balanserem obciążenia aplikacji.
Działania reguł
Działania są przypisywane do każdej reguły, a opcje to:
Zezwól: Żądanie jest przekazywane do odpowiedniej dystrybucji CloudFront lub balansera obciążenia aplikacji.
Zablokuj: Żądanie jest natychmiast zakończone.
Zlicz: Liczy żądania spełniające warunki reguły. Jest to przydatne do testowania reguły, potwierdzając jej poprawność przed ustawieniem jej na Zezwalaj lub Blokuj.
CAPTCHA i Wyzwanie: Sprawdzane jest, czy żądanie nie pochodzi od bota, używając łamigłówek CAPTCHA i cichych wyzwań.
Jeśli żądanie nie pasuje do żadnej reguły w Web ACL, podlega domyślnej akcji (Zezwól lub Zablokuj). Kolejność wykonywania reguł, zdefiniowana w ramach Web ACL, jest kluczowa i zazwyczaj podąża za tą sekwencją:
Zezwalaj na IP z białej listy.
Zablokuj IP z czarnej listy.
Zablokuj żądania pasujące do jakichkolwiek szkodliwych sygnatur.
Integracja z CloudWatch
AWS WAF integruje się z CloudWatch w celu monitorowania, oferując metryki takie jak AllowedRequests, BlockedRequests, CountedRequests i PassedRequests. Te metryki są raportowane domyślnie co minutę i przechowywane przez okres dwóch tygodni.
Wyliczanie
Aby działać z dystrybucjami CloudFront, musisz określić region US East (N. Virginia):
CLI - Określ region US East, gdy korzystasz z zakresu CloudFront:
--scope CLOUDFRONT --region=us-east-1
.API i SDK - Dla wszystkich wywołań użyj punktu końcowego regionu us-east-1.
Aby działać z usługami regionalnymi, należy określić region:
Przykład z regionem Europa (Hiszpania):
--scope REGIONAL --region=eu-south-2
Post Eksploatacja / Ominięcie
Z perspektywy atakującego, ta usługa może pomóc atakującemu zidentyfikować zabezpieczenia WAF oraz narażenia sieciowe, które mogą mu pomóc w skompromitowaniu innych stron internetowych.
Jednakże atakujący może także być zainteresowany zakłóceniem tej usługi, aby strony nie były chronione przez WAF.
W wielu operacjach Usuń i Aktualizuj konieczne będzie podanie tokena blokady. Ten token służy do kontroli współbieżności nad zasobami, zapewniając, że zmiany nie zostaną przypadkowo nadpisane przez wielu użytkowników lub procesy próbujące jednocześnie aktualizować ten sam zasób. Aby uzyskać ten token, można wykonać odpowiednie operacje list lub get na konkretnym zasobie.
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
wafv2:CreateRuleGroup
, wafv2:UpdateRuleGroup
, wafv2:DeleteRuleGroup
Atakujący mógłby skompromitować bezpieczeństwo dotkniętego zasobu poprzez:
Tworzenie grup reguł, które na przykład mogą blokować ruch z prawidłowych adresów IP, powodując odmowę usługi.
Aktualizowanie grup reguł, umożliwiając modyfikację działań, na przykład z Blokuj na Zezwalaj.
Usuwanie grup reguł, które zapewniają istotne środki bezpieczeństwa.
Przykłady poniżej pokazują grupę reguł, która zablokowałaby legalny ruch z określonych adresów IP:
Plik rule.json miałby postać:
Potencjalne skutki: Nieautoryzowany dostęp, naruszenia danych oraz potencjalne ataki typu DoS.
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
wafv2:CreateWebACL
, wafv2:UpdateWebACL
, wafv2:DeleteWebACL
Dzięki tym uprawnieniom atakujący mógłby:
Tworzyć nowe Web ACL, wprowadzając reguły, które pozwalają na przepuszczenie złośliwego ruchu lub blokują legalny ruch, efektywnie czyniąc WAF bezużytecznym lub powodując odmowę usługi.
Aktualizować istniejące Web ACL, mając możliwość modyfikacji reguł, aby zezwolić na ataki takie jak wstrzyknięcia SQL lub ataki typu cross-site scripting, które wcześniej były blokowane, lub zakłócić normalny przepływ ruchu, blokując poprawne żądania.
Usuwać Web ACL, pozostawiając dotknięte zasoby całkowicie niechronione, narażając je na szeroki zakres ataków internetowych.
Możesz usunąć określony WebACL tylko jeśli ManagedByFirewallManager ma wartość false.
Oto przykłady aktualizacji listy kontrolnej sieci Web w celu zablokowania legalnego ruchu z określonego zestawu adresów IP. Jeśli adres IP źródłowy nie pasuje do żadnego z tych adresów IP, domyślna akcja również go zablokuje, co spowoduje DoS.
Oryginalna lista kontrolna sieci Web:
Command to update the Web ACL:
Komenda aktualizacji Web ACL:
Plik rule.json miałby postać:
Potencjalne skutki: Nieautoryzowany dostęp, naruszenia danych oraz potencjalne ataki typu DoS.
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
wafv2:AssociateWebACL
, wafv2:DisassociateWebACL
Uprawnienie wafv2:AssociateWebACL
umożliwiłoby atakującemu powiązanie list kontrolnych dostępu (ACL) z zasobami, co pozwoliłoby ominąć kontrole bezpieczeństwa, umożliwiając nieautoryzowany ruch do aplikacji, potencjalnie prowadząc do eksploatacji takiej jak wstrzyknięcie SQL lub ataki typu cross-site scripting (XSS). Z kolei, dzięki uprawnieniu wafv2:DisassociateWebACL
, atakujący mógłby tymczasowo wyłączyć zabezpieczenia, narażając zasoby na podatności bez wykrycia.
Dodatkowe uprawnienia będą wymagane w zależności od typu chronionego zasobu:
Powiąż
apigateway:SetWebACL
apprunner:AssociateWebAcl
appsync:SetWebACL
cognito-idp:AssociateWebACL
ec2:AssociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Rozłącz
apigateway:SetWebACL
apprunner:DisassociateWebAcl
appsync:SetWebACL
cognito-idp:DisassociateWebACL
ec2:DisassociateVerifiedAccessInstanceWebAcl
elasticloadbalancing:SetWebAcl
Potencjalne skutki: Zwiększone ryzyko bezpieczeństwa zasobów, zwiększone ryzyko eksploatacji oraz potencjalne zakłócenia w świadczeniu usług w środowiskach AWS chronionych przez AWS WAF.
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
wafv2:CreateIPSet
, wafv2:UpdateIPSet
, wafv2:DeleteIPSet
Atakujący byłby w stanie tworzyć, aktualizować i usuwać zestawy IP zarządzane przez AWS WAF. Może to być niebezpieczne, ponieważ mógłby tworzyć nowe zestawy IP, aby zezwolić na złośliwy ruch, modyfikować zestawy IP w celu zablokowania legalnego ruchu, aktualizować istniejące zestawy IP, aby zawierały złośliwe adresy IP, usuwać zaufane adresy IP lub usuwać krytyczne zestawy IP, które mają chronić krytyczne zasoby.
Przykład poniżej pokazuje, jak nadpisać istniejący zestaw IP przez pożądany zestaw IP:
Potencjalny wpływ: Nieautoryzowany dostęp i blokada legalnego ruchu.
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
wafv2:CreateRegexPatternSet
, wafv2:UpdateRegexPatternSet
, wafv2:DeleteRegexPatternSet
Atakujący posiadający te uprawnienia byłby w stanie manipulować zestawami wzorców wyrażeń regularnych używanych przez AWS WAF do kontrolowania i filtrowania przychodzącego ruchu na podstawie określonych wzorców.
Tworzenie nowych wzorców regex pomogłoby atakującemu w dopuszczeniu szkodliwej zawartości
Aktualizując istniejące wzorce, atakujący mógłby ominąć zasady bezpieczeństwa
Usuwanie wzorców zaprojektowanych do blokowania złośliwych działań mogłoby skłonić atakującego do wysyłania złośliwych ładunków i omijania środków bezpieczeństwa.
Potencjalne skutki: Ominięcie kontroli bezpieczeństwa, umożliwiające wstrzyknięcie złośliwej zawartości i potencjalnie ujawnienie wrażliwych danych lub zakłócenie usług i zasobów chronionych przez AWS WAF.
(wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
wavf2:PutLoggingConfiguration
& iam:CreateServiceLinkedRole
), wafv2:DeleteLoggingConfiguration
Atakujący posiadający uprawnienia wafv2:DeleteLoggingConfiguration
mógłby usunąć konfigurację logowania z określonego Web ACL. Następnie, dzięki uprawnieniom wavf2:PutLoggingConfiguration
i iam:CreateServiceLinkedRole
, atakujący mógłby utworzyć lub zastąpić konfiguracje logowania (po ich usunięciu), aby albo całkowicie uniemożliwić logowanie, albo przekierować logi do nieautoryzowanych miejsc docelowych, takich jak wiadra Amazon S3, grupa logów Amazon CloudWatch Logs lub strumień Amazon Kinesis Data Firehose pod kontrolą.
Podczas procesu tworzenia usługa automatycznie ustawia niezbędne uprawnienia, aby umożliwić zapisywanie logów do określonego miejsca docelowego logowania:
Amazon CloudWatch Logs: AWS WAF tworzy politykę zasobu na wyznaczonej grupie logów CloudWatch Logs. Ta polityka zapewnia, że AWS WAF ma wymagane uprawnienia do zapisywania logów do grupy logów.
Wiadro Amazon S3: AWS WAF tworzy politykę wiadra na wyznaczonym wiadrze S3. Ta polityka nadaje AWS WAF uprawnienia niezbędne do przesyłania logów do określonego wiadra.
Amazon Kinesis Data Firehose: AWS WAF tworzy rolę powiązaną z usługą specjalnie do interakcji z Kinesis Data Firehose. Ta rola umożliwia AWS WAF dostarczanie logów do skonfigurowanego strumienia Firehose.
Możliwe jest zdefiniowanie tylko jednego miejsca docelowego logowania na jeden Web ACL.
Potencjalny wpływ: Zaciemnienie widoczności zdarzeń związanych z bezpieczeństwem, utrudnienie procesu reagowania na incydenty oraz ułatwienie ukrytych złośliwych działań w środowiskach chronionych przez AWS WAF.
wafv2:DeleteAPIKey
wafv2:DeleteAPIKey
Atakujący posiadający te uprawnienia mógłby usunąć istniejące klucze API, uniemożliwiając działanie CAPTCHA i zakłócając funkcjonalność z nią związaną, taką jak przesyłanie formularzy i kontrole dostępu. W zależności od implementacji tego CAPTCHA, może to prowadzić do jego pominięcia lub DoS, jeśli zarządzanie błędami nie jest odpowiednio skonfigurowane w zasobie.
Potencjalne skutki: Wyłączenie ochrony CAPTCHA lub zakłócenie funkcjonalności aplikacji, co prowadzi do naruszeń bezpieczeństwa i potencjalnej kradzieży danych.
wafv2:TagResource
, wafv2:UntagResource
wafv2:TagResource
, wafv2:UntagResource
Atakujący byłby w stanie dodać, zmodyfikować lub usunąć tagi z zasobów AWS WAFv2, takich jak listy kontrolne sieci Web ACL, grupy reguł, zestawy adresów IP, zestawy wzorców regex oraz konfiguracje logowania.
Potencjalne skutki: Sfałszowanie zasobów, wyciek informacji, manipulacja kosztami i zakłócenia operacyjne.
Odnośniki
Last updated