200 likes | 323 Views
18/03/2013. Project in computer security (236349) Hacking and Information #2- Trojan downloader. Students : Ran Koretzki , Sheli Ashkenazi. Supervisor: Amihay Shulman. מבוא. בכל יום אלפי תוכנות זדוניות ( malware ) חדשות נוצרות ומופצות ברחבי רשת האינטרנט.
E N D
18/03/2013 Project in computer security (236349)Hacking and Information #2- Trojan downloader Students: Ran Koretzki, Sheli Ashkenazi. Supervisor:AmihayShulman.
מבוא • בכל יום אלפי תוכנות זדוניות (malware) חדשות נוצרות ומופצות ברחבי רשת האינטרנט. • לחברות האנטי וירוס יש קשיים לגלות וירוס חדש. בדרך כלל לוקח להן 4 שבועות לגלות וירוס חדש מהרגע בו שוחרר לאינטרנט. • רק לאחר הגילוי חברות האנטי וירוס מעדכנות את הלקוח בקובץ חתימות אשר מסוגל לאתר ולנטרל את הוירוס. • הבעיה שלפעמים זה מוביל לעיתים קרובות לחשד בתוכנות לגיטימיות בתור ה-malware (false positive). • בפרוייקט זה אנחנו נבצע חקירה של התנהגות נוזקה חדשה, בדומה למה שעושות חברות האנטיוירוס.
סביבת המעבדה • Windows OS : XP, 2003 server, 7,8 on VMWare Workstation. • Charles. • Wireshark. • 010 Editor. • Process monitor. • Various online network tools.
פענוח התעבורה המוצפנת • תוכנת ה-malware מקבלת מהרשת הודעות קצרות מוצפנות משרתי השליטה והבקרה שלה (C&C). • לפי ההשערה שלנו זו רשימה עדכנית של שרתי C&C עם הפורטים שאיתם הם עובדים. • דוגמא להודעה כזו
פענוח התעבורה המוצפנת -המשך • אנו לקחנו את השורה הראשונה(16 בתים ראשונים) מכמה הודעות שונות, מאותה דגימה של הוירוס. • נסינו לראות התאמות מול רשימת כתובות ה-IP שאיתה ה-malware יצר קשר. • התוצאה היא הטבלה הבאה :
פענוח התעבורה המוצפנת -המשך • מצאנו בטבלה חזרות בבתים ספציפים. • הנחנו כי מדובר בנקודה המפרדה בין בתים של כתובות IP. • התחלנו למצוא התאמה מרשימת כתובות ה-IP שידוע לנו שה-maleware מתקשר איתן.
פענוח התעבורה המוצפנת -המשך • מצאנו רק 2 כתובות רשת מן הרשימה המתאימות למבנה כתובת ה-IP שהנחנו. והן : 91.217.162.127 ו- 66.229.239.34 . • הנחנו בנוסף כי מדובר בהצפנת xor פשוטה ולפי הידוע לנו הנוסחא היא : • לכן כדי למצוא את המפתח חישבנו : *כאשר m היא כתובת ה-IP המפורשת ו-c הוא הקוד המוצפן. התוצאה שקיבלנו מפתח שהקידוד שלו הוא :
פענוח התעבורה המוצפנת -המשך • וידוא המפתח נעשה ע"י פענוח שאר ההודעות איתו וקבלת כתובות IP תקינות שמרביתן הן מרשימת השרתים איתם תקשר ה-malware. • בשלב זה אנו פענחנו רק את הבתים הראשונים של ההודעה, את שאר ההודעה פענחנו ע"י : • ניצול השוני באורכי כתובות ה-IP. • מציאת כתובות שהתאימו מן הרשימה הידועה לכתובות IP חלקיות. • גזירת המשך המפתח ע"י פעולות xor. • וידוא המשך המפתח ע"י פענוח הודעות נוספות בעזרתו.
פענוח התעבורה המוצפנת - סיכום • הצלנו לפענח בצורה זו כ-100 בתים ראשונים של המפתח. • המפתח נראה רנדומי וארוך מאד (לא מצאנו מחזוריות). • נכשלנו לפענח עם המפתח הזה הודעות מוצפנות בדגימות האחרות של ה-malware.
ניתוח מפת הרשת של שרתי השליטה והבקרה • ערכנו ניתוח של כל כתובות ה-IP שמצאנו. • מצאנו שהכתובות מפוזרות ברחבי העולם וישנם כתובות פיקטיביות שהן אינן שייכות לשרתי שליטה ובקרה ונועדו לבלבל את חוקרי אבטחת המידע. • גילינו שהם אינם שייכים ע"י ניטור התשובה מהכתובות הללו וקבלת הודעת שגיאה מהם על ניסיון התחברות של ה-malware.
מודולים שה-malware מוריד • ה-malware מוריד מודולים בצורה של DLL מוצפן, כאשר אל חלקם מצורף מפתח הפענוח שלהם. • דוגמא : שרת ה-C&C מנחה את ה-malware להוריד DLL ולפענחו עם המפתח 00000e9a
מודולים שה-malware מוריד - המשך • מצאנו את המפתח "האמיתי" ע"י ביצוע xor בין ה-DLL שירד בצורה מוצפנת, לבין DLL סטנדרטי מספריית system32 של windows. • לכל ה-DLL-ים מסוג זה התחלה זהה ולכן מציאת המפתח הייתה פשוטה. • המפתח ה"אמיתי" בדוגמא האחרונה היה 9ae00000 כלומר בסדר הפוך ממה שצוין בתגובה משרת ה-C&C.
מודולים שה-malware מוריד - חקירה • נתמקד על אחד מה-DLL-ים מהדגימות שפענחנו, DLL בשם p3 : • מכיל הפניות למיקומים בדיסק הקשיח בהם דפדפנים שומרים cache של סיסמאות המשתמשים. • לדוגמא : .default\Mozilla\Firefox\Profiles\APPDATA\Mozilla\Firefox\Profiles\ • רשימה של FTP client כגון Filezilla , עם פניה למיקומים שהם שומרים מידע ב-cache שלהם. • ערכים מן ה-Registry. • מכיל רשימה של DLL-ים של המערכת הפעלה כמו Kernal32.dll. • פקודות SQL המעידות על יצירת מסד נתונים בתוך המחשב הנגוע. זה נעשה בעזרת ספריית SQLite . השאילתות מכילות מידע על המשתמש והסיסמאות שלו. • ספריה קריפטולוגית בשם Crypto++.
Client ID • בעת פניה לעדכונים משרתי ה-C&C מבקש ה- client בקשה בפרוטוקול http. • כתובת הבקשה מכילה מחרוזת הכתובה במספרHex די ארוך הנראה אקראי המזהה את ה-client . • מדי פעם ישנו שינוי מינורי בכתובת המבוקשת המציינת מצב כלשהו של ה-client. • http://59.126.131.132:8080/14BB0B27F8097485D869B1C541A86BE61C463D4A09B8A897146D6EB5BE1FFDCEF9ED5DC7E82A6529D80E579BE21BCC54050BFE4A288AEDD365642DE9A42D4986FB0F389E94A369
גילוי מקור ה-Client ID • בשביל לגלות את מקור המידע ממנו ה-malware מייצר את ה-Client ID ערכנו מספר ניסויים על גבי ה-VMware. • בדקנו השפעות של רכיבי חומרה ותוכנה מול שינויים ב- Client ID. • כאשר אפסנו את המערכת כל פעם ע"י שחזור snapshot של המכונה הוירטואלית על מנת לבודד את ההשפעה של הניסויים אחד על השני.
תיאור הניסויים • שינינו פרטי חומרה כגון: זיכרון, נפח אחסון וכרטיסי רשת (למעשה שינוי כתובת ה-MAC) ע"י שינוי הקצאת החומרה למכונה הוירטואלית. • שיננו פרטי תוכנה כגון: תוכנות מותקנות, רישוי מערכת ההפעלה, שם המחשב, כתובת IP, זמן הרצת הוירוס לראשונה והמשתמש המריץ את ה-malware. • בנוסף בצענו התקנות של מערכות הפעלה שונות על אותה מכונה וירטואלית.
מסקנות • הנוזקה מייצרת מזהה יחודי ל-client בהתאם למזהה המשתמש (Security ID) אשר מריץ אותו. שאר הניסויים הראו שלמרכיבים אחרים של תוכנה או חומרה אין השפעה על תהליך יצירת המזהה . הסקנו זאת ע"י כך שיצרנו 2 משתמשים עם אותו שם באותה מכונה וכל אחד קיבל Client ID שונה כאשר הריץ את ה-Malware. • באותו SID הנוזקה משתמשת ליצירת ה- ID של ה-client. ה-SID-ים שמ"ה מייצרת דומים בכל הגירסאות של windows ולכן הנוזקה עובדת בהם באותו דרך.
סיכום • יש מספר דגימות שונות של ה-malware שכל אחת מפותחת מן השנייה. • יש מספר גירסא, למודלים אותה היא מורידה. • רמת ההצפנה והקידוד השתנו בין הדגימות ונהיו קשות לפענוח. • זה מעיד על תחזוק והמשך פיתוח שוטף של הנוזקה. • חלק מההתקפות שראינו שה-malware מסוגלת לבצע הן: גניבת מידע, התקפת DDoS, spam.
מקורות • http://en.wikipedia.org/wiki/Security_Identifier • http://randomthoughtsofforensics.blogspot.co.il/2012_10_01_archive.html • http://www.sophos.com/en-us/threat-center/threat-analyses/viruses-and-spyware/Troj~FakeAV-FXZ/detailed-analysis.aspx • http://www.christoperj.com/2012/08/no-usps-did-not-fail-to-deliver-package.html • http://www.tuicool.com/articles/ZfIbMn