גררר – ActiveX

טוב, אז אני הולך ומזהיר אנשים כבר שנים. אף אחד לא עושה שום דבר בנידון.

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

הרעיון היה, כמו הרבה רעיונות של מיקרוסופט, פשוט, נוח, ולא משקיע מחשבה באבטחה. “בואו נאפשר לאתרים להרחיב את היכולות של HTML”. איך? התשובה היא “ActiveX”. תוכנה חתומה דיגיטלית שיורדת אוטומטית מהרשת ומתקינה את עצמה.

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

אני אסביר – כל מה שהחתימה הדיגיטלית על ActiveX מאשרת זה שמי שכתב אותו הוא אכן מי שאתם חושבים שכתב אותו. היא לא מאשרת שהוא בטוח לשימוש מתוך HTML, או כל דבר אחר. עכשיו תארו לעצמיכם את הסיטואציה ההיפותטית הבאה:

חברת מיקרוסופט כותבת ActiveX. היא מסמנת אותו כבטוח לשימוש מתוך HTML. היא חותמת עליו ומשחררת אותו לעולם. אחרי זמן מה, מתגלה שה-ActiveX אינו בטוח לשימוש מתוך HTML. “אופס”, אומרת מיקרוסופט, ומחליפה את ה-ActiveX באחד חדש. נפתרה הבעיה, נכון?

אז זהו, שלא.

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

נשמע דמיוני? באמת?

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

שחר

תוספות:
להלן כמה התראות אבטחה של מיקרוסופט שבהן ההמלצה, אם בצורה ישירה ואם עקיפה, היא לא לסמוך על ActiveX חתומים ע”י מיקרוסופט:
MS02-022
MS03-042
MS03-040
MS03-032
ועוד ועוד

מאת

שחר שמש

מייסד–שותף וחבר ועד בתנועה לזכויות דיגיטליות מייסד שותף בעמותת „המקור”. פעיל קוד פתוח. מפתח שפת התכנות Practical

