203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2...

56
© אבטחת מחשבים ורשתות – חורף תשע”ב1 הרצאה2 אבטחת מחשבים ורשתות203.4448 ) סמסטר חורף תשע”ב2011 ( הרצאה2 – תכן תוכנה בטוחה

Upload: vuongtruc

Post on 04-Jun-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב 2הרצאה 1

אבטחת מחשבים ורשתות203.4448

)2011סמסטר חורף תשע”ב (

– תכן תוכנה בטוחה2הרצאה

Page 2: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

על נקודות תורפה, התקפות, ושטח פני ההתקפה

On Vulnerabilities, Exploits & Attack Surface

2הרצאה 2

Page 3: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Vulnerabilitiesנקודות תורפה – נקודות תורפה (חורי בכל מערכת (תוכנה או חומרה) קיימות ●

אבטחה)

יצרניות מערכות תוכנה/תוכנה­חומרה, כמו גם חוקרים מקהיליית ●האבטחה, מחפשים באופן תמידי אחר נקודות תורפה במערכות

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

) תיאור של patch Tuesdayכיום מפרסמת מיקרוסופט פעם בחודש () עבורםPatches(חורי האבטחה, ותיקונים 

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

חשבון)

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

2הרצאה 3

Page 4: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Buffer Overflow– דוגמה לבעיות bufferאחת הבעיות הידועות בעולם אבטחת המידע היא ה­ ●

overflow .דריסת תאי זכרון ע”י קלט של המשתמש

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

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

בעיה זו נפוצה במספר רב של תוכנות, ולרוב נובעת מחוסר ● 100בדיקת תקינות. לדוגמא, כאשר מעתיקים מחרוזת באורך 

 הבתים 90 – דרסנו את 10תוים למחרוזת שיכולה להכיל רק שאחריה בזכרון!

2הרצאה 4

