Trafikfilterregler inklusive WAF-regler traffic-filter-rules-including-waf-rules

Trafikfilterregelblock eller tillåt-begäranden i CDN-lagret, vilket är användbart i scenarier som följande:

  • Begränsa åtkomsten till specifika domäner till intern företagstrafik innan en ny webbplats publiceras.
  • För att vara mindre mottaglig för volymetriska DoS-attacker måste hastighetsgränser fastställas.
  • Förhindrar att IP-adresser som man vet är skadliga riktas mot era sidor.

Många av dessa trafikfilterregler är tillgängliga för alla AEM as a Cloud Service Sites- och Forms-kunder. Som standardtrafikfilterregler arbetar de med begäranegenskaper: IP, värdnamn, sökväg och användaragent. Standardregler för trafikfilter innehåller regler för hastighetsbegränsning för att skydda mot trafiktoppar.

En underkategori av trafikfilterregler kräver antingen en utökad säkerhetslicens (tidigare kallad WAF-DDoS Protection) eller en utökad säkerhetslicens (tidigare kallad Enhanced Security). De här kraftfulla reglerna kallas trafikfilterregler för WAF (Brandvägg för webbaserade program) (eller WAF-regler) och har tillgång till de WAF-flaggor som beskrivs senare i den här artikeln.

Trafikfilterregler kan driftsättas via Cloud Manager konfigureringsrörledningar för olika typer av dev-, stage- och produktionsmiljöer. Konfigurationsfilen kan distribueras till Rapid Development Environment (RDE) med kommandoradsverktyg.

Slutför en självstudiekurs om du snabbt vill få expertis om den här funktionen.

NOTE
Fler konfigurationsalternativ för CDN-trafik, t.ex. redigering av begäranden/svar, deklarering av omdirigeringar och proxering till icke-AEM-ursprung, finns i artikeln Konfigurera trafik på CDN.

Hur den här artikeln är organiserad how-organized

Den här artikeln är indelad i följande avsnitt:

  • Trafikskydd - översikt: Lär dig hur du skyddas från skadlig trafik.
  • Föreslagen process för konfigurering av regler: Läs om en högnivåmetod för skydd av din webbplats.
  • Installation: Upptäck hur du konfigurerar, konfigurerar och distribuerar trafikfilterregler, inklusive de avancerade WAF-reglerna.
  • Regelsyntax: Läs om hur du deklarerar trafikfilterregler i konfigurationsfilen cdn.yaml. Detta omfattar både trafikfilterreglerna som är tillgängliga för alla Sites- och Forms-kunder och underkategorin WAF-regler för dem som licensierar den funktionen.
  • Regelexempel: Du kommer igång genom att läsa exempel på deklarerade regler.
  • Regler för hastighetsbegränsning: Lär dig hur du använder regler för hastighetsbegränsning för att skydda din webbplats från attacker med stora volymer.
  • Regelvarningar för trafikfilter: Konfigurera varningar som ska meddelas när reglerna aktiveras.
  • Standardtrafikspik vid ursprungsvarning: Få meddelande när det finns en trafiktoppning vid det ursprung som tyder på en DDoS-attack.
  • CDN-loggar: Se vad som deklarerats och WAF Flags matchar trafiken.
  • Kontrollpanelsverktyg: Analysera CDN-loggarna för att hitta nya trafikfilterregler.
  • Rekommenderade startregler: En uppsättning regler att komma igång med.
  • Självstudiekurs: Information om funktionen, inklusive hur du använder instrumentpanelsverktyg för att deklarera lämpliga regler.

Trafikskydd - översikt traffic-protection-overview

I det digitala landskapet är skadlig trafik ett hot som aldrig tidigare förekommit. Adobe inser hur allvarlig risken är och erbjuder flera olika strategier för att skydda kundtillämpningar och mildra attacker när de inträffar.

I utkanten absorberar Adobe Managed CDN DoS-attacker i nätverkslagret (lager 3 och 4), inklusive översvämnings- och speglings-/amplifieringsattacker.

Som standard vidtar Adobe åtgärder för att förhindra prestandaförsämring på grund av oväntat höga trafikanter över ett visst tröskelvärde. Om det inträffar en DoS-attack som påverkar webbplatsens tillgänglighet får Adobe ledningsgrupper varningar och vidtar åtgärder för att minska risken.

Kunderna vidtar förebyggande åtgärder för att mildra attacker i programlager (lager 7) genom att konfigurera regler i olika lager i innehållsleveransflödet.

På exempelvis Apache-lagret konfigurerar kunderna antingen Dispatcher-modulen eller ModSecurity för att begränsa åtkomsten till visst innehåll.

