פרויקט “Beaver”

Preview:

DESCRIPTION

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

Citation preview

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

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

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

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

גל בדישי

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

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

2

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

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

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

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

3

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

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

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

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

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

Servers.4

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

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

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

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

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

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

תרשים עקרוני

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

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

7

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

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

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

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

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

8

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

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

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

זדוניים.

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

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

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

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

השירות.

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

שירות.10

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

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

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

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

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

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

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

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

11

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

12

Did you know?MAC-Message Authentication Code

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

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

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

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

13

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

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

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

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

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

14

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

15

The Admission Process:הגדרה

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

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

16

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

17

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 pavel_rab@132.68.60.104 "./SERVER 4045 4 132.68.60.104 >& out_server4.txt" &

#Run ADM and for each ADM run 1 Client

ssh -i id_rsa pavel_rab@132.68.60.102 "./ADM 132.68.60.104 4045 2 3050 >& ADM102.txt" &ssh -i id_rsa pavel_rab@132.68.60.101 "./CLIENT 132.68.60.102 3050 0 >& Client101.txt" &

#clean

ssh -i id_rsa pavel_rab@132.68.60.104 "killall SERVER"ssh -i id_rsa pavel_rab@132.68.60.102 "killall ADM"

Script for example:

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!

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.

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...

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

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

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

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

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

22

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

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

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

23

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

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

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

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

24

The End

25

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