Wie man sensible Daten in API Gateway vor dem Auslaufen schützt
Wei Liu
March 3, 2023
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.
Wie schützt das API-Gateway sensible Daten?
Die allgemeine Idee ist wie folgt:
-
Sensible Daten in einem geschützten Bereich speichern und Zugriffsrechte streng kontrollieren
-
Das Risikomanagementsystem verbessern, um das Risiko von anomalem Verhalten und die Geschäftscompliance zu verwalten
-
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.
Schauen wir uns ein konkretes Beispiel an.
Wenn die Datenverschlüsselung nicht aktiviert ist
- 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"
}
}
}'
- 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
- Aktivieren Sie
data_encryption
inconfig.yaml
:
apisix:
data_encryption:
enable: true
keyring:
-edd1c9f0985e76a2
- 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"
}
}
}'
- 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
- 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.