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

18
עעעעעע עעעעעע עעעע עעעעעע: עעעעעע עעעע עעעעעע עעעע דד"דCOVERT CHANNELS דדדד דדדד"ד236349

Upload: onan

Post on 23-Feb-2016

52 views

Category:

Documents


0 download

DESCRIPTION

בס"ד. אביב התשס"ט 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". מטרת הפרויקט - PowerPoint PPT Presentation

TRANSCRIPT

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

מגישים:יוסי קופרמן

בוכריס זוהר

בס"ד

COVERT CHANNELS אביב התשס"ט236349

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כמות קיבול התקשורת )–

תוכן ענינים:סקר ספרות•השיטה שלנו•

שלבי התקדמות הרעיון–הסבר כללי + דוגמת הרצה–תוספות –יתרונות–צורת מימוש–

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

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

סקר ספרות

• 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

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

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

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

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

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

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

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

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

NEXT

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

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

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

NEXT

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

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

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

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

זמן לגודל

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

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

Peer & Trojan

0

* [ , ]N

i i i ii

E L M T L

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

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

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

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

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

דוגמת הרצה01011נניח שההודעה הסמויה הינה : •אחרי שבשלב הלמידה יצרנו לנו מקרא•ואירגנו לנו קצת נתונים התחלתיים כדי לרוץ•נסתכל על הראשון במחסנית : •

1375 גודל : 90זמן : –90נבדוק מול המקרא שלו מה התוחלת של •742התוחלת היא : •" ולכן נרצה לשלוח חבילה 0אנחנו מעונינים לשלוח את הביט "•

רק עם גודל 90 , נחפש חבילה אחרת בזמן 742שגודלה קטן מ 742קטן מ

. נחליף ביניהם ונשלח אותה455מצאנו חבילה שגודלה •651 התוחלת היא 0וחוזר חלילה ... עבור זמן •" ואכן החבילה הבאה 1אנחנו מעוניינים לשלוח את הביט "•

ולכן נשלח אותה !651בתור גודלה גדול מ

742

742כלומר כל חבילה שגודלה מעל 0" ואחרת "1תחשב כ- " "

:חבילה נשלחה455גודל 90זמן

651

651כלומר כל חבילה שגודלה מעל 0" ואחרת "1תחשב כ- " "

:חבילה נשלחה1235גודל

0זמן

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

455 גודל 90זמן –742 היא 90תוחלת עבור זמן –" לוגי0הגודל קטן מהתוחלת ולכן "–

החבילה השניה הגיעה •1235 גודל 0זמן –651 היא 0תוחלת עבור זמן –" לוגי1הגודל גדול מהתוחלת ולכן "–

וכך הלאה ...•:חבילה התקבלה

455גודל 90זמן

:חבילה התקבלה1235גודל

0זמן

SECRET MESSAGE : 0 1 0 1 1

השיטה שלנו - תוספותמניעת רצף ביטים זהה•

לא נרצה רצף של אחדים/אפסים, שלא נסטה מההתפלגות ושלא יתרוקן לנו המאגר– Peer" בתור חבילות דמה לאיזון, וה 0" נשלח אחריו "11111 ביטים למשל "5כל רצף של –

יתעלם מהן

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

נשלח אותה כאחת מחבילות הדמה והמאזין יתעלם ממנה

•Bit streamאמניות תשדורת הנתונים – פעמים3כל ביט שנרצה לשלוח נשלח אותו –יתרון: –

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

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

– הזרקת חבילות "דמה"Injectionמנגנון •במידת הצורך נשלח חבילות דמה עבור ביטים שלא מצאנו חבילות מתאימות עבורם–בהסתברות נמוכה מאוד נשתמש במנגנון זה על מנת שלא נפר את האיזון הקיים–

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

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

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

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

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

לזהות תוכנה זדונית שמעבירה מידע סמוי יכשל

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

חבילות ( יכשל3,5

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

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

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

נשלחות הלאה בסדר שהם הגיעו עד כדי השהייה קלה

השיטה שלנו - מימושמבנה נתונים:•

גודל xמטריצה זמן –מקרא )מערך(, תוחלת עבור כל יחידת זמן–FIFO תור –

פלטפורמת עבודה:•Microsoft Windows XPסביבת פיתוח –++Cשפת תכנות: –

צורת מימוש:•שלושה תהליכים , לכל אחד מהרכיבים השונים––Windows Sockets – using UDP protocol

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

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

לפי דרישה מקובץ נתוןTrojanתפקידו הוא לשדר חבילות ל– שנבחרport מעל UDPנשתמש בפרוטוקול –

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

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

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

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

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

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

תוצאות הניסויאתגר ראשון•

טעות קוד גרמה גם לשיטה מבוססת זמן לזהות אותנו– פעל, כך שזוהינו גם ע"י שיטות נוספותBitStreamבנוסף ה – נכונות מידע 100%–

אתגר שני •–BitStreamפעיל

נפלנו די מהר על השיטות שמסתמכות על רצפים של גדלי חבילות )שיטה •1,2 )

פעמים3 מאלץ שליחה של כל ביט BSמכיוון שה PEER נכונות מהמידע שהתקבל אצל ה 100%•

–BitStreamכבוי חבילות!(3642)למעט גלאי אחד , וזאת אחרי לא היה זיהוי של תעבורת רשת לא חוקית •

PEER נכונות מידע שהתקבל אצל ה 98%יותר מ •

אתגר שני – ניסוי ראשון

BitStreamפעיל 2זוהינו ע"י שיטה

550 49

אתגר שני – ניסוי שני

BitStreamפעיל 1זוהינו ע"י שיטה

2913 135

אתגר שני – ניסוי שלישי

BitStreamפעיל פעילה(3לא זוהינו )רק שיטה

7646 324

אתגר שני – ניסוי חמישי

BitStreamכבוי כבויה(1לא זוהינו )שיטה

7646 478

אתגר שני – ניסוי רביעי

BitStreamכבוי 1זוהינו ע"י שיטה

3642 228

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

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

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

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

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

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

שהתקבלו לא נכון, אחרי כל ביט של ההודעה עקב שגיאת קוד שהתגלתה אחרי האתגר השני–

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

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