Som beskrivs i den här artikeln distribueras trafikfilterregler till Adobe hanterade CDN med Cloud Manager konfigurationspipelines. Utöver standardreglerna för trafikfilter (IP, sökväg, rubriker, hastighetsbegränsningar) licensierar kunderna WAF-regler.

Föreslagen process suggested-process

Nedan följer en högnivårekommenderad process från början till slut för att fastställa rätt trafikfilterregler:

  1. Konfigurera pipelines för icke-produktion och produktionskonfiguration enligt beskrivningen i avsnittet Inställningar.

  2. Kunder som har licensierat WAF trafikfilterregler aktiverar dem i Cloud Manager.

    note important
    IMPORTANT
    WAF-reglerna aktiveras inte när de licensieras. Funktionen är inaktiv tills WAF-DDOS Protection har markerats på fliken Säkerhet i Cloud Manager. Se Skapa produktionsprogram eller Redigera program för att aktivera funktionen.
  3. Läs och fyll i självstudiekursen för att lära dig hur du använder trafikfilterregler, inklusive WAF-regler om de har licensierats. I självstudiekursen får du hjälp med att distribuera regler till en utvecklingsmiljö, simulera skadlig trafik, hämta CDN-loggarna och analysera dem i instrumentpanelsverktyget.

  4. Kopiera de rekommenderade startreglerna till cdn.yaml och distribuera konfigurationen till produktionsmiljön, med några av reglerna i loggläge.

  5. När du har samlat in trafik analyserar du resultatet med instrumentpanelsverktyget för att se om det finns några matchningar. Håll utkik efter falska positiva inställningar och gör nödvändiga justeringar för att aktivera alla startregler i blockläge.

  6. Om det behövs lägger du till anpassade regler baserade på analys av CDN-loggarna, först testar med simulerad trafik i utvecklingsmiljöer innan du distribuerar till scen- och produktionsmiljöer i loggläge och sedan blockerar läge.

  7. Övervaka trafiken kontinuerligt och ändra reglerna allteftersom hotbilden utvecklas.

Inställningar setup

  1. Skapa en fil cdn.yaml med en uppsättning trafikfilterregler, inklusive WAF-regler. Till exempel:

    code language-none
    kind: "CDN"
    version: "1"
    data:
      trafficFilters:
        rules:
        # Block simple path
        - name: block-path
          when:
            allOf:
              - reqProperty: tier
                matches: "author|publish"
              - reqProperty: path
                equals: '/block/me'
          action: block
    

    Se Använda konfigurationsförlopp för en beskrivning av egenskaperna ovanför noden data. Egenskapsvärdet kind ska anges till CDN och versionen ska anges till 1.

  2. Om WAF-regler är licensierade måste aktivera funktionen i Cloud Manager. WAF-regler som licensieras aktiverar dem inte. Funktionen är inaktiv tills WAF-DDOS Protection har markerats på fliken Säkerhet i Cloud Manager.

    Aktivera funktionen för både nya och befintliga programscenarier enligt följande:

    1. Om du vill konfigurera WAF för ett nytt program markerar du kryssrutan WAF-DDOS-skydd på fliken Säkerhet när du skapar ett produktionsprogram.

    2. Redigera ditt program om du vill konfigurera WAF för ett befintligt program. På fliken Dokumentskydd markerar du alternativet WAF-DDOS-skydd för att aktivera funktionen, eller avmarkerar alternativet för att inaktivera funktionen. Du kan ändra den här inställningen när som helst.

      Om du vill bekräfta att funktionen är aktiv när du har aktiverat den, kontrollerar du CDN-loggarna när trafiken har flött till platsen. Leta efter loggposter som innehåller en rules-egenskap som innehåller ett waf-attribut. Till exempel:

      "rules": "*waf=*"

      Attributet visas när WAF är aktivt, även innan några WAF-regler distribueras.

  3. Skapa en config pipeline i Cloud Manager, enligt beskrivningen i konfigurationspipeline-artikeln. Pipelinen refererar till en mapp på den översta nivån config med filen cdn.yaml placerad någonstans under, se Använda konfigurationsförlopp.

Syntax för trafikfilterregler rules-syntax

Om du vill matcha mönster som IP, användaragent, headers, hostname, geo eller URL kan du konfigurera trafikfilterregler.

Kunder med en utökad säkerhet eller utökad säkerhet för vårdlicens konfigurerar WAF-regler som refererar till WAF-flaggor.

Här är ett exempel på en uppsättning trafikfilterregler, som även innehåller en WAF-regel.

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: "path-rule"
        when:
          allOf:
            - { reqProperty: path, equals: /block-me }
            - { reqProperty: tier, equals: publish }
        action:
          type: block
      - name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
        when: { reqProperty: path, like: "*" }
        action:
          type: block
          wafFlags: [ SQLI, XSS]

