Skip to content

Insecure

האקינג, אבטחה, תכנות ומה שביניהם

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

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

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

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

 

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

ותשתמשו בו כדי לחפש באופן אוטומטי לגמרי את הפושעות:

מה צריך לעשות ?

1. להיכנס לאתר

2. ללחוץ על "Login with facebook"

3. בתיבה שרשום מעליה "urls" להכניס את התמונות שפורסמו ב"חורים ברשת" :

4. ללחוץ על כפתור "Call Method"
5. זהו ! זה יקח כמה דקות, ואם קיבלתם זיהוי חיובי, אתם יודעים למי לדווח

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

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

מסתבר, שעבור מהירות מעל 20 מגה צריך להחליף מודם למודם VDSL (הטכנולוגיה החדשה של בזק, או בשפת העם NGN)

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

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

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

 

 

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

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

 

 

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

רק כדי להמחיש כמה זה פשוט:

 

 

עכשיו, אנחנו כבר כאן, בוא נראה אם יש פניני חוכמה אחרים בקוד:

 

גם בנתב הזה, המשתמש support מככב, וכרגיל לא ניתן להיכנס איתו מצד הLAN, מנגד מצד הWAN ניתן להיכנס אך ורק איתו (זה דווקא דבר חיובי)

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

 

ככה נראה מתכנת שעושה מה שמבקשים ממנו, בדיוק מה שמבקשים ממנו.

משעשע לקבל על הבוקר בקשת חברות תמימה כזאת, ממישהי בעלת נתונים מרשימים

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

במסגרת בדיקת אבטחה שעשיתי היום נפל לידי ראוטר ביתי של חברת אדימקס מדגם AR-7284WnA.

נניח בצד את העובדה שהרשת האלחוטית שלו הייתה מוצפנת בWEP 64Bit, ולקח בדיוק שתי דקות להיכנס אליה.

עם הכניסה לרשת התחברתי לממשק הניהול של הראוטר ושם קיבלתי את התמונה הבאה:

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

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

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

שיטוט קצר בקוד המקור הוביל אותי לתגלית הבאה:

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

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

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

מכיוון שמדובר בבדיקה בצד לקוח בלבד, פתחתי Javascript Console ופשוט הרצתי מחדש את קטע הקוד הרלוונטי והופ קיבלתי אפשרות להתחבר כמשתמש support

אני לא אשאיר אתכם במתח, ברור שהסיסמא הייתה support.

כמה דברים מעניינים פה:

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

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

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

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

טוב טעות, חיפשו "מ", גם אבא שלי "מ" – לא נדיר כל כך במדינה הזאת, נפרדנו כידידים.

 

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

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

 

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

במהלך כל שיחה שקיבלתי (היו 3 כאלה ביום שני) הוצאתי מידע על המוקדנים, הפרטים המדויקים של האנשים שהם מחפשים וכו'

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

החלטתי לקחת את הנושא צעד אחד הלאה וגייסתי למשימה את אשף הSocial גיא מזרחי,

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

בלי להסס אני אומר לה לחכות ומעביר את השיחה לגיא, המידע היחיד שגיא יודע הוא שקוראים לו "יוסף"

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

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

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

 

איך ממשיכים מפה ?

הצטיידנו בתוכנה שתאפשר לנו להמיר את השם לתעודת זהות (אתם יודעים איזה תוכנה)

אתר 144 של בזק פתוח ומוכן

 

בזק, אני מחכה שתתקשרו.

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

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

ובכלל, ממש מעניין לדעת על קיומו של גוף כמו UNICRI

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

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

כבר תקופה ארוכה שיש משהו שמציק לי, ושוב זה איכשהו קשור לגוגל, ואפילו בשתי צורות שונות במקרה הזה.

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

המנעול השבור הזה מציין שהחיבור שלי מול Gmail הוא אמנם בSSL אבל משהו לא בסדר איתו, מדאיג משהו..

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

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

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

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

אם נוסיף אש למדורה, כאשר אני נכנס לGmail, החיבור מופיע כראוי והמנעול לא שבור:

רק אחרי זמן מה המנעול "נשבר" ומשהו רע קורה כאן.

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

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

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

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

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

היום כאשר אני נכנס לGmail ורואה את המנעול השבור הזה, זה בכלל לא נראה לי מוזר, זה תמיד ככה ולכאורה זה גם לא אומר שמשהו לא בסדר.

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

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

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

בשקט בשקט ומתחת לראדר של תעשיית אבטחת המידע בעולם,

פירסם לא מזמן קיריל לשצ'יבר (חוקר וחבר) בהנחיית פרופ' דני דולב ושמרית צור עבודת תזה ובה מגדיר קיריל מנגנון גנרי לאיתור של התקפות DNS,

המנגנון העונה לשם TFP – Too Fast Packets מסוגל לזהות ולנטרל התקפות DNS ללא צורך בהיכרות עם סוג ואופן התקיפה – מה שהופך אותו יעיל במיוחד כנגד התקפות חדשות ולא מוכרות.

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

התקפות אלו מאפשרות נזק רב ובין השאר ביצוע DOS לשירותים קיימים ואף ביצוע Man In The Middle ברחבי האינטרנט (ומשם הדימיון הוא הגבול).

למאמר המלא שפירסם קיריל

הבלוג הטכנולוגי Engadget חשף היום מוצר מהפכני העונה לשם AIRPrint,

AIRPrint הינו מצלמה ביומטרית אשר מסוגלת לקלוט טביעת אצבע ממרחק של עד 2 מטר.

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

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

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

את הנושא חשפה חברת lookout mobile security בבלוג שלהם, ולא איחרו להגיע חברות הAV שפירסמו עדכונים והסברים עליו.

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

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

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

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

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

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

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