coordinated-disclosure · kibana · elasticsearch · data-exposure · defi · cloud-misconfiguration

كيبانا مفتوحة كشفت حزمة التداول الخاصة بـ native.org

أثناء بحث في استخبارات التهديدات، عثرت Kinryū Labs على نسخة Kibana بلا مصادقة تابعة لـ native.org كانت تكشف كامل بنية حزمة التداول لديها وتسجّل مفاتيح API نشطة كنص صريح. قيّدت native.org الوصول ودوّرت المفاتيح.

بقلم Davis Zheng·

CWE
CWE-306, CWE-532
Vendor
native.org
Product
Kibana 8.11.1 / Elasticsearch

إفصاح منسّق، أُبلغ بحسن نية ودون أي مكافأة أو مقابل. عالجت native.org المشكلة وأجازت نشر هذا المقال. عنوان المضيف المتأثر غير مُفصح عنه.

ملخص

  • 207نمط فهرسة مكشوف
  • 21مفتاح API نشط مُستعاد
  • 8,700+إدخال سجل كل 15 دقيقة

كانت نسخة Kibana تابعة لـ native.org تفهرس البنية التحتية للتداول في الشركة عبر بيئتي staging وUAT، بإجمالي 207 نمط فهرسة، وكانت بوابة API خلفها تسجّل مفاتيح API نشطة كنص صريح.

native.org منصّة سيولة في التمويل اللامركزي (DeFi). يحصل نظام RFQ على السلسلة (on-chain) لديها على عروض الأسعار من صنّاع سوق خاصّين ويقدّمها للمتداولين عبر سلاسل متعددة، ويُجرى التحوّط للتدفق الناتج في منصّات التداول المركزية. كانت النسخة المكشوفة جزءاً من بيئة UAT. أكّدت native.org أن أياً من المفاتيح المسرّبة لم يُستخدم في الإنتاج، وأضافت مصادقة إلى النسخة، ودوّرت المفاتيح.

نسخ Kibana المكشوفة شائعة. لكن أمرين هنا يستحقان مزيداً من الانتباه: ما الذي تتنازل عنه حزمة قابلية مراقبة (observability) مفتوحة، وكم كان الخطأ وراء تسريب المفاتيح عادياً.

النقاط الرئيسية

  • لم تتطلب النسخة أي مصادقة. كانت واجهة Kibana تُحمّل، وكل فهرس قابلاً للاستعلام، والكائنات المحفوظة قابلة للتعداد، كل ذلك بصفر بيانات اعتماد.
  • كانت أسماء الفهارس الـ207 خريطةً للعملية بأكملها: التسعير، والتحوّط، والمخاطر، والتصفية، والتسوية، والمراقبة على السلسلة، والتكامل مع منصّات التداول المركزية، والربط (peg) بين السلاسل، وضوابط الإيقاف الطارئ. كان بإمكانك قراءة البنية دون فتح مستند واحد.
  • كانت بوابة API تسجّل مفاتيح API الخام في مخرجاتها، التي كانت تتدفق إلى Elasticsearch. استعدنا 21 مفتاحاً من تدفق السجلات الحي. في ذلك الوقت، كان فهرس واحد يستقبل أكثر من 8,700 إدخال سجل كل 15 دقيقة، فكان النظام يعمل بوضوح.

ما تكشفه لوحة مفتوحة

يُفترض أن تكون أسماء الفهارس سباكةً تشغيلية، لا سطح هجوم. قائمة كاملة ومسمّاة بكل خدمة تُخبر المهاجم بالضبط كيف بُني النظام. في حالة native.org، وصفت الأسماء حزمة التداول من أولها إلى آخرها: quote-order-task وorder-manager لتدفق الأوامر، وpricer وquote-ticker للتسعير، وrisk-manager وliquidation-price-task للمخاطر، وtrade-hedger-task وhedge-signer للتحوّط، وcex-monitor وcex-position-monitor للتكامل مع منصّات التداول المركزية، وsettlement للمقاصّة، ومهام ربط ناعم (soft-peg) عبر عدة سلاسل، وemergency-stop-task وemergency-paused-task لمفاتيح الإيقاف.

لم يحتج أيٌّ من ذلك إلى مستند أو بيانات اعتماد. قائمة أسماء الفهارس وحدها هي مراجعة تصميم. لمن يخطط لهجوم، هذا يعني إنجاز معظم العمل التحضيري سلفاً.

يتجاوز التسريب البنية. الأسماء نفسها تتهجّى الاستراتيجية: فهارس للمراجحة، والتداول الزوجي، وتقدير أثر السوق، والربط بين السلاسل، تُخبر المنافس كيف تحاول الشركة جني المال، وهو في الغالب النصف الأثمن. ولم يكن العنقود يحوي بيانات تداول فحسب. بل ضمّ أيضاً قياسات الأمان الخاصة بالشركة نفسها: سجلات تدقيق المضيف والشبكة ونقاط النهاية، والتنبيهات المُعدّة لاصطياد متسلل. من يقرأ ذلك يرى ما يمكن للمدافعين رصده وما لا يمكنهم.

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

الأسماء نفسها لا غبار عليها. إنها من النوع الواضح والمعقول الذي يستخدمه أي فريق. ما أخطأ هو أن اللوحة التي تعيش فيها كانت مفتوحة لأي أحد.

المفاتيح في السجلات

كانت المشكلة الأكثر مباشرة في سجلات بوابة API. كانت دالة البحث عن المفاتيح في البوابة تسجّل كائن المفتاح الكامل عند كل عملية بحث ناجحة، وكانت أسطر السجل تلك تهبط في Elasticsearch كغيرها. فتح فهرس البوابة والتصفية بحسب تلك الدالة كان يُعيد تدفقاً من الإدخالات كهذا:

[refreshApiKey] auth.GetByApiKey success, apiKey:
{"id": 9, "api_key": "faa79a…362f1f", "name": "[redacted]", "rate_limit": 20}

بهذه الطريقة استعدنا 21 مفتاحاً مميّزاً. هذا أحد أكثر أخطاء التسجيل شيوعاً على الإطلاق: تسجيل الطلب أو كائن المصادقة بالكامل أثناء التنقيح، ثم نسيان أنه يذهب إلى مخزن يمكن لشخص آخر قراءته. فتُصبح بيانات الاعتماد والمكان الذي تحفظ فيه سجلاتك الشيء نفسه.

الأثر، بحجمه الحقيقي

كانت هذه بيئة UAT، وأكّدت native.org أن المفاتيح لم تُستخدم في الإنتاج. هذا مهم، ولن نزيّنه وكأنه نجاة بأعجوبة في طاولة تداول حيّة. لم يكن كذلك.

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

إثبات المفهوم (PoC)

كانت النسخة تستجيب لطلبات غير مُصادَق عليها على منفذ HTTP الخاص بها. تطلّب التأكيد ثلاث خطوات، لم تحتج أيٌّ منها إلى أداة أغرب من curl أو متصفح:

  • GET /api/status أعاد إصدار Kibana واسم العقدة دون بيانات اعتماد.
  • GET /api/saved_objects/_find?type=index-pattern&per_page=500 أعاد كل أنماط الفهرسة الـ207.
  • فتح فهرس البوابة في Discover والتصفية بحسب دالة البحث عن المفاتيح أظهر المفاتيح المسجّلة.

شهادة TLS على منفذ 443 للمضيف (CN=*.native.org، صادرة عن Cloudflare Origin CA) أكّدت أن النسخة تخصّ native.org.

الجدول الزمني للإفصاح

  • 2 يونيو 2026عثرنا على النسخة المكشوفة أثناء بحث في استخبارات التهديدات وأبلغنا native.org بها مع نقطة النهاية المتأثرة، وقائمة الفهارس، وعيّنة مُنقّحة من المفاتيح المسجّلة، وخطوات المعالجة.
  • 18 يونيو 2026أكّدت native.org التعرّض. أضافوا مصادقة إلى النسخة، ودوّروا المفاتيح المتأثرة، وأكّدوا أن النسخة والمفاتيح تعود إلى بيئة UAT دون مفاتيح إنتاج، وحدّدوا التنقيحات التي أرادوها للنشر.
  • 19 يونيو 2026نُشر بمشاركة native.org، مع تطبيق التنقيحات التي طلبوها.

استجابت native.org بسرعة، وأصلحت المشكلة، وعملت معنا على المقال. أبلغنا لأن التعرّض كان خطيراً وكان عليهم أن يعرفوا، لا مقابل أي شيء. هكذا يجب أن يعمل الإفصاح المنسّق.

للفرق التي تشغّل الحزمة نفسها

  • ضع Kibana وElasticsearch خلف مصادقة. فعّل xpack.security.enabled وأبقِ منفذ HTTP خارج الإنترنت العام. حزمة ELK بلا مصادقة هي قاعدة بيانات بواجهة ويب مفتوحة للعالم.
  • اعتبر مخزن سجلاتك قابلاً للقراءة من قِبل أي أحد يستطيع الوصول إليه. إذا أمكن لبيانات اعتماد أن تهبط في سطر سجل، فافترض أنها ستُقرأ.
  • لا تسجّل كائنات المصادقة أو الطلب بالكامل. سجّل معرّفاً، لا السرّ أبداً. مسار البحث عن المفاتيح هو بالضبط حيث يسوء هذا الأمر.
  • تذكّر أن أسماء فهارسك وخدماتك تصف نظامك. أبقِ المكان الذي تعيش فيه خاصاً.
  • اجرد بيئاتك القديمة. كانت الأسماء هنا تحمل وسوماً مثل uat-v1 وuat-v2 وstaging وshadow، طبقات من إعدادات اختبار تراكمت مع الوقت. المنسيّ هو عادةً ما ينتهي به الأمر مكشوفاً.

شكر وتقدير

شكراً لفريق native.org على استجابة سريعة ومهنية، وعلى العمل معنا حول ما يمكن وما لا يمكن أن يدخل هذا التقرير.

How to cite
Kinryū Labs (2026). كيبانا مفتوحة كشفت حزمة التداول الخاصة بـ native.org. https://kinryu.sh/ar/reports/native-org-kibana-exposure/