Formatet på trafikfilterreglerna i filen cdn.yaml beskrivs nedan. Se några andra exempel i ett senare avsnitt och ett separat avsnitt om Regler för hastighetsbegränsning.

Egenskap
De flesta trafikfilterreglerna
WAF trafikfilterregler
Typ
Standardvärde
Beskrivning
name
X
X
string
-
Regelnamn (64 tecken långt, får bara innehålla alfanumeriska tecken och - )
när
X
X
Condition
-
Den grundläggande strukturen är:

{ <getter>: <value>, <predicate>: <value> }

Se Villkorsstruktur i Konfigurera trafik på CDN för get, prediates och hur du kombinerar flera villkor.
åtgärd
X
X
Action
logg
log-, allow-, block- eller Action-objekt. Standard är logg
rateLimit
X
RateLimit
inte definierad
Konfiguration för hastighetsbegränsning. Hastighetsbegränsning är inaktiverad om den inte är definierad.

Det finns ett separat avsnitt nedan som beskriver rateLimit-syntaxen, tillsammans med exempel.

Åtgärdsstruktur action-structure

En action kan antingen vara en sträng som anger åtgärden (allow, block eller log), eller ett objekt som består av både åtgärdstypen (allow, block eller log) och alternativ som wafFlags och/eller status.

Åtgärdstyper

Åtgärderna prioriteras utifrån deras typer i följande tabell, som ordnas för att återspegla den ordning som åtgärderna utförs:

Namn
Tillåtna egenskaper
Betydelse
tillåt
wafFlags (valfritt), alert (valfritt)
om wafFlags inte finns avbryter ytterligare regelbearbetning och fortsätter att ge svar. Om det finns wafFlags inaktiveras angivna WAF-skydd och ytterligare regelbearbetning fortsätter.
Om en varning anges skickas ett meddelande från Åtgärdscenter om regeln aktiveras 10 gånger i ett 5 minuter långt fönster. När en varning aktiveras för en viss regel utlöses den inte igen förrän nästa dag (UTC).
block
status, wafFlags (valfritt och exklusivt), alert (valfritt)
Om wafFlags inte finns returnerar HTTP-fel utan att alla andra egenskaper skickas, definieras felkoden av statusegenskapen eller så är standardvärdet 406. Om det finns wafFlags aktiverar det angivna WAF-skydd och fortsätter till ytterligare regelbearbetning.
Om en varning anges skickas ett meddelande från Åtgärdscenter om regeln aktiveras 10 gånger i ett 5 minuter långt fönster. När en varning aktiveras för en viss regel utlöses den inte igen förrän nästa dag (UTC).
log
wafFlags (valfritt), alert (valfritt)
loggar det faktum att regeln utlöstes, annars påverkas inte bearbetningen. wafFlags har ingen effekt.
Om en varning anges skickas ett meddelande från Åtgärdscenter om regeln aktiveras 10 gånger i ett 5 minuter långt fönster. När en varning aktiveras för en viss regel utlöses den inte igen förrän nästa dag (UTC).

WAF-flagglista waf-flags-list

Egenskapen wafFlags, som används i de licensbara WAF-trafikfilterreglerna, refererar till följande:

Skadlig trafik

Flagga-ID
Flaggnamn
Beskrivning
ATTACK
Attackera
En aggregering av flaggor som relaterar till skadlig trafik (SQLI, CMDEXE, XSS osv.). I avsnittet Rekommenderade WAF-regler finns mer information om hur den här flaggan kan användas effektivt.
ATTACK-FROM-BAD-IP
Attackera från felaktig IP
Liknar ATTACK-flaggan, men"logiskt AND-ed" med flaggan BAD-IP, så en begäran flaggas om den matchar både ATTACK och BAD-IP. I avsnittet Rekommenderade WAF-regler finns mer information om hur den här flaggan kan användas effektivt.
SQLI
SQL-inmatning
SQL Injection är ett försök att få åtkomst till ett program eller få privilegierad information genom att köra godtyckliga databasfrågor.
BAKDOOR
Bakdörr
En bakdörrssignal är en begäran som försöker avgöra om det finns en gemensam bakdörrsfil i systemet.
CMDEXE
Kommandokörning
Kommandokörning är ett försök att få kontroll över eller skada ett målsystem genom godtyckliga systemkommandon med hjälp av användarindata.
CMDEXE-NO-BIN
Kommandokörning förutom på /bin/
Tillhandahåll samma skyddsnivå som CMDEXE samtidigt som falskt positivt inaktiveras på /bin på grund av AEM-arkitektur.
XSS
Skript för flera webbplatser
Korsskriptning mellan webbplatser är ett försök att kapa en användares konto eller webbläsarsession via skadlig JavaScript-kod.
TRAVERSAL
Kataloggenomgång
Directory Traversal är ett försök att navigera i behöriga mappar i ett system för att kunna hämta känslig information.
USERAGENT
Attackverktyg
Attack Tooling är användning av automatiserad programvara för att identifiera säkerhetsproblem eller för att försöka utnyttja en upptäckt säkerhetslucka.
LOG4J-JNDI
Log4J JNDI
Log4J JNDI-attacker försöker utnyttja Log4Shell-sårbarheten som fanns i Log4J-versioner tidigare än 2.16.0
CVE
CVE
Flagga som identifierar CVE (Common Vulnerabilities and Exposure). Kombineras alltid med flaggan CVE-<CVE Number>. Kontakta Adobe om du vill veta mer om vilka CVE som Adobe skyddar dig från.