24 תגובות בנושא “גררר – ActiveX”

  1. מה דעתך לשלוח לינק לאיטם הזה אל אתרים כמו וואלה, ynet וכד’?
    אולי סוף סוף זה ישכנע אנשים מה כל כך גרוע ב-ActiveX ולמה הסתמכות על זה היא דרך ללא מוצא.

  2. שלחתי קישור ישיר לאיטם לוואלה. אני מקווה שזה עבר כי עמוד ה-"תודה" נראה מוזר ב-FireFox על הדביאן שלי.

  3. עכשיו גם יש קישור ברשימת הקישורים של Ynet.
    מקווה שכתבתי הקדמה נכונה יחסית, זה היה בבוקר לפני הריצה לעבודה.

  4. Gecko מאפשר דבר דומה (XPI), מדוע אתה לא כותב על זה?
    אהה. שכחתי הם לא "מונופול אכזרי".
    צבוע!

    1. בוא נראה איך עונים על זה. יש כל כך הרבה תשובות….
      XPI אינם מותקנים אוטומטית לעולם, ובפרט לא ע"י זה שפעם אחת ענית "Always trust…".
      XPI באופן טיפוסי כתובים ב-Java, כך שאינם יכולים לעשות נזק של ממש מחוץ לעולם הדפדפן.
      לא ניתן ליזום התקנה של XPI כחלק מדף אחר, ובפרט לא דרך אימייל. לכן ההתקפה המתוארת פשוט בלתי אפשרית
      להמשיך?

      עכשיו כמה שאלות אליך, ברשותך. האם יש סיבה שלא הזדהית? האם יש סיבה שאתה שם לי מילים בפה, ואז שופט אותי עליהם? האם עכשיו תיתן התנצלות פומבית?

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

      שחר הצבוע

      1. כל כך הרבה תשובות.. לא נכונות.
        XPI אולי לא מאפשרת התקנה "אוטומטית" כשנמצאים באיזור "אינטרנט" (הרשה לי להעביר את GECKO למתודולגיית אבטחת המידע של IE לשנייה..), אך היא עדיין יורדת למחשב של המשתמש וניתן לנצל זאת להתקנה אוטומטית, כשמפעילים אותה באיזור "המחשב שלי".
        אין קשר בין כך ש-XPI כתובה ב-JAVA לנזק שניתן לעשות איתה. XPI מאפשרת כתיבה לקבצים והרצתם (אחרת לא היה טעם בשימושה, הלא כן?), כך שניתן לגרום נזק בדיוק באותה מידה כמו עם ACTIVE-X.
        ניתן ליזום התקנה של XPI מכל דף ודף, ואם יש לקוח דואר שמפעיל דף ברשת או בצד הלקוח ניתן לאפשר התקנה אוטומטית (אם הוא ה-XPI חתום).

        לא אתייחס לשאלות שהופנו כלפיי, מעבר לכך שזו זכותי המלאה לא להזדהות, כמו שזו זכותך המלאה לא לענות ו/או למחוק את התגובות שלי.

        אתה מוזמן לעשות עם תגובה זו כרצונך.

        שמשון המתנצל.

        1. וואו, שמשון. אין לי מילים. דמעות התרגשות חונקות את גרוני. אני חושש, אבל, שאתה עדיין טועה.

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

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

          לגבי יזימת התקנה – השאלה היא האם ניתן להגיע למצב שבו ההתקנה היא עיוורת. התשובה לגבי XPI היא "לא".

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

          שחר

          1. יפה מאוד שחר. הגעת בדיוק לאותה מסקנה שאני הגעתי:
            "האם ניתן להגיע למצב שבו ההתקנה היא עיוורת" (ללא ניצול חורי אבטחה כלשהם כמו http://www.securityfocus.com/bid/11166/discussion/ או http://secunia.com/advisories/11999/ או http://www.securityfocus.com/bid/5762/discussion/)?
            התשובה גם לגבי ACTIVE-X היא "לא".

            מפתיע? לא את אלה עם העיניים פקוחות לרווחה. כנראה שהצביעות מעוורת אותך.

            לילה טוב,
            שמשון.

          2. אתה טועה, שמשון. השגיאה המרכזית שלך היא שאתה חושב שאני מדבר על חור אבטחה במנגנון ה-ActiveX עצמו. אני לא.

            אני אחזור – מנגנון ה-ActiveX מתפקד בדיוק כפי שתוכנן. הוא לא מתקין דברים ללא אישור המשתמש, אלא אם המשתמש בחר מראש לאשר לאותו הגוף (נגיד, לצורך הדוגמא, Macromedia) להתקין ללא אישור מפורש. אני לא מדבר על חורים במנגנון הזה.

            החורים שאני כן מדבר עליהם הם חורים בגרסה ספציפית של Flash. בגלל הצורה ש-ActiveX בנוי, אין ל-Macromedia שום דרך למנוע ממני או ממך לתת גרסה ישנה של Flash האמיתי, חתום כדת וכדין ע"י Macromedia. למעשה, זה בדיוק מה ש-ActiveX נבנה כדי לעשות.

            הצרה היא שבזאת אני ניצלתי את העובדה שאתה סומך על Macromedia כדי להתקין לך חור במחשב, מבלי שראית שום הודעה. אפילו היית רואה את ההודעה, מה שכתוב שם זה שה-ActiveX חתום ע"י Macromedia, לא על ידי שחר שמש. זה לא חור. ככה ActiveX בנוי.

            הבעיה היא שזאת התקנתי לך חור אבטחה על המחשב, שהוא חור שאני יכול לנצל כדי לפרוץ אליך.

            המשך בהערה הבאה

          3. בפרט, אין כמעט XPI שמוסיפים פקודות ל-HTML או ל-JavaScript. אילו שכן מוסיפים, מוסיפים אותן ב-JavaScript או ב-Java, מה שאומר שאתה לא מרוויח כלום מהתוספת שלא יכולת לשלוח פשוט בעצמך.

            כתוצאה מכך, פשוט לא תמצא XPI שסמכתי עליהם כדי לנצל לרעה.

            שחר

          4. XPI מאפשר להוריד ולהריץ קבצים חיצוניים.
            ע"י אותם קבצים חיצוניים ניתן לשנות כל מנגנון (XPI/ACTIVEX/קבצי הגדרות) או דף, במוזילה או בכל דפדפן אחר.

            שמשון.

          5. אני אוסיף הסבר שלישי, כדי לוודא שהובנתי כראוי.

            החור שאני מדבר עליו אינו חור בצורה ש-ActiveX ממומש. אתה צודק לחלוטין – חורי מימוש יש בכל תוכנה לא טירוויאלית, וזה כולל את Geck ואת XPI. העניין הוא שחורי מימוש אפשר לסגור.

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

            שחר

          6. הדבר עובד בדיוק אותו דבר גם ב-XPI. ניתן להתקין גירסאות ישנות על גירסאות חדשות.
            אתה מוזמן לנסות למשל XPI הנקרא FLASHGOT:
            https://update.mozilla.org/extensions/moreinfo.php?id=220&vid=1067&page=releases

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

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

            שמשון.

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

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

            שחר

          8. כנראה שכך הדבר.
            אני אעשה זאת, אם אתה תראה לי איך ניתן להתקין ACTIVE-X ללא אינטראקציה עם המשתמש, על גירסא אחרונה של IE.

            רמז: לא ניתן.

            שמשון.

          9. צעד מספר אחת – לך לאתר שמנסה להתקין לך ActiveX של חברה מסויימת. לצורך העניין – windowsupdate.microsoft.com.
            צעד מספר שתיים – כאשר עולה לך ה-Dialog – סמן "Always trust content from Microsoft Corporation".
            כל ActiveX נוסף שחתום ע"י אותה התעודה יותקן ללא שאתה נשאל כל שאלה נוספת.

            אני אשמח לשמוע על צעדים מקבילים לגבי XPI מוזילה.

            שחר

  5. אמנם אני מסכים ש-ActiveX הוא חור אבטחה רציני, ויתכן שמצאת כמה המלצות לא להשתמש בו (ובאותו אופן אני יכול להפנות אותך להמלצות של קרן מוזילה שלא להשתמש בג’אווה סקריפט בגרסאות מסויימות של מוזילה עם חורי אבטחה ידועים), אבל אני לא יודע מאיפה הסקת שהם הולכים להפסיק את התמיכה בזה. רק אתמול קראתי תמליל שיחת צ’אט בין כמה ממפתחי IE (שנראה שהם עוסקים בעיקר בסתימת חורים) לבין משתמשים, ובו הם טוענים ש-ActiveX מרחיב את היכולות של הדפדפן, כמו plug ins בנטסקייפ. לי לא נראה שיש להם כוונה לוותר על הטכנולוגיה הזו, משום שהיא מוטמעת עמוק במערכת, ויש מערכות אחרות הנסמכות עליה, ויסמכו עליה בעתיד.

    חפש activex כאן:

    http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/04sept09.mspx

    אגב, "ניפטר" ולא "ניפתר".

    1. עוד לא קראתי את הקישור. על פניו נראה שהמגמה מאחורי SP2 היא לעשות התקנת ActiveXים חדשים יותר ויותר קשה, מה שהוא שקול ללהתרחק מהטכנולוגיה.

      ותודה, תיקנתי את שגיאת הכתיב.

      שחר

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

    כפי שמיקרוסופט עשו ב-
    http://www.microsoft.com/technet/security/bulletin/MS01-017.mspx

    מה דעתך?

    1. לא, זה לא יעבוד.

      הבעיה שמתוארת בלינק שנתת היא פאשלה של verisign. הפתרון היה למחוק את כל התעודות השגויות.

      הבעיות פה אינן עם התעודות, אלא עם מה שנחתם על ידם. אי אפשר לבטל את כל מה שנחתם ע"י תעודה מסויימת, רק בגלל שאחד ה-ActiveX התגלה כלא בטוח.

      עוד חור ברעיון הזה הוא שהוא ישים רק עבור ActiveX עם בעיות אבטחה שהוצאו ע"י מיקרוסופט. מה עם כל שלל החברות האחרות שמוציאות ActiveXים מדי פעם?

      שחר

      1. למה לא יעבוד?

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

        2. ברור שהבעיה היא עם התוכנה, אבל באמצעות התעודה תהיה התראה שלא להשתמש בתוכנה.
        אבל זה מה שאני אומר – תעודה אחת = תוכנה אחת ייחודית (בהצלבה של שם הקובץ, גרסה וכן הלאה). תיחתם רק תוכנה ספציפית עם התעודה הזו, ולא יותר.

        3. מה שהצעתי הוא פתרון כולל, לא רק ל-MS. זה פתרון מערכתי, לא ייחודי לחברה. כל חברת תוכנה תוכל להשתמש בו.
        והוא ישים לכל סוג של תוכנה, לא רק ActiveX.

        איתן

        1. מצטער על העיקוב בתגובה.

          כן, מה שאתה מציע יפתור את הבעיה הנידונה. מצד שני, זה יהיה לשפוך את התינוק עם המים.

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

          שחר

סגור לתגובות.