הבוקר (שישי), פורסמה חולשת אבטחה מסוג Arbitrary DLL Loading, המאפשרת, בין השאר, הרצת Command-Line על המכונה המותקפת התגלתה ב-Web Start Framework של Java (המוכרת גם כ-“JavaWS”). מדובר בטכנולוגיה שפותחה ע”י חברת Sun ותפקידה להקל על תהליך הפיתוח של אפליקציות Java.

החולשה פורסמה ע”י שני חוקרי אבטחה נפרדים, החוקר הראשון-Tavis Ormandy, פרסם את החולשה ב-Full Disclosure של Reversemode.com, וחוקר האבטחה השני-Ruben Santamarta, פרסם את החולשה ב-Reversemode.com.

כנראה בגלל הפשטות של ניצול החשיפה, לפי דעתו של Santamarta על החשיפה, מדובר כאן ב-Backdoor שהוכנסה בכוונה תחילה.

לפי ההסבר של Santamarta, מדובר בחולשה הקיימת ב-javaws.exe (הרכיב האחראי על הרצתם של Java-Plugin דרך הדפדפן), בהסבר הוא נותן ניתוח מעניין המסביר על האופי שבו הרכיב מפרש את הקלט נשלח אליו דרך ה-JNLP (הפרוטוקול של Java Network Launching)- מהלך קליטת הערכים אינו עובר שום בדיקת אימות ואינו מפריד בין סוגי/אופי הקלט אשר מתקבל מה-jnlp: (את הקוד המלא של ה-deployJava אפשר לראות כאן: http://www.java.com/js/deployJava.txt)

עד כאן החלק הראשון.

שני החוקרים מוסיפים כי גם java.exe וגם javaws.exe תומכים במתג אשר אינו נכלל בדוקומנטציה של חברת Sun (המתג XXaltjvm- ו-המאפשר למשתמשלטעון ספריית JavaVM שונה מהספריות הדיפולטיביות (ה-jvm/jvmlib), פשוט ע”י הוספת המתג המדובר והכנסת ה-Path של קובץ ה-jar הזדוני: -XXaltjvm=Pathfile

למעשה, כאן מדובר בטעינת ספריות למנוע ה-Java, מה שאומר שליטה מלאה ברכיב ה-Java ומכאן עד השתלטות מלאה על המכונה הדרך קצרה. ושוםASLR או DEP לא יכולים לעזור, מפני שכאן לא צריך לדעת לאיפה לטעון מה מפני רכיב ה-JRE יודע לנהל את הזכרון לבד.

בנוסף להסברים, Tavis Ormandy יצר PoC קטן שמציג את ניצול החולשה, כל מה שצריך הוא יצירת קוד Java קטן שמבצע את הפעולה הזדונית: (ב-PoC המקורי קופץ ה-Calc.exe, ב-PoC כאן המחשב מבצע כיבוי לאחר 30 שניות):

ולאחר מכן, יש לטעון אותו בעזרת השימוש באותו מתג: (שני הקודים הבאים נלקחו מה-PoC של Tavis Ormandy) הטעינה בדפדפני Internet Explorer:

והטעינה בדפדפני Mozilla:

את הדוגמא ש-Tavis Ormandy יצר להמחשת ה-PoC הנ”ל אפשר לנסות בכתובת הבאה: (IE & FF) http://lock.cmpxchg8b.com/bb5eafbc6c6e67e11c4afc88b4e1dd22/testcase.html

נכון לעכשיו, לא יצא שום טלאי המסדר את הבלאגן, ולכן העצה הטובה ביותר היא לבטל את השימוש ב-javaws.exe. בנוסף, חשוב מאוד לציין שמפני שמדובר ב-Java אשר נתמכת ברב הדפדפנים כיום, היקף הסיכון הוא גבוה באופן מפחיד. משתמשי MacOS אינם פגיעים למתקפה.