Misstänkt trafik

Flagga-ID
Flaggnamn
Beskrivning
ABNORMALPATH
Onormal bana
Onormal sökväg anger att den ursprungliga sökvägen skiljer sig från den normaliserade sökvägen (till exempel normaliseras /foo/./bar till /foo/bar)
BAD-IP
Felaktig IP
Identifierar begäranden som kommer från IP-adresser som är kända som skadliga, antingen på grund av att de ingår i datauppsättningar som SANS och TORNODE, eller på grund av att WAF tidigare har upptäckt skadliga beteenden
BHH
Felaktiga Hop-huvuden
Felaktiga Hop-huvuden anger ett försök till HTTP-smuggling via en felformaterad Transfer-Encoding (TE) eller Content-Length (CL)-rubrik, eller en korrekt formaterad TE- och CL-rubrik
KODEINJEKTION
Kodinmatning
Kodinjektion är ett försök att få kontroll över eller skada ett målsystem genom godtyckliga programkodkommandon som användaren anger.
KOMPRIMERAD
Komprimering upptäcktes
POST-begärandetexten är komprimerad och kan inte inspekteras. Om till exempel ett Content-Encoding: gzip-begärandehuvud har angetts och POST-brödtexten inte är oformaterad text.
RESPONSESPLIST
HTTP-svarsdelning
Identifierar när CRLF-tecken skickas som indata till programmet för att mata in rubriker i HTTP-svaret
NOTUTF8
Ogiltig kodning
Ogiltig kodning kan göra att servern översätter skadliga tecken från en begäran till ett svar, vilket kan orsaka denial of service eller XSS
MALFORMED-DATA
Felformaterade data i begärandetexten
En POST-, PUT- eller PATCH-begärandetext som har felaktigt format enligt begärandehuvudet Content-Type. Exempel:“Innehållstyp: application/x-www-form-urlencoded” request header har angetts och innehåller ett POST-brödtext som är json. Detta är ofta ett programmeringsfel, en automatiserad eller skadlig begäran. Kräver agent 3.2 eller högre.
SANS
Skadlig IP-trafik
SANS Internet Storm Center - lista över rapporterade IP-adresser som har varit inblandade i skadlig aktivitet.
INNEHÅLLSTYP
Begäranhuvudet Content-Type saknas
En POST-, PUT- eller PATCH-begäran som inte har någon Content-Type-begäranderubrik. Som standard ska programservrar anta “Content-Type: text/ren text, charset=us-ascii” i det här fallet. Många automatiska och skadliga förfrågningar kanske saknar"Innehållstyp".
NOUA
Ingen användaragent
Anger att en begäran inte innehöll någon “User-Agent”-rubrik eller att rubrikvärdet inte har angetts.
NULLBYTE
Null byte
Null-byte visas normalt inte i en begäran och anger att begäran är felformaterad och potentiellt skadlig.
OOB-DOMÄN
Utanför band-domän
Utanför intervall-domäner används vanligtvis vid penetrationstestning för att identifiera sårbarheter där nätverksåtkomst är tillåten.
PRIVATEFILE
Privata filer
Privata filer är konfidentiella, till exempel en Apache .htaccess-fil eller en konfigurationsfil som kan läcka känslig information
SKANNER
Skanner
Identifierar vanliga skanningstjänster och verktyg

Diverse trafik

Flagga-ID
Flaggnamn
Beskrivning
DATACENTER
Datacenter
Identifierar att begäran kommer från en känd värdtjänstleverantör. Den här typen av trafik är vanligtvis inte kopplad till en riktig slutanvändare.
DUBBELKODNING
Dubbel kodning
Dubbel kodning används för att kontrollera om HTML-tecken med dubbel kodning kan användas
JSON-ERROR
JSON-kodningsfel
En POST-, PUT- eller PATCH-begärandetext som har angetts som innehåller JSON i begärandehuvudet för Content-Type men som innehåller JSON-tolkningsfel. Detta beror ofta på ett programmeringsfel eller en automatiserad eller skadlig begäran.
TORNODE
Tor Traffic
Tor är programvara som döljer en användares identitet. En spik i Tor-trafiken kan indikera en angripare som försöker maskera sin plats.
XML-FEL
XML-kodningsfel
En POST-, PUT- eller PATCH-begärandetext som har angetts som innehållande XML i begärandehuvudet"Content-Type" men som innehåller XML-tolkningsfel. Detta beror ofta på ett programmeringsfel eller en automatiserad eller skadlig begäran.

