מהי הפגיעות של Heartbleed?

click fraud protection

אחת הפגיעות הידועות ביותר של אמצע שנות ה-2010 נקראה "Heartbleed". Heartbleed היה רציני במיוחד מכיוון שזו התוכנה שהיא השפיעה על "OpenSSL", ספריית ההצפנה הראשית לחיבורי HTTPS, שנמצאים בשימוש נרחב מאוד. כדי להחמיר את המצב, הפגיעות הייתה קיימת ב-OpenSSL יותר משנתיים לפני כן זה התגלה, פורסם ותוקן, מה שאומר שהרבה אנשים השתמשו בפגיעות גִרְסָה.

Heartbleed הייתה פגיעות של דליפת נתונים בהרחבת Heartbeat שכאשר ניצלה דלפו נתונים מ-RAM מהשרת ללקוח. הרחבת Heartbeat משמשת לשמירה על חיבור בין שרת האינטרנט ללקוח מבלי לבצע בקשת עמוד רגילה.

במקרה של OpenSSL, הלקוח שולח הודעה לשרת ומודיע לשרת כמה זמן ההודעה, עד 64KB. לאחר מכן השרת אמור להדהד את אותה הודעה בחזרה. עם זאת, באופן מכריע, השרת למעשה לא בדק שההודעה הייתה ארוכה כפי שהלקוח טען שהיא הייתה. המשמעות היא שלקוח יכול לשלוח הודעה של 10KB, לטעון שהיא 64KB ולקבל תגובה של 64KB, כאשר 54KB הנוספים מורכבים מ-54KB הבאים של זיכרון RAM, לא משנה אילו נתונים מאוחסנים שם. תהליך זה מוצג היטב על ידי קומיקס XKCD #1354.

התמונה באדיבות xkcd.com.

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

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

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

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