NSA ו-CISA המליצו על 'שפות זיכרון בטוחות' – לאבטחת תוכנה לאומית
הסוכנויות לביטחון לאומי של ארה"ב דורשות מעבר לשפות תכנות מתקדמות, כמו Rust ● המטרה: למנוע פגיעויות קריטיות בזיכרון, שאחראיות למרבית פרצות האבטחה בתוכנה הממשלתית והלאומית
הסוכנות לביטחון לאומי של ארצות הברית, ה-NSA, בשיתוף עם הסוכנות לאבטחת סייבר ותשתיות, CISA, שחררו נייר עמדה לפיו יש להגביר את השימוש ב-'שפות זיכרון בטוחות' בפיתוח הכולל של התוכנה במדינה, ובוודאי ברמה הממשלתית והביטחונית. המטרה, על פי הסקירה שפורסמה, היא להימנע מפגיעויות שיכולות להיגרם בגלל שימוש בשפות שאינן בטוחות בשימוש שלהן בזיכרון. בעיקר מדובר בשפות מסורתיות כמו C ולצידה ++C, שעבורן נדרש ניהול ידני של הזיכרון כדי למנוע תופעות כמו גלישות בכתובות זיכרון, זליגות מידע מחוצצים שלא מטופלות היטב וכדומה.
לפי כותבי הסקירה, 'שפות זיכרון בטוחות' מציעות מנגנוני אבטחה מובנים, שמקלים מאוד על המפתחים ועל סביבת הפיתוח שלהם, כי מנגנוני הבטיחות מובנים ישירות ברמה השפה, כשאחד המנגנונים החשובים ביותר הוא מה שמכונה 'איסוף זבל אוטומטי', כדי לא להשאיר נתונים וכתובות זיכרון פתוחות ללא צורך. מנגנון אחר הוא האפשרות לבצע בדיקות זמן ריצה בזמן אמת, כדי להבטיח שימוש בטוח בזיכרון.
Memory safety is one of many important aspects that contribute to holistic security. Software producers should utilize our new guidance to plan for and begin adoption of Memory Safe Languages today to reduce the risk of security incidents.
🔗: https://t.co/TdO9hxmw4s pic.twitter.com/5ExO5KBLw4
— NSA Cyber (@NSACyber) June 24, 2025
אי אפשר להפריז בחשיבות בשימוש בשפות זיכרון בטוחות
במסמך נטען שאי אפשר להפריז בחשיבות של שימוש בשפות זיכרון בטוחות. הוא מצטט מחקר מ-2019 לפיו ההערכה היא ש-66% מרישומי ה-CVE – הרישומים שמאשרים פריצות ופגיעויות בתוכנות – עבור סביבת ה-iOS נבעו מבעיות בטיחות בזיכרון. דוגמה אחרת היא שבמהלך 2021 כשני שליש מבין הזיהויים של פגיעויות יום אפס נבעו מפגיעויות של פיתוח באמצעות תוכנות שאינן מספיק בטוחות בשימוש בזיכרון ובניקוי של נתונים – וההשלכות של בעיות כאלו נעו מדליפת נתונים, דרך פתיחת דלת להאקרים ועד הקרסת מערכות או בעיות תפעוליות שונות.
המקרים השכיחים שמזוכרים בסקירה הם: 'גלישת חוצץ' – תקלה בה מועברים לחוצץ שהוגדר לו גודל קבוע יותר מדי נתונים, כך שהם גולשים החוצה ופוגעים ומשחיתים נתונים בכתובות סמוכות; 'שימוש לאחר שחרור' – כאשר מוקצה זיכרון עבור שימוש מסוים אבל אחר כך, אחרי שהתוכנה משחררת את הצורך, הוא נשאר מוקצה ופתוח לשימוש, כך שאפשר להזריק אליו פקודות פוגעניות; 'מרוץ נתונים' – מקרה בו שני תהליכים או יותר באותה אפליקציה מנסים לגשת בו-זמנית לאותן כתובות, מה שיכול להוביל להשחתת נתונים; ו-'אתחול לא בטוח' – תופעה בה מתכנת מניח שהקצאת הזיכרון בוצעה נכון, ובלי לבדוק שזה אכן קרה, נכנסים אל תוך היישום נתונים לא נכונים.
הסקירה מציגה תמונת מצב של המעבר לשפות זיכרון בטוחות בתעשייה, בממשל ובמערך האבטחה של המדינה. היא ממליצה במפורש על מעבר לשפות אלו, כש-Rust מוצעת בראש ובראשונה. לפי כותבי הדו"ח, Rust מכילה מנגנונים שונים שמקלים על המעבר אליה משפות נפוצות אך פחות בטוחות כמו C ו-++C.
"פגיעויות זיכרון מהוות סיכונים חמורים לביטחון הלאומי ולתשתיות קריטיות", נכתב במסקנות נייר העמדה. "שפות זיכרון בטוחות מציעות את האמצעים המקיפים ביותר להפחתת הסיכון כנגד סוג פגיעויות נרחב ומסוכן זה. אימוץ שפות אלו יכול להאיץ את פיתוח התוכנה המודרני, ולשפר את האבטחה על ידי ביטול הפגיעויות הללו מהשורש. אימוץ אסטרטגי זה הוא השקעה בעתיד תוכנה מאובטח. על ידי הגדרת מפות דרכים לבטיחות זיכרון והובלת אימוץ שיטות עבודה מומלצות, ארגונים יכולים לשפר באופן משמעותי את חוסן התוכנה ולסייע להבטיח נוף דיגיטלי בטוח יותר".











תגובות
(0)