Never Home Alone

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

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

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

Never Home Alone אומנם נמצאה בשואבי האבק הרובוטיים של LG, אך בעקבות העובדה ש-LG משתמשת באפליקציה אחת לכל המוצרים החכמים שלה (אפליקציית SmartThinkQ), כל מוצרי ה-IOT של LG (כמו מקררים חכמים, מכונות ומייבשי כביסה חכמים, מדיחי כלים חכמים ועוד) נחשדו כפגיעים להשתלטות מרחוק. עד לתיקון הפגיעות, תוקף זדוני היה יכול להשיג גישה לחשבון של משתמש רשום, תוך הזדהות באמצעות כתובת הדוא"ל של המשתמש בלבד. לצורך הדוגמה, התוקף הזדוני יכול להפעיל את המצלמה בשואב האבק של משתמש הקצה ולצפות בתיעוד שהיא מפיקה.

הסבר טכני 
הפגיעות המרכזית שמאחורי Never Home Alone היא broken authentication אותו הצליחו לאתר זאיקין וברדה בתהליך מימוש פרוטוקול ה-OAuth2 על ידי האפליקציה. כשלב ראשוני, התגברו זאיקין וברדה על הגנות שונות שהתבצעו בצד השרת, כגון מניעת גישה לאפליקציה ממכשירי root, או SSL Pinning שמוודא שלא בוצע שינוי לתעודת האבטחה הדיגיטלית. לאחר מכן, ניתחו השניים את תהליך ההתחברות למערכת שבוצע על ידי OAuth2. פרוטוקול OAuth2 הוא פרוטוקול אשר מאפשר ללקוח אינטרנט להעניק גישה לשרת אינטרנט A לגשת למידע שלו (של לקוח האינטרנט) בשרת B, מבלי ששרת A ייחשף לפרטי הזיהוי של הלקוח. פרוטוקול זה למעשה משלים את פרוטוקול OpenID שמבצע את השלב הראשון בתהליך והוא זיהוי לקוח האינטרנט כבעלים הלגיטימיים של המידע בשרת B. צורת המימוש של OAuth2 היא כזו: משתמש הקצה מעביר את פרטיו (grant_type - שם משתמש וסיסמה, client id - ה-id של המוצר ו-scope) למכשיר המממש את ה-OAut2, ובמקרה של פרצת האבטחה Never Home Alone - את המזהה של שואב האבק. המכשיר האמור מעביר את הפרטים לאימות לשרת האימות (Authorization Server). שרת זה מבצע אימות לפרטים ואם הוא מצליח לאמת אותם, הוא מעביר למכשיר הקצה (השואב אבק) מפתח גישה (access token) אותו מעביר המכשיר לשרת המרכזי - שרתי LG. שרת LG שיקבל את מפתח הגישה, יוודא שהוא אכן אותנטי ויאשר את כניסת המשתמש.
 
המימוש שביצעו LG לפרוטוקול היה שונה מהמקובל. לאחר שהם מימשו בצורה טובה את השלב הראשון בתהליך והוא העברת ה-grant_type, ה-client id וה-scope למכשיר הקצה על ידי משתמש הקצה, בשלב השני - שלב האימות מול שרת האימות המרכזי (ה-Authorization Server) הם יצרו דרך חדשה, שהובילה כאמור לפרצת האבטחה. במקום לממש כנהוג ולבצע העברה של הפרטים ממכשיר הקצה לשרת האימות, הם הסתפקו באימות שבוצע על ידי מכשיר הקצה ולשרת האימות העבירו רק את שם המשתמש של משתמש הקצה (כתובת הדוא"ל שלו) ומפתח כלשהו שאישר שפעולת הזיהוי בוצעה על ידי מכשיר הקצה עצמו. מימוש שונה זה של OAuth2 הביא את זאיקין וברדה לנסות לתפוס את חבילת המידע בשלב השליחה שלה לשרת האימות, להחליף את כתובת הדוא"ל שלהם, אותה אימת מכשיר הקצה כבר בשלב הראשון של OAuth2 ובעקבותיה הם קיבלו את המפתח לכתובת דואר אלקטרוני אחרת, של כל משתמש אחר בעל שואב אבק LG ובכך לקבל גישה מלאה לאפליקציית מוצרי LG החכמים של המשתמש, שכן כאמור, שרת ה-Authorization הסתפק בעובדה שהוא קיבל מפתח מאומת, כדי לאשר את התחברות המשתמש ולהעביר aceess token.

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

הערות שוליים 

פרצות אבטחה
האינטרנט של הדברים