אז ככה פורצים לכם בלי שאתם יודעים?

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

Session Fixation

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

איך ההתקפה עובדת

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

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

האם זה עובד?

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

איך (לא) מממשים Captcha

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

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

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

שלחתי להם את כתובת ה Post, נראה מה יהיה להם לספר :)

האיש הקטן בדפדפן

או בשמו השני, Man in the Browser.

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

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

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

סוסים בד"כ לא יעבירו כסף מחשבון הבנק של הקורבן\ חשבון ה Paypal או כל חשבון אחר של הקורבן. התקיפה הזו מסוכנת לתוקף כי המשתמש ישר יראה שקרה משהו ויודיע לבנק על ביטול הפעולה. אבל מה קורה אם הוא לא יודע שהפעולה קרתה? לאחר שהסוס מעביר את הכסף לחשבון של התוקף בעזרת  MITB הוא גם שולט בכל המידע שמגיע למשתמש, ולכן לאחר ההעברה הסוס "ישפץ" את כל הסכומים שהשתנו, ויחזיר את הסכום ה"ישן" שאמור להיות כאילו לא עבר שום כסף. כלומר, יכולים לעבור חודשים עד שהקורבן ישים לב שקרה משהו, ואז עשוי להיות מאוחר מדי. לדוגמא אם יש לקורבן בחשבון 10,000 ש"ח והסוס גנב לו 4,000 כל פעם שהוא יסתכל על הסכומים בחשבון הסוס ישנה את ה 6,000 ל 10,000 וכל שינוי שיבוא בעקבות זה. הבנק מצידו, לא יודע שזה מה שהקורבן רואה ובטוח שהקורבן רואה שיש לו בחשבון 6,000 ש"ח.

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

אז איך מזדהים מול הבנק? Two Factor Authentication? במקרה הזה לא, כל דרך של הזדהות היא לא מספיק טובה. לעומת תקיפות אחרות או גניבת סיסמאות, נתוני האימות של הנתקף לא מעניינים אף אחד. הסוס "רוכב" על ה session שיצרתם וגונב את המידע שלכם או מבצע את הפעולות שהוא רוצה.

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

סיסמאות ואיך גונבים אותן – חלק 2

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

בפוסט הזה אני אדבר על פישינג ופארמינג (Phishing ו Pharming). לפני הכל נגדיר את המושגים האלה (שהרבה פעמים תבלבלים ביניהם).

Phishing

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

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

Pharming

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

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

וזה עובד?

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

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

 שיפורים נוספים

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

  • מייל אישי שישלח לנתקף עם שמו. השם יגיע בד"כ מאתר \ DB שפרצו אליו או מפרטים שהכנסתם באתרים מפוקפקים באינטרנט
  • זיוף כתובת השולח. על מנת להרשאות שמישהו "אמיתי" שלח את המייל
  • תוספת של כיתוב כאילו המייל עבר במנגנון Anti-Spam
  • החבאה של הכתובות המזויפות שאליהם תופנו והצגה של הכתובות האמיתיות של האתרים האמיתיים

 

סיסמאות (ואיך גונבים אותן) – חלק 1

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

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

איך לבחור את הסיסמא (או איך להמנע מ Brute Force)

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

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

השימוש בסיסמא דיפולטית

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

שחזורי סיסמא

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

גניבת המסמכים של טוויטר

המקרה שקרה בטוויטר הוא שכל מסמכי החברה היו שמורים ב  google docs  ורק העובדים היו מורשים לגשת למסמכים. נוהג שקיים בהרבה חברות שרוצות לשמור את המידע שלהן באינטרנט. אחד העובדים שם כתובת hotmail שלו בתור הכתובת לשחזור סיסמא. צעד שגם כן הוא רגיל והרבה מאיתנו היו עושים זאת. הפורץ שרצה לפרוץ לחשבונות המייל של עובדי טוויטר התחיל לעבור עליהם ולנסות לשחזר את הסיסמא של כל אחד מהם. לבסוף הגיע לאותו עובד ששחזור הסיסמא שלו הפנה לכתובת המייל הוט מייל. כשניסה הפורץ לבדוק את החשבון בהוט מייל גילה שאותו חשבון לא קיים (בגלל המדיניות של הוט מייל לסגור חשבונות שלא פעילים) ופשוט פתח אותו. מכאן ההמשך כבר ברור. אותו פורץ פתח את החשבון בהוט מייל וביצע שחזור סיסמא ב Gmail. מה שאיפשר לו לגשת לחשבון ה Google Docs של עובד ה Twitter ולקבל גישה לכל מסמכי החברה שאותו עובד יכל לראות.

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

מה דעתכם? האם היו מצליחים לפרוץ אליכם ככה?