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) מקבלת הצעות מחיר מעושי שוק פרטיים ומגישה אותן לסוחרים על פני שרשראות שונות, והזרימה הנובעת מכך מגודרת (hedged) בבורסות מרכזיות. המופע החשוף היה חלק מסביבת 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 ביוני 2026native.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/he/reports/native-org-kibana-exposure/