בס"ד
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

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


  • 70 Views
  • Uploaded on
  • Presentation posted in: General

בס"ד. אביב התשס"ט 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6564625

בס"ד

אביב התשס"ט

236349

COVERT CHANNELS

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

מגישים:

קופרמן יוסי

בוכריס זוהר


6564625

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)


6564625

תוכן ענינים:

  • סקר ספרות

  • השיטה שלנו

    • שלבי התקדמות הרעיון

    • הסבר כללי + דוגמת הרצה

    • תוספות

    • יתרונות

    • צורת מימוש

  • האתגר ותוצאותיו

    • הגלאיים – הסבר קצר

    • תוצאות

  • ניתוח תוצאות ורעיונות להמשך


6564625

סקר ספרות

  • 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


Correlating packet timing with memory content detects ip covert timing channels

1

0

Correlating Packet Timing with Memory Content Detects IP Covert Timing Channels

  • אֶנְטְרוֹפְּיָה-"מדד לאי סדר של מערכת חומרית המורכבת

    מחלקיקים רבים"

  • שיטה זו מבוססת על:

    • מדידת זמני הגעת החבילות

    • מניחים שהתשדורת מתפלגת נורמאלית (תוחלת וסטיית תקן )

    • מתקבל פעמון גאוס כלשהו

  • זמן שליחת החבילות יקבע לפי ההודעה הרצויה

    • לפי הביט הרצוי נקבע צד

  • ההיסטוגרמה נשמרת


6564625

השיטה שלנו - התחלה

התחלנו לחשוב איך אפשר לשפר את השיטה הנפוצה,

ניתוח לפי היסטוגרמה של זמני הגעת החבילות

נמנה חלק מיתרונותיה וחסרונותיה:

  • יתרונות

    • שומרת על ההיסטוגרמה הכללית

    • לא מעכבת חבילות יותר מדי

    • קלה לתכנון וביצוע

  • חסרונות

    • קלה לזיהוי ע"י בדיקת רצפי זמנים

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

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

    • לא שומרת על יחס של גודל-זמן

    • לא מאפשרת שמירה על יחסי זהות בין רצפים של חבילות

NEXT


6564625

השיטה שלנו - המשך

  • ניצור טבלת זמני חבילות כפונקציה של גודל

  • נמיין לפי גדלי החבילות, לכל טווח גדלים נבנה היסטורגמה

  • בהינתן הגודל והביט שרוצים לשלוח נקבע זמן החבילה

  • יתרונות

    • שומר על היחס בין זמן לגודל

    • היסטוגרמה פר גודל נשמרת

  • חסרונות

    • ההיסטוגרמה הכללית לא נשמרת

    • לא נשמר היחס בין רצפים של חבילות

    • ניסיון לשלב בין שיטות שונות לא צלח

NEXT


6564625

השיטה שלנו – דה פקטו

  • מצאנו שיטה שמתגברת על רוב החסרונות ומקיימת את היתרונות

  • ניצור טבלה של גדלי החבילות כפונקציה של זמן

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

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

  • זמני החבילות ישלחו בדיוק כפי שהם הגיעו

  • גודלי החבילות יהיו כמעט זהות לתעבורה התקינה לפי FIFO

    במילה אחת: פרמוטציה_על_גדלי_החבילות


6564625

שלבי התהליך

  • שלב הלמידה - Filter

    • כל חבילה שתתקבל תשמר במטריצה לפי הזמן והגודל שלה

    • מטריצה זו נותנת לנו היסטוגרמה מדויקת לגבי הקורולציה שבין זמן לגודל

  • שלב הניתוח - Analyzer

    • חישוב תוחלת גדלי החבילות

    • יצירת מקרא, זמן – גודל ממוצע

  • שני שלבים אלו מבוצעים ע"י שני הצדדים

    על מנת שהם יהיו מתואמים ביניהם

    Peer & Trojan


6564625

שלבי התהליך

  • שלב השידור – Encoder & Transmitter

    • נאגור לנו את החבילות במחסנית (למשך שניה)

    • השליחה תתבצע לפי הזמן שבראש התור

    • החבילה שתשלח תקיים:

      • זמן ההגעה יהיה אותו הזמן

      • המוקדמת מבין החבילות שגודלה מתאים להודעה

        ( כך שלא יהיה עיכוב גדול מדי של החבילה)

    • המאזין שיקבל את החבילה יקבע מהו הביט שהתקבל באותו האופן, לפי זמן הגעת החבילה והמקרא


6564625

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"


6564625

דוגמת הרצה

  • נניח שההודעה הסמויה הינה : 01011

  • כעת המאזין בצד השני מחזיק אף הוא את אותו המקרא

  • החבילה הראשונה הגיעה

    • זמן 90 גודל 455

    • תוחלת עבור זמן 90 היא 742

    • הגודל קטן מהתוחלת ולכן "0" לוגי

  • החבילה השניה הגיעה

    • זמן 0 גודל 1235

    • תוחלת עבור זמן 0 היא 651

    • הגודל גדול מהתוחלת ולכן "1" לוגי

  • וכך הלאה ...

חבילה התקבלה:

גודל 455

זמן 90

חבילה התקבלה:

גודל 1235

זמן 0

0

1

0 1 1

SECRET MESSAGE :


6564625

השיטה שלנו - תוספות

  • מניעת רצף ביטים זהה

    • לא נרצה רצף של אחדים/אפסים, שלא נסטה מההתפלגות ושלא יתרוקן לנו המאגר

    • כל רצף של 5 ביטים למשל "11111" נשלח אחריו "0" בתור חבילות דמה לאיזון, וה Peer יתעלם מהן

  • לא לעכב חבילות יותר מדי

    • נשמור את זמן ההגעה של כל חבילה ושעון כללי כך שאם אנחנו חורגים ממסגרת הזמן נשלח אותה כאחת מחבילות הדמה והמאזין יתעלם ממנה

  • Bit stream – אמניות תשדורת הנתונים

    • כל ביט שנרצה לשלוח נשלח אותו 3 פעמים

    • יתרון:

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

    • חסרונות:

      • פוגם בהיסטוגרמה

      • אנחנו לא שומרים על היחס בין הזמן לגודל המקוריים של התעבורה התקינה

      • אנחנו לא שומרים על יחס של רצפי חבילות

  • מנגנון Injection – הזרקת חבילות "דמה"

    • במידת הצורך נשלח חבילות דמה עבור ביטים שלא מצאנו חבילות מתאימות עבורם

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


6564625

השיטה שלנו-יתרונות

  • אין שינוי בזמני החבילות בכלל!!!

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

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

  • שמירה על האנטרופיה הנכונה של זמני החבילות

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

  • שמירה על רצפי זמנים בין חבילות

    • שוב כל גלאי שינסה לזהות תעבורה לא תקינה על בסיס הזמנים של רצפי חבילות ( כל 3,5 חבילות ) יכשל

  • שמירה על היחס בין גודל-זמן תקין של התעבורה

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

  • שמירה על התפלגות גודלי החבילות ביחס לזמן

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


6564625

השיטה שלנו - מימוש

  • מבנה נתונים:

    • מטריצה זמן x גודל

    • מקרא (מערך), תוחלת עבור כל יחידת זמן

    • תור FIFO

  • פלטפורמת עבודה:

    • סביבת פיתוח Microsoft Windows XP

    • שפת תכנות:C++

  • צורת מימוש:

    • שלושה תהליכים , לכל אחד מהרכיבים השונים

    • Windows Sockets – using UDP protocol


6564625

השיטה שלנו – רכיבי התוכנה

הפרויקט בנוי מארבעה רכיבי תוכנה

  • Traffic Generator

    • תפקידו הוא לשדר חבילות לTrojan לפי דרישה מקובץ נתון

    • נשתמש בפרוטוקול UDP מעל port שנבחר

  • Trojan

    • לסוס הטרויאני יש שני מצבים

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

      • מצב פעיל – משדר את ההודעה הסמויה באמצעות הנתונים שהוא אסף דרך הערוץ הסמוי

  • Detector

    • ממומש על ידי הצוות שמגן

  • Peer

    • גם כאן יש שני מצבים

      • מצב למידה בדומה ללמידה שמבצע ה Trojan

      • מצב פעיל – בו הוא מפענח את התשדורת הסמויה שהוא מקבל


6564625

תוצאות הניסוי

  • אתגר ראשון

    • טעות קוד גרמה גם לשיטה מבוססת זמן לזהות אותנו

    • בנוסף ה 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


6564625

ניתוח תוצאות , שיפורים ורעיונות להמשך

  • מסקנות מהאתגר:

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

    • השימוש בוידוא הגעת החבילות בעזרת מנגנון ה BitStream אולי שיפר במעט את איכות ההודעה שהתקבלה אבל פגם משמעותית בזה שה Trojan שלנו נהיה קל לזיהוי

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

  • רעיונות לשיפור:

    • ניתן לבצע קוד לתיקון שגיאות פשוט יחסית שיתקן את אותם ביטים בודדים שהתקבלו לא נכון

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

  • סיכום:

    • נחשפנו לחומר חדש ומעניין ולתחום שלא היה מוכר לנו

    • גילינו שיש הרבה מאוד מאמרים וכתבי עט בנושא


  • Login