Wie man sensible Daten in API Gateway vor dem Auslaufen schützt

Wei Liu

March 3, 2023

Technology

Warum müssen wir sensible Daten schützen?

Sensible Daten, auch als vertrauliche Daten bekannt, beziehen sich hauptsächlich auf Daten, die bei einem Leck erhebliche Komplikationen für Unternehmen, Regierungen und Einzelpersonen verursachen können. Dazu gehören, sind aber nicht beschränkt auf Betriebsdaten von Unternehmen, persönliche Identifikationsinformationen usw.

Für Unternehmen sind sensible Daten direkt mit der Informationssicherheit verbunden. Beispielsweise kann das Lecken sensibler Informationen wie Schlüssel und Zertifikate verheerende Auswirkungen auf den Ruf eines Unternehmens haben, finanzielle Verluste verursachen und sogar zu rechtlichen Konsequenzen führen.

Für Einzelpersonen können sensible Datenlecks alles von Sozialversicherungsnummern bis hin zu Bankinformationen preisgeben. Der Diebstahl Ihrer Identität kann Sie mit Werbung belästigen, Ihre Kreditwürdigkeit ruinieren, Sie mit rechtlichen Problemen konfrontieren und alle Arten von Betrug unter Ihrem Namen ermöglichen.

Welche Art von sensiblen Daten befindet sich im API-Gateway?

Als Eingangspunkt für den Geschäftsverkehr enthält das API-Gateway oft eine große Menge sensibler Daten, wie z.B. API-Schlüssel, Token zur Authentifizierung usw. Daher ist die Verbesserung der Sicherheit und die Verhinderung von Datenlecks ein kritischer Aspekt des API-Gateways, zusätzlich zu den grundlegenden Funktionen wie Lastenausgleich und Verkehrslenkung.

Sensible Daten

Wie schützt das API-Gateway sensible Daten?

Die allgemeine Idee ist wie folgt:

  1. Sensible Daten in einem geschützten Bereich speichern und Zugriffsrechte streng kontrollieren

  2. Das Risikomanagementsystem verbessern, um das Risiko von anomalem Verhalten und die Geschäftscompliance zu verwalten

  3. Sensible Daten desensibilisieren oder verschlüsseln

Im Folgenden werden wir Apache APISIX als Beispiel nehmen, um zu zeigen, wie man sensible Daten im API-Gateway schützt.

Die Praxis von Apache APISIX beim Schutz privater Daten

Apache APISIX ist ein Open-Source-Projekt der Apache Software Foundation und derzeit das aktivste Open-Source-Gateway-Projekt. Als vollständig dynamisches, Echtzeit-, Hochleistungs-Open-Source-API-Gateway bietet Apache APISIX umfangreiche Verkehrsmanagementfunktionen wie Lastenausgleich, dynamisches Upstream, Canary-Release, Circuit Breaking, Authentifizierung, Beobachtbarkeit usw.

Darüber hinaus können Benutzer die Funktionen von Apache APISIX durch das Schreiben eigener Plugins anpassen. Dank der aktiven Community und der wachsenden Anzahl von Entwicklern wächst die Anzahl der Apache APISIX-Plugins täglich, von denen einige sensible Informationen enthalten, wie z.B. die secret- und private_key-Konfigurationen des jwt-auth Plugins. Wir müssen diese Daten verschlüsselt speichern, um zu verhindern, dass sie illegal erlangt werden.

Um die Sicherheit von APISIX zu erhöhen und die Privatsphäre der Benutzer besser zu schützen, hat APISIX in Version 3.1.0 die Funktion Global Data Encryption eingeführt. Wenn Entwickler neue Plugins mit dieser Funktion entwickeln, müssen sie nur die zu verschlüsselnden Daten im Schema angeben. APISIX verschlüsselt und speichert sie dann automatisch, wenn sie in die Steuerungsebene geschrieben werden, und entschlüsselt sie automatisch, wenn die Datenebene sie liest.

Globale Datenverschlüsselung

Schauen wir uns ein konkretes Beispiel an.

Wenn die Datenverschlüsselung nicht aktiviert ist

  1. Konfiguration senden
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
     "username": "foo",
     "plugins": {
         "basic-auth": {
             "username": "foo",
             "password": "bar"
         }
     }
}'
  1. Der Zustand sensibler Daten in etcd
etcdctl get /apisix/consumers/foo
{"username":"foo","update_time":1675414313,"create_time":1674009211,"plugins":{"basic-auth":{"username":"foo","password":"bar"}} }

Wir können sehen, dass das password-Feld im Klartext gespeichert ist und leicht kompromittiert werden kann

Wenn die Datenverschlüsselung aktiviert ist

  1. Aktivieren Sie data_encryption in config.yaml:
apisix:
     data_encryption:
     enable: true
     keyring:
         -edd1c9f0985e76a2
  1. Aktivieren Sie Plugins, die Datenverschlüsselung unterstützen, hier verwenden wir basic-auth als Beispiel
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
     "username": "foo",
     "plugins": {
         "basic-auth": {
             "username": "foo",
             "password": "bar"
         }
     }
}'
  1. Testen des Plugins
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
     "methods": ["GET"],
     "uri": "/get",
     "plugins": {
         "basic-auth": {}
     },
     "upstream": {
         "type": "roundrobin",
         "nodes": {
             "httpbin.org": 1
         }
     }
}'

Erfolgreicher Zugriff

curl -i -ufoo:bar http://127.0.0.1:9080/get
HTTP/1.1 200 OK
...

Fehlgeschlagener Zugriff, falsches Passwort

curl -i -ufoo:test http://127.0.0.1:9080/get
HTTP/1.1 401 Unauthorized
...
{"message":"Invalid user authorization"}

Das Plugin funktioniert einwandfrei

  1. Der Zustand sensibler Daten in etcd
etcdctl get /apisix/consumers/foo
{"create_time":1674009211,"update_time":1674009211,"plugins":{"basic-auth":{"password":"+kOEVUuRc5rC5ZwvvAMLwg=","username":"foo"}},"username": "foo"}

Wir können sehen, dass das password-Feld erfolgreich verschlüsselt wurde, selbst wenn die Daten geleakt werden, können Hacker sie nicht verwenden.

Zusammenfassung

Das API-Gateway enthält viele sensible Daten, daher ist es notwendig, wirksame Maßnahmen zum Schutz der Daten zu ergreifen. Dieser Artikel verwendet APISIX als Beispiel, um zu zeigen, wie man sensible Daten mit der Funktion Global Data Encryption schützt, um sicherzustellen, dass keine sensiblen Daten im Klartext gespeichert werden. Selbst wenn alle in etcd gespeicherten Daten kompromittiert werden, führt dies nicht zu einem Datenleck, was die Sicherheit von APISIX effektiv verbessert.

Gleichzeitig unterstützt APISIX neben der Verschlüsselung sensibler Daten auch die direkte Speicherung sensibler Informationen in Drittanbieterdiensten, nämlich Secret Manager, was die Sicherheit weiter verbessert.

Ich hoffe, dieser Artikel hilft Ihnen, mehr darüber zu erfahren, wie Sie sensible Daten im API-Gateway schützen und die Informationssicherheit in Unternehmen gewährleisten können.

Tags: