Regels voor verkeersfilters, inclusief WAF-regels traffic-filter-rules-including-waf-rules

De filterregels van het verkeer kunnen worden gebruikt om verzoeken bij de laag te blokkeren of toe te staan CDN, die in scenario's zoals nuttig kan zijn:

  • Toegang tot specifieke domeinen beperken tot intern bedrijfsverkeer, voordat een nieuwe site live gaat
  • Het vestigen van tariefgrenzen om minder vatbaar voor volumetrische aanvallen van Dos te zijn
  • Voorkomen dat IP-adressen waarvan bekend is dat ze kwaadaardig zijn, zich richten op uw pagina's

De meeste van deze regels van de verkeersfilter zijn beschikbaar aan alle AEM as a Cloud Service Plaatsen en klanten van Forms. Zij werken hoofdzakelijk op verzoekeigenschappen en verzoekkopballen, met inbegrip van IP, hostname, weg, en gebruikersagent.

Een subcategorie van verkeersfilterregels vereist of een vergunning van Uitgebreide Veiligheid of een vergunning van de Bescherming WAF-DDoS. Deze krachtige regels zijn gekend als het verkeersfilterregels van het WAF (de Firewall van de Toepassing van het Web) (of de regels van WAF voor kort) en hebben toegang tot WAF-vlaggen wordt verderop in dit artikel beschreven.

De filterregels van het verkeer kunnen via de configuratiepijpleidingen van de Manager van de Wolk worden opgesteld om, stadium, en de types van productiemilieu in productie (niet zandbak) programma's te ontwikkelen. Steun voor RDEs zal in de toekomst komen.

Een zelfstudie doorlopen snel concrete expertise op dit gebied op te bouwen.

NOTE
Voor extra opties met betrekking tot het vormen van verkeer bij CDN, met inbegrip van het uitgeven van het verzoek/de reactie, het verklaren van omleidingen, en het proxying aan een niet AEM oorsprong, zie Het vormen van Verkeer bij CDN artikel.

Hoe dit artikel is georganiseerd how-organized

Dit artikel is onderverdeeld in de volgende secties:

  • Overzicht verkeersbeveiliging: Leer hoe u tegen kwaadwillig verkeer wordt beschermd.
  • Voorgesteld proces voor het configureren van regels: Lees voor meer informatie over een methode op hoog niveau voor het beschermen van uw website.
  • Instellen: Ontdek hoe te opstelling, vorm, en stel de regels van de verkeersfilter, met inbegrip van de geavanceerde regels van WAF op.
  • Syntaxis regels: Lees over hoe te om de regels van de verkeersfilter in te verklaren cdn.yaml configuratiebestand. Dit omvat zowel de regels van de verkeersfilter beschikbaar aan alle klanten van Plaatsen en van Forms, als de subcategorie van de regels van WAF voor degenen die van dat vermogen vergunning geven.
  • Voorbeelden van regels: Bekijk voorbeelden van gedeclareerde regels om u op weg te helpen.
  • Regels voor tarieflimieten: Leer hoe u regels voor snelheidsbeperking gebruikt om uw site te beschermen tegen aanvallen met een hoog volume.
  • Waarschuwing verkeersfilterregels Vorm alarm dat moet worden op de hoogte gebracht wanneer uw regels worden teweeggebracht.
  • Standaardverkeersspiegel bij oorspronkelijke waarschuwing Word op de hoogte gebracht wanneer er een toename van verkeer bij de oorsprong wijzend op een aanval DDoS is.
  • CDN-logbestanden: Zie welke verklaarde regels en de Vlaggen van WAF uw verkeer aanpassen.
  • Dashboard-gereedschappen: Analyseer uw CDN logboeken om nieuwe regels van de verkeersfilter omhoog te komen.
  • Aanbevolen starterregels: Een set regels om mee aan de slag te gaan.
  • Zelfstudie: Praktische kennis van de eigenschap, met inbegrip van hoe te om dashboardtoolings te gebruiken om de juiste regels te verklaren.

De Adobe nodigt u uit om feedback te geven of vragen te stellen over verkeersfilterregels door per e-mail te verzenden aemcs-waf-adopter@adobe.com.

Overzicht van verkeersbeveiliging traffic-protection-overview

In het huidige digitale landschap is kwaadwillig verkeer een steeds grotere bedreiging. De Adobe erkent de ernst van het risico en biedt verscheidene benaderingen aan om klantentoepassingen te beschermen en aanvallen te verlichten wanneer zij voorkomen.