Överväganden considerations

  • När två konfliktskapande regler skapas har alltid de tillåtna reglerna företräde framför blockreglerna. Om du till exempel skapar en regel som blockerar en viss sökväg och en regel som tillåter en viss IP-adress, tillåts förfrågningar från den IP-adressen på den blockerade sökvägen.

  • Om en regel matchas och blockeras svarar CDN med returkoden 406.

  • Konfigurationsfilerna innehåller inga hemligheter eftersom de kan läsas av alla som har åtkomst till Git-databasen.

  • IP-tillåtelselista som definieras i Cloud Manager har högre prioritet än trafikfilterregler.

  • WAF-regelmatchningar visas endast i CDN-loggar för CDN-missar och -pass, inte träffar.

Exempel på regler examples

Vissa regelexempel följer. Se avsnittet tariffgräns längre ned för exempel på regler för hastighetsbegränsning.

Exempel 1

Den här regeln blockerar begäranden från IP192.168.1.1:

kind: "CDN"
version: "1"
data:
  trafficFilters:
     rules:
       - name: "block-request-from-ip"
         when: { reqProperty: clientIp, equals: "192.168.1.1" }
         action:
           type: block

Exempel 2

Den här regeln blockerar begäranden till sökvägen /helloworld vid publicering med en användaragent som innehåller Chrome:

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: "block-request-from-chrome-on-path-helloworld-for-publish-tier"
        when:
          allOf:
          - { reqProperty: path, equals: /helloworld }
          - { reqProperty: tier, equals: publish }
          - { reqHeader: user-agent, matches: '.*Chrome.*'  }
        action:
          type: block

Exempel 3

Den här regeln blockerar begäranden vid publicering som innehåller frågeparametern foo, men tillåter alla begäranden som kommer från IP 192.168.1.1:

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: "block-request-that-contains-query-parameter-foo"
        when:
          allOf:
            - { queryParam: url-param, equals: foo }
            - { reqProperty: tier, equals: publish }
        action:
          type: block
      - name: "allow-all-requests-from-ip"
        when: { reqProperty: clientIp, equals: 192.168.1.1 }
        action:
          type: allow

Exempel 4

Den här regeln blockerar begäranden till sökvägen /block-me vid publicering och blockerar alla begäranden som matchar ett SQLI - eller XSS -mönster. Det här exemplet innehåller en trafikfilterregel för WAF, som refererar till SQLI och XSS WAF Flags och därför kräver en separat licens.

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: "path-rule"
        when:
          allOf:
            - { reqProperty: path, equals: /block-me }
            - { reqProperty: tier, equals: publish }
        action:
          type: block
      - name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
        when: { reqProperty: path, like: "*" }
        action:
          type: block
          wafFlags: [ SQLI, XSS]

Exempel 5

Den här regeln blockerar åtkomst till OFAC-länder:

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: block-ofac-countries
        when:
          allOf:
            - reqProperty: tier
              matches: "author|publish"
            - reqProperty: clientCountry
              in:
                - SY
                - BY
                - MM
                - KP
                - IQ
                - CD
                - SD
                - IR
                - LR
                - ZW
                - CU
                - CI
        action: block

Regler för tariffbegränsning

Ibland är det önskvärt att blockera trafik om den överskrider en viss frekvens av inkommande begäranden, baserat på ett visst villkor. Om du anger ett värde för egenskapen rateLimit begränsas hastigheten för de begäranden som matchar regelvillkoret.

Regler för hastighetsbegränsning kan inte referera till WAF-flaggor. De är tillgängliga för alla Sites- och Forms-kunder.

Kursen beräknas per CDN POP. Anta till exempel att POP i Montreal, Miami och Dublin har en trafikfrekvens på 80, 90 respektive 120 förfrågningar per sekund. Regeln för hastighetsbegränsning är satt till en gräns på 100. I så fall är det endast trafiken till Dublin som är begränsad.

Hastighetsgränserna utvärderas baserat på antingen trafik som faller i kanten, trafik som faller i origo eller antalet fel.

rateLimit-struktur ratelimit-structure

