كيفية منع تسرب البيانات الحساسة في API Gateway

Wei Liu

March 3, 2023

Technology

لماذا نحتاج إلى حماية البيانات الحساسة

البيانات الحساسة، والمعروفة أيضًا باسم البيانات السرية، تشير بشكل رئيسي إلى البيانات التي قد تسبب مشاكل كبيرة للأعمال التجارية والحكومات والأفراد عند تسريبها، بما في ذلك على سبيل المثال لا الحصر بيانات تشغيل الأعمال، ومعلومات الهوية الشخصية، وغيرها.

بالنسبة للشركات، ترتبط البيانات الحساسة مباشرة بأمن المعلومات الخاص بها. على سبيل المثال، تسريب معلومات حساسة مثل المفاتيح والشهادات يمكن أن يكون له تأثير مدمر على سمعة المنظمة، وخسائر مالية، وقد يؤدي حتى إلى مسؤولية قانونية.

بالنسبة للأفراد، يمكن أن يؤدي تسريب البيانات الحساسة إلى الكشف عن كل شيء من أرقام الضمان الاجتماعي إلى معلومات البنوك، وسرقة هويتك يمكن أن تزعجك بالإعلانات، وتدمر ائتمانك، وتسبب لك مشاكل قانونية، وتنخرط في جميع أنواع الاحتيال باسمك.

ما نوع البيانات الحساسة الموجودة في بوابة API

كمدخل لحركة المرور التجارية، تحتوي بوابة API غالبًا على كمية كبيرة من البيانات الحساسة، مثل مفاتيح API، والرموز المستخدمة للمصادقة، وغيرها. لذلك، تحسين الأمان ومنع تسريب البيانات الحساسة هو أيضًا جانب حاسم في بوابة API بالإضافة إلى ميزات موازنة الحمل الأساسية وتوجيه حركة المرور.

البيانات الحساسة

كيف تحمي بوابة API البيانات الحساسة

الفكرة العامة هي كما يلي:

  1. وضع البيانات الحساسة في منطقة محمية والتحكم الصارم في صلاحيات الوصول

  2. تحسين نظام إدارة المخاطر للتعامل مع مخاطر السلوك غير الطبيعي والامتثال التجاري

  3. إزالة الحساسية أو تشفير البيانات الحساسة

فيما يلي، سنأخذ Apache APISIX كمثال لشرح كيفية حماية البيانات الحساسة في بوابة API.

ممارسات Apache APISIX في حماية البيانات الخاصة

Apache APISIX هو مشروع مفتوح المصدر من مؤسسة Apache Software Foundation وهو حاليًا أكثر مشاريع البوابات المفتوحة نشاطًا. كبوابة API مفتوحة المصدر ديناميكية بالكامل، في الوقت الحقيقي، وعالية الأداء، توفر Apache APISIX ميزات غنية لإدارة حركة المرور مثل موازنة الحمل، المصدر الديناميكي، الإصدار التجريبي، كسر الدائرة، المصادقة، المراقبة، وغيرها.

بالإضافة إلى ذلك، يمكن للمستخدمين تخصيص وظائف Apache APISIX من خلال كتابة الإضافات الخاصة بهم. بفضل المجتمع النشط والمطورين المتزايدين، يزداد عدد إضافات Apache APISIX كل يوم، بعضها يحمل معلومات حساسة، مثل إضافة jwt-auth التي تحتوي على تكوينات secret و private_key. نحتاج إلى استخدام التخزين المشفر لمنع هذه البيانات من الحصول عليها بشكل غير قانوني.

لتعزيز أمان APISIX وحماية خصوصية المستخدمين بشكل أفضل، قدمت APISIX وظيفة Global Data Encryption في الإصدار 3.1.0. عند تطوير إضافات جديدة باستخدام هذه الوظيفة، يحتاج المطورون فقط إلى تحديد البيانات التي يجب تشفيرها في المخطط، ثم تقوم APISIX تلقائيًا بتشفيرها وتخزينها عند الكتابة في مستوى التحكم، وفك تشفيرها تلقائيًا عند قراءتها في مستوى البيانات.

التشفير العالمي للبيانات

لنلقي نظرة على مثال ملموس.

عندما لا يتم تمكين تشفير البيانات

  1. إرسال التكوين
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. حالة البيانات الحساسة في etcd
etcdctl get /apisix/consumers/foo
{"username":"foo","update_time":1675414313,"create_time":1674009211,"plugins":{"basic-auth":{"username":"foo","password":"bar"}} }

يمكننا أن نرى أن حقل password مخزن كنص عادي، ويمكن اختراقه بسهولة

عندما يتم تمكين تشفير البيانات

  1. تمكين data_encryption في config.yaml:
apisix:
     data_encryption:
     enable: true
     keyring:
         -edd1c9f0985e76a2
  1. تمكين الإضافات التي تدعم تشفير البيانات، هنا نستخدم basic-auth كمثال
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. اختبار الإضافة
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
         }
     }
}'

الوصول بنجاح

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

الوصول فشل، خطأ في كلمة المرور

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

الإضافة تعمل بشكل صحيح

  1. حالة البيانات الحساسة في etcd
etcdctl get /apisix/consumers/foo
{"create_time":1674009211,"update_time":1674009211,"plugins":{"basic-auth":{"password":"+kOEVUuRc5rC5ZwvvAMLwg=","username":"foo"}},"username": "foo"}

يمكننا أن نرى أن حقل password تم تشفيره بنجاح، حتى إذا تم تسريب البيانات، لا يمكن للقراصنة استخدامها.

الخلاصة

تحتوي بوابة API على الكثير من البيانات الحساسة، لذلك من الضروري اتخاذ إجراءات فعالة لحماية البيانات. تستخدم هذه المقالة APISIX كمثال لتقديم كيفية حماية البيانات الحساسة باستخدام وظيفة Global Data Encryption لضمان عدم تخزين أي بيانات حساسة كنص عادي، بحيث حتى إذا تم اختراق جميع البيانات المخزنة في etcd، لن يؤدي ذلك إلى تسريب البيانات الحساسة، مما يعزز بشكل فعال أمان APISIX.

في الوقت نفسه، بالإضافة إلى تشفير البيانات الحساسة، تدعم APISIX أيضًا وضع المعلومات الحساسة مباشرة في خدمات الطرف الثالث، وهي Secret Manager، مما يعزز الأمان بشكل أكبر.

نأمل أن تساعدك هذه المقالة على التعرف أكثر على كيفية حماية البيانات الحساسة في بوابة API وضمان أمان المعلومات في الأعمال.

Tags: