אתמול השתתפתי בכנס OWASP שנערך בהרצליה: https://www.owasp.org/index.php/OWASP_Israel_2008_Conference.
להפתעתי, הגיעו משתתפים רבים.
את דויד מובשוביץ ראיתי ואף שוחחתי עמו.
את דורון אברם דוקא לא ראיתי שם.
שוחחתי עם עמיחי שולמן מאימפרבה ושאלתי שאלות רבות על יכולות ה-database firewall שלהם ועל השילוב בין database firewall לבין web application firewall. לדבריהם זאת נקודת מכירה חזקה ללקוחות שמעוניינים במענה לרגולציה. בפרט הוא שמח לפרט על היכולת שלהם לקשר בין זהות משתמש ביישום הווב לבין הפעולות שלו במסדי נתונים שהיישום עושה בהם שימוש.
למדתי מאנשי IBM על החידושים ב-appscan וגיליתי שהם עדיין יודעים מעט מאד על XML ועל web services ושישנן התקפות, להן ניתן לחבר חתימות, שהם אינם מודעים להן או שטרם טרחו לעדכן בהן את הגרסות של התוכנה.
שאר החברות המציגות לא היו מעניינות לעבודתינו בחברה אז אחסוך את הרשמים שלי.
הנה מעט על אודות ההרצאות שבהן השתתפתי:
Web Application Security and Search Engines – Beyond Google Hacking (download ppt)
Amichai Shulman, Imperva
Amichai Shulman, Imperva
העיקר בהרצאה לדעתי היה שגוגל, ומנועי חיפוש אחרים, זוכר הכל ולאורך זמן כך שזליגת מידע מארגון היא חמורה מאד ושניתן לקבל מידע מארגונים מבלי אפילו לגשת אליהם. כל מה שצריך לעשות זה לדעת מה לחפש וכיצד וגוגל (או מנוע חיפוש אחר) כבר יעבוד בשבילך. עמיחי שולמן הציג כיצד הוא מקבל רשימות של מספרי ביטוח לאומי אמריקניים של אנשים חיים ושל מתים בקלות מדהימה. הוא גם לימד כמה טריקים בשאילתות גוגל (בטח אפשר לראות במצגת). עוד הוא דיבר על אוטומציה שהופכת את הסיפור קל ופשוט לתוקפים. מאידך הוא סיפר על הקשיים שיש למי שרוצה לוודא שאין מידע רגיש שלו זמין בידי מנועי חיפוש (הם מגבילים אוטומציה וכמות/קצב בקשות לפי מקור/לקוח). הוא תיאר תהליך שכדאי לבצע כדי לוודא שמידע רגיש של ארגון לא זלג החוצה (הסרתו ממנועי החיפוש זה סיפור אחר והוא לא התייחס אליו). בהמשך הראה עמיחי שולמן כיצד ניתן להפיץ רוגלה (spyware), וירוסים ובאופן כלל נוזקה (מלשון נזק, כמובן, המונח הלועזי הוא malware . אשר מציע תוכמה , מלשון תוכנה מתחמנת, או אולי מונח טוב ממנו הוא זדונה, מלשון זדון כמובן. אורנה מציעה שהידה. דימה מציע נזקוד). דוגמה אחת שהוא נתן היתה להוסיף קישור עם XSS לאתר פופולרי או לאתר שמאפשר הוספת קישורים על ידוענים ונושאים "חמים" אחרים. הנחת היסוד היא שחיפושים על הנושאים שללו בגוגל ידורגו בין הראשונים בתוצאות החיפוש (בעקבות הדירוג הגבוהה של האתר שאליו נוסף הקישור). אני חשבתי על אמצעי אחר: להשתמש ב-google add url (כמובן יש גם למנועי חיפוש אחרים מנגנון כזה) כדי לגרום ל-google crawlers להריץ את ה-URLים המזיקים שלי ולעייל ולמפתח (לאנדקס, to index) אותם למפתח החיפוש שלו. עוד הראה עמיחי שולמן כיצד להשתמש במנגנוני הענישה של גוגל (שמשמשים להפחית נסיונות לדירוג לא הוגן או לפרסום לא הוגן) כדי להוריד למתחרים את הדירוג שלהם בגוגל (למשל ע"י שכפול התכנים של המתחרה באתר משלי וכך האתר המקורי שלו יוענש על תוכן משוכפל). לסיום, הציג שולמן את ה-Search of Death שבעצם מראה איך משתמשים בגוגל כדי לגרום למשתמשים תמימים לתקוף אתר בשבילך.
No More Signatures: Defending Web Applications from 0-Day Attacks with ModProfiler Using Traffic Profiling
Ivan Ristic, Breach Security
Ivan Ristic, Breach Security
בהמשך השתתפתי בהרצאתו של איבן רזניק מבריץ' שדיבר (באופן די משעמם לטעמי) למה positive security policy ל- web application firewall זה דבר טוב ושיש דבר כזה עכשיו ב-mod security שהוא אחר מהמפתחים שלו. הוא סיפר שיש להם אלגוריתמי למידה (מזכיר לכם את Policy Builder של ASM?) זה כונה על ידו בשם mod profiler. בבלוג של בריץ' ניתן לקרוא קצת יותר על ההרצאה (אולי הוא גם יעלה שקפים ואז תוכלו לקרוא יותר). דבר נחמד שנראה שנלקח כנראה בחשבון במימוש שלהם והוא מתבקש הוא התחשבות בשמות שונים לאותו דף/אובייקט/עמוד כך שלמשל www.foo.com ו-foo.com/index.html הן כתובות שונות לאותו המשאב. הרהרתי בהרצאה שאם הכלי האוטומטי שלהם ללמוד positive security policy יהיה שווה משהו, וודאי חברות מסחריות שמפתחות ומייצרות web application firewall תפתחנה כלי המרה מפורמט ה-policy של mod profiler לפורמט הפנימי שלהן לצרכי ייבוא ואולי אפילו לטובת בדיקה או שיפור אוטומטי של ה-policy שלהן לעומת זה שנבנה בכלים חפשיים.
בהמשך עברתי להשתתף בהרצאתו של דויד מובשוביץ. הכתה שלו היתה "מפוצצת" באנשים. רבים באו לשמוע את מה שהיה לומר לו על Ajax ורבים נשארו לעמוד או לשבת על הרצפה. לצערי, הוא השקיע את כל ההרצאה במבוא ובתשתית הסבר לעיקר אך הוא לא הספיק להגיע לעיקר, פירוט התקפות ובעיות אבטחה. הוא רק הספיק להסביר שהטכנולוגיה מאפשרת בקלות יתירה לגנוב מידע מ-, לרגל ולאסוף מידע על ארגונים רק מרגע שעובד בחברה גולש לדף שיש בו שימוש ב-Ajax. כבר המלצתי על Bulletproof Ajax בתור ספר מצויין (קל לקרוא, מסביר לעניין ונותן דוגמאות יפות) על Ajax.
ההרצאה הבאה היתה מעניינת מאד עבורי. יולי סטרמובסקי אחד משני מפתחים של GreenSQL, שהוא database firewall תחת רשיון GPL. יפה מאד לראות מה ניתן להשיג בזמן פיתוח סביר של שני אנשים בזמן הפנוי (שניהם אנשים עסוקים). GreenSQL תומך כרגע רק בתחביר ובפרוטוקול התקשורת של MySQL ועובד תחת לינוקס. אהבתי לראות את מנגנון הלמידה שבונה positive security policy למה שהוא מכנה statement patterns או כך זכרתי שהוא כינה את זה. הרעיון פשוט, בעת שהמערכת "לומדת" מניחים שהשאילתות למסד הנתונים כולן שפירות ולכך ניתן להסיק תבניות של שאילתות ולהכניסן ל-policy. כמובן, שלא די שאותן שאילתות תהיינה שפירות, הן גם צריכות להיות מייצגות. יולי שמע הצעות מהקהל לשיתוף פעולה עם mod security. בפרט, הציעו שה-web application firewall, למשל mod security, יסמן metacharacters, לרבות גרש (') וגרשיים (") ע"י הערות או באמצעי אחר וכך ה-database firewall יוכל להבדיל בין metacharacters שקיימים מראש בשאילתה וכאלה שנכנסו כתוצאה מטקסט שהוכנס ע"י משתמש בטופס או בקישור. הוא סיפר בתמורה ששיתוף פעולה בין database firewall לבין web application firewall כבר מבוצע במוצרי אימפרבה (אולם לא ברור שהם משתמשים ברעיון הזה או לא). מעניין!
ההרצאה הבאה בה השתתפתי היתה של שי כהן מהאקטיקס. הבעיה שהוא מנסה לפתור: איך לפענח ולצפות ולשנות מבני נתונים כאשר פרוטוקול העברת המידע אינו סטנדרטי (תחשבו Ajax, או serialization של מבני נתונים ואובייקטיטם בג'אווה, וכמובן יש עוד דוגמות רבות שמתאימות). הוא כותב תכנית בג'אווה ובה הוא קורא stream של מידע מ-socket. עתה בלולאה הוא מנסה לקרוא אובייקט אחד אחרי השני מתוך זרם המידע ולהציב באובייקט שהוא כנראה שגוי (הוא השתמש ב-string). כתוצאה מכך, ג'אווה שולחת exception ובו מפרטת את הטיפוס הנכון של האובייקט. או אז הוא יכול להשתמש באובייקט כרצונו. נכון יש גם reflection. לא לשכוח שהוא משחק בתפקיד ה-pen tester ולא בתפקיד הפורץ כך שיש לו נגישות לכל ה-classes ושתפקידו להצליח להראות שהוא משנה ערכים בצד הלקוח ומקבל שינוי התנהגותי לא רצוי או לא צפוי בצד היישום. אני חושב שהוא הדגים שהוא אדם עם יוזמה ובאותה עת הפגין שידיעותיו בג'אווה לא נרחבות. הרי אם ג'אווה יודעת לומר לו מה המחלקה הנכונה, סימן שגם לו בשיטות מקובלות יש גישה למידע זה (אמרנו כבר reflection? בטח יש שיטות מתועדות מסודרות לעשות את זה, ואם לא, אני סומך על משה פונטש שילמד אותי J). שי הסביר שהחליטו בהאקטיקס שהגיע הזמן לשתף את העולם בתגלית ושלהם יש כבר שיטות מתקדמות יותר (או שכך הבנתי).
ועכשיו להרצאה הכי טובה והכי מרשימה לטעמי בכל הארוע. את ההרצאה המעולה העביר ארז מטולה. הוא הציג ידע רחב ומקיף, הבנה מצויינת של מערכת ההפעלה חלונות ושל כל נושא הדוט נט. הוא הראה כיצד ניתן לתקוף בקלות את התשתית של סביבת הפיתוח של דוט נט, בעצם את קוד המקור (שזמין גם הוא בקלות בצורת msil אחרי disassembly שניתן לבצע בקלות עם כלים שמקבלים ממיקרוסופט) לעקוף את מנגנוני החתימה ולבצע כל פעולה זדונית שנרצה באופן זה בכל קוד דוט נט שיעשה שימוש בתשתיות. שתי דוגמות יפות שהוא הראה הן הכפלת שורות שמודפסות למסך ע"י פקודות הדפסה פשוטות ושתילת reverse shell בכל מקום שרוצים. מאד מצא חן בעיני איך שההרצאה התחילה: היא התחילה ב-code review של כמה שורות קוד פשוטות שכולם באולם היו משוכנעות שהן תדפסנה hello world אך בפועל הן הדפיסו את השורה פעמיים. מה גרם לכך ש-code review ע"י מקצוענים ועוד קהל גדול שלהם שעבר שורה שורה לא מצע את הסיבה? זה משום שהתוקף שינה את תשתיות השפה, מה שלא בודקים ב-code review ומשהו שסומכים איתו על מנגנון החתימה של מיקרוסופט. אני ממליץ מאד למתעניינים לצפות במצגת ועוד ללמוד על זה מארז מטולה בהרצאות מתוכננות שלו על זה: אחת מהן במסגרת Microsoft's .NET security usergroup והשנייה בישראCON.
ההרצאה הכי משעממת היתה על נושא דווקא מעניין, אבל העביר אותה בשעמום תהומי, רונן בכר. השעמום היה מפליץ (מעורר פלצות, ראו הסבריו של הד"ר אבשלום קור). מה למדנו? שאם נותנים לך אפשרות לשנות את ה- flash reader שלך, אז אתה יכול לבצע קירוב של state (כמו אובייקט גלישה בדפי HTML, כמו מה קורה כשלוחצים על כפתור או ממלאים טופס וכו'), והוא מסביר, מאד בכלליות איך. ההסברים היו כ"כ כללים עד שלא היו מעניינים כלל. חבל. היה פספוס. לא הספקתי לשאול אותו אם ניתן להמיר flash לפורמט ה-XMLי שלו ל-MXML.
לסיום היו הרצאות בזק:
אבי ויסמן סיפר על IFIS ולמה חשוב להצטרף ולמה כדאי. באמת נשמע כדאי. אני מקווה שבעבודה יחליטו לשלוח אותנו לקורסים (רמז! רמז!)
שי צלליכין ואבי דוגלן מקומסק הציגו נפלא (באמת הרצאה לתפארת) למה קפצ'ה (cptcha) פרוץ לגמרי ומהווה בעייה פתורה ואין סיבה לטרוח להשתמש ואפילו מסוכן להשתמש. אני מקווה שהם יעלו את המצגת לאתר הכנס כדי שתוכלו לקרוא ולהחכים. אם יהיה עניין אשמח להסביר למי שרוצה.
אח"כ יוסי אורן הראה בשלוש דקות איך מצליחים למצוא vulnerability ולהפוך אותו ל-exploit בשניות (הכי ארוך לקח מאה וחמש שניות) מתוך עדכוני אבטחה ועדכונים אחרים של הפצות תוכנה, למשל של מיקרוסופט. זה היה כביר! קוראים לזה APEG.
יניב מירון לסיכום בהרצאה מאכזבת על UTF-7 ובעיית אבטחה. זה היה משהו שגרתי צפוי ולא מושקע במיוחד שלא ברור היה מה הנזק שנגרם. הדבר היחידי שהיה מאחורי זה היה העובדה ששרתי apache רגישים לזה. אבל ממש לא הבנתי את הקטע והוא לא ידע להסביר. אולי אמצא על זה פירוט באינטרנט בהמשך ואבין יותר.
(עדכון: 16.9.2008 20:00: קיבלתי טלפון נעלב ש"השמצתי" את יניב מירון. אז חזרתי לקרוא על מה שהוא הסביר. לא גיליתי שומדבר שלא נאמר בהרצאה: הוא הראה שאפשר לקבל דף forbidden ולקבל XSS כשגולשים לדומיין ומשתמשים במחרוזת כלשהי כנראה ארוכה מספיק שמסתיימת בתגי script כאשר סימני ה-> וה-< מיוצגים ב-UTF7. עדיין, הוא לא הסביר את התכונות של המחרוזת, ולא פיתח. אפילו בבאגטראק הוא כותב שהוא השאיר את העבודה לאחרים. אז אני לא מבין ממה יש להעלב. בכל מקרה: סליחה.)
זהו.
מאד התרשמתי ממה שהציגו ועוד בכנס חינם – כל הכבוד.
שלמה