Egenskap
Typ
Standard
MENAR
limit
heltal mellan 10 och 10000
obligatoriskt
Begärandefrekvens (per CDN POP) i begäranden per sekund som regeln aktiveras för.
window
heltal: 1, 10 eller 60
10
Provningsfönstret i sekunder för vilket begärandehastigheten beräknas. Räknarnas noggrannhet beror på fönstrets storlek (större fönsternoggrannhet). Du kan till exempel förvänta dig 50 % noggrannhet för det sekundära fönstret och 90 % noggrannhet för det 60-sekundersfönstret.
påföljd
heltal mellan 60 och 3600
300 (5 minuter)
En period i sekunder för vilken matchande begäranden blockeras (avrundat till närmaste minut).
antal
alla, hämtningar, fel
alla
utvärderas baserat på edge-trafik (all), ursprungstrafik (hämtningar) eller antalet fel (fel).
groupBy
array[Getter]
ingen
Räknaren för hastighetsbegränsning sammanställs av en uppsättning egenskaper för begäran (till exempel clientIp).

Exempel ratelimiting-examples

Exempel 1

Den här regeln blockerar en klient i 5 minuter när den överskrider ett genomsnitt på 60 req/sek (per CDN POP) under de senaste 10 sektionerna:

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
    - name: limit-requests-client-ip
      when:
        reqProperty: tier
        matches: "author|publish"
      rateLimit:
        limit: 60
        window: 10
        penalty: 300
        count: all
        groupBy:
          - reqProperty: clientIp
      action: block

Exempel 2

Blockera begäranden på sökvägen/critical/resource i 60 sekunder när det överskrider ett genomsnitt på 100 begäranden till ursprungsläget per sekund (per CDN POP) i ett tidsfönster på tio sekunder:

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: rate-limit-example
        when:
          allOf:
            - { reqProperty: path, equals: /critical/resource }
            - { reqProperty: tier, equals: publish }
        action:
          type: block
        rateLimit: { limit: 100, window: 10, penalty: 60, count: fetches }

Fler kodfragment för avancerade scenarier finns i artikeln CDN-konfigurationsfragment för vanliga scenarier.

CVE-regler cve-rules

Om WAF är licensierat tillämpar Adobe automatiskt blockeringsregler för att skydda mot många kända CVE-nummer (Common Vulnerabilities and Exposure) och nya CVE-nummer läggs till snart efter att de har identifierats. Kunder konfigurerar inte själva CVE-reglerna.

Om en trafikbegäran matchar en CVE-fil visas den i motsvarande CDN-loggpost.

Kontakta Adobe support om det finns frågor om en viss CVE eller om det finns en viss CVE-regel som din organisation vill inaktivera.

Varningar om trafikfilterregler traffic-filter-rules-alerts

En regel kan konfigureras att skicka ett meddelande från Åtgärdscenter om det aktiveras tio gånger inom ett 5 minuter långt fönster. En sådan regel varnar dig när vissa trafikmönster förekommer så att du kan vidta nödvändiga åtgärder. När en varning aktiveras för en viss regel aktiveras den inte igen förrän nästa dag (UTC).

Läs mer om Åtgärdscenter, inklusive hur du konfigurerar de meddelandeprofiler som krävs för att ta emot e-postmeddelanden.

Åtgärdscentermeddelande

Varningsegenskapen kan användas för åtgärdsnoden för alla åtgärdstyper (allow, block, log).

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: "path-rule"
        when:
          allOf:
            - { reqProperty: path, equals: /block-me }
            - { reqProperty: tier, equals: publish }
        action:
          type: block
          alert: true

Standardtrafikspik vid ursprungsvarning traffic-spike-at-origin-alert

Ett e-postmeddelande från Åtgärdscenter varnar dig när hög trafik från samma IP-adress når origo, vilket tyder på en DDoS-attack.

Om detta tröskelvärde uppnås blockerar Adobe trafiken från den IP-adressen. vidta ytterligare åtgärder för att skydda ditt ursprung, till exempel konfigurera trafikfilterregler för hastighetsbegränsning. Se självstudiekursen Blockera DoS- och DDoS-attacker med trafikregler för en guidad genomgång.

Systemet aktiverar den här varningen som standard, men du kan inaktivera den med egenskapen defaultTrafficAlerts som är inställd på false. När varningen har utlösts utlöses den inte igen förrän nästa dag (UTC).

kind: "CDN"
version: "1"
data:
  trafficFilters:
   defaultTrafficAlerts: false

CDN-loggar cdn-logs

AEM as a Cloud Service ger åtkomst till CDN-loggar, som är användbara för fall som till exempel optimering av träffar i cache och konfigurering av trafikfilterregler. CDN-loggar visas i dialogrutan Cloud Manager Hämta loggar när du väljer författaren eller publiceringstjänsten.

CDN-loggar fördröjs upp till fem minuter.

Egenskapen rules beskriver vilka trafikfilterregler som matchas och har följande mönster:

"rules": "match=<matching-customer-named-rules-that-are-matched>,waf=<matching-WAF-rules>,action=<action_type>"

Till exempel:

"rules": "match=Block-Traffic-under-private-folder,Enable-SQL-injection-everywhere,waf="SQLI,SANS",action=block"

Reglerna fungerar på följande sätt:

  • Alla matchande regelnamn som har deklarerats av kunden listas i attributet match.
  • Attributet action avgör om regelblocket, tillåt eller loggen ska användas.
  • Om WAF är licensierat och aktiverat visar attributet waf alla WAF-flaggor (till exempel SQLI) som har identifierats. Detta beteende gäller oavsett om WAF-flaggorna har listats i några regler eller inte. Loggningen är avsedd att ge insikt i eventuella nya regler som ska deklareras.
  • Egenskapen rules är tom om inga kunddeklarerade regler matchar och inga SWF-regler matchar.

Som tidigare nämnts visas matchningar av WAF-regler endast i CDN-loggar för CDN-missar och -pass, inte träffar.

I exemplet nedan visas ett exempel på cdn.yaml och två CDN-loggposter:

kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
      - name: "path-rule"
        when: { reqProperty: path, equals: /block-me }
        action: block
      - name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
        when: { reqProperty: path, like: "*" }
        action:
          type: block
          wafFlags: [ SQLI, XSS ]
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"rid": "974e67f6",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"host": "example.com",
"url": "/block-me",
"method": "GET",
"res_ctype": "",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=path-rule,action=blocked"
}
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"rid": "974e67f6",
"host": "example.com",
"url": "/?sqli=%27%29%20UNION%20ALL%20SELECT%20NULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL--%20fAPK",
"method": "GET",
"res_ctype": "image/png",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked"
}

Loggformat cdn-log-format

Nedan finns en lista med de fältnamn som används i CDN-loggar, tillsammans med en kort beskrivning.

Fältnamn
Beskrivning
tidsstämpel
Den tidpunkt då begäran startades, efter TLS-avslutning.
ttfb
Förkortning för Tid till första byte. Tidsintervallet mellan begäran startades fram till punkten innan svarstexten började direktuppspelas.
cli_ip
Klientens IP-adress.
cli_country
ISO 3166-1 alpha-2-landskod med två bokstäver för klientlandet.
rid
Värdet på begärandehuvudet som används för att unikt identifiera begäran.
req_ua
Användaragenten som ansvarar för att göra en given HTTP-begäran.
värd
Den myndighet som begäran avser.
url
Den fullständiga sökvägen, inklusive frågeparametrar.
metod
HTTP-metod som skickas av klienten, till exempel GET eller POST.
res_type
Den innehållstyp som används för att ange resursens ursprungliga medietyp.
cache
Status för cachen. Möjliga värden är HIT, MISS eller PASS
status
HTTP-statuskoden som ett heltalsvärde.
res_age
Den tid (i sekunder) som ett svar har cachelagrats (i alla noder).
pop
Datacenter för CDN-cacheservern.
regler
Namnet på matchande regler.

Anger också om matchningen resulterade i ett block.

Exempel: match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked

Tom om inga regler matchar.

Instrumentpanelsverktyg dashboard-tooling

Adobe har en funktion för att hämta instrumentpanelsverktyg till din dator för att importera CDN-loggar som hämtats via Cloud Manager. Använd den här verktygen om du vill analysera trafiken och fastställa vilka trafikfilterregler som ska deklareras, inklusive WAF-regler.

Instrumentpanelsverktygen kan klonas direkt från GitHub-databasen AEMCS-CDN-Log-Analysis-Tooling.

Det finns en självstudiekurs med konkreta anvisningar om hur du använder instrumentpanelsverktygen.

Adobe föreslår att man börjar med trafikfilterreglerna nedan och sedan finjusterar dem över tiden. Standardregler är tillgängliga med en Sites- eller Forms-licens, medan WAF-regler kräver en utökad säkerhet (tidigare WAF-DDoS-skydd) eller utökad säkerhet för hälso- och sjukvård (tidigare kallat Förbättrat skydd)-licens.

Börja med dessa regler:

  1. hastighetsbegränsning (loggningsläge):
    • logg när trafik från en viss IP-adress överskrider en hastighetsgräns. Byt till blockläge efter att ha kontrollerat att inga varningar har tagits emot. om aviseringar togs emot, anger det att gränsvärdet var för lågt.
  2. specifika länder (blockläge):
    • blockera trafik från vissa länder (ändra landskoderna baserat på dina affärskrav)
