beaver n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
פרויקט “Beaver” PowerPoint Presentation
Download Presentation
פרויקט “Beaver”

Loading in 2 Seconds...

play fullscreen
1 / 25

פרויקט “Beaver” - PowerPoint PPT Presentation


  • 172 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'פרויקט “Beaver”' - blake


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
beaver

פרויקט “Beaver”

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

צוות הפרויקט:

פבל רבינוביץ'

דורון צוקרמן

ליאור קוצ'ינסקי

מנחה:

גל בדישי

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

slide2
מבוא - הבעיה
  • Distributed Denial-Of-Service
  • פרויקט זה נותן מענה לבעיה זו, ומהווה מערכת הגנה מפני התקפות זדוניות.
beaver1
הפתרון לבעיה - Beaver
  • פרויקט Beaver נועד להגן על שרתים מפני התקפת DoS ע"י יצירה של סדרת שרתי אימות המכונים ADMs .
  • מטרתם: בלימת ההתקפה ע"י אימות הלקוח (וסינון התוקפים) ומתן אפשרויות תקשורת טובות יותר מול השרתים, ללקוח המאומת.
slide4
העקרונות מאחורי הפרויקט:
  • לקוחות רבים מעוניינים לקבל שירות משרתים בודדים.
  • השרתים צריכים לפעול בצורה מיטבית ולמשך זמן רב ככל האפשר.
  • השרת לא יקצה משאבים ליצירת תקשורת מול לקוח שלא עבר אימות.
  • תחנות ה ADM ישמשו לאימות המשתמשים מול השרתים ,לבלימת משתמשים שאינם מאושרים לפנייה ל Servers.
slide5
העקרונות מאחורי הפרויקט (המשך):
  • שרתי האימות, ADM, הן תחנות זולות,מבוזרות ורבות, המבוססות על תוכנה בלבד. תידרש התקפה מסיבית ביותר ע"מ לשתק את כולם.
  • ריבוי תחנות אלו נועד גם לצורך חלוקת עומסי האימות של המשתמשים ביניהן.
  • במקרה של קריסה/ עומס יתר של שרת אימות כלשהו, לקוח יכול לבחור להתחבר לכל שרת אימות אחר הקיים ברשת, ובכך נמנע המצב של Dos עבור הלקוחות.
slide6
תרשים עקרוני

ADM's

5. Admission approval

Server

4. Admission Request

6. Admission completion

3. Response

2. Challenge

7. Session

1. Connection Request

Skip

Back

Client

client
הלקוח - Client
  • זהו הממשק בו ישתמש הלקוח ע"מ ליזום תקשורת (בקשת שירות), תחילה מול שרת האימות, ADM, ולאחר האישור (authentication) גם מול השרת שיספק את השירות עצמו.
  • הלקוח ייזום את תחילת תהליך האימות מול ה-ADM, יספק את נתוני האימות עבורו ואז יוכל להתחבר לשרת ולקיים התקשרות (session) עם השרת.
adm server
שרת האימות – ADM Server
  • ה-ADM, מאמת את הלקוח מול השרת, ורק לאחר שתהליך האימות מסתיים, מאפשר ה-ADM ללקוח להתחבר לשרת.
  • מכיוון שה-ADM מונע תקשורת ישירה מול השרת, נמנעת הסכנה של תקיפה ישירה של השרת ע"י משתמשים זדוניים.
  • זהו רכיב תוכנה זול, שאותו, בניגוד לשרת –ניתן לשכפל בכמויות מספיקות, ע"מ לתת מענה לתקיפה בסדרי גודל מסיביים על חוות השרתים עליה הוא מגן.
adm server1
שרת האימות – ADM Serverהמשך
  • הלקוח פונה תחילה אליו, ולא לשרת ע"מ לקבל תקשורת.
  • אם תוך זמן מסוים הנקבע מראש, ה-ADM לא יענה, יוכל הלקוח לבחור בשרת ADM אחר שיספק לו את השירות.
  • ריבוי התחנות נועד גם לפזר את העומס גם של לקוחות חוקיים (valid clients), שרוצים לקבל שירות.
adm server2
שרת האימות – ADM Serverהמשך
  • אופן התקשורת והעבודה עם מבני הנתונים
  • החוט הראשי, הוא זה שיוצר את התקשורת מול הלקוח ומול השרת. תפקידו:
    • קבלת הודעות מהלקוח והשמתן בתוך מבנה הנתונים של ADM.
    • יצירת החוטים המשניים.
  • החוט המשני המטפל בלקוח
    • טיפול בכל המשך ההתקשרות וניהול תהליך האימות מול הלקוח.
    • שליחת הודעה לשרת, ע"מ לדרוש הקצאת משאבים ללקוח.
  • החוט המשניהמאזין לתשובות מהשרת
    • מוסיף אותן למבנה הנתונים המשותף, ע"מ שהחוט המשני השני, יקרא את ההודעות הללו ויטפל בהן ע"פ האלגוריתם.
slide12
שרת האימות - מבנה נתונים

Did you know?

MAC-

Message Authentication Code

server
שרת ראשי - Server
  • נותן השירות הראשי שאליו רוצה הלוקח להתחבר. השרת מאזין לשרתי האימות, ע"מ לאפשר תקשורת מלקוח מסוים.
  • השרת מקצה משאבים ללקוח מסוים, רק לאחר שאותו הלקוח עבר אימות אצל ה-ADM, ואצלו.
  • מונע בזבוז משאבים על לקוחות זדוניים, אשר מנסים להעמיס על השרת.
server1
שרת ראשי - Serverהמשך
  • אופן התקשורת והעבודה עם מבני הנתונים
  • החוט הראשי
    • מקבל הודעות מ-ADM, מכניס את ההודעות לתוך מבנה הנתונים, תוך יצירת חוטים משניים שיטפלו בהודעות עצמן.
  • החוט המשני, לאחר אימות ההודעה:
    • מוריד אותה מהתור, ושולח אישור ל-ADM, ע"מ לאפשר יצירת Session עם הלקוח.
    • האזנה ל-socket שבו הלקוח ישדר לו את הודעותיו.
the admission process
The Admission Process

הגדרה:

  • תהליך האימות שעובר הלקוח מול שרת האימות (ADM) ומול השרת עצמו. בסופו של התהליך יוכל הלקוח לקבל שירות מול השרת –לשלוח ולקבל מידע.
  • ניזכר בתרשים העקרוני
slide18

Script for example:

#! /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"

output client
Output: Client

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:-1

client 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:4

client 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
Output: ADM

ADM is on-line.

Recieving: clientID:0,requestID:420121036,clientTS:0,

MACScadm:420121037,MACScs:-1,MACSsadm:-1,nonce:-1,

ADM_id:-1,serverID:-1

client 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:-1

client 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:4

client 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
Output: Server

Server is on-line.

Recieving: clientID:0,requestID:420121036,clientTS:1,

MACScadm:93031992,MACScs:93031994,MACSsadm:93031997,nonce:478218229,

ADM_id:2,serverID:-1

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

slide22
מה למדנו...
  • מודל שרת לקוח בפרוטוקול תקשורת UDP
  • עבודה בסביבה מרובת תהליכים(Multi-Threaded Environment)תחת מערכת ההפעלה Linux.
  • מנגנוני סנכרון והגנה על משאבים משותפים וקטעים קריטיים (בקרת מקביליות)- semaphore, mutex
  • עבודה עם מודולים תוך תכנון (design), ביצוע ושיתוף פעולה בין צוות התוכנה.
slide23
מה למדנו... המשך..
  • עבודה עם פרוטוקול ssh.
  • תכנון וביצוע בדיקות QA באמצעות scripts.
slide24
סיכום
  • לסיכום, הפרויקט משלב סביבה מרובת תהליכים

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

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

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