Bij de rand, absorbeert de Adobe Beheerde CDN de aanvallen van Dos bij de netwerklaag (lagen 3 en 4), met inbegrip van vloed en bezinning/versterkingsaanvallen.

Door gebrek, neemt de Adobe maatregelen om prestatiesverslechtering te verhinderen toe te schrijven aan barsten van onverwacht hoog verkeer boven een bepaalde drempel. Als er een aanval van Dos is die plaatsbeschikbaarheid beïnvloedt, worden de verrichtingenteams van de Adobe gealarmeerd en nemen stappen om te verlichten.

De klanten kunnen pro-actieve maatregelen nemen om de aanvallen van de toepassingslaag (laag 7) te verlichten door regels bij diverse lagen van de stroom van de inhoudslevering te vormen.

Op de Apache-laag kunnen klanten bijvoorbeeld de Dispatcher, module of ModSecurity om de toegang tot bepaalde inhoud te beperken.

Zoals dit artikel beschrijft, kunnen de regels van de verkeersfilter aan de Adobe Geleide CDN worden opgesteld, gebruikend de configuratiepijplijn van de Manager van de Wolk. Naast de regels van de verkeersfilter die op eigenschappen zoals IP adres, weg, en kopballen, of regels worden gebaseerd die op het plaatsen van tariefgrenzen worden gebaseerd, kunnen de klanten een krachtige subcategorie van de regels van de verkeersfilter ook vergunning geven genoemd de regels van WAF.

Voorgesteld proces suggested-process

Het volgende is een geadviseerd proces op hoog niveau van begin tot eind voor het komen met de juiste regels van de verkeersfilter:

  1. Niet-productie- en productieconfiguratiepijpleidingen configureren, zoals beschreven in de Instellen sectie.
  2. Klanten die een licentie voor de subcategorie WAF-regels voor verkeersfilters hebben, dienen deze in te schakelen in Cloud Manager.
  3. Lees en probeer uit het leerprogramma om concreet te begrijpen hoe te om de regels van de verkeersfilter, met inbegrip van de regels van WAF te gebruiken als zij vergunning hebben gekregen. Het leerprogramma begeleidt u door het opstellen van regels aan een dev milieu, simulerend kwaadwillig verkeer, downloadend CDN-logbestandenen deze in dashboardgereedschap.
  4. De aanbevolen startregels kopiëren naar cdn.yaml en stel de configuratie aan het productiemilieu op logboekwijze op.
  5. Na het verzamelen van wat verkeer, analyseer de resultaten gebruikend dashboardgereedschap om na te gaan of er wedstrijden zijn. Lookout voor valse positieven, en maak om het even welke noodzakelijke aanpassingen, uiteindelijk toelatend de starterregels op blokwijze.
  6. Voeg douaneregels toe die op analyse van de logboeken CDN worden gebaseerd, eerst het testen met gesimuleerd verkeer op ontwikkelmilieu's alvorens aan stadium en productiemilieu's op logboekwijze, dan blokwijze op te stellen.
  7. Het verkeer van de controle voortdurend, veranderend de regels aangezien het bedreigingslandschap evolueert.

Instellen setup

  1. Maak eerst de volgende map en bestandsstructuur in de map op hoofdniveau in uw project in Git:

    code language-none
    config/
         cdn.yaml
    
  2. cdn.yaml moeten metagegevens en een lijst met verkeersfilterregels en WAF-regels bevatten.

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

De kind parameter moet worden ingesteld op CDN en de versie moet worden ingesteld op de schemaversie, die 1. Zie de volgende voorbeelden.

  1. Als voor WAF-regels een licentie wordt verleend, moet u de functie inschakelen in Cloud Manager, zoals hieronder wordt beschreven voor zowel de nieuwe als de bestaande programmascenario's.

    1. Om WAF op een nieuw programma te vormen, controleer WAF-DDOS-beveiliging selectievakje op de Beveiliging als u een productieprogramma toevoegen.

    2. WAF op een bestaand programma vormen, uw programma bewerken en op de Beveiliging of controleer de WAF-DDOS op elk gewenst moment.

  2. Voor milieutypes buiten RDE, creeer een gerichte plaatsing config pijpleiding in de Manager van de Wolk.

Voor RDEs, wordt de bevellijn gebruikt, maar RDE wordt momenteel niet gesteund.

Notities

  • U kunt yq om de opmaak van uw configuratiebestand lokaal te valideren (bijvoorbeeld yq cdn.yaml).

Syntaxis verkeersfilterregels rules-syntax

