Protéger vos API dans la nature : Une plongée approfondie dans l'intégration de WAF et API Gateway

January 30, 2024

Ecosystem

À l'ère numérique d'aujourd'hui, les API sont devenues une partie intégrante de notre vie quotidienne. Elles nous permettent d'accéder et d'échanger des données entre différentes applications et services. Cependant, avec l'augmentation du nombre de points de terminaison d'API exposés au public, le risque de cyberattaques et de violations de données ne cesse de croître. C'est pourquoi il est crucial de mettre en place des mesures de sécurité robustes pour protéger vos API contre les attaques malveillantes.

Avantages de l'intégration d'un WAF et d'une API Gateway pour la protection des API

Les technologies de pare-feu d'application web (WAF) et de passerelle API (API Gateway) sont deux des moyens les plus efficaces pour sécuriser les API contre les attaques. Un WAF est une solution de sécurité qui se situe entre Internet et votre serveur API, analysant les requêtes entrantes et bloquant tout trafic malveillant. D'autre part, une API Gateway est une couche middleware qui se situe entre votre serveur API et le client, gérant le contrôle d'accès, le routage du trafic et la limitation du débit.

Apache APISIX, une passerelle API open-source populaire, offre un ensemble robuste de plugins de sécurité intégrés. Cependant, face à des attaques de plus en plus sophistiquées comme les CVEs (Common Vulnerabilities and Exposures) et les exploits zero-day, s'appuyer uniquement sur ces plugins peut laisser vos API vulnérables. L'intégration d'un pare-feu d'application web (WAF) professionnel avec APISIX fournit une stratégie de défense à plusieurs niveaux, garantissant une protection complète contre les menaces modernes.

Comprendre les capacités de sécurité d'APISIX

  1. Authentification et Autorisation : APISIX prend en charge les plugins pour JWT, basic auth, key auth, et l'intégration avec les fournisseurs OpenID Connect, renforçant le contrôle d'accès.

  2. Limitation du débit : Empêche les pics de trafic malveillants et les attaques DoS grâce à des plugins comme limit-conn, limit-req, et limit-count.

  3. Restriction d'IP et Filtrage des User-Agent : Permet un contrôle granulaire des requêtes entrantes basé sur les adresses IP et les agents utilisateurs.

  4. Protection contre les CSRF : Contre les attaques de type Cross-Site Request Forgery.

Limites de la passerelle API

  1. Détection basée sur les signatures : Les plugins d'APISIX reposent principalement sur des signatures d'attaques connues, les rendant inefficaces contre les exploits zero-day qui n'ont pas de modèles définis.

  2. Manque de mises à jour des règles : Les règles de sécurité évoluent constamment, nécessitant des experts en sécurité et des entreprises pour les maintenir.

  3. Portée limitée : Bien qu'APISIX protège la couche de passerelle, les WAF offrent une protection plus large à travers les couches applicatives.

Avantages de l'intégration WAF et API Gateway

  1. Détection proactive des menaces : Les WAF avancés utilisent l'apprentissage automatique et l'analyse comportementale pour détecter les trafics anormaux, même sans connaissance préalable des vulnérabilités.

  2. Mises à jour en temps réel des règles : Les WAF basés sur le cloud peuvent rapidement mettre à jour les règles pour répondre aux menaces émergentes, minimisant les fenêtres d'exposition.

  3. Protection applicative approfondie : Les WAF peuvent filtrer et bloquer les trafics malveillants au niveau applicatif, protégeant contre les attaques qui contournent les passerelles API.

  4. Conformité et respect des réglementations : Certaines industries exigent l'utilisation de WAF pour se conformer aux réglementations de sécurité des données.

Plongée en profondeur dans le processus d'intégration

Pour intégrer un WAF et une API Gateway, vous devez choisir les bons outils pour le travail. Apache APISIX est une solution de passerelle API populaire qui fournit une plateforme évolutive et flexible pour gérer vos API. Chaitin SafeLine et Coraza sont des solutions WAF qui offrent des fonctionnalités de sécurité avancées et des ensembles de règles personnalisables.

APISIX et Chaitin SafeLine

Le WAF Chaitin SafeLine est un plugin intégré d'APISIX 3.5. Une fois le plugin chaitin-waf activé, le trafic sera redirigé vers le service Chaitin WAF pour détecter et prévenir diverses attaques d'applications web, protégeant ainsi la sécurité des applications et des données utilisateurs.

WAF_APISIX_1

En supposant que vous avez installé Apache APISIX et SafeLine, la commande suivante permet d'intégrer les deux :

curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
  "nodes":[
     {
       "host": "192.168.99.11",
       "port": 8000
     }
  ]
}'

192.168.99.11 est l'adresse IP du service SafeLine. Ensuite, nous pouvons créer une route dans APISIX :

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
   "uri": "/*",
   "plugins": {
       "chaitin-waf": {}
    },
   "upstream": {
       "type": "roundrobin",
       "nodes": {
           "192.168.99.12:80": 1
       }
   }
}'

192.168.99.12 est l'adresse IP du service en amont. L'intégration est terminée.

Simulons maintenant une injection SQL pour voir l'effet :

curl http://127.0.0.1:9080 -d 'a=1 and 1=1'

Une erreur HTTP 403 est retournée, et comme on peut le voir dans le message d'erreur, Chaitin SafeLine a réussi à défendre contre l'attaque.

{"code":403,"success":false,"message":"blocked by Chaitin SafeLine Web Application Firewall","event_id":"18e0f220f7a94127acb21ad3c1b4ac47"}

APISIX et Coraza-proxy-wasm

APISIX prend en charge le développement de plugins avec WebAssembly (Wasm), et Coraza propose également des plugins Wasm comme option. Par conséquent, l'intégration de Coraza avec APISIX engendre des coûts relativement faibles.

Wasm peut être utilisé de manière multiplateforme, permettant à APISIX et Coraza de fonctionner sans modifications ou adaptations supplémentaires importantes. Cela élimine les modifications et adaptations de code étendues.

Coraza est également un plugin intégré d'Apache APISIX, qui peut être activé en modifiant le fichier de configuration conf/config-default.yaml :

wasm:
  plugins:
    - name: coraza-filter
      priority: 7999
      file: /home/ubuntu/coraza-proxy-wasm/build/main.wasm

Ensuite, créez une route dans APISIX avec les règles de Coraza :

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{
  "uri": "/anything",
  "plugins": {
    "coraza-filter": {
      "conf": {
        "directives_map": {
          "default": [
            "SecDebugLogLevel 9",
            "SecRuleEngine On",
            "SecRule REQUEST_URI \"@beginsWith /anything\" \"id:101,phase:1,t:lowercase,deny\""
          ]
        },
        "default_directives": "default"
      }
    }
  },
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "httpbin.org:80": 1
    }
  }
}'

Envoyons maintenant une requête pour voir l'effet :

curl http://localhost:9080/anything -v

Vérifiez les logs dans logs/error.log :

2023/08/31 09:20:39 [info] 126240#126240: *23933 Transaction interrupted tx_id="JVhHVfDuGjVbfgvDjik" context_id=2 action="deny" phase="http_request_headers", client: 127.0.0.1, server: _, request: "GET /anything HTTP/1.1", host: "localhost:9080"
2023/08/31 09:20:39 [debug] 126240#126240: *23933 Interruption already handled, sending downstream the local response tx_id="JVhHVfDuGjVbfgvDjik" context_id=2 interruption_handled_phase="http_request_headers"

Meilleures pratiques pour sécuriser les API avec l'intégration WAF et API Gateway

Pour assurer la sécurité de vos API, vous devriez suivre ces meilleures pratiques :

  1. Mettez en œuvre une stratégie de défense en profondeur incluant plusieurs couches de contrôles de sécurité ;

  2. Utilisez le chiffrement SSL/TLS pour sécuriser les données en transit ;

  3. Mettez à jour régulièrement vos ensembles de règles WAF pour qu'ils soient à jour avec les dernières menaces ;

  4. Surveillez votre trafic API et vos logs pour détecter et répondre rapidement aux incidents de sécurité.

Tendances futures et avancées en matière de sécurité et de protection des API

À mesure que le nombre d'API en usage augmente, il y aura un besoin accru de mesures de sécurité avancées pour les protéger. Certaines des tendances et avancées futures en matière de sécurité et de protection des API incluent :

  1. Des solutions de sécurité alimentées par l'IA capables de détecter et de répondre automatiquement aux menaces ;

  2. Des mécanismes d'authentification et de contrôle d'accès basés sur la blockchain ;

  3. Des architectures d'API basées sur des microservices offrant une plus grande flexibilité et évolutivité.

Résumé

En conclusion, l'intégration d'un WAF et d'une API Gateway est un composant essentiel de la sécurité des API. En suivant les meilleures pratiques et en déployant les bons outils, vous pouvez créer une couche de sécurité robuste qui protège vos API contre un large éventail d'attaques. Avec la bonne approche, vous pouvez garantir la disponibilité, l'intégrité et la confidentialité de vos API et des données qu'elles échangent.

Tags: