1 / 18

פרויקט באבטחת מידע

בס"ד. אביב התשס"ט 236349. COVERT CHANNELS. פרויקט באבטחת מידע. מגישים: קופרמן יוסי בוכריס זוהר. COVERT CHANNEL "Communication channel that can be exploited by a process to transfer information in a manner that violates a system's security policy". מטרת הפרויקט

Download Presentation

פרויקט באבטחת מידע

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. בס"ד אביב התשס"ט 236349 COVERT CHANNELS פרויקט באבטחת מידע מגישים: קופרמן יוסי בוכריס זוהר

  2. COVERT CHANNEL"Communication channel that can be exploited by a process to transfer information in a manner that violates a system's security policy" • מטרת הפרויקט • יצירת ערוץ תקשורת סמוי והעברת מידע מסווג • דגשים שלנו לפרויקט • מניעת הגילוי • תעבורה תקינה של מידע (Correctness) • כמות קיבול התקשורת (Throughput)

  3. תוכן ענינים: • סקר ספרות • השיטה שלנו • שלבי התקדמות הרעיון • הסבר כללי + דוגמת הרצה • תוספות • יתרונות • צורת מימוש • האתגר ותוצאותיו • הגלאיים – הסבר קצר • תוצאות • ניתוח תוצאות ורעיונות להמשך

  4. סקר ספרות • Timing channels using page fault • TCP/IP Timing Channels • Model-Based Covert Timing Channels: Automated Modeling and Evasion • Correlating Packet Timing with Memory Content Detects IP Covert Timing Channels • Steganography

  5. 1 0 Correlating Packet Timing with Memory Content Detects IP Covert Timing Channels • אֶנְטְרוֹפְּיָה-"מדד לאי סדר של מערכת חומרית המורכבת מחלקיקים רבים" • שיטה זו מבוססת על: • מדידת זמני הגעת החבילות • מניחים שהתשדורת מתפלגת נורמאלית (תוחלת וסטיית תקן ) • מתקבל פעמון גאוס כלשהו • זמן שליחת החבילות יקבע לפי ההודעה הרצויה • לפי הביט הרצוי נקבע צד • ההיסטוגרמה נשמרת

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

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

  8. השיטה שלנו – דה פקטו • מצאנו שיטה שמתגברת על רוב החסרונות ומקיימת את היתרונות • ניצור טבלה של גדלי החבילות כפונקציה של זמן • נחשב התפלגות וסטיית תקן של הגדלים עבור כל יחידת זמן • בהינתן הזמן הרצוי והביט הרצוי נקבע את גודל החבילה שנשלח • זמני החבילות ישלחו בדיוק כפי שהם הגיעו • גודלי החבילות יהיו כמעט זהות לתעבורה התקינה לפי FIFO במילה אחת: פרמוטציה_על_גדלי_החבילות

  9. שלבי התהליך • שלב הלמידה - Filter • כל חבילה שתתקבל תשמר במטריצה לפי הזמן והגודל שלה • מטריצה זו נותנת לנו היסטוגרמה מדויקת לגבי הקורולציה שבין זמן לגודל • שלב הניתוח - Analyzer • חישוב תוחלת גדלי החבילות • יצירת מקרא, זמן – גודל ממוצע • שני שלבים אלו מבוצעים ע"י שני הצדדים על מנת שהם יהיו מתואמים ביניהם Peer & Trojan

  10. שלבי התהליך • שלב השידור – Encoder & Transmitter • נאגור לנו את החבילות במחסנית (למשך שניה) • השליחה תתבצע לפי הזמן שבראש התור • החבילה שתשלח תקיים: • זמן ההגעה יהיה אותו הזמן • המוקדמת מבין החבילות שגודלה מתאים להודעה ( כך שלא יהיה עיכוב גדול מדי של החבילה) • המאזין שיקבל את החבילה יקבע מהו הביט שהתקבל באותו האופן, לפי זמן הגעת החבילה והמקרא

  11. 651 דוגמת הרצה 742 • נניח שההודעה הסמויה הינה : 01011 • אחרי שבשלב הלמידה יצרנו לנו מקרא • ואירגנו לנו קצת נתונים התחלתיים כדי לרוץ • נסתכל על הראשון במחסנית : • זמן : 90 גודל : 1375 • נבדוק מול המקרא שלו מה התוחלת של 90 • התוחלת היא : 742 • אנחנו מעונינים לשלוח את הביט "0" ולכן נרצה לשלוח חבילה שגודלה קטן מ 742 , נחפש חבילה אחרת בזמן 90 רק עם גודל קטן מ 742 • מצאנו חבילה שגודלה 455 . נחליף ביניהם ונשלח אותה • וחוזר חלילה ... עבור זמן 0 התוחלת היא 651 • אנחנו מעוניינים לשלוח את הביט "1" ואכן החבילה הבאה בתור גודלה גדול מ651 ולכן נשלח אותה ! כלומר כל חבילה שגודלה מעל 742 תחשב כ- "1" ואחרת "0" חבילה נשלחה: גודל 455 זמן 90 חבילה נשלחה: גודל 1235 זמן 0 כלומר כל חבילה שגודלה מעל 651 תחשב כ- "1" ואחרת "0"

  12. דוגמת הרצה • נניח שההודעה הסמויה הינה : 01011 • כעת המאזין בצד השני מחזיק אף הוא את אותו המקרא • החבילה הראשונה הגיעה • זמן 90 גודל 455 • תוחלת עבור זמן 90 היא 742 • הגודל קטן מהתוחלת ולכן "0" לוגי • החבילה השניה הגיעה • זמן 0 גודל 1235 • תוחלת עבור זמן 0 היא 651 • הגודל גדול מהתוחלת ולכן "1" לוגי • וכך הלאה ... חבילה התקבלה: גודל 455 זמן 90 חבילה התקבלה: גודל 1235 זמן 0 0 1 0 1 1 SECRET MESSAGE :

  13. השיטה שלנו - תוספות • מניעת רצף ביטים זהה • לא נרצה רצף של אחדים/אפסים, שלא נסטה מההתפלגות ושלא יתרוקן לנו המאגר • כל רצף של 5 ביטים למשל "11111" נשלח אחריו "0" בתור חבילות דמה לאיזון, וה Peer יתעלם מהן • לא לעכב חבילות יותר מדי • נשמור את זמן ההגעה של כל חבילה ושעון כללי כך שאם אנחנו חורגים ממסגרת הזמן נשלח אותה כאחת מחבילות הדמה והמאזין יתעלם ממנה • Bit stream – אמניות תשדורת הנתונים • כל ביט שנרצה לשלוח נשלח אותו 3 פעמים • יתרון: • אפשר לדעת בוודאות שמה שקיבלנו הוא אכן מה שהתכוונו לשלוח, גם אם נפגם ביט כלשהו בדרך • חסרונות: • פוגם בהיסטוגרמה • אנחנו לא שומרים על היחס בין הזמן לגודל המקוריים של התעבורה התקינה • אנחנו לא שומרים על יחס של רצפי חבילות • מנגנון Injection – הזרקת חבילות "דמה" • במידת הצורך נשלח חבילות דמה עבור ביטים שלא מצאנו חבילות מתאימות עבורם • בהסתברות נמוכה מאוד נשתמש במנגנון זה על מנת שלא נפר את האיזון הקיים

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

  15. השיטה שלנו - מימוש • מבנה נתונים: • מטריצה זמן x גודל • מקרא (מערך), תוחלת עבור כל יחידת זמן • תור FIFO • פלטפורמת עבודה: • סביבת פיתוח Microsoft Windows XP • שפת תכנות:C++ • צורת מימוש: • שלושה תהליכים , לכל אחד מהרכיבים השונים • Windows Sockets – using UDP protocol

  16. השיטה שלנו – רכיבי התוכנה הפרויקט בנוי מארבעה רכיבי תוכנה • Traffic Generator • תפקידו הוא לשדר חבילות לTrojan לפי דרישה מקובץ נתון • נשתמש בפרוטוקול UDP מעל port שנבחר • Trojan • לסוס הטרויאני יש שני מצבים • מצב למידה – בו הוא בוחן את התעבורה הנורמאלית ולומר את מאפיניה, במצב זה הוא שקוף ומעביר הכל כמו שמגיע אליו • מצב פעיל – משדר את ההודעה הסמויה באמצעות הנתונים שהוא אסף דרך הערוץ הסמוי • Detector • ממומש על ידי הצוות שמגן • Peer • גם כאן יש שני מצבים • מצב למידה בדומה ללמידה שמבצע ה Trojan • מצב פעיל – בו הוא מפענח את התשדורת הסמויה שהוא מקבל

  17. תוצאות הניסוי • אתגר ראשון • טעות קוד גרמה גם לשיטה מבוססת זמן לזהות אותנו • בנוסף ה BitStream פעל, כך שזוהינו גם ע"י שיטות נוספות • 100% נכונות מידע • אתגר שני • BitStream פעיל • נפלנו די מהר על השיטות שמסתמכות על רצפים של גדלי חבילות (שיטה 1,2) מכיוון שה BS מאלץ שליחה של כל ביט 3 פעמים • 100% נכונות מהמידע שהתקבל אצל ה PEER • BitStream כבוי • לא היה זיהוי של תעבורת רשת לא חוקית(למעט גלאי אחד , וזאת אחרי 3642 חבילות!) • יותר מ 98% נכונות מידע שהתקבל אצל ה PEER אתגר שני – ניסוי שלישי פעילBitStream לא זוהינו (רק שיטה 3 פעילה) 7646 324 אתגר שני – ניסוי חמישי כבויBitStream לא זוהינו (שיטה 1 כבויה) 7646 478 אתגר שני – ניסוי רביעי כבויBitStream זוהינו ע"י שיטה 1 3642 228 אתגר שני – ניסוי ראשון פעילBitStream זוהינו ע"י שיטה 2 550 49 אתגר שני – ניסוי שני פעילBitStream זוהינו ע"י שיטה 1 2913 135

  18. ניתוח תוצאות , שיפורים ורעיונות להמשך • מסקנות מהאתגר: • אכן שיטות שהסתמכו על זמני חבילות לא זיהו שום תוכנה זדונית או תעבורה לא תקינה ברשת • השימוש בוידוא הגעת החבילות בעזרת מנגנון ה BitStream אולי שיפר במעט את איכות ההודעה שהתקבלה אבל פגם משמעותית בזה שה Trojan שלנו נהיה קל לזיהוי • בכך שאילצנו את עצמנו לשלוח כל ביט 3 פעמים ( BS ) יצרנו לנו פערים הן ביחסים בין גודל לזמן והן בשמירה על רצפי החבילות • רעיונות לשיפור: • ניתן לבצע קוד לתיקון שגיאות פשוט יחסית שיתקן את אותם ביטים בודדים שהתקבלו לא נכון • עקב שגיאת קוד שהתגלתה אחרי האתגר השני, אחרי כל ביט של ההודעה נשלח ביט דמה נוסף, היינו צריכים להמעיט יותר במספר חבילות הדמה ששלחנו אולי כך היינו פחות חשופים • סיכום: • נחשפנו לחומר חדש ומעניין ולתחום שלא היה מוכר לנו • גילינו שיש הרבה מאוד מאמרים וכתבי עט בנושא

More Related