U kunt traffic filter rules om op patronen zoals IPs, gebruikersagent, verzoekkopballen, hostname, geo, en url aan te passen.

Klanten die een licentie verlenen voor het aanbod Uitgebreide beveiliging of WAF-DDoS-beveiliging, kunnen ook een speciale categorie regels voor het filter configureren, genaamd WAF traffic filter rules (of WAF-regels voor kort) die verwijzen naar een of meer WAF-vlaggen.

Hier is een voorbeeld van een reeks regels van de verkeersfilter, die ook een regel van WAF omvat.

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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]

Het formaat van de regels van de verkeersfilter in cdn.yaml wordt hieronder beschreven. Zie sommige andere voorbeelden in een latere sectie en een afzonderlijke sectie over Regels voor tarieflimieten.

Eigenschap
De meeste regels van de verkeersfilter
Regels voor WAF-verkeersfilters
Type
Standaardwaarde
Beschrijving
name
X
X
string
-
Regelnaam (64 tekens lang, alleen alfanumerieke tekens en -)
wanneer
X
X
Condition
-
De basisstructuur is:

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

Zie Syntaxis van Condition Structure Hieronder vindt u een beschrijving van de getters, voorspellingen en hoe u meerdere voorwaarden kunt combineren.
action
X
X
Action
log
log, allow, block of Action-object. Standaard is log
rateLimit
X
RateLimit
niet gedefinieerd
Snelheidsbeperkende configuratie. Snelheidsbeperking is uitgeschakeld als deze niet is gedefinieerd.

Hieronder vindt u een aparte sectie waarin de syntaxis rateLimit wordt beschreven, samen met voorbeelden.

Voorwaardestructuur condition-structure

Een voorwaarde kan een eenvoudige Voorwaarde of een groep Voorwaarden zijn.

Eenvoudige voorwaarde

Een eenvoudige voorwaarde bestaat uit een getter en een voorspelling.

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

Groepsvoorwaarden

Een groep Voorwaarden bestaat uit meerdere Eenvoudige en/of Groepsvoorwaarden.

<allOf|anyOf>:
  - { <getter>: <value>, <predicate>: <value> }
  - { <getter>: <value>, <predicate>: <value> }
  - <allOf|anyOf>:
    - { <getter>: <value>, <predicate>: <value> }
Eigenschap
Type
Betekenis
allOf
array[Condition]
en -bewerking. true als alle vermelde voorwaarden true retourneren
anyOf
array[Condition]
of -bewerking. true als een van de vermelde voorwaarden true retourneert

Getter

Eigenschap
Type
Beschrijving
reqProperty
string

Request-eigenschap.

Een van:

  • path: Retourneert het volledige pad van een URL zonder de queryparameters.
  • queryString: Retourneert het querygedeelte van een URL
  • method: Retourneert de HTTP-methode die in de aanvraag wordt gebruikt.
  • tier: Retourneert een van author, preview, of publish.
  • domain: Hiermee wordt de eigenschap domain geretourneerd (zoals gedefinieerd in het dialoogvenster Host header) in kleine letters
  • clientIp: Retourneert de client-IP.
  • clientCountry: Retourneert een tweelettercode (Regionaal indicatorsymbool) die aangeven in welk land de cliënt zich bevindt.
reqHeader
string
Hiermee wordt aanvraagheader met de opgegeven naam geretourneerd
queryParam
string
Hiermee wordt de query-parameter met de opgegeven naam geretourneerd
reqCookie
string
Retourneert cookie met opgegeven naam
postParam
string
Keert de Parameter van het Post met gespecificeerde naam van het lichaam van het Verzoek terug. Werkt alleen als de hoofdtekst van het inhoudstype is application/x-www-form-urlencoded

Voorspelend

Eigenschap
Type
Betekenis
equals
string
true als het resultaat van de getter gelijk is aan de opgegeven waarde
doesNotEqual
string
true als het resultaat van de getter niet gelijk is aan de opgegeven waarde
leuk
string
true als het resultaat van de getter overeenkomt met het opgegeven patroon
notlike
string
true als het resultaat van de getter niet overeenkomt met het opgegeven patroon
overeenkomsten
string
true als het resultaat van de getter overeenkomt met opgegeven regex
doesNotMatch
string
true als het resultaat van de getter niet overeenkomt met opgegeven regex
in
array[string]
true als de opgegeven lijst het resultaat getter bevat
notIn
array[string]
true als de opgegeven lijst geen resultaat voor getter bevat
exists
boolean
true wanneer ingesteld op true en eigenschap bestaat of wanneer ingesteld op false en eigenschap niet bestaat