Page 5: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Buffer Overflowהתמודדות עם

) מאפשר לכתוב לאזור buffer overflowדליפת זכרון (●בזכרון שלא אמור להיות נגיש

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

פתרון אפשרי לזיהוי הבעיה: מקיפים את אזור הזכרון של ●)Canaryהמשתנים במחרוזת קנרית (

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

2הרצאה 5

Page 6: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Exploitsהתקפות – ) שמנצלות חורי אבטחה Exploitsהתקפות (

)Vulnerabilities:יכולות להיות מקומיות או מרוחקות (

– התקפות הדורשות גישה ) Local exploitsמקומיות (למערכת (כלומר, התוקף צריך להיות משתמש של 

המערכת).

התקפות שניתן להפעיל ) – Remote Exploitsמרוחקות (“מרחוק”.

חור אבטחה שניתן לניצול מרחוק, הוא יותר קריטי מחור אבטחה שניתן רק לניצול מקומי

2הרצאה 6

Page 7: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Zero day vulnerability/attackמירב ההתקפות (וירוסים, תולעים) הגדולות ניצלו חורי ●

).patchesאבטחה, שפורסמו עבורם תיקונים (

מירב כלי ההגנה (כגון אנטי­וירוסים, או מערכות ●IDS/IPS מציעים הגנה כנגד התקפות ידועות, או (

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

התקפה או חור אבטחה שטרם התפרסם עבורם תיקון ● נקודת תורפה או Zero day attackנקראים 

)Vulnerability(

2הרצאה 7

Page 8: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

נקודות תורפה במערכות הפעלה

/bugtraq) http://www.securityfocus.com/bid, אתר 2011נכון לתחילת נובמבר ● (יש עוד נקודות תורפה עבור Windows 7 נקודות תורפה ב­100) מדווח על 

 12 מדווחות 3 גרסה Linux). בגרעין Windows 7גרסאות ספיציפיות של ).3.0.4 מתוכן בגרסה 5נקודות תורפה (

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

DoS על מערכת ההפעלה 

Buffer Overflows

Privilege escalationפגיעויות המאפשרות 

פגיעויות שנפתרו

ועוד...

2הרצאה 8

Page 9: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

VML vulnerabilityדוגמא: תיאור חור האבטחה:

●http://www.microsoft.com/technet/security/advisory/925568.mspx

מידע על התיקון:

http://www.microsoft.com/technet/security/bulletin/ms06­055.mspx

):Remote Exploitתיאור ההתקפה(

●http://sunbeltblog.blogspot.com/2006/09/seen­in­wild­zero­day­exploit­being.html

●http://www.networkworld.com/news/2006/092606­criminals­spread­windows­exploit­via.html

2הרצאה 9

Page 10: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Attackers exploited the zero-day VML vulnerability on Windows-based machines by targeting a separate hole in cpanel, an application that's popular with Web hosting services.

The attack, which lasted from late Thursday to Saturday afternoon, used a zero-day vulnerability in cpanel to access the servers of HostGator, a Boca Raton, Florida, company that hosts about 600,000 domain addresses, and three other Web hosting companies, according to Brent Oxley, the owner of HostGator. The attackers then planted an iframe script in Web sites that directed some visitors to malicious addresses that would infect them.

The attack came four days after the discovery of the VML vulnerability, which allows malicious Web sites to gain complete control of Windows-based machines that access the site using IE. About 20,000 sites are attempting to exploit the flaw, according to Eric Sites, vice president of Sunbelt Software, the company that first spotted the vulnerability. One such site installs about 50 pieces of malware, including a password stealer, a backdoor, spam zombies, and commercial adware, he said.

Criminals spread Windows exploit via Web host By Infoworld Staff , InfoWorld , 09/25/2006

2הרצאה 10

http://www.networkworld.com/news/2006/092606-criminals-spread-windows-exploit-via.html

Page 11: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

XML HTTP vulnerability דוגמא נוספת:תיאור חור האבטחה:

http://www.securityfocus.com/bid/20915

מידע על התיקון:

http://www.microsoft.com/technet/security/Bulletin/MS06­071.mspx 

):Remote Exploitתיאור ההתקפה(

http://www.securityfocus.com/bid/20915/exploit

2הרצאה 11

Page 12: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מדדים לבטיחות של מערכתשל מערכת מוגדר ) Surface of attackשטח פני ההתקפה (●

כסך כל הפעולות ומשאבי המערכת שחשופים למשתמשים

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

 יותר מפתות root או adminפעולות שרצות בהרשאות מהפעולות שרצות בהרשאות משתמש רגיל

)Vectors of attackוקטורי ההתקפה (●

דרכים אפשריות להגיע לפני השטח של ההתקפה: גישה eMail, או Webמקומית למערכת, גישה דרך ה­

בדרך כלל המטרה להפחית ככל שניתן את שטח הפנים ●"המפתה" שפתוח להתקפה דרך וקטורים מרוחקים

פני השטח של ההתקפה הוא בד"כ מושג יחסי המשמש להשוואה ●בין מערכות

2הרצאה 12

Page 13: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

דרכים לצמצם את שטח פני ההתקפה

דוגמאות:

 מצמצמים את שטח פני ההתקפה כיוון שהם Firewallמוצרי ●מפחיתים את מספר הדרכים בהן תוקף יכול להתחבר למערכת

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

לרשות התוקף לחדור למערכת (כאשר הלוג משקף פריצת אבטחה), ויכול לעזור לגלות בעיות אפשרויות וקונפיגורציות שגויות

, בהן שרות מסוים מנסה Intrusion Detectionזהו הבסיס של מערכות לנתח את התנהגות המשתמשים (כולל מנהל המערכת). כאשר משתמש 

אינו מתנהג "כרגיל", השרות מתריע בפני מנהלי המערכת

2הרצאה 13

Page 14: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Penetrate and patchהגישה השלטת – בקרב ספקי תוכנה עדיין אין הבנה שאבטחת תוכנה אינה תכונה ●

שמוסיפים למוצר, והם נוקטים את הגישה הבאה:

בצע: חפש חורי אבטחה(1)

5אם לא נמצאו חורי אבטחה, עבור ל­(2)

בצע: תקן חור אבטחה(3)

1חזור ל­(4)

בצע: טפיחה על השכם(5)

בצע: המערכת נפרצה בכל אופן(6)

1חזור ל­(7)בעיות אבטחה מטופלות רק לאחר שנחשפו בציבור●

לעיתים ה"טיפול" הוא ע"י נסיון מניעת חשיפה...

2הרצאה 14

Page 15: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Penetrate and patchהגישה השלטת – החסרונות בגישה:

ניתן לתקן רק בעיות שמצאנו. התוקפים לא ידווחו למפתחים על הבעיות שהם ●מצאו

התיקונים מופצים לרוב תחת לחץ זמן, ועקב כך עלולים לגרור בעיות נוספות●

מטפלים רק בסימפטומים ולא בשורש הבעיה●

מנהלי מערכת לא תמיד מתקינים את עדכוני התוכנה●

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

עדכוני תוכנה עשויים להשפיע על פונקציונליות של מוצרים קיימים, ולכן ●נדרשת בדיקה לפני התקנת התיקון

במקומות בהם אין חיבוריות רציפה לאינטרנט (למשל, צבא, בנקים), לא ניתן ●לבצע עדכון מהיר של תיקונים

2הרצאה 15

Page 16: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

ניצול חורי אבטחה

Based on data from: Windows of Vulnerability: A Case Study Analysis, Bill Arbaugh. Bill Fithen and John McHugh, 2000.

16

העולם האמיתיהתפיסה האינטואיטיבית

התקפות

גילוי חשיפה שחרור תיקון

זמן

למניעת ● יעילה  אכן  האבטחה  תיקוני  הוצאת  האם ההתקפות?

2הרצאה

התקפות

גילויזמן שחרורחשיפהתיקון

הופעתתולעת

Page 17: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

 פרסמה בדצמבר Bit9חברת ●2008) 

