« Home | נבואה ראשונה מתקיימת השנה - Facebook Attack » | לסרוק ולא לנקות - Online AV Scanners » | שנה טובה , ברוכה הבאה 2008 » | השינויים שבוצעו לקראת 2008 בבלוג - חלק א » | האיומים הצפויים ל2008 » | הקוד , לבקשתכם - XSS Translator » | סוף שנה 2007 » | מיקומו של שרת הCA בטופולוגיה הארגונית » | תובנות לגבי העברת מצגות אפקטיביות » | קורס הצגה אפקטיבית »

מהי התקפת Buffer Overflow ?

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

למעשה, המטרה בהתקפה זו , היא לגרום לקטע קוד זדוני, לעבוד תחת מערכת נתונים המוגדרת Priveledged מבחינת הרשאות הגישה שלה ( להתקפות שאינן מוטות Kernel אין צורך בגישה שכזו ) כשלמעשה המטרה שלנו כאן היא ליצור מגע עם זיכרון שכבר הוקצה למערכת ואושר על ידי מערכות הHIPS או הAV לפעולה, להשתיל קוד זדוני מבלי שיתגלה , ולהפעיל אותו.

התקפות Buffer Overflow מתבססות בחלקן ( במקרה זה לדוגמא ) על מבני הנתונים השונים המוקצים במערכת , למשל Heap או Stack שהם הנפוצים ביותר , ולגרום להם לפתוח לנו חלון להכנסת מידע.

זה קורה באופן הבא [ בפישוט ] :

כאשר תוכנה מדברת עם מערכת הזיכרון במחשב, היא מדווחת על הפעולה שאותה בכוונתה לבצע לפני כל ביצוע של פעולה שכזו . כלומר - אם המערכת מעוניינת כעת לקרוא 9 בתים מהזיכרון - היא מדווחת על כך שהיא עומדת לקרוא 9 בתים - מה שמאפשר למערכת בקרת הזיכרון לשלוף את אותם נתונים לקריאה. המערכת גם יודעת לדווח שהיא עומדת לכתוב , למשל לכתוב 4 בתים.

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

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

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

Labels: , , ,

Syndication : Digg It  Add to Technorati Favorites  Stumble It  Worth Reading 

אז ככה אתה רוצה לרסט את ה
fwsm ?

Post a Comment

About

    My Name is Barry Shteiman, im a devoted tech junkie, and this is my blog.
    E: barry.shteiman -at- gmail.com
    Twitter : bshteiman

Tags & Categories

Mailing List & RSS

Stay Updated  
Add to Technorati Favorites