Comment mettre en place un WAF avec Kong Gateway
Comment ajouter une protection de type WAF à Kong Gateway en composant ses plugins de sécurité (Injection Protection, JSON/XML Threat Protection, Bot Detection, IP Restriction, Rate Limiting, Request Size Limiting), avec un panorama honnête des options offrant une couverture OWASP CRS complète via un WAF cloud en frontal ou un plugin Coraza communautaire.
Kong Gateway est l'une des passerelles d'API open source les plus déployées, bâtie sur OpenResty et NGINX. Ce n'est pas pour autant un pare-feu applicatif web fondé sur des signatures ou des règles, comme le sont ModSecurity ou Coraza. Kong open source n'embarque aucun moteur OWASP Core Rule Set (CRS) ni aucun « plugin WAF » unique. La documentation de Kong présente au contraire le WAF comme une tâche que la passerelle accomplit en composant des plugins de sécurité : Kong agit comme « une porte d'entrée pour vos applications en imposant l'authentification et l'autorisation, en appliquant des limites de débit, en restreignant les sources abusives et en validant les requêtes avant qu'elles n'atteignent les services amont ».
Cette distinction est déterminante pour votre planification. Certains des plugins utilisés ici (Bot Detection, IP Restriction, Rate Limiting, Request Size Limiting) sont fournis avec Kong open source et sont livrés avec lui depuis de nombreuses versions majeures ; ils ne sont donc soumis à aucun plancher de version particulier. Les plugins d'inspection applicative plus poussés (Injection Protection, JSON Threat Protection, XML Threat Protection, Request Validator, Rate Limiting Advanced) sont des plugins Kong Enterprise / Konnect, et ce sont eux qui fixent le vrai plancher de version de ce guide : Injection Protection exige Kong Gateway 3.9+, JSON Threat Protection exige 3.8+ (la validation du corps en POST/PUT/PATCH exige 3.10+) et XML Threat Protection exige 3.1+. Si vous comptez suivre l'intégralité du guide, visez la version 3.9+ et vérifiez les licences auprès de votre abonnement avant de bâtir dessus.
Ce guide parcourt honnêtement les deux couches. Vous durcissez d'abord Kong avec les plugins gratuits pour la limitation de débit, le contrôle des IP, les limites de taille et le filtrage des bots. Vous superposez ensuite les plugins Enterprise de protection contre les menaces, pour l'injection et les attaques par charge utile. Enfin, comme aucun de ces plugins n'exécute l'OWASP CRS, nous couvrons les deux vraies voies vers une couverture de niveau CRS : placer un WAF cloud en frontal d'une Dedicated Cloud Gateway Kong, ou exécuter un plugin Coraza communautaire pour un Kong auto-hébergé. La configuration est présentée en config déclarative decK, qui se transpose aussi proprement vers l'Admin API et Konnect.
Prérequis
- Une instance Kong Gateway en fonctionnement (auto-hébergée, hybride ou Konnect). Utilisez la 3.9+ pour l'intégralité du guide, car Injection Protection exige Kong Gateway 3.9+ ; les plugins de base open source ne sont soumis à aucun plancher de version particulier et sont livrés avec Kong depuis de nombreuses versions majeures
- Kong Enterprise ou Kong Konnect pour les plugins Injection Protection (Kong 3.9+), JSON Threat Protection (Kong 3.8+, validation du corps POST/PUT/PATCH en 3.10+), XML Threat Protection (Kong 3.1+), Request Validator et Rate Limiting Advanced (les plugins de base fonctionnent sur Kong open source)
- Un accès à l'Admin API, ou la CLI decK configurée contre votre control plane
- Au moins un Gateway Service et une Route mettant déjà un backend en proxy à travers Kong
- Une familiarité de base avec les entités Kong (Services, Routes, Plugins) et la configuration déclarative
- curl et un terminal pour les tests
Guide étape par étape
Comprendre comment Kong fait office de WAF
Avant d'activer quoi que ce soit, ayez les idées claires sur ce qu'est Kong et ce qu'il n'est pas. Kong est une passerelle d'API bâtie sur OpenResty/NGINX. Kong open source n'embarque ni moteur ModSecurity ni moteur Coraza et n'exécute pas l'OWASP Core Rule Set. La documentation WAF de Kong décrit le WAF comme une composition de plugins plutôt que comme un moteur de règles unique. Il existe trois approches réalistes :
- Composer les plugins de sécurité Kong (ce guide) : chaîner Injection Protection, JSON/XML Threat Protection, Bot Detection, IP Restriction, Rate Limiting et Request Size Limiting sur vos Services et vos Routes. Cela couvre les menaces API courantes, mais ce n'est pas du CRS.
- Placer un vrai WAF en frontal (managé/cloud) : pour une Dedicated Cloud Gateway publique, placez un CDN plus un WAF cloud (par exemple les règles managées AWS WAF sur CloudFront) en amont et validez le trafic d'origine. Couvert dans une étape ultérieure.
- Exécuter un plugin Coraza communautaire (auto-hébergé) : des projets communautaires embarquent le moteur OWASP Coraza et le CRS v4 dans Kong sous forme de plugin server. Ce n'est pas un plugin Kong officiel ; vous assumez la compilation et le support. Couvert dans une étape ultérieure.
Notez également la répartition par édition et par version : Bot Detection, IP Restriction, Rate Limiting et Request Size Limiting sont dans Kong open source, tandis qu'Injection Protection (Kong 3.9+), JSON Threat Protection (Kong 3.8+), XML Threat Protection (Kong 3.1+), Request Validator et Rate Limiting Advanced sont des plugins Enterprise / Konnect.
Ajouter une protection de base avec les plugins open source
Commencez par les plugins fournis avec Kong open source. Ce kong.yaml déclaratif attache IP Restriction, Request Size Limiting et Bot Detection globalement, plus une limitation de débit de base sur un Service :
_format_version: "3.0"
services:
- name: my-api
url: http://upstream:8080
routes:
- name: my-api-route
paths:
- /api
plugins:
# Bloquer les corps surdimensionnés (renvoie HTTP 413)
- name: request-size-limiting
config:
allowed_payload_size: 10
size_unit: megabytes
require_content_length: false
# Bloquer les user agents malveillants connus par regex (renvoie HTTP 403)
- name: bot-detection
config:
deny:
- "(C)|(c)url"
- "python-requests"
# Refuser les plages source abusives (renvoie HTTP 403)
- name: ip-restriction
config:
deny:
- 203.0.113.0/24
status: 403
message: "Access denied"
Ajoutez ensuite une limitation de débit par client. Sur Kong open source, utilisez le plugin Rate Limiting ; sur Enterprise/Konnect, préférez Rate Limiting Advanced pour les fenêtres glissantes et les compteurs partagés. Pour un nœud unique, strategy: local ne requiert aucun store externe. Pour plusieurs nœuds, utilisez strategy: redis, qui exige un bloc config.redis et fonctionne dans les déploiements hybrides, DB-less et Konnect :
plugins:
- name: rate-limiting-advanced
service: my-api
config:
limit:
- 100
window_size:
- 60
window_type: sliding
identifier: ip
strategy: redis
sync_rate: 1
redis:
host: redis
port: 6379
Bloquer les attaques par injection avec le plugin Injection Protection
Le plugin Injection Protection (Enterprise / Konnect, Kong Gateway 3.9+) confronte le contenu des requêtes à des motifs regex intégrés pour les classes d'injection. C'est ce qui se rapproche le plus, dans Kong, de la détection WAF par signatures. Configurez les types d'injection et les emplacements de requête à inspecter, et démarrez en mode log_only :
plugins:
- name: injection-protection
service: my-api
config:
injection_types:
- sql
- js
locations:
- path_and_query
- body
- headers
enforcement_mode: log_only
error_status_code: 400
error_message: "Bad Request"
La référence de configuration liste l'ensemble complet des injection_types (sql, sql_low_sensitivity, js, java_exception, ssi, xpath_abbreviated, xpath_extended) et des locations (body, headers, path, path_and_query, query). Vous pouvez aussi ajouter des custom_injections avec un name et une regex pour des motifs propres à votre application. Notez les valeurs par défaut du plugin : enforcement_mode vaut block par défaut (pas log_only) et locations vaut [path_and_query] par défaut, si bien que les réglages explicites ci-dessus outrepassent les deux. Une copie partielle qui les omettrait bloquerait dès la première requête et ne scannerait jamais les corps de requête.
Protéger les charges utiles structurées avec les plugins Threat Protection
Les API sont attaquées via des charges utiles surdimensionnées et profondément imbriquées, autant que par des chaînes d'injection. Le plugin JSON Threat Protection (Kong 3.8+ ; la validation du corps en POST/PUT/PATCH exige Kong 3.10+) impose des limites structurelles aux corps JSON :
plugins:
- name: json-threat-protection
service: my-api
config:
max_body_size: 1000000
max_container_depth: 20
max_object_entry_count: 100
max_object_entry_name_length: 100
max_array_element_count: 1000
max_string_value_length: 10000
enforce_mode: block
error_status_code: 400
Si vous acceptez du XML, ajoutez le plugin XML Threat Protection (Kong 3.1+), qui plafonne de la même manière la profondeur des éléments, le nombre d'attributs et la taille des valeurs pour se défendre contre les attaques par bombe XML et par expansion d'entités. Notez une différence importante entre les deux : JSON Threat Protection propose une phase de journalisation seule via enforce_mode: log_only ; réglez-la d'abord si vous n'êtes pas sûr de la forme de vos charges utiles légitimes, puis basculez sur enforce_mode: block. XML Threat Protection n'a ni sélecteur de mode ni mode journalisation seule ; il bloque toujours en cas de violation d'une limite, validez donc soigneusement ses limites max_* contre des charges utiles XML réelles avant de l'activer.
Valider les requêtes contre un schéma
La défense de couche applicative la plus forte que propose Kong est la validation positive : rejeter tout ce qui ne correspond pas à un schéma attendu. Le plugin Request Validator (Enterprise / Konnect) valide les corps de requête et les paramètres contre un JSON Schema (Draft 4, version: draft4) ou le schéma natif de Kong (version: kong) que vous fournissez directement par Route (éventuellement généré à partir d'une spécification OpenAPI avec deck file openapi2kong, un outil decK distinct, qui n'est pas une fonctionnalité du plugin lui-même) :
plugins:
- name: request-validator
route: my-api-route
config:
version: draft4
body_schema: |
{
"type": "object",
"required": ["id"],
"properties": {
"id": { "type": "integer", "minimum": 1 }
},
"additionalProperties": false
}
allowed_content_types:
- application/json
verbose_response: false
Parce qu'il met la structure en liste d'autorisation plutôt que de mettre en liste de blocage les attaques connues, un validateur de requêtes attrape des classes entières d'injection et de falsification de paramètres que la correspondance par signatures manque, au prix de la maintenance d'un schéma par Route.
Ajouter une protection de niveau OWASP CRS là où c'est nécessaire
Aucun des plugins ci-dessus n'exécute l'OWASP Core Rule Set. Si votre conformité ou votre modèle de menace exige le CRS, choisissez l'une des deux voies honnêtes :
Voie managée / cloud (Dedicated Cloud Gateways) : une Dedicated Cloud Gateway publique expose un nom d'hôte DNS, vous la placez donc derrière un CDN capable d'attacher un WAF cloud. Conformément au guide de sécurité réseau public de Kong, placez les règles managées AWS WAF sur une distribution CloudFront, puis verrouillez l'origine pour que le trafic ne puisse pas contourner le CDN. CloudFront injecte un en-tête à secret partagé et Kong l'exige :
# Rejeter toute requête qui n'est pas passée par le CDN
plugins:
- name: request-termination
config:
status_code: 403
message: "Direct origin access denied"
# ...activé via une Route qui matche quand l'en-tête
# X-Origin-Verify est absent ou erroné.
# Mettez aussi en liste d'autorisation les plages de sortie du CDN :
- name: ip-restriction
config:
allow:
- 130.176.0.0/16 # plage de sortie CDN d'exemple
Kong recommande de stocker la valeur de l'en-tête partagé dans un Vault et de la faire tourner périodiquement.
Voie auto-hébergée (plugin Coraza communautaire) : des projets communautaires embarquent le moteur OWASP Coraza et le CRS v4 dans Kong sous forme de plugin server Go, compatible avec les topologies hybrides, traditionnelles et DB-less. Vous construisez une image Kong personnalisée et activez le plugin server via des variables d'environnement, par exemple :
KONG_PLUGINS=bundled,kong-waf
KONG_PLUGINSERVER_NAMES=kong-waf
KONG_PLUGINSERVER_KONG_WAF_QUERY_CMD="/usr/local/bin/kong-waf -dump"
Le plugin se configure ensuite dynamiquement via l'Admin API avec des directives SecLang/CRS.
Appliquer la configuration
Poussez la config déclarative vers votre control plane avec decK, qui valide et synchronise l'état complet :
# Valider d'abord le fichier
deck gateway validate kong.yaml
# Le synchroniser vers Kong (Admin API ou control plane Konnect)
deck gateway sync kong.yaml
Vous pouvez aussi activer chaque plugin de façon impérative via l'Admin API ou l'interface Konnect. Confirmez que les plugins sont actifs sur votre Service ou votre Route :
curl -s http://localhost:8001/plugins | \
grep -o '"name":"[^"]*"'
Tester les protections
Avec Injection Protection basculé sur enforcement_mode: block, envoyez des charges utiles d'attaque connues et confirmez que chaque plugin les rejette :
# Injection SQL dans la chaîne de requête (Injection Protection, 400)
curl -i 'http://localhost:8000/api?id=1%20OR%201=1'
# Injection SQL dans un corps JSON (Injection Protection, 400)
curl -i -X POST http://localhost:8000/api \
-H 'Content-Type: application/json' \
-d '{"id":"1 OR 1=1"}'
# User agent de bot refusé (Bot Detection, 403)
curl -i -A 'python-requests/2.31' http://localhost:8000/api
# Corps surdimensionné (Request Size Limiting, 413)
head -c 20000000 /dev/zero | \
curl -i -X POST --data-binary @- http://localhost:8000/api
# Flood au-delà de la limite (Rate Limiting, 429)
for i in $(seq 1 200); do \
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:8000/api; done
# Une requête normale (devrait renvoyer 200)
curl -i 'http://localhost:8000/api?id=42'
Régler et passer de la journalisation au blocage
Exécutez les plugins d'inspection réglables en mode journalisation seule pendant une à deux semaines et examinez les journaux de Kong pour repérer les requêtes légitimes qui auraient été rejetées. Injection Protection émet une ligne de journal structurée nommant le type de menace, l'action et l'emplacement pour chaque correspondance, c'est là que vous identifiez les faux positifs.
Réglez en restreignant les locations qu'Injection Protection inspecte, en assouplissant une limite max_* précise dans les plugins de protection contre les menaces, ou en affinant le body_schema de Request Validator afin que le trafic réel valide. Une fois les journaux propres, basculez enforcement_mode (Injection Protection) et enforce_mode (JSON Threat Protection) sur block et resynchronisez avec decK. XML Threat Protection n'a pas de mode journalisation seule et bloque déjà à la moindre violation, il n'y a donc rien à basculer là ; confirmez simplement que ses limites max_* correspondent à votre trafic XML réel avant sa mise en service.
# Après réglage, appliquer le blocage
deck gateway sync kong.yaml
# Surveiller les nouveaux faux positifs dans les journaux
kubectl logs -f deploy/kong-gateway # ou logs docker/systemd
Conclusion et étapes suivantes
Kong Gateway dispose désormais d'une protection en couches, centrée sur l'API : des plugins open source pour le contrôle des IP, la limitation de débit, les limites de taille et le filtrage des bots, plus les plugins Enterprise de protection contre les menaces pour l'injection et les attaques par charge utile, ainsi que la validation positive par schéma là où vous pouvez vous permettre de maintenir des schémas. Soyez honnête avec les parties prenantes sur la frontière : il s'agit d'une composition de plugins de sécurité, pas de l'OWASP Core Rule Set, et cela ne protège que le trafic qui transite par Kong.
Prochaines étapes :
- Gardez les plugins d'inspection réglables en mode journalisation seule jusqu'à ce que les journaux soient propres, puis passez au blocage (XML Threat Protection bloque toujours, validez donc ses limites en amont)
- Exportez les journaux et métriques de Kong vers votre SIEM pour que les décisions des plugins et les compteurs de limitation de débit soient visibles
- Gérez toute la config des plugins sous forme de fichiers déclaratifs decK dans le gestionnaire de versions et en CI
- Si vous avez besoin d'une couverture CRS, placez un WAF cloud en frontal d'une Dedicated Cloud Gateway ou évaluez un plugin Coraza communautaire, et épinglez la version du CRS
- Envisagez des moteurs WAF tiers dotés de plugins Kong natifs (open-appsec, Wallarm) si la détection par signatures ou par ML compte plus que l'approche par plugins
- Rejouez la suite d'attaques complète après chaque montée de version de Kong, car les valeurs par défaut et les champs des plugins peuvent changer d'une version à l'autre
Dépannage
Kong se synchronise mais aucune attaque n'est bloquée
Vérifiez que les plugins d'inspection réglables sont en mode d'application, pas en journalisation. Injection Protection utilise enforcement_mode: block et JSON Threat Protection utilise enforce_mode: block. En mode journalisation seule, Kong enregistre la correspondance mais met la requête en proxy. XML Threat Protection n'a pas de mode d'application et bloque toujours à la violation d'une limite, donc si des attaques XML passent, le problème vient de votre configuration de limites, pas d'un réglage de mode. Confirmez aussi que le plugin est attaché au Service ou à la Route que le trafic atteint réellement, pas à une entité inutilisée.
Les attaques par chaîne de requête sont bloquées mais pas celles par le corps
Injection Protection n'inspecte que les locations que vous listez. Si locations reste à sa valeur par défaut path_and_query, les corps de requête ne sont jamais scannés. Ajoutez body (et headers si nécessaire) au tableau locations pour que les charges utiles POST et JSON soient inspectées.
Des requêtes légitimes sont rejetées avec un 400 après l'activation de la protection contre les menaces
Il s'agit généralement d'une limite max_* de JSON Threat Protection plus stricte que votre trafic réel, par exemple max_container_depth ou max_string_value_length. Pour JSON Threat Protection, revenez à enforce_mode: log_only, échantillonnez des charges utiles réelles, relevez la limite précise qui déclenche le rejet, puis réappliquez le blocage. XML Threat Protection n'a pas de mode journalisation seule, relevez donc directement la limite XML fautive et resynchronisez. Le même réglage s'applique à un body_schema trop strict dans Request Validator.
Le plugin Injection Protection ou Request Validator refuse de s'activer
Ce sont des plugins Kong Enterprise / Konnect, et Injection Protection exige en plus Kong Gateway 3.9+. Sur Kong open source, ou sur une version Enterprise plus ancienne, l'Admin API renvoie une erreur « plugin not found » ou de licence. Vérifiez votre abonnement et votre version de Kong, ou repliez-vous sur les plugins open source (Bot Detection, IP Restriction, Rate Limiting, Request Size Limiting) plus un plugin Coraza communautaire pour une inspection plus poussée.
Les comptes de limitation de débit sont faux sur plusieurs nœuds
Avec Rate Limiting Advanced réglé sur strategy: local, chaque nœud compte indépendamment, un client peut donc dépasser la limite en frappant différents data planes. Utilisez strategy: redis avec un bloc config.redis (host et port au minimum) et un sync_rate adapté pour que les compteurs soient partagés sur toute la flotte ; cela fonctionne dans les déploiements hybrides, DB-less et Konnect. La stratégie cluster partage aussi les compteurs mais n'est prise en charge qu'en mode traditionnel (adossé à une base), elle est donc indisponible en hybride, DB-less et Konnect : utilisez redis pour ces topologies.
Les attaquants atteignent la passerelle directement et contournent le WAF frontal
Sur une Dedicated Cloud Gateway publique, le nom DNS d'origine est joignable tant que vous n'imposez pas la validation d'origine. Exigez l'en-tête injecté par le CDN (par exemple X-Origin-Verify) et rejetez les requêtes qui en sont dépourvues à l'aide de Request Termination ou d'une correspondance de Route, et mettez les plages de sortie du CDN en liste d'autorisation avec le plugin IP Restriction. Stockez et faites tourner le secret partagé dans un Vault.
Les bots et scanners passent encore à travers Bot Detection
Le plugin Bot Detection ne confronte que l'en-tête User-Agent à des regex. Les attaquants qui envoient un UA de navigateur ne sont pas attrapés. Ajoutez des motifs deny personnalisés pour les signatures que vous voyez réellement dans les journaux, et appuyez-vous sur la limitation de débit et l'inspection d'injection pour le comportement qu'un UA usurpé ne peut masquer.
Latence ou CPU élevés après l'activation de nombreux plugins
Chaque plugin activé s'exécute dans le chemin de requête au sein du worker Kong. Les plugins qui inspectent le corps (Injection Protection, JSON/XML Threat Protection) bufferisent et scannent les charges utiles, ce qui est le travail le plus coûteux. Limitez les locations au strict nécessaire, plafonnez les tailles de corps avec Request Size Limiting pour que les charges utiles énormes soient rejetées avant l'inspection en profondeur, et cantonnez les plugins lourds aux Routes qui en ont besoin plutôt que globalement.
Questions fréquentes
Kong Gateway possède-t-il un plugin WAF intégré comme ModSecurity ou Coraza ?
Pas au sens du CRS. Kong open source n'embarque ni moteur ModSecurity ni moteur Coraza et n'exécute pas l'OWASP Core Rule Set. L'approche WAF documentée par Kong consiste à composer des plugins de sécurité, tels qu'Injection Protection, JSON/XML Threat Protection, Bot Detection, IP Restriction et Rate Limiting, en une porte d'entrée pour vos API. Pour une véritable couverture CRS, vous placez soit un WAF cloud en frontal de la passerelle, soit un plugin Coraza communautaire.
Quels plugins WAF de Kong sont gratuits et lesquels exigent Enterprise ?
Bot Detection, IP Restriction, Rate Limiting et Request Size Limiting sont fournis avec Kong open source. Injection Protection (Kong 3.9+), JSON Threat Protection (Kong 3.8+), XML Threat Protection (Kong 3.1+), Request Validator et Rate Limiting Advanced sont des plugins Kong Enterprise / Konnect. Confirmez toujours la disponibilité d'un plugin et la version minimale de Kong contre votre abonnement précis, car les paliers et les exigences de version peuvent changer d'une version à l'autre.
Puis-je exécuter l'OWASP Core Rule Set avec Kong Gateway ?
Pas avec les plugins propres à Kong. Deux voies vous donnent le CRS : placer un CDN et un WAF cloud (par exemple les règles managées AWS WAF sur CloudFront) en frontal d'une Dedicated Cloud Gateway publique et valider le trafic d'origine, ou embarquer le moteur OWASP Coraza et le CRS v4 dans un Kong auto-hébergé via un plugin server communautaire. La voie communautaire est non officielle et non supportée par Kong, épinglez donc la version du CRS et testez-la contre votre version de Kong.
Comment protéger une Kong Dedicated Cloud Gateway avec un WAF ?
Une Dedicated Cloud Gateway publique expose un nom d'hôte DNS, vous placez donc en frontal un CDN qui prend en charge les origines DNS (comme CloudFront) et attachez un WAF cloud à la distribution. Pour empêcher les attaquants de contourner le CDN, configurez la validation d'origine : le CDN injecte un en-tête à secret partagé comme X-Origin-Verify, et Kong rejette les requêtes qui en sont dépourvues à l'aide de Request Termination ou d'une correspondance de Route, plus IP Restriction qui met en liste d'autorisation les plages de sortie du CDN.
En quoi l'Injection Protection de Kong diffère-t-il d'un vrai moteur WAF ?
Injection Protection fournit une correspondance par regex pour les classes d'injection courantes (SQL, JS, SSI, XPath et d'autres) à travers des emplacements de requête configurables. C'est de la détection de style signature, mais c'est un jeu de motifs intégré et figé, pas l'OWASP Core Rule Set réglable et maintenu par la communauté, avec ses niveaux de paranoïa et son scoring d'anomalie. Il est efficace contre les charges utiles courantes et constitue une bonne défense de couche applicative, mais il est plus étroit qu'un déploiement CRS complet. Notez que c'est un plugin Enterprise / Konnect exigeant Kong Gateway 3.9+.
Les plugins WAF de Kong ajoutent-ils de la latence ?
Les plugins de Kong s'exécutent au sein du processus, dans le même worker qui gère le routage et l'authentification, il n'y a donc pas de saut de proxy supplémentaire, ce qui est le principal avantage de Kong par rapport à un boîtier WAF distinct. Le coût vient des plugins qui inspectent le corps et bufferisent puis scannent les charges utiles. Limitez les emplacements inspectés, plafonnez les tailles de corps avec Request Size Limiting avant l'inspection en profondeur, et cantonnez les plugins lourds aux Routes qui en ont besoin pour garder une faible surcharge.
Devrais-je utiliser les plugins de Kong ou un moteur WAF tiers ?
Utilisez les plugins de Kong quand votre modèle de menace est centré sur l'API et que vous voulez gérer la sécurité aux côtés du routage et de l'authentification, sans infrastructure supplémentaire. Envisagez un moteur tiers doté d'un plugin Kong natif, tel qu'open-appsec (piloté par ML) ou Wallarm (sécurité des API), quand vous avez besoin d'une détection par signatures ou par machine learning au-delà de ce qu'offrent les plugins intégrés. Pour le CRS spécifiquement, la voie est un WAF cloud en frontal ou un plugin Coraza communautaire.
Guides associés
Guide des bonnes pratiques de sécurité WAF
Bonnes pratiques essentielles pour configurer et maintenir votre pare-feu applicatif web pour une sécurité optimale.
Comment installer et configurer ModSecurity avec NGINX
Guide complet pour déployer ModSecurity 3.x avec NGINX afin d'obtenir une protection WAF gratuite et open source, basée sur l'OWASP Core Rule Set.