http://www.bit9.com/files/Vulnerable_Apps_DEC_08.pdf  (דירוג של אפליקציות נפוצות 

על­פי הפופולריות שלהן ומספר חורי אבטחה שהתגלו בהן

למרות שלמרבית האפליקציות ●ברשימה יש גרסאות המתקנות 

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

המשתמש

קצב עדכון תיקוני אבטחה

2הרצאה 17

Top popular apps with vulnerabilities

Application Affected Versions

1. Mozilla Firefox 3.x, 2.x

2. Adobe Flash & Acrobat Flash: 10.0- 10.0.12.36 and 9.0- 9.0.151.0Acrobat: 8.1.2, 8.1.1

3. EMC VMware Player, Workstation and other products

ESXi 3.5 or earlierWorkstation 5.5.xPlayer 2.0.x & 1.0.xACE 2.0.x & 1.0.x

4. Sun Java Runtime Environment (JRE)

Version 6 Update 6

5. Apple Quicktime, Safari & iTunes

Quicktime: 7.5.5Safari: 6.0.5.20B iTunes: 3.2, 3.1.2

6. Symantec Norton products 2.7.0.1

7. Trend Micro OfficeScan 8.0 SP1 before build 24398.0 SP1 Patch 1 before build 3087

8. Citrix Deterministic Network Enhancer (DNE), Access Gateway, Presentation Server

DNE 2.21.7.233- 3.21.7.17464Access Gateway 4.5.7Presentation Server 4.5

9. Aurigma Image Uploader, Lycos FileUploader

4.6.17.0, 4.5.70.0, 4.5.126.0

10. Skype 3.6.0.248

11. Yahoo! Assistant 3.6

12. Microsoft Window Live Messenger

4.7 & 5.1

Page 18: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

), חברת /http://secunia.com/blog/37 (2008בפרסום מדצמבר ●Secunia המציעה מוצר חינמי לתיקוני אבטחה, פירטה את ,

 מחשבים 20,000מספר התוכניות הלא בטוחות שמצאה בקרב בהן הותקנה התוכנה לאחרונה:

 מהמחשבים לא נמצאה תוכנה לא בטוחה1.91%רק על 

 מהמחשבים30.27% תוכניות לא בטוחות:  1­5

 מהמחשבים25.07% תוכניות לא בטוחות: 6­10

 מהמחשבים45.76%+ תוכניות לא בטוחות: 11

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

(הערה: הטעות באחוזים מופיעה במקור)

קצב עדכון תיקוני אבטחה

2הרצאה 18

Page 19: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מדוע עדיין יש תוכנות מזיקות

מאז קיומם של וירוסים (ותוכנה זדונית אחרת), הם ניצודו ע"י תוכנות אבטחה. כיום יש הבנה טובה כיצד וירוסים עובדים, אך הם עדיין רחוקים מהכחדה. הבעייה 

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

יכול לפעול כתהליך עצמאי●

רוב המשתמשים לא יודעים להבחין בין תהליכים שצריכים לרוץ במערכת ●לאלה שלא

falseלא ניתן להרשות זיהוי שגוי של תהליך תקין כתהליך זדוני (●positive(

בתוך (הזכרון של) תהליך רגיל●

הוירוס יכול לשנות את עצמו עם הזמן כדי להימנע מגילוי●

זכרון עשוי להיות מדופדף לדיסק. גישה לקובץ הדפדוף בדיסק היא לרוב ●קלה יותר מגישה לזכרון (למשל, לאחר כיבוי המחשב, קובץ הדפדוף עדיין 

מכיל את המידע)

2הרצאה 19

Page 20: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מדוע עדיין יש תוכנות מזיקות – המשך

קובץ הנגיש רק ע"י התהליך●

אחסון הקוד הזדוני על קובץ היא דרך טובה להבטיח את השפעתו על ●המערכת לאחר האתחול הבא

)kernel modeבסביבת הגרעין (●

 משמעותה שליטה מלאה במערכת. kernel modeהחדרת קוד זדוני ל­●, הקוד הזדוני יכול לגשת (לקריאה או כתיבה) לכל kernel modeב­

ההתקנים של המערכת – זכרון, קבצים וכו'

 או רכיבי זכרון בלתי נדיף אחריםBIOSב­●

 יכול לשנות את כלל פעולתה של המערכת ע"י BIOSוירוס שפוגע ב­● (או מערכת ההפעלה עצמה)OS loaderהטעיית ה­

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

2הרצאה 20

Page 21: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

We recently discovered that, dating back as early as February 2006, the Sinowal Trojan has compromised and stolen login credentials from approximately 300,000 online bank accounts as well as a similar number of credit and debit cards. Other information such as email, and FTP accounts from numerous websites, have also been compromised and stolen.

Some have alleged that it was owned and operated by a Russian online gang with past ties to the infamous Russian Business Network (RBN). 

Simply put, Sinowal infects victims’ computers without even an inkling of a trace. The criminals behind Sinowal have not only created highly-advanced and malicious crimeware, but have also maintained one of the most hidden and reliable communication infrastructures. This infrastructure has been designed to keep Sinowal collecting and transmitting information for almost three years.

One Sinowal Trojan + One Gang = Hundreds of Thousands of Compromised Accounts by RSA FraudAction Research Lab on 10/31/2008

2הרצאה 21

http://www.rsa.com/blog/blog_entry.aspx?id=1378

Page 22: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מטרות אבטחהכדי להבין טוב יותר מה המשמעות של אבטחה, ניתן לבחון את מטרותיה: 

על מה מנסים להגן? מפני מי? כיצד ניתן להשיג זאת?

מניעת חורי אבטחה●

מעקב ורישום – מי עשה מה ומתי●

ניטור – מעקב בזמן אמת●

פרטיות וסודיות●

מספר רמות אבטחה●

אנונימיות●

אימות●

שלמות●

2הרצאה 22

Page 23: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

עשרה עקרונות מנחים לתוכנה בטוחה

2הרצאה 23

Page 24: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. אבטחו את החוליה החלשה1

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

) היא אחת הנקודות הבעייתיותsocial engineeringהנדסה חברתית (●

24

So in war, the way is to avoid what is strong and to strike at what is weak

The art of warSun Tzu

2הרצאה

Page 25: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Palin E-Mail Hacker Says It Was Easy

By Kim Zetter September 18, 2008  |  10:05 am

As detailed in the postings, the Palin hack didn’t require any real skill. Instead, the hacker simply reset Palin’s password using her birthdate, ZIP code and information about where she met her spouse — the security question on her Yahoo account, which was answered (Wasilla High) by a simple Google search.

http://www.wired.com/threatlevel/2008/09/palin-e-mail-ha/

2הרצאה 25

How Paris Got Hacked?by Brian McWilliams 02/22/2005 Paris Hilton's Chihuahua couldn't protect her Hollywood home from a burglary last summer. So why was Hilton counting on her dog to protect her T-Mobile account from intruders? Despite repeated attacks on her T-Mobile email and telephone records in recent months, the actress and heiress has persisted in using the little dog's name to secure her password at the T-Mobile site. Like many online service providers, T-Mobile.com requires users to answer a "secret question" if they forget their passwords. For Hilton's account, the secret question was "What is your favorite pet's name?" By correctly providing the answer, any internet user could change Hilton's password and freely access her accounthttp://macdevcenter.com/pub/a/mac/2005/01/01/paris.html

Page 26: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. הגנה בשכבות2

הרעיון: אם שכבת הגנה נפרצת, שכבת הגנה אחרת תמנע ●פריצה מלאה

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

כל אחד מהם כדי להשיג גישה למשאב המותקף

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

2הרצאה 26

Page 27: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. היכשל באופן בטוח3

לכל מערכת מורכבת יש מצבי כשלון●

לרוב לא ניתן להימנע ממצבים כאלה, ויש לתכנן מה נדרש לעשות ●כאשר הם מתרחשים

exception handlingדוגמא: יש להימנע מבעיות אבטחה העלולות להיווצר בזמן כשלון●

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

במקרה כשלון, דאגו לנקות את הזכרון אחריכם, ובמיוחד צאו יפה” ו”בטוחה” “מהתוכנית בצורה 

 קורס, יש לנתק את החיבור בין הרשתותFirewallדוגמא: אם ●

legacyדוגמא: הבעייתיות של תאימות לאחור עם מערכות ●

2הרצאה 27

Page 28: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. עקרון מזעור הזכויות4

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

: תכניות שצריכות unixדוגמא שלילית: בקרת גישה ב­● לביצוע חלק מפעולותיהן, אבל ממשיכות rootהרשאות 

להחזיק בהרשאות גם כאשר אינן נחוצות

 ב­UAC (User Account Controlדוגמא: מנגנון (●Windows Vista

2הרצאה 28

Page 29: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

דוגמא למזעור הרשאות טיפוסית. לכל קובץ יש שלוש פעולות UNIXנתבונן במערכת ●

אפשריות: כתיבה, קריאה והרצה

, יש לכל קובץ בעלים UNIXבלי להכנס למבנה ההרשאות של ●(משתמש שהוא נחשב הבעלים של הקובץ), שרשאי להחליט מה 

מותר ומה אסור לעשות עם הקובץ

ישנם מקרים בהם בעליו של הקובץ מעוניין שההרצה תעשה תחת ● מאפשרת למשתמש UNIX ב­passwdההרשאות שלו. הפקודה 

לשנות את הסיסמא שלו, כלומר כותבת לקובץ הסיסמאות של המערכת. ברור שאם ניתן לכל משתמש לשנות את הקובץ ללא 

)rootבעיה, כולם יוכלו לשנות את סיסמת מנהל המערכת (

2הרצאה 29

Page 30: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

דוגמא למזעור הרשאות (המשך)setuidעבור המשימה הזו (ובעיות דומות) הומצא מנגנון ה­●

ישנה הרשאה מיוחדת המאפשרת להכריז כי כל מי שמריץ את הקובץ נהנה מהזכויות של בעליו בעת הרצתו

-r-s--x--x 1 root root 16336 Feb 13 2003 /bin/passwd

 וכל rootכלומר קובץ הרצה שמשנה סיסמאות הוא בבעלות של ●.rootולקבל הרשאות משתמש יכול להריץ אותו 

המשמעות היא שהמשתמש מריץ את התכנית תחת ההרשאות של ●rootבמקרה הזה התכנית משנה את הסיסמא שלו בקובץ הסיסמאות .

2הרצאה 30

Page 31: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

setuidדרך הפעולה של userהתוכנית מופעלת ע”י משתמש ●setuidהמערכת מזהה כי זוהי תוכנית עם הרשאת ●” באופן זמניroot“ לכן מאפשרת לה לרוץ בהרשאות●

user

הפעלתpasswd

passwd (root)

user

סיוםpasswd

2הרצאה 31

Page 32: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

setuidהבעיה עם " אמורות להיות rootלכן תוכניות שאמורות לרוץ ב"הרשאות ●

setuidמוגנות ובמיוחד אם הן אמורות להיות 

נוהג נפוץ (אך לא נפוץ מספיק) הוא מעקב אחר כל התוכנות ●. ניתן לייצר רשימה של כל setuidשיש להן הרשאות 

) ולבדוק שהן אכן UNIX ב­findהתוכנות הללו (הפקודה בטוחות מספיק להיות בהרשאה שכזו

2הרצאה 32

Page 33: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

passwdמתכננים "מחדש" את נשים לב כי קובץ הסיסמאות ניתן לקריאה ולכתיבה רק על ידי ●

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

:rootוכתיבתה – חייב להתבצע בהרשאות 

קבלת סיסמא נוכחית מהמשתמש בדיקת סיסמת 

המשתמש

קבלת סיסמא חדשה מהמשתמש

עדכון סיסמת המשתמש

 הרשאותroot

הרשאות משתמש

2הרצאה 33

Page 34: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. מידור5

ניתן להפחית את הנזק למערכת שנפרצה ע"י בידוד קוד בעל ●הרשאות גבוהות יותר

unixדוגמא שלילית: הרשאות הכל­או­כלום ב­● או unix (בגרסאות Access control listsדוגמא חיובית: ●

חלונות התומכות בכך)

חלקו לתתי משימות בלתי תלויות – זה לא רק עקרון שמקל על ●תכנות – הוא משפר אבטחה

2הרצאה 34

Page 35: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מידור במערכת ההפעלה:User mode and Kernel mode

היא סביבת הריצה של תהליכים ברמת  User mode סביבת●המשתמש. מצב זה מוגבל מבחינת יכולותיו. לא ניתן לגשת להתקנים 

פיסיים ולקבצים באופן ישיר. פעולות אלה נעשות באמצעות קריאות מערכת

היא סביבת הריצה של הגרעין. בסביבה זו  Kernel mode סביבת●ניתן למצוא את כל טבלאות התהליכים והמידע אודות המערכת. הגרעין יכול לגשת לכל התקן שהוא רוצה, וכל שיטה שהוא רוצה

 משמעותה שליטה מלאה kernel modeהחדרת קוד זדוני ל­●, הקוד הזדוני יכול לגשת (לקריאה או kernel modeבמערכת. ב­

כתיבה) לכל התקנים של המערכת – זכרון, קבצים וכו'

2הרצאה 35

Page 36: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

User mode and Kernel mode

. user mode ו­kernel modeישנן מספר דרכים לממש את ההפרדה בין רובן מנסות לזהות את שינוי המצב ולכפות התנהגות תקינה על שינויים אלו:

)x86 במעבדי CPLחומרה יכולה לבדוק את מצב המערכת (שדה ●

 קורה רק kernel mode ל­user modeחומרה יכול לבדוק שמעבר מ­● בתוכנהinterruptבעקבות 

 יכול להיעשות רק בנקודות מעבר מסוימות kernel modeכניסה ל­●המבוקרות ע"י מערכת ההפעלה

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

kernelבדיקות אלה יכולות לעזור, אך הן אינן מבטיחות הפרדה מוצלחת בין modeל­ user mode.

2הרצאה 36

Page 37: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Linuxדוגמא: קריאת מערכת ב-

User Mode Kernel Mode

open() {..int 0x80.}

open()

system_call():.sys_open()..iret

sys_open() {...}

קוד משתמש מעטפת קוד שגרת טיפול בפסיקה פונקציה מבצעת

1 23

45

6

2הרצאה 37

Page 38: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

)KISS. שמרו על פשטות (6

מורכבות מעלה את הסיכוי לבעיות●

קוד מורכב נוטה להכיל יותר באגים●

כמו בהנדסת תוכנה, שימוש חוזר בקוד (במיוחד של ספריות ●קריפטוגרפיות) יכול לשפר את בטיחות התוכנה, ולא רק את איכותה

ניתן לשפר פשטות ע"י ניתוב פעולות חשובות מבחינת בטיחות דרך ●)choke pointsמספר קטן של צווארי בקבוק (

ממשק קטן ומוגדר היטב שדרכו הבקרה חייבת לעבור

אם ניתן לעקוף את צוואר הבקבוק, ערכו קטן

linuxדוגמא: מנגנון קריאות מערכת הפעלה ב­) היא היבט של פשטותusabilityגם שימושיות (●

2הרצאה 38

Page 39: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. שמרו על פרטיות7הרבה משתמשים מחשיבים פרטיות כתכונת בטיחות. יש להימנע ●

מפעולות שיגרמו לפגיעה בפרטיות המשתמש

לפעמים קיים מתח בין פרטיות לשימושיות●

לדוגמא, שמירת פרטים שמשתמש הזין בעבר

יש להימנע מלמסור יותר מידע ממה שנחוץ●

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

 מחוץ לרשת האוניברסיטהfingerסגירת פקודת 

השתדלו לשמור על פרטיות הנתונים – מחקו מהזכרון נתונים שאינם ●דרושים יותר

2הרצאה 39

Page 40: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. זכרו שקשה לשמור סודות8

בהרבה מקרים, אבטחה מסתמכת על שמירת סודות: ●

שמירת מידע פרטי של משתמשים

שמירה על סודיות ובטיחות של מפתחות

מניעת דליפת אלגוריתמים למתחרים

שמירת סודות אינה פשוטה:●

קוד בינארי הוא לא סודי

גם הרשתות הבטוחות ביותר חשופות להתקפות מבפנים

2הרצאה 40

Page 41: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

דוגמא – אפקט סטרייסנד

41

-HD ו­Blu-Ray עבור  AACSחשיפת מפתח ההצפנה של ●DVD והמהפכה של משתמשי ,digg 2007 (מאי(

2הרצאה

Page 42: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

 בחנה את אבטחת הרכבת התחתית של בוסטון MIT קבוצת סטודנטים ב­2008ב­●)MBTA = Massachusetts Bay Transportation Authorities(

הם בחנו היבטים שונים של אבטחה:●

אבטחה פיסית (חדרי בקרה פתוחים ולא מאויישים, מפתחות שהושארו בקופסאות בקרה ללא ●השגחה, תעודות עובדים קלות לשכפול)

פריצת כרטיסי נסיעה (שכפול כרטיסים  ●), הינדוס לאחורCharlie ticketמגנטיים (

של הכרטיסים, פריצת התקשורת תוך ניצול  (חולשה באלגוריתם והתקפותMiFareחולשת צופן שידור חוזר)

ציתות לרשת●

העבודה הייתה צריכה להיות מוצגת ● מנעו זאת MBTA, אבל ה­DEFCON 2008ב­

באמצעות צו בית משפט

דווקא מסיבה זו, העבודה קיבלה חשיפה עצומה●

MBTAדוגמא: אנליזה של http://tech.mit.edu/V128/N30/subway.html

2הרצאה 42

Page 43: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

האם קוד סגור הוא בטוח יותר?

2הרצאה 43

קוד סגור – הגנה ע”י הסתרה

קוד המהודר לצורה בינארית אינו סודי:

תוקף יכול ללמוד הרבה מהתנהגות התכנית●●Reverse engineering

):code obfuscationערבול קוד (

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

הוספת קוד שלא רץ●להזיז קוד●קידוד מידע באופן שונה●הצפנת חלקי תכנית●

Page 44: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

האם קוד פתוח הוא בטוח יותר?

44

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

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

בטוח, יבדקו אותו טרם השימוש”

מצד שני:

במקרה של קוד פתוח אך לא חינמי, התמריץ של אנשים לבחון את ●הקוד קטן יותר (לרוב אין יכולת לשנות אותו) האמונה שקוד פתוח הינו 

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

ימצאו את עצמם עם גרסא לא מעודכנת (ולא בטוחה)

2הרצאה

Page 45: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

קוד פתוח לעומת קוד סגור

45

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

את הבעיות הם "האנשים הטובים" או "האנשים הרעים"

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

לתהליכים אלולרוב, ההחלטה בין קוד פתוח לקוד סגור צריכה 

להיעשות על בסיס שיקולים עסקיים, ולא על­סמך שיקולי בטיחות

2הרצאה

Page 46: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. אל תבטחו בקלות9אל תסמכו על שום דבר (גם לא על תוכנה אחרת שכתבתם) – בדקו תמיד ●

שהפרמטרים הם נכונים

לעיתים, מוצרי אבטחה עשויים לייצר יותר סיכון ממה שהם מונעים (גם להם יש ●חורי אבטחה...)

, יש לתכנן את צד השרת כך שלא יסמוך על client-serverבכתיבת תוכנת ●צד הלקוח, ולהפך

עוזר למידור

שירות לקוחות חשוף להתקפות הנדסה חברתית●

●Snake oil and FUD

אתרים המציעים ייצור ושמירת סיסמאות

אתרים שמוכרים מספרים ראשוניים

...

לפעמים זה לא זהיר גם לסמוך על עצמך...●

2הרצאה 46

Page 47: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

. נצלו משאבי קהילה10

בתחום הקריפטוגרפיה, לא מומלץ להסתמך על אלגוריתמים סודיים שלא נבחנו ●היטב ע"י הקהילה

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

 להצפנה עם AES-GCM לרצפי מידע, AES (AES-CBCהצפנה: שימוש ב­ (אימות ואופני פעולה מיוחדים עבור הצפנת דיסקים.

eSTREAMצפני שטף: פרוייקט 

)SHA-1 (לא SHA-256/SHA-512פונקציות תמצות: 

RSA-OAEPהצפנת מפתח פומבי: 

RSA-PSS, DSA, ECDSAחתימה: אם מאילוצים שונים נעשה שימוש באלגוריתם לא סטנדרטי, לכל הפחות יש ●

לבדוק את בטיחותו עם קריפטוגרף מומחה

2הרצאה 47

Page 48: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

משאבי קהילה – המשך

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

Cryptlib, OpenSSL, Crypto++, Cryptix, BSAFE,…

נצלו את הכלים האוטומטיים שעוזרים לתכנות בטוח ●, וכו')Fuzzers(ספריות שמגנות על זכרון, 

2הרצאה 48

Page 49: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מה הבעיה בקוד הבא?

int i;

scanf(“%d”, &i);

arr = (unsigned int *) malloc (i*sizeof(unsigned int));

if (arr == NULL)

exit(1);

else

for (j=0;j<i;j++)

scanf(“%d”,&arr[j]);

Integer overflowדוגמא –

2הרצאה 49

Page 50: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מה הבעיה בקוד הבא?

int i;

scanf(“%d”, &i);

arr = (unsigned int *) malloc (i*sizeof(unsigned int));

if (arr == NULL)

exit(1);

else

for (j=0;j<i;j++)

scanf(“%d”,&arr[j]);

?i=230+1מה קורה כאשר מתקבל הקלט

תאי זכרון. 4 בתים, המערכת תקצה רק 4 הם בגודל unsigned int ו-intבמערכת בה פעמים!230+1ההקצאה מצליחה, ולכן הלולאה נקראת, אבל

Integer overflowדוגמא –

2הרצאה 50

Page 51: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

mallocאין דרך קלה לדעת כמה זכרון הקצה ●

)mallocניתן לחסום מראש את מספר התוים הנקראים (ואז אין צורך ב­●

 (בהנחה שהמימוש שלו לא חשוף לאותה התקפה)callocניתן להשתמש ב­●

או לחילופין בקטע קוד הבא:●

scanf(“%d”, &i);

arr = (unsigned int *) malloc (i*sizeof(unsigned int))

if (arr == NULL)

exit(1);

n = i * sizeof(unsigned int); // n is of type size_t

n/= sizeof(unsigned int);

for (j=0;j<n;j++)

scanf(“%d”,&arr[j]);

Integer Overflowפתרונות ל-

2הרצאה 51

Page 52: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

מה הבעיה בקוד הבא, המשרשר שתי מחרוזות ומעבד אותן?

int process_concat(char *str1, char *str2, unsigned int len1,unsigned int len2)

{

char concat_str[256];

if ((len1 + len2) > 256)

{

return -1;

}

memcpy(concat_str, str1, len1);

memcpy(concat_str + len1, str2, len2);

return some_function(concat_str);

}

Integer overflowדוגמא נוספת –

2הרצאה 52

.len1+len2הפעם עשויה להתרחש גלישה של הסכום 

Page 53: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

דוגמא לבעיות – אקראיות

מספרים אקראיים הם חיוניים לאבטחת מידע ●

יצירת מפתחות

ערבול נתונים

)nonceערכים חד­פעמיים בפרוטוקולי אבטחה (

 הוא לא באמת אקראי...randomהפלט של פונקציית ●

2הרצאה 53

Page 54: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

איך מייצרים אקראיות?

מחשבים הם דטרמיניסטיים, ולכן לא יכולים לייצר אקראיות אמיתית. ●-Pseudoבמקום זה, הם משתמשים באלגוריתמים המכונים 

random number generators (PRNGכדי לייצר אותם (

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

 שימושית לדיבוג תכניותseedיכולת שליטה ב­

seedיש לוודא כי תוקף לא יוכל לנחש את ה­

חשופים להתקפות (ניחוש), ולכן יש לבחון את בטיחותם PRNGכאשר דרוש קלט אקראי עבור תכנות בטוח, יש לוודא כי ה­●

שמשתמשים בו הוא בטוח קריפטוגרפית

2הרצאה 54

Page 55: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

?PRNG ל-seedאיך בוחרים

, שמות וכן הלאה, IP עפ"י נתונים כמו זמן, כתובת seedאתחול ●עשוי להיות בעייתי – נתונים כאלה הם קלים לניחוש

:seedמקורות חלופיים ל­●

חומרה מיוחדת

קלט משתמש (קצב הקשה, תזוזות עכבר)

מדידת זמני גישה לדיסק

שילוב מספר מקורות

2הרצאה 55

Page 56: 203.4448 (2011) ב”עשת ףרוח רטסמס החוטב הנכות ןכת – 2 האצרהorrd/Security/Lecture2.pdf · ב”עשת ףרוח – תותשרו םיבשחמ תחטבא

© אבטחת מחשבים ורשתות – חורף תשע”ב

Debian ב-PRNGדוגמא: בעיית   (הפצה של לינוקס) דיווח על באג במנגנון ה­Debian, פרוייקט 2008במאי ●

PRNG) http://www.debian.org/security/2008/dsa­1571(  בשל מחיקת שורות הקוד הבאה, שפונהלזכרון לא מאותחל וגורמת לתלונות כלי בדיקת זכרון:

MD_Update(&m,buf,j); [ .. ] MD_Update(&m,buf,j); /* purify complains */

בספמטבר נעשה 2006השינוי) , התהליך מזהה היה היחיד האקראיות מקור השינוי ), PIDעקב

בעל רק אפשריים 32,768שהינו ערכים● , במערכות: שנוצרו המפתחות התיקון ועד השינוי מאז התוצאה

הפצות ( Debianמבוססות בטוחים) Ubuntuכולל אינם

2הרצאה 56