Notities

  • De eigenschap request clientIp kan alleen worden gebruikt met de volgende voorspelling: equals, doesNotEqual, in, notIn. clientIp kan ook tegen IP waaiers worden vergeleken wanneer het gebruiken in en notIn voorspelt. In het volgende voorbeeld wordt een voorwaarde geïmplementeerd om te beoordelen of een client-IP zich in het IP-bereik van 192.168.0.0/24 bevindt (dus van 192.168.0.0 tot 192.168.0.255):
when:
  reqProperty: clientIp
  in: [ "192.168.0.0/24" ]
  • Adobe beveelt het gebruik van regex101 en Fastly Fiddle wanneer u met regex werkt. U kunt ook meer leren over hoe snel regex in dit artikel.

Handelingsstructuur action-structure

An action Dit kan een tekenreeks zijn die de handeling opgeeft (toestaan, blokkeren of vastleggen), of een object dat bestaat uit zowel het handelingstype (toestaan, blokkeren of vastleggen) als opties zoals wafFlags en/of status.

Typen handelingen

De acties worden geprioriteerd volgens hun types in de volgende lijst, die wordt bevolen om op de ordeacties te wijzen wordt uitgevoerd:

Naam
Toegestane eigenschappen
Betekenis
toestaan
wafFlags (facultatief), alert (optioneel, nog niet vrijgegeven)
als wafFlags niet aanwezig is, houdt verdere regelverwerking tegen en gaat aan het dienen van reactie te werk. Als wafFlags aanwezig is, maakt het gespecificeerde bescherming van WAF onbruikbaar en gaat aan verdere regelverwerking te werk.
Als het alarm wordt gespecificeerd, wordt een bericht van het Centrum van Acties verzonden als de regel 10 keer in een 5 minieme venster wordt teweeggebracht. Deze functie wordt nog niet vrijgegeven. Zie de Waarschuwing verkeersfilterregels voor meer informatie over de deelname aan het programma voor vroegtijdige adoptie .
blok
status, wafFlags (facultatief en wederzijds exclusief), alert (optioneel, nog niet vrijgegeven)
als wafFlags niet aanwezig is, retourneert de HTTP-fout waarbij alle andere eigenschappen worden overgeslagen, wordt de foutcode gedefinieerd door de status-eigenschap of is de standaardwaarde 406. Als wafFlags aanwezig is, laat het gespecificeerde bescherming van WAF toe en gaat aan verdere regelverwerking te werk.
Als het alarm wordt gespecificeerd, wordt een bericht van het Centrum van Acties verzonden als de regel 10 keer in een 5 minieme venster wordt teweeggebracht. Deze functie wordt nog niet vrijgegeven. Zie de Waarschuwing verkeersfilterregels voor meer informatie over de deelname aan het programma voor vroegtijdige adoptie .
log
wafFlags (facultatief), alert (optioneel, nog niet vrijgegeven)
registreert het feit dat de regel werd teweeggebracht, anders beïnvloedt niet de verwerking. wafFlags heeft geen effect.
Als het alarm wordt gespecificeerd, wordt een bericht van het Centrum van Acties verzonden als de regel 10 keer in een 5 minieme venster wordt teweeggebracht. Deze functie wordt nog niet vrijgegeven. Zie de Waarschuwing verkeersfilterregels voor meer informatie over de deelname aan het programma voor vroegtijdige adoptie .

Lijst met WAF-markeringen waf-flags-list

De wafFlags eigenschap, die kan worden gebruikt in de licentiebare WAF-regels voor verkeersfilters, kan verwijzen naar het volgende:

