אמאל׳ה יש לי סופר-דג בנייד

23/02/2015

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

1. מה זה בעצם HTTPS ?

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

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

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

סופרפיש שברו את ההבטחה הראשונה, היא מנגנון האימות. לאחר התקנת התוכנה לא תוכלו לתת אמון באף אתר: כל אתר יוכל להתחזות לכל אתר אחר ולקבל את סימון המנעול של HTTPS.

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

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

2. אוקיי אז איך אפשר לשבור את מנגנון האימות ?

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

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

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

3. ומה הקשר למוצר של חברת סופרפיש ?

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

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

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

זה נראה בערך כך:

mitm attack

 

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

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

4. נו אז מה הבעייה עם זה? כולם רוצים להתפרנס

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

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

5. מה בדיוק ההבדל בין סופרפיש לבין חברות הנפקת תעודות מוכרות?

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

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

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

6. נשמע שלא כדאי לי להתקין את אפליקציית סופרפיש...

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

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

7. קישורים חשובים לסיום:

יש לכם מחשב נייד של לנובו? כך תסירו את סופרפיש יחד עם התעודות הקשורות:
http://support.lenovo.com/us/en/product_security/superfish_uninstall

רוברט גראהם מספר כיצד לשלוף את המפתחות הפרטיים של סופרפיש כדי לייצר תעודה מזויפת לכל אתר:
http://blog.erratasec.com/2015/02/extracting-superfish-certificate.html