25
ףףףף תתתתתתת תתתתתתת תתתתתתת תתתתת תת תתתתת תת תת ףף ףףףףף, ףףףף' ףףףף ףףףף תתתתתתתת ת ףףףף' ףףףף ףףףףףף תתתת'תתתת- תת ףףףף ףףףףףףף: תתת תתתתתתתת' תתתתת תתתתתת תתתתת תתת'תתתתת ףףףף: תת תתתתת

פרויקט “Beaver”

  • Upload
    blake

  • View
    64

  • Download
    5

Embed Size (px)

DESCRIPTION

פרויקט “Beaver”. הסוף למתקפות זדוניות. צוות הפרויקט : פבל רבינוביץ' דורון צוקרמן ליאור קוצ'ינסקי מנחה : גל בדישי. הפרויקט מבוסס על המחקר של מר גל בדישי, פרופ' עדית קידר מהטכניון ו פרופ' אמיר הרצברג מאונ' בר-אילן. מבוא - הבעיה. Distributed Denial-Of-Service - PowerPoint PPT Presentation

Citation preview

Page 1: פרויקט  “Beaver”

למתקפות זדוניותהסוף

גל בדישי, פרופ' עדית מר הפרויקט מבוסס על המחקר שלמאונ' בר-אילןפרופ' אמיר הרצברג מהטכניון וקידר

:צוות הפרויקטפבל רבינוביץ'דורון צוקרמן

ליאור קוצ'ינסקי:מנחה

גל בדישי

Page 2: פרויקט  “Beaver”

מבוא - הבעיהDistributed Denial-Of-Service

פרויקט זה נותן מענה לבעיה זו, ומהווה מערכת הגנהמפני התקפות זדוניות.

2

Page 3: פרויקט  “Beaver”

Beaverהפתרון לבעיה - פרויקטBeaver נועד להגן על שרתים מפני התקפת

DoS ע"י יצירה של סדרת שרתי אימות המכונים ADMs .

בלימת ההתקפה ע"י אימות הלקוח )וסינון מטרתם :התוקפים( ומתן אפשרויות תקשורת טובות יותר מול

השרתים, ללקוח המאומת.

3

Page 4: פרויקט  “Beaver”

העקרונות מאחורי הפרויקט:

.לקוחות רבים מעוניינים לקבל שירות משרתים בודדים

השרתים צריכים לפעול בצורה מיטבית ולמשך זמן רבככל האפשר.

השרת לא יקצה משאבים ליצירת תקשורת מול לקוחשלא עבר אימות.

תחנות הADM ישמשו לאימות המשתמשים מול השרתים ,לבלימת משתמשים שאינם מאושרים לפנייה ל

Servers.4

Page 5: פרויקט  “Beaver”

,שרתי האימותADM ,הן תחנות זולות,מבוזרות ורבות ,המבוססות על תוכנה בלבד. תידרש התקפה מסיבית

ביותר ע"מ לשתק את כולם.

ריבוי תחנות אלו נועד גם לצורך חלוקת עומסי האימותשל המשתמשים ביניהן.

,במקרה של קריסה/ עומס יתר של שרת אימות כלשהולקוח יכול לבחור להתחבר לכל שרת אימות אחר הקיים

עבור הלקוחות.Dosברשת, ובכך נמנע המצב של 5