Markering-id
Vlagnaam
Beschrijving
SQLI
SQL-injectie
SQL de Injectie is de poging om toegang tot een toepassing te verkrijgen of bevoorrechte informatie te verkrijgen door willekeurige gegevensbestandvragen uit te voeren.
BACKEUR
Achterkant
Een achterdeursignaal is een verzoek dat probeert te bepalen als een gemeenschappelijk achterdeurdossier op het systeem aanwezig is.
CMDEXE
Opdracht uitvoeren
De Uitvoering van het bevel is de poging om controle te verkrijgen of een doelsysteem door willekeurige systeembevelen door middel van gebruikersinput te beschadigen.
CMDEXE-NO-BIN
Uitvoering van opdracht, behalve ingeschakeld /bin/
Zorgen voor hetzelfde beschermingsniveau als CMDEXE terwijl het onbruikbaar maken vals-positief op /bin vanwege AEM architectuur.
XSS
Scripts voor meerdere sites
Met scripts die verwijzen naar andere sites wordt geprobeerd een gebruikersaccount of een webbrowsersessie te kapen via kwaadaardige JavaScript-code.
TRAVERSAL
Directorytraversal
Directorytraversal is de poging om bevoorrechte omslagen door een systeem in hoop te navigeren om gevoelige informatie te verkrijgen.
GEBRUIKER
Gereedschap Bijsluiten
De Tooling van de aanval is het gebruik van geautomatiseerde software om veiligheidskwetsbaarheid te identificeren of te proberen om een ontdekte kwetsbaarheid te exploiteren.
LOG4J-JNDI
Log4J JNDI
Log4J JNDI-aanvallen proberen de Log4Shell-kwetsbaarheid aanwezig in eerdere versies van Log4J dan 2.16.0
BHH
Onjuiste koppen
De slechte Kopballen van de Hop wijzen op een HTTP het smokkelen poging door of een misvormde overdracht-Codering (TE) of een inhoud-Lengte (CL) kopbal, of een goed gevormde TE en kopbal CL
CODEINJECTIE
Code-injectie
De Injectie van de code is de poging om controle te verkrijgen of een doelsysteem door arbitraire bevelen van de toepassingscode door gebruikersinput te beschadigen.
ABNORMALPATH
Abnormaal pad
Met Abnormal Path wordt aangegeven dat het oorspronkelijke pad afwijkt van het genormaliseerde pad (bijvoorbeeld /foo/./bar is genormaliseerd naar /foo/bar)
DOUBLEENCODERING
Dubbele codering
De dubbele Codering controleert de ontduikingstechniek van het tweemaal coderen van HTML- karakters
NOTUTF8
Ongeldige codering
Ongeldige codering kan ertoe leiden dat de server schadelijke tekens van een verzoek in een reactie omzet, wat of een ontkenning van de dienst of XSS veroorzaakt
JSON-ERROR
JSON-coderingsfout
Een POST, PUT, of PATCH- verzoeklichaam dat als bevattende JSON binnen de "Content-Type"verzoekkopbal wordt gespecificeerd maar JSON het ontleden fouten bevat. Dit heeft vaak te maken met een programmeerfout of een geautomatiseerd of kwaadaardig verzoek.
MALFORMED-DATA
Onjuiste gegevens in de aanvraaginstantie
Een POST, een PUT, of PATCH verzoeken lichaam dat volgens de "Inhoud-Type"verzoekkopbal misvormd is. Bijvoorbeeld, als een "Content-Type: application/x-www-form-urlencoded"verzoekkopbal wordt gespecificeerd en een POST bevat die json is. Dit is vaak een programmeerfout, een geautomatiseerd of een kwaadwillig verzoek. Vereist agent 3.2 of hoger.
SANS
Verkeer van kwaadwillige IP
SANS Internet Storm Center lijst van gemelde IP adressen die in kwaadwillige activiteit betrokken waren.
NO-CONTENT-TYPE
Ontbrekende aanvraagheader "Content-Type"
Een POST-, PUT- of PATCH-aanvraag die geen aanvraagheader "Content-Type" heeft. Standaard moeten toepassingsservers in dit geval 'Content-Type: text/plain; charset=us-ascii' aannemen. Bij veel geautomatiseerde en kwaadaardige verzoeken ontbreekt mogelijk het type inhoud.
NOUA
Geen gebruikersagent
Vele geautomatiseerde en kwaadwillige verzoeken gebruiken vals of ontbrekende Gebruiker-Agenten om het moeilijk te maken om het type van apparaat te identificeren dat de verzoeken maakt.
TORNODE
Teerverkeer
Tor is software die de identiteit van een gebruiker verbergt. Een piek in het verkeer van de Tor kan op een aanvaller wijzen die probeert om hun plaats te maskeren.
NULLBYTE
Null Byte
Null-bytes worden normaal gesproken niet weergegeven in een verzoek en geven aan dat het verzoek onjuist is geformuleerd en mogelijk kwaadaardig is.
PRIVATEFIEL
Persoonlijke bestanden
Persoonlijke bestanden zijn vertrouwelijk, zoals een Apache .htaccess bestand of een configuratiebestand dat vertrouwelijke informatie kan lekken
SCANNER
Scanner
Identificeert populaire scanservices en -gereedschappen
RESPONSESPLIT
HTTP-antwoordsplitsing
Identificeert wanneer CRLF-tekens als invoer naar de toepassing worden verzonden om headers in de HTTP-reactie te injecteren
XML-ERROR
XML-coderingsfout
Een POST, PUT, of PATCH aanvraaglichaam dat als bevattende XML binnen de "Inhoud-Type"verzoekkopbal wordt gespecificeerd maar XML het ontleden fouten bevat. Dit heeft vaak te maken met een programmeerfout of een geautomatiseerd of kwaadaardig verzoek.

