Cara Mencegah Kebocoran Data Sensitif di API Gateway

Wei Liu

March 3, 2023

Technology

Mengapa Kita Perlu Melindungi Data Sensitif

Data sensitif, juga dikenal sebagai data rahasia, terutama merujuk pada data yang dapat menyebabkan komplikasi besar bagi bisnis, pemerintah, dan individu ketika bocor, termasuk tetapi tidak terbatas pada data operasi bisnis, informasi identitas pribadi, dll.

Bagi perusahaan, data sensitif terkait langsung dengan keamanan informasi perusahaan. Misalnya, kebocoran informasi sensitif seperti kunci dan sertifikat dapat memiliki efek yang merusak pada reputasi organisasi, kerugian finansial, dan bahkan dapat mengakibatkan tanggung jawab hukum.

Bagi individu, kebocoran data sensitif dapat mengungkapkan segala hal mulai dari nomor jaminan sosial hingga informasi perbankan, pencurian identitas Anda dapat mengganggu Anda dengan iklan, merusak kredit Anda, menjebak Anda dengan masalah hukum, dan terlibat dalam segala jenis penipuan atas nama Anda.

Jenis Data Sensitif Apa yang Ada di API Gateway

Sebagai pintu masuk lalu lintas bisnis, API gateway sering kali mengandung banyak data sensitif, seperti kunci API, token yang digunakan untuk autentikasi, dll. Oleh karena itu, meningkatkan keamanan dan mencegah kebocoran data sensitif juga merupakan aspek penting dari API gateway selain fitur dasar seperti load balancing dan pengarahan lalu lintas.

Data Sensitif

Bagaimana API Gateway Melindungi Data Sensitif

Gagasan umumnya adalah sebagai berikut:

  1. Menempatkan data sensitif di area yang dilindungi dan mengontrol hak akses secara ketat

  2. Meningkatkan sistem kontrol risiko untuk mengelola risiko perilaku abnormal dan kepatuhan bisnis

  3. Mendesensitisasi atau mengenkripsi data sensitif

Selanjutnya, kita akan mengambil Apache APISIX sebagai contoh untuk menunjukkan bagaimana melindungi data sensitif di API Gateway.

Praktik Apache APISIX dalam Melindungi Data Pribadi

Apache APISIX adalah proyek open-source dari Apache Software Foundation dan saat ini merupakan proyek gateway open-source yang paling aktif. Sebagai API gateway open-source yang sepenuhnya dinamis, real-time, dan berkinerja tinggi, Apache APISIX menyediakan fitur manajemen lalu lintas yang kaya seperti load balancing, upstream dinamis, rilis canary, pemutusan sirkuit, autentikasi, observabilitas, dll.

Selain itu, pengguna dapat menyesuaikan fungsi Apache APISIX dengan menulis plugin mereka sendiri. Berkat komunitas yang aktif dan peningkatan jumlah pengembang, jumlah plugin Apache APISIX terus bertambah setiap hari, beberapa di antaranya membawa informasi sensitif, seperti konfigurasi plugin jwt-auth secret dan private_key. Kita perlu menggunakan penyimpanan terenkripsi untuk mencegah data ini diperoleh secara ilegal.

Untuk meningkatkan keamanan APISIX dan lebih melindungi privasi pengguna, APISIX memperkenalkan fungsi Global Data Encryption pada versi 3.1.0. Ketika pengembang mengembangkan plugin baru dengan fungsi ini, pengembang hanya perlu menentukan data yang akan dienkripsi dalam skema, kemudian APISIX akan secara otomatis mengenkripsi dan menyimpannya saat menulis ke control plane, dan secara otomatis mendekripsinya saat data plane membacanya.

Global Data Encryption

Mari kita lihat contoh konkretnya.

Ketika Enkripsi Data Tidak Diaktifkan

  1. Mengirim konfigurasi
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. Keadaan data sensitif di etcd
etcdctl get /apisix/consumers/foo {"username":"foo","update_time":1675414313,"create_time":1674009211,"plugins":{"basic-auth":{"username":"foo","password":"bar"}} }

Kita dapat melihat bahwa bidang password disimpan dalam teks biasa, dan dapat dengan mudah disusupi

Ketika Enkripsi Data Diaktifkan

  1. Mengaktifkan data_encryption di config.yaml:
apisix: data_encryption: enable: true keyring: -edd1c9f0985e76a2
  1. Mengaktifkan plugin yang mendukung enkripsi data, di sini kita menggunakan basic-auth sebagai contoh
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. Menguji plugin
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 } } }'

Akses berhasil

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

Akses gagal, kata sandi salah

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

Plugin berfungsi dengan baik

  1. Keadaan data sensitif di etcd
etcdctl get /apisix/consumers/foo {"create_time":1674009211,"update_time":1674009211,"plugins":{"basic-auth":{"password":"+kOEVUuRc5rC5ZwvvAMLwg=","username":"foo"}},"username": "foo"}

Kita dapat melihat bahwa bidang password telah berhasil dienkripsi, bahkan jika data bocor, peretas tidak dapat menggunakannya.

Ringkasan

API gateway mengandung banyak data sensitif, sehingga perlu mengambil langkah-langkah efektif untuk melindungi data tersebut. Artikel ini menggunakan APISIX sebagai contoh untuk memperkenalkan cara melindungi data sensitif dengan fungsi Global Data Encryption untuk memastikan bahwa tidak ada data sensitif yang disimpan dalam teks biasa, sehingga bahkan jika semua data yang disimpan di etcd bocor, tidak akan menyebabkan kebocoran data sensitif, sehingga secara efektif meningkatkan keamanan APISIX.

Pada saat yang sama, selain mengenkripsi data sensitif, APISIX juga mendukung menempatkan informasi sensitif langsung ke layanan pihak ketiga, yaitu Secret Manager, yang lebih meningkatkan keamanan.

Saya harap artikel ini membantu Anda untuk lebih memahami cara melindungi data sensitif di API gateway dan memastikan keamanan informasi dalam bisnis.

Tags: