Tuesday, February 25, 2014

Hebrew Summary:
Remote Code Execution On All Enterprise Workstations Simultaneously - A Vulnerability in Jetro Cockpit Secure Browsing
-or-
The Irony of Insecure Security Software

This article is a summary and translation to Hebrew of the original report as posted earlier this month.
פרסום זה הינו תקציר ותרגום לחשיפה שפורסמה באתר זה מוקדם יותר החודש.

עדכון (9.2.2014) הממצא קיבל מספור רשמי  CVE 2014-1861
עדכון (24.2.2014) פרסום תגובת החברה לבקשתה בסוף המסמך.


תקציר הממצא

פירצה חמורה התגלתה במוצר "גלישה מאובטחת" של חברת ג'טרו פלאטפורמס  (Jetro Cockpit Secure Browsing  להלן JCSB של Jetro Platforms). הפירצה מאפשרת לתוקף שהשיג שליטה בשרת הגלישה החיצוני של המערכת, להמשיך ולהשתלט על כל מחשבי הארגון ברשת הפנימית (המשתמשים במוצר) בבת אחת. בכך התוקף בעצם עוקף ואף מנצל את מוצר ההגנה כסוכן להרצת קוד זדוני במחשבי הארגון. התקפה מוצלחת נותנת לתוקף גישה מלאה מתמשכת ומוסתרת (advanced persistent threat) לרשת הפנימית של הארגון. הדבר עשוי לאפשר, בין היתר, גישה למידע רגיש, ביצוע פעולות בבסיסי נתונים, איסוף סיסמאות ועוד.
המוצר מותקן בארגונים מובילים בארץ בתחומי הבנקאות, אשראי, ממשלה, בריאות, תשתיות ועוד. (לרשימת לקוחות ראה פרסום באתר החברה כאן או כאן).
החשיפה נמצאה בכל הגירסאות הניתנות להורדה של המוצר. הגירסה המוקדמת ביותר הינה מתאריך 05-2013 , כלומר 8 חודשים מתאריך הדיווח, אך יש יסוד סביר להניח שהמוצר היה חשוף גם בגירסאות קודמות (כלומר מספר שנים).
על-פי דיווח החברה, המוצר נבדק ע"י מספר חברות אבטחת מידע בעבר.


הסבר כללי
האקרים מחפשים (ומוצאים) כל הזמן פרצות בתוכנות פופולריות. הפרצות החמורות ביותר הינן כאלה המאפשרות השתלטות מרחוק (Remote Code Execution). מחשב מודרני מריץ מספר רב של תוכנות כאלה בהם: מערכת הפעלה, דפדפן, קורא PDF, ועוד רבים. (הקישורים מפנים לרשימת הפרצות מסוג זה במוצרים אלו שדווחו ותוקנו בשנים באחרונות. רק משלושת הדוגמאות הללו עולה ממוצא של פירצה קריטית פעם ב-3 ימים). בין גילוי הפרצה לתיקונה עשויים לעבור שבועות רבים, ובנוסף קיים שוק שלם של פרצות שמתגלות ולא מדווחות אלא נמכרות לכל המרבה במחיר. לכן עבור ארגון המכיל מידע רגיש מחד ומאות משתמשים הצריכים גישה לאינטרנט מאידך,  מדובר בבעיה של ממש.
אחד הפתרונות לבעיה זו עבור ארגונים הינו גלישה דרך שרת ביניים. כך פועל JCSB. המשתמש בארגון נמצא ברשת פנימית אשר לא מחוברת באופן ישיר לאינטרנט. בכדי לגלוש, מחשב המשתמש מתחבר לשרת ביניים אשר מריץ את הדפדפן, קורא ה-PDF וכו. השרת החיצוני עדיין בסיכון כפי שתואר לעיל, אבל במקרה בו תוקף מנצל פירצה בדפדפן למשל, הוא משיג שליטה רק בשרת החיצוני המנותק, שלא נמצא ברשת הפנימית ולכן לא מכיל מידע רגיש. ההתקפה נכשלת.
אולם לעיתים הפתרון מייצר את הבעיה. הפירצה שנמצאה מאפשרת לתוקף בתרחיש המתואר לעקוף את ההגנה שמספק המוצר ולהשתמש בחיבורים שהמוצר מייצר בין המחשבים ברשת הפנימית לשרת, בכדי להריץ קוד עוין על כל מחשב ברשת הפנימית המשתמש במוצר בכדי לגלוש באופן מאובטח.
גרוע מכך, הקוד הזדוני יכול לשלוח מידע החוצה. לרוב, קוד עוין שהגיע לרשת הפנימית המנותקת מהאינטרנט לא יכול להתחבר לשרתי התוקף. אולם במקרה זה, התוקף שוב מנצל את התשתית של המוצר בכדי לשלוח מידע מהרשת הפנימית לאינטרנט. דבר זה מאפשר בעצם גישה מרוחקת מלאה ומתמשכת של התוקף לרשת הפנימית של הארגון.

סרטון הדגמה

הסרטון מדגים התקפה מוצלחת:
  • החלון הינו מחשב וירטואלי ברשת הפנימית. המשתמש מקבל דוא"ל עם קישור לאתר זדוני.
  • המשתמש לוחץ על הקישור והאתר נפתח דרך מוצר JSCB. האתר נפתח בדפדפן הרץ בשרת החיצוני.
  • האתר מנצל פירצה בדפדפן בכדי להשתלט על השרת (ללא קשר למוצר)
  • הממצא המתואר מנוצל: קוד זדוני מגיע מהשרת אל תחנת המשתמש ורץ עליה.