Overwegingen considerations

  • Wanneer twee conflicterende regels worden gecreeerd, nemen de toegestane regels altijd belangrijkheid over de blokregels. Bijvoorbeeld, als u een regel creeert om een specifieke weg en een regel te blokkeren om één specifiek IP adres toe te staan, worden de verzoeken van dat IP adres op de geblokkeerde weg toegestaan.

  • Als een regel wordt aangepast en geblokkeerd, reageert CDN met een 406 retourcode.

  • De configuratiedossiers zouden geen geheimen moeten bevatten aangezien zij door iedereen leesbaar zouden zijn die toegang tot de git bewaarplaats heeft.

  • IP de lijsten van gewenste personen die in de Manager van de Wolk worden bepaald hebben voorrang op de Regels van de Filters van het Verkeer.

  • De de regelovereenkomsten van WAF verschijnen slechts in CDN- logboeken voor CDN mist en passen, niet klappen.

Voorbeelden van regels examples

Hier volgen enkele regelvoorbeelden. Zie de tarieflimiteringssectie verder voor voorbeelden van tarieflimietregels.

Voorbeeld 1

Deze regel blokkeert aanvragen afkomstig van IP 192.168.1.1:

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

Voorbeeld 2

Deze regel blokkeert aanvraag op pad /helloworld bij het publiceren met een Gebruiker-Agent die Chrome bevat:

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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

Voorbeeld 3

Deze regel blokkeert verzoeken om publicatie die de queryparameter bevatten foo, maar staat elk verzoek toe dat van IP 192.168.1.1 komt:

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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

Voorbeeld 4

Deze regel blokkeert aanvragen om paden /block-me bij publiceren, en blokkeert elke aanvraag die overeenkomt met een SQLI of XSS patroon. Dit voorbeeld omvat een het verkeersfilterregels van WAF, die verwijzingen SQLI en XSS WAF-vlaggenen dus een aparte vergunning vereist.

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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]

Voorbeeld 5

Deze regel blokkeert de toegang tot OFAC-landen:

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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

Regels voor tarieflimieten

Soms is het wenselijk om verkeer te blokkeren als het een bepaald tarief van inkomende verzoeken, gebaseerd op een specifieke voorwaarde overschrijdt. Een waarde instellen voor de rateLimit eigenschap beperkt de snelheid van die aanvragen die overeenkomen met de regelvoorwaarde.

Regels voor tarieflimieten kunnen niet verwijzen naar WAF-vlaggen. Ze zijn beschikbaar voor alle klanten van Sites en Forms.

Snelheidslimieten worden berekend per CDN POP. Als voorbeeld, veronderstel dat POPs in Montreal, Miami, en Dublin verkeerstarieven van 80, 90, respectievelijk 120 verzoeken per seconde ervaren. En de tarieflimietregel is ingesteld op een limiet van 100. In dat geval zou alleen het verkeer naar Dublin beperkt zijn.

De grenzen van het tarief worden geëvalueerd gebaseerd op of verkeer dat de rand raakt, verkeer dat de oorsprong raakt, of het aantal fouten.

rateLimit-structuur ratelimit-structure

Eigenschap
Type
Standaard
BETEKENEN
limiet
geheel getal van 10 tot en met 10000
vereist
Het tarief van het verzoek (per CDN POP) in verzoeken per seconde waarvoor de regel wordt teweeggebracht.
venster
geheel getal: 1, 10 of 60
10
Samplingvenster in seconden waarvoor de aanvraagsnelheid wordt berekend. De nauwkeurigheid van tellers hangt van de grootte van het venster (grotere vensternauwkeurigheid) af. U kunt bijvoorbeeld 50% nauwkeurigheid verwachten voor het venster van 1 seconde en 90% nauwkeurigheid voor het venster van 60 seconden.
straf
geheel getal van 60 tot 3600
300
Een periode in seconden waarvoor overeenkomstige verzoeken worden geblokkeerd (afgerond naar de dichtstbijzijnde minuut).
aantal
all, fetches, fouten
alles
evalueert gebaseerd op randverkeer (allen), oorsprongverkeer (halen), of het aantal fouten (fouten).
groupBy
array[Getter]
none
De teller van de snelheidsbegrenzer zal door een reeks verzoekeigenschappen (bijvoorbeeld, clientIp) worden bijeengevoegd.

Voorbeelden ratelimiting-examples

Voorbeeld 1

Deze regel blokkeert een cliënt voor 5 milliseconden wanneer het een gemiddelde van 60 req/sec (per KNP CDN) in de laatste 10 sec overschrijdt:

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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

Voorbeeld 2

De verzoeken van het blok op weg /kritiek/middel voor 60 seconden wanneer het een gemiddelde van 100 verzoeken aan oorsprong per seconde (per CDN POP) op een tijdvenster van tien seconden overschrijdt:

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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 }

Waarschuwing verkeersfilterregels traffic-filter-rules-alerts

NOTE
Deze functie wordt nog niet vrijgegeven. Voor toegang via het programma voor vroege adoptie kunt u e-mail aemcs-waf-adopter@adobe.com.

Een regel kan worden gevormd om een bericht van het Centrum van Acties te verzenden als het tien keer binnen een 5 minieme venster wordt teweeggebracht. Een dergelijke regel waarschuwt u wanneer bepaalde verkeerspatronen voorkomen zodat u om het even welke noodzakelijke maatregelen kunt nemen. Meer informatie over Handelingencentrum, inclusief hoe u de vereiste meldingsprofielen instelt voor het ontvangen van e-mailberichten.

Melding van actiecentra

De eigenschap alert (momenteel voorafgegaan door experimenteel aangezien de eigenschap nog niet wordt vrijgegeven) kan op de actieknooppunt voor alle actietypes (toestaan, blok, logboek) worden toegepast.

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

Standaardverkeersspiegel bij oorspronkelijke waarschuwing traffic-spike-at-origin-alert

NOTE
Dit onderdeel wordt geleidelijk ingevoerd.

An Handelingencentrum Het e-mailbericht zal worden verzonden wanneer er een significante hoeveelheid verkeer is die naar de oorsprong wordt verzonden, waar een hoge drempel van verzoeken van het zelfde IP adres komt, zo wijzend op een aanval DDoS.

Als deze greep wordt voldaan aan, zal de Adobe verkeer van dat IP adres blokkeren, maar het wordt geadviseerd om extra maatregelen te nemen om uw oorsprong te beschermen, met inbegrip van het vormen van de regels van de de filterfilter van de tariefgrens om verkeerspikes bij lagere drempels te blokkeren. Zie de Het blokkeren Dos en aanvallen DDoS gebruikend het leerprogramma van de verkeersregels voor een geleide doortocht.

Deze waarschuwing is standaard ingeschakeld, maar u kunt deze uitschakelen via de enable_ddos_waarschuwingen eigenschap, ingesteld op false.

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
data:
  trafficFilters:
    enable_ddos_alerts: false

CDN-logs cdn-logs

AEM as a Cloud Service verleent toegang tot CDN logboeken, die voor gebruiksgevallen met inbegrip van de optimalisering van de geheim voorgeheugenklapverhouding, en het vormen van de regels van de verkeersfilter nuttig zijn. CDN-logboeken worden weergegeven in Cloud Manager Logbestanden downloaden wanneer u de service Auteur of Publiceren selecteert.

CDN-logbestanden kunnen maximaal vijf minuten worden vertraagd.

De rules De eigenschap beschrijft welke regels voor verkeersfilters worden aangepast en heeft het volgende patroon:

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

Bijvoorbeeld:

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

De regels gedragen zich als volgt:

  • De klant-verklaarde regelnaam van om het even welke passende regels is vermeld in match kenmerk.
  • De action het attribuut bepaalt of de regels blokkeren, toestaan, of logboek.
  • Als WAF vergunning en toegelaten is, waf In dit kenmerk worden alle WAF-markeringen weergegeven die zijn gedetecteerd (bijvoorbeeld SQLI). Dit is waar ongeacht of de vlaggen van WAF in om het even welke regels werden vermeld. Dit moet inzicht verschaffen in mogelijke nieuwe regels die moeten worden gedeclareerd.
  • Als er geen door de klant gedeclareerde regels overeenkomen en er geen waf-regels overeenkomen, wordt de rules eigenschap is leeg.

Zoals eerder vermeld, verschijnen de de regelovereenkomsten van WAF slechts in CDN- logboeken voor CDN missen en overgaan, niet klappen.

