הם זיהו פגיעות בספריית האלגוריתמים SHA-3

פגיעות

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

זוהתה פגיעות (כבר רשום תחת CVE-2022-37454) en יישום פונקציית הגיבוב ההצפנה SHA-3 (Keccak), המוצעת בחבילת XKCP (Extended Keccak Code Package).

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

El paquete XKCP ידוע כיישום הרשמי של SHA-3, שפותח בעזרת צוות הפיתוח של Keccak, ו משמש כבסיס לפונקציות לעבודה עם SHA-3 בשפות תכנות שונות (לדוגמה, נעשה שימוש בקוד XKCP במודול Python hashlib, בחבילת Ruby digest-sha3 ובפונקציות PHP hash_*).

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

הסיבה לתקלת הפילוח היא שסקריפטים ינסו לכתוב יותר נתונים למאגר ממה שהוא יכול להכיל. פגיעות כזו ידועה כ-buffer overflow, אשר OWASP מתארת ​​כ"כנראה הצורה הידועה ביותר של פגיעות אבטחת תוכנה".

גרסה קטנה של הקוד תגרום ללולאה אינסופית: פשוט החליפו את 4294967295 ב-4294967296. שימו לב לדמיון ל-CVE-2019-8741, פגיעות נוספת שמצאתי שהשפיעה על הקושחה של למעלה מ-1.400 מיליארד מכשירי אפל, מה שגרם גם ללולאה אינסופית.

בנוסף, הוכרזה על יצירת ניצול אב טיפוס, que מאפשר להשיג ביצוע קוד בעת חישוב ה-hash מקובץ שעוצב במיוחד. הפגיעות יכולה לשמש גם כדי לתקוף אלגוריתמים לאימות חתימה דיגיטלית באמצעות SHA-3 (לדוגמה, Ed448). פרטים על שיטות התקיפה צפויים להתפרסם במועד מאוחר יותר, לאחר הסרה כללית של הפגיעות.

התנהגות מסוג זה לא אמורה להתרחש בשפות "בטוחות" כמו Python ו-PHP, מכיוון שהן בודקות שכל פעולות הקריאה והכתיבה נמצאות בגבולות החיץ. עם זאת, הבעיה היא שהפגיעות קיימת בשפת C ה"לא בטוחה" הבסיסית...

עדיין לא ברור כיצד הפגיעות משפיעה על יישומים קיימים בפועל, שכן כדי שהבעיה תתבטא בקוד, יש להשתמש בחישוב גיבוב מחזורי על בלוקים, ואחד מהבלוקים המעובדים חייב להיות בגודל של כ-4 GB (לפחות 2^32 - 200 בתים) .

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

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

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

במיוחד מוזכר שכאשר משווים, הביטוי «partialBlock + מופע->byteIOIndex«, אשר, עם ערכים גדולים של החלקים המרכיבים, הוביל להצפה במספרים שלמים. כמו כן, היה typecast שגוי "(unsigned int)(dataByteLen - i)" בקוד, מה שגרם לגלישה במערכות עם סוג size_t של 64 סיביות.

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.