לאחר מכן דוגמא חריפה יותר:
  • החלון השני הינו מחשב נוסף ברשת הפנימית. המשתמש בו הגולש ללא קשר למשתמש הראשון
  • אותה התקפה מתרחשת: המשתמש הראשון מגיע לאתר הזדוני.
  • ניתן לראות כי הקוד הזדוני מגיע לכל המחשבים המשתמשים במוצר, לא רק למשתמש שגרם לתקיפה.
סגירת JCSB (האייקון של האות J) הורג את כל החלונות הרצים בשרת. הדבר מראה שהקוד הזדוני אכן רץ על המחשבים ברשת הפנימית.

פירוט ההתקפה

להלן תרשים פשוט של אופן פעולת המוצר.

תרחיש ההתקפה: תוקף השיג שליטה בשרת החיצוני של המערכת המחובר לאינטרנט. דבר זה עלול להתרחש כאשר התוקף מנצל חולשת Remote Code Execution בתוכנה כלשהי שרצה בשרת (unpatched או zero-day). כאמור זו יכולה להיות חולשה בדפדפן, בקורא PDF, ב-Java ועוד. דוגמא אחת נראית בסרטון בו משתמש גולש לאתר התוקף וזה מנצל חולשה בדפדפן. 
כאמור, זהו התרחיש המסוכן אותו המוצר מנסה למנוע.

נמצא כי:
  • אם התוקף משיג הרשאות מלאות בשרת (privilege escalation), הוא יכול להזריק קוד לכל תחנה ברשת הפנימית העושה שימוש במוצר.
  • אם לתוקף הרשאות ברמת משתמש בשרת, הוא יכול להזריק קוד לתחנת המשתמש אשר גרם להתקפה.


לפירוט טכני מלא על הפירצה, ראה מאמר באנגלית כאן.



אחרית דבר
על אף שהבדיקה עצמה היתה יחסית מורכבת ודרשה יצירת רשת וירטואלית של מספר מחשבים בכדי לדמות סביבת עבודה אמיתית, והנדוס לאחור של קוד המוצר, החשיפה שנתגלתה לבסוף הינה פשוטה יחסית. זוהו דוגמא טובה לאבטחה באמצעות עמימות (Security Through Obscurity).

על-פי דיווח החברה, המוצר נבדק ונמצא תקין ע"י מספר חברות אבטחה בארץ. פרסומי החברה מצטטים לפחות חברה אחת כזו (למשל כאן). דו"ח הבדיקה עצמו נמצא אף הוא באתר החברה כאן. יש לציין שכתוב בו שלא התבצעה בדיקת עומק אלא רק בחינת איפיון: "design review with no actual security tests", עם זאת האפשרות לכיוון התקיפה המתואר כאן לא עולה בו.

כל הגירסאות שנבדקו ונמצאו חשופות:
  • Jetro Cockpit Secure Browsing 4.3.3 (latest version at time of research)
  • Jetro Cockpit Secure Browsing 4.3.1 (released 2013-05-19)
אך יש יסוד להניח שגירסאות קודמות היו חשופות גם כן (ראה פרסום באנגלית להמשך דיון בנקודה זו).

תאריכים:
2.1.2014 - דיווח הפירצה לחברה
12.1.2014 - החברה מדווחת שהוציאה מייל רשמי ללקוחות ומתחילה בעדכון
2.2.2014 - פרסום הממצא לאחר תאום עם החברה





עדכון (24.2.2014)
תגובת החברה
להלן תגובתה של חברת ג'טרו פלאטפורמס כפי שביקשה שאפרסם אותה:

למען הסר ספק, בניגוד לכתוב משתמשי המוצר היו והינם עדיין חשופים בפועל בשימוש בגירסה הלא מעודכנת של המוצר. הסיכוי שהכשל הדרוש לניצול הפירצה ייווצר או קיים כרגע בסביבת עבודה אמיתית הינו גבוה. אין צורך במשתמש administrator, ו-firewall  לא יחסום את ההתקפה כפי שמוסבר בפירוט במסמך זה.

לפני פרסום התגובה פניתי אל החברה והסברתי שוב את פרטי החשיפה וכיצד התגובה אינה מדוייקת ואינה משקפת נאמנה את חומרת הפירצה, אך החברה שבה ודרשה שאפרסם את התגובה כלשונה.

מהכתוב עולה חשש כי משתמשי המוצר לא יודעו על מלוא חומרת הפירצה. דבר זה עלול לעכב ארגונים בתהליך עדכון הגירסה מתוך מחשבה מוטעת שהם אינם בסיכון. כאמור משתמשים בסביבת ייצור רגילה הינם חשופים ובסיכון. ישנה חשיבות רבה לעדכון המוצר במהירות האפשרית. זאת מכיוון שניצול הפירצה מאפשרת השתלטות רחבת היקף שעלולה להיות קשה מאוד לאיתור ולהסרה באופן מלא לאחר מעשה.

משתמשים המעוניינם בכך, מומזנים לפנות אלי לשאלות או התייעצות בנוגע לממצא זה והשלכותיו.

נכון לזמן כתיבת שורות אלו, החברה לא פירסמה תגובה רשמית באתרה והגירסה להורדה הינה גירסה המכילה את הפירצה.