kind: "CDN"
version: "1"
data:
  trafficFilters:
    rules:
    #  Block client for 5m when it exceeds an average of 100 req/sec to origin on a time window of 10sec
    - name: limit-origin-requests-client-ip
      when:
        reqProperty: tier
        equals: 'publish'
      rateLimit:
        limit: 100
        window: 10
        count: fetches
        penalty: 300
        groupBy:
          - reqProperty: clientIp
      action: log
    #  Block client for 5m when it exceeds an average of 500 req/sec on a time window of 10sec
    - name: limit-requests-client-ip
      when:
        reqProperty: tier
        equals: 'publish'
      rateLimit:
        limit: 500
        window: 10
        count: all
        penalty: 300
        groupBy:
          - reqProperty: clientIp
      action: log
      alert: true
    # Block requests coming from OFAC countries
    - name: ofac-countries
      when:
        allOf:
          - { reqProperty: tier, in: ["author", "publish"] }
          - reqProperty: clientCountry
            in:
              - SY
              - BY
              - MM
              - KP
              - IQ
              - CD
              - SD
              - IR
              - LR
              - ZW
              - CU
              - CI
      action: block

Lägg till följande regler i din befintliga konfiguration:

  1. ATTACK-FROM-BAD-IP-flagga (blockläge):

    • Blockera omedelbart trafik som båda matchar misstänkta mönster (inklusive flera i WAF-flagglistan) och härstammar från IP-adresser som är kända som skadliga.
    • Flaggan ATTACK-FROM-BAD-IP uppfyller båda villkoren (mönstermatchning och känd skadlig IP), vilket minimerar risken för falsk positiv information. Du kan alltså använda den här regeln i blockeringsläge på ett säkert och omedelbart sätt.
  2. ATTACK-flagga (loggläge):

    • Logga (i stället för att blockera) trafik som matchar misstänkta mönster men som inte kommer från kända skadliga IP-adresser. Denna försiktiga loggningsmetod i stället för att blockera hjälper till att undvika att oavsiktligt blockera legitim trafik (falska positiva).
    • Analysera CDN-loggar efter distributionen av den här regeln för att verifiera att berättigade förfrågningar inte flaggas felaktigt. När du är säker på att ingen legitim trafik påverkas växlar du till blockläge.
NOTE
Erfarenheten visar att falskt positiva värden associerade med ATTACK-flaggan är ovanliga. En praktisk strategi är därför att omedelbart blockera all misstänkt trafik och använda analys av CDN-loggar för att identifiera och införa regler för legitim trafik. Varje organisation utvärderar sin egen risktolerans och väger fördelarna med bättre skydd mot risken för oavsiktlig blockering av berättigade förfrågningar.
    # blocks likely attack traffic, which also comes from suspected IPs
    - name: attacks-from-bad-ips-globally
      when:
        reqProperty: tier
        in: ["author", "publish"]
      action:
        type: block
        wafFlags:
          - ATTACK-FROM-BAD-IP
    # log likely attack traffic, and later switch to block mode if false positives aren't observed
    - name: attacks-from-any-ips-globally
      when:
        reqProperty: tier
        in: ["author", "publish"]
      action:
        type: log
        wafFlags:
          - ATTACK

Äldre rekommenderade WAF-regler previous-waf-starter-rules

Före juli 2025 rekommenderade Adobe de WAF-regler som anges nedan, som fortfarande är giltiga och effektiva för att försvara mot skadlig trafik. Se självstudiekursen om du vill ha mer information om hur du migrerar till de nya rekommenderade reglerna.

Expandera om du vill se de äldre rekommenderade WAF-reglerna.
code language-none
    # Enable recommended WAF protections (only works if WAF is licensed enabled for your environment)
    - name: block-waf-flags-globally
      when:
        reqProperty: tier
        in: ["author", "publish"]
      action:
        type: log
        wafFlags:
          - TRAVERSAL
          - CMDEXE-NO-BIN
          - XSS
          - LOG4J-JNDI
          - BACKDOOR
          - USERAGENT
          - SQLI
          - SANS
          - TORNODE
          - NOUA
          - SCANNER
          - PRIVATEFILE
          - NULLBYTE

Självstudiekurs tutorial

Om du vill få praktiska kunskaper och erfarenheter om trafikfilterregler, inklusive WAF-regler, kan du gå igenom en serie självstudiekurser.

Självstudiekurserna är följande:

  • En översikt över standardtrafikfilterregler och WAF trafikfilterregler.
  • Om du vill blockera attacker, inklusive DoS (Denial of Service), konfigurerar du de rekommenderade trafikfilterreglerna och WAF trafikfilterreglerna.
  • Distribuera regler med hjälp av Cloud Manager konfigurationsflöde.
  • Testa reglerna med verktyg för att simulera skadlig trafik.
  • Analyserar resultaten med logganalysverktyget.
  • God praxis.
recommendation-more-help
experience-manager-cloud-service-help-main-toc