:)המשך(העקרונות מאחורי הפרויקט

Page 6: פרויקט  “Beaver”

תרשים עקרוני

6

1. Connection Request

2. Challenge

3. Response

4. Admission Request

5. Admission approval

6. Admission completion

7. Session

Server

ADM's

Client

Skip Back

Page 7: פרויקט  “Beaver”

תאור המודולים השונים

7

Page 8: פרויקט  “Beaver”

Clientהלקוח - זהו הממשק בו ישתמש הלקוח ע"מ ליזום תקשורת

, ADM)בקשת שירות(, תחילה מול שרת האימות, גם מול השרת ( authentication)ולאחר האישור

שיספק את השירות עצמו.

-הלקוח ייזום את תחילת תהליך האימות מול הADM ,יספק את נתוני האימות עבורו ואז יוכל להתחבר לשרת

עם השרת.(session)ולקיים התקשרות

8

Page 9: פרויקט  “Beaver”

ADM Serverשרת האימות – -הADM מאמת את הלקוח מול השרת, ורק לאחר ,

ללקוח ADMשתהליך האימות מסתיים, מאפשר ה-להתחבר לשרת.

-מכיוון שהADM מונע תקשורת ישירה מול השרת, נמנעת הסכנה של תקיפה ישירה של השרת ע"י משתמשים

זדוניים.

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

מסיביים על חוות השרתים עליה הוא מגן. 9

Page 10: פרויקט  “Beaver”

הלקוח פונה תחילה אליו, ולא לשרת ע"מ לקבלתקשורת.

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

השירות.

ריבוי התחנות נועד גם לפזר את העומס גם של, שרוצים לקבל (valid clients)לקוחות חוקיים

שירות.10

המשך ADM Serverשרת האימות –

Page 11: פרויקט  “Beaver”

המשך ADM Serverשרת האימות –

אופן התקשורת והעבודה עם מבני הנתונים

 הוא זה שיוצר את התקשורת מול הלקוח ומול השרת. החוט הראשי ,:תפקידו

קבלת הודעות מהלקוח והשמתן בתוך מבנה הנתונים של ADM..יצירת החוטים המשניים

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

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

ההודעות הללו ויטפל בהן ע"פ האלגוריתם.

11

Page 12: פרויקט  “Beaver”

שרת האימות - מבנה נתונים

12

Did you know?MAC-Message Authentication Code

Page 13: פרויקט  “Beaver”

Serverשרת ראשי - .נותן השירות הראשי שאליו רוצה הלוקח להתחבר

השרת מאזין לשרתי האימות, ע"מ לאפשר תקשורת מלקוח מסוים.

השרת מקצה משאבים ללקוח מסוים, רק לאחר שאותו, ואצלו.ADMהלקוח עבר אימות אצל ה-

מונע בזבוז משאבים על לקוחות זדוניים, אשר מנסיםלהעמיס על השרת.

13

Page 14: פרויקט  “Beaver”

המשך Serverשרת ראשי -

אופן התקשורת והעבודה עם מבני הנתוניםהחוט הראשי

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

לאחר אימות ההודעה:החוט המשני ,-מוריד אותה מהתור, ושולח אישור ל ADM ע"מ לאפשר ,

עם הלקוח. Sessionיצירת -האזנה לsocket.שבו הלקוח ישדר לו את הודעותיו

14

Page 15: פרויקט  “Beaver”

שרת ראשי – מבנה נתונים

15

Page 16: פרויקט  “Beaver”

The Admission Process:הגדרה

תהליך האימות שעובר הלקוח מול שרת האימות(ADM) ומול השרת עצמו. בסופו של התהליך יוכל

הלקוח לקבל שירות מול השרת –לשלוח ולקבל מידע. בתרשים העקרוניניזכר

16

Page 17: פרויקט  “Beaver”

- ADMתצוגת תקשורת שרת- לקוח

17

Page 18: פרויקט  “Beaver”

18

#! /usr/bin/tcsh -f

# 1 server, 1 ADM on a different machines , 1 clients for ADM on the same machine as the ADM# Expected result: normal session

#Run server:ssh -i id_rsa [email protected] "./SERVER 4045 4 132.68.60.104 >& out_server4.txt" &

#Run ADM and for each ADM run 1 Client

ssh -i id_rsa [email protected] "./ADM 132.68.60.104 4045 2 3050 >& ADM102.txt" &ssh -i id_rsa [email protected] "./CLIENT 132.68.60.102 3050 0 >& Client101.txt" &

#clean

ssh -i id_rsa [email protected] "killall SERVER"ssh -i id_rsa [email protected] "killall ADM"

Script for example:

Page 19: פרויקט  “Beaver”

Output: Client

19

Sending Connection Request to ADM... Sending: clientID:0,requestID:420121036,clientTS:0,MACScadm:420121037,MACScs:-1,MACSsadm:-1,nonce:-1,ADM_id:-1,serverID:-1 client ID: 0 - Sending complete.

Recieving Challenge from ADM... Recieving: clientID:0,requestID:420121036,clientTS:0,MACScadm:93031992,MACScs:0,MACSsadm:0,nonce:478218229,ADM_id:-1,serverID:-1client ID: 0 - Recieving complete.

Sending Challenge Response to ADM... Sending: clientID:0,requestID:420121036,clientTS:1,MACScadm:93031993,MACScs:93031994,MACSsadm:-1,nonce:478218229,ADM_id:-1,serverID:-1 client ID: 0 - Sending complete.

Recieving Admission Completion from ADM... Recieving: clientID:0,requestID:420121036,clientTS:1,MACScadm:93031997,MACScs:93031998,MACSsadm:93031997,nonce:478218229,ADM_id:2,serverID:4client ID: 0 - Recieving complete.

Sending msg to server-ID 4... Recieving msg from server-ID 4... the server says: The server is here!

Page 20: פרויקט  “Beaver”

Output: ADM

20

ADM is on-line. Recieving: clientID:0,requestID:420121036,clientTS:0,MACScadm:420121037,MACScs:-1,MACSsadm:-1,nonce:-1,ADM_id:-1,serverID:-1client ID: 0 - Recieving complete. client ID: 0 - Recieved Data from Client.

client ID: 0 - Sending Challenge to the client... Sending: clientID:0,requestID:420121036,clientTS:0,MACScadm:93031992,MACScs:0,MACSsadm:0,nonce:478218229,ADM_id:-1,serverID:-1 client ID: 0 - Sending complete.

Recieving: clientID:0,requestID:420121036,clientTS:1,MACScadm:93031993,MACScs:93031994,MACSsadm:-1,nonce:478218229,ADM_id:-1,serverID:-1client ID: 0 - Recieving complete. client ID: 0 - Recieved Data from Client.

client ID: 0 - Sending Admission Request to the server... Sending: clientID:0,requestID:420121036,clientTS:1,MACScadm:93031992,MACScs:93031994,MACSsadm:93031997,nonce:478218229,ADM_id:2,serverID:-1 client ID: 0 - Sending complete.

Recieving: clientID:0,requestID:420121036,clientTS:1,MACScadm:-1,MACScs:93031998,MACSsadm:93031993,nonce:478218229,ADM_id:-1,serverID:4client ID: 0 - Recieving complete. client ID: 0 - Recieved Admisson Approval from server.

client ID: 0 - Sending Admisson Completion to the client... Sending: clientID:0,requestID:420121036,clientTS:1,MACScadm:93031997,MACScs:93031998,MACSsadm:93031997,nonce:478218229,ADM_id:2,serverID:4 client ID: 0 - Sending complete.

Page 21: פרויקט  “Beaver”

Output: Server

21

Server is on-line. Recieving: clientID:0,requestID:420121036,clientTS:1,MACScadm:93031992,MACScs:93031994,MACSsadm:93031997,nonce:478218229,ADM_id:2,serverID:-1client ID: 0 - Recieving complete. client ID: 0 ,ADM ID: 2 - Recieved Admission Request from ADM.

client ID: 0, ADM ID: 2 - Sending Admission Approval to ADM... Sending: clientID:0,requestID:420121036,clientTS:1,MACScadm:-1,MACScs:93031998,MACSsadm:93031993,nonce:478218229,ADM_id:-1,serverID:4 client ID: 0 - Sending complete.

client ID: 0, ADM ID: 2 - Recieving a msg from client... Message from clientID-0: Hello Server Sending msg to client-ID 0...

Page 22: פרויקט  “Beaver”

מה למדנו... מודל שרת לקוח בפרוטוקול תקשורתUDP

עבודה בסביבה מרובת תהליכים (Multi-Threaded

Environment) תחת מערכת ההפעלהLinux.

מנגנוני סנכרון והגנה על משאבים משותפים וקטעיםsemaphore, mutexקריטיים )בקרת מקביליות(-

עבודה עם מודולים תוך תכנון(design) ביצוע ושיתוף ,פעולה בין צוות התוכנה.

22

Page 23: פרויקט  “Beaver”

המשך..מה למדנו...

עבודה עם פרוטוקולssh.

תכנון וביצוע בדיקותQA באמצעות scripts.

23

Page 24: פרויקט  “Beaver”

סיכוםלסיכום, הפרויקט משלב סביבה מרובת תהליכים (Multi- threaded), .תקשורת מאובטחת ומבני נתונים

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

מתמיד של שיפור וליטוש של המוצר הסופי ובדיקתו.

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

24

Page 25: פרויקט  “Beaver”

The End

25

גל תודות לצוות המעבדה והמנחה, בדישי