In het onderstaande voorbeeld ziet u een voorbeeld cdn.yaml en twee CDN-logitems:

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev"]
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"
}

Logbestandsindeling cdn-log-format

Hieronder vindt u een lijst met veldnamen die in CDN-logbestanden worden gebruikt, samen met een korte beschrijving.

Veldnaam
Beschrijving
tijdstempel
De tijd waarop de aanvraag is gestart, na beëindiging van TLS.
ttfb
Afkorting van Tijd naar eerste byte. Het tijdinterval tussen het verzoek begon tot het punt alvorens het reactiekarakter begon te worden gestroomd.
cli_ip
Het client-IP-adres.
cli_country
Twee letters ISO 3166-1 alpha-2-landcode voor het land van de cliënt.
afdanken
De waarde van de verzoekkopbal die wordt gebruikt om het verzoek uniek te identificeren.
req_ua
De gebruikersagent die verantwoordelijk is voor het indienen van een bepaalde HTTP-aanvraag.
host
De autoriteit waarvoor het verzoek is bestemd.
url
Het volledige pad, inclusief queryparameters.
methode
HTTP-methode die door de client wordt verzonden, zoals "GET" of "POST".
res_ctype
Het Content-Type dat wordt gebruikt om het oorspronkelijke mediatype van de bron aan te geven.
cachegeheugen
Status van de cache. Mogelijke waarden zijn HIT, MISS of PASS
status
De HTTP-statuscode als een geheel getal.
res_age
De hoeveelheid tijd (in seconden) dat een reactie in de cache is geplaatst (in alle knooppunten).
pop
Datacenter van de CDN-cacheserver.
regels
De naam van eventuele overeenkomende regels.

Geeft ook aan of de overeenkomst tot een blok heeft geleid.

Bijvoorbeeld "match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked"

Leeg als geen regels overeenkomen.

Dashboard Tooling dashboard-tooling

Adobe biedt een mechanisme voor het downloaden van dashboardgereedschappen naar uw computer voor het invoeren van CDN-logbestanden die zijn gedownload via Cloud Manager. Met dit tooling, kunt u uw verkeer analyseren om omhoog met de aangewezen regels van de verkeersfilter te komen om te verklaren, met inbegrip van de regels van WAF.

Gereedschap Dashboard kan rechtstreeks worden gekloond vanuit het dialoogvenster AEMCS-CDN-Log-Analysis-Tool GitHub-opslagplaats.

Tutorials zijn beschikbaar voor concrete instructies over het gebruik van de dashboardgereedschappen.

Aanbevolen startregels recommended-starter-rules

U kunt de aanbevolen regels hieronder kopiëren naar uw cdn.yaml aan de slag. Begin op logboekwijze, analyseer uw verkeer, en wanneer tevreden, verandering in blokwijze. Mogelijk wilt u de regels wijzigen op basis van de unieke kenmerken van het live verkeer van uw website.

kind: "CDN"
version: "1"
metadata:
  envTypes: ["dev", "stage", "prod"]
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
    # Block requests coming from OFAC countries
    - name: block-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: log
    # 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

Tutorials tutorial

Er zijn twee zelfstudies beschikbaar.

Websites beschermen met verkeersfilterregels (inclusief WAF-regels) tutorial-protecting-websites

Een zelfstudie gebruiken algemene, praktische kennis en ervaring op te doen met verkeersfilterregels, met inbegrip van WAF-regels.

De zelfstudie begeleidt u door:

  • De configuratiepijplijn van Cloud Manager instellen
  • Het gebruiken van hulpmiddelen om kwaadwillig verkeer te simuleren
  • Regels voor het declareren van verkeersfilters, inclusief WAF-regels
  • Resultaten analyseren met dashboardgereedschappen
  • Aanbevolen procedures

Het blokkeren Dos en de aanvallen van DDoS gebruikend de regels van de verkeersfilter tutorial-blocking-DDoS-with-rules

Diep duiken op hoe te om te blokkeren Ontkenning van de (Dos) van de Dienst en Verdeelde Ontkenning van de (DDoS) aanvallen van de Dienst gebruikend de regels van de het verkeersfilter van de tariefgrens en andere strategieën.

De zelfstudie begeleidt u door:

  • begrijpen, beveiliging
  • ontvangen van waarschuwingen wanneer tarieflimieten worden overschreden
  • het analyseren van verkeerspatronen gebruikend dashboardtooling om drempels voor de regels van de snelheidsgrensfilter te vormen
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab