בשבוע שעבר כתבנו על חבורה של באגים בניהול זיכרון שתוקנו בעדכון האבטחה האחרון של ספריית ההצפנה הפופולרית OpenSSL.
יחד עם באגי הזיכרון האלה, דיווחנו גם על באג שדובב CVE-2022-4304: תזמון אורקל בפענוח RSA.
בבאג הזה, ירי אותה הודעה מוצפנת שוב ושוב אל שרת, אבל משנה את הריפוד בסוף הנתונים כדי להפוך את הנתונים לבלתי חוקיים, ובכך לעורר איזושהי התנהגות בלתי צפויה...
...לא ייקח פרק זמן עקבי, בהנחה שהייתם קרובים ליעד ברשת שתוכלו לנחש בצורה מהימנה כמה זמן ייקח חלק העברת הנתונים בתהליך.
לא כל הנתונים מעובדים באופן שווה
אם תפטר בקשה, תזמן כמה זמן אורך התשובה ותחסיר את הזמן הנצרך בשליחה וקבלה ברמה נמוכה של נתוני הרשת, אתה יודע כמה זמן לקח לשרת לבצע את החישוב הפנימי שלו כדי לעבד את הבקשה .
גם אם אינך בטוח כמה זמן מנוצל ברשת, אתה יכול לחפש וריאציות בזמני הלוך ושוב על ידי הפעלת הרבה בקשות ואיסוף המון דוגמאות.
אם הרשת אמינה מספיק כדי להניח שתקורת הרשת היא קבועה ברובה, ייתכן שתוכל להשתמש בשיטות סטטיסטיות כדי להסיק איזה סוג של שינוי נתונים גורם לאיזה עיכוב נוסף בעיבוד.
מכאן, רבים יכולים להסיק משהו על המבנה, או אפילו התוכן, של הנתונים המקוריים הלא מוצפנים שאמורים להישמר בסוד בתוך כל בקשה חוזרת.
גם אם אתה יכול לחלץ רק בייט אחד של טקסט רגיל, ובכן, זה לא אמור לקרות.
מה שנקרא התקפות תזמון מהסוג הזה תמיד בעייתי, גם אם ייתכן שתצטרך לשלוח מיליוני מנות מזויפות ולתזמן את כולן כדי שיהיה לך סיכוי לשחזר רק בייט אחד של נתוני טקסט רגיל...
...מכיוון שרשתות הן מהירות יותר, צפויות יותר ומסוגלות להתמודד עם הרבה יותר עומס ממה שהן היו רק לפני כמה שנים.
אתה עשוי לחשוב שמיליוני חבילות בוגדניות שנשלחו אליך בספאם, למשל, בשעה הבאה יבלטו כמו אגודל.
אבל "מיליון חבילות בשעה יותר או פחות מהרגיל" היא פשוט כבר לא וריאציה גדולה במיוחד.
באג "אורקל" דומה ב-GnuTLS
ובכן, אותו אדם שדיווח על באג תזמון הבאג המתוקן ב-OpenSSL דיווח גם על א באג דומה ב-GnuTLS בערך באותו זמן.
לזה יש את מזהה הבאגים CVE-2023-0361.
למרות ש-GnuTLS אינו פופולרי או בשימוש נרחב כמו OpenSSL, כנראה שיש לך מספר תוכניות ב-IT שלך, או אפילו במחשב שלך, שמשתמשות בו או כוללות אותו, אולי כולל FFmpeg, GnuPG, Mplayer, QEMU , Rdesktop, Samba, Wget ו-Wireshark.
למרבה האירוניה, פגם התזמון ב-GnuTLS הופיע בקוד שאמור היה לרשום שגיאות תזמון מלכתחילה.
כפי שאתה יכול לראות מהבדל הקוד (הבדל) להלן, המתכנת היה מודע לכך שכל מותנה (if ... then
) הפעולה המשמשת בבדיקה והתמודדות עם שגיאת פענוח עשויה לייצר וריאציות של תזמון, מכיוון שמעבדים בדרך כלל לוקחים פרק זמן שונה בהתאם לאיזה דרך הקוד שלך הולך לאחר הוראה "ענף".
(זה נכון במיוחד לענף שלעתים קרובות הולך לכיוון אחד ולעתים רחוקות לאחר, מכיוון שמעבדים נוטים לזכור, או לאחסן במטמון, קוד שפועל שוב ושוב על מנת לשפר את הביצועים, ובכך לגרום לקוד שנלקח לעתים רחוקות לרוץ לאט יותר לזיהוי.)
אבל המתכנת עדיין רצה לרשום שאולי מתרחשת התקפה, מה שקורה אם if (ok)
המבחן לעיל נכשל ומסתעף לתוך else { ... }
סָעִיף.
בשלב זה, הקוד קורא ל- _gnutls_debug_log()
פונקציה, שיכולה לקחת לא מעט זמן לעשות את עבודתה.
לכן הקודן הכניס קריאה מכוונת ל _gnutls_no_log()
ב then { ... }
חלק מהקוד, שמתיימר לרשום "התקפה" כשאין כזו, כדי לנסות להאריך את הזמן שהקוד מבלה בכל כיוון if (ok)
הוראת סניף יכולה לקחת.
אולם ככל הנראה, שני נתיבי הקוד לא היו דומים מספיק בזמן שהם ניצלו (או אולי ה _gnutls_debug_log()
התפקוד בפני עצמו לא היה עקבי מספיק בהתמודדות עם סוגים שונים של שגיאות), ותוקף יכול להתחיל להבחין בסימני פענוח לאחר מיליון ניסיונות לערך.
מה לעשות?
אם אתה מתכנת: תיקון הבאגים כאן היה פשוט, ופעל לפי עיקרון "פחות זה יותר".
הקוד בוורוד למעלה, שנחשב בכל מקרה לא נותן נתוני זיהוי תקיפה מאוד שימושיים, פשוט נמחק, בטענה שאי אפשר להרכיב קוד שלא קיים בטעות, ללא קשר להגדרות הבנייה שלך...
...וקוד שלא הידור לא יוכל לפעול לעולם, בין אם בטעות או בתכנון.
אם אתה משתמש GnuTLS: הגרסה שיצאה לאחרונה 3.7.9 ו"טעם המוצר החדש" 3.8.0 יש לכלול את התיקון הזה, יחד עם כמה אחרים.
אם אתה מפעיל הפצת לינוקס, בדוק אם יש עדכונים לכל גרסת ספרייה משותפת בניהול מרכזי של GnuTLS שברשותך, כמו גם אפליקציות שמביאות גרסה משלהן.
ב-Linux, חפש קבצים עם השם libgnutls*.so
למצוא ספריות משותפות כלשהן, ולחפש gnutls-cli
כדי למצוא עותקים כלשהם של תוכנית השירות של שורת הפקודה הכלולה לעתים קרובות עם הספרייה.
אתה יכול לרוץ gnutls-cli -vv
כדי לברר איזו גרסה של libgnutls
זה מקושר באופן דינמי ל:
$ gnutls-cli -vv gnutls-cli 3.7.9 <-- הפצת הלינוקס שלי קיבלה את העדכון ביום שישי האחרון (2023-02-10)
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://nakedsecurity.sophos.com/2023/02/13/serious-security-gnutls-follows-openssl-fixes-timing-attack-bug/
- 1
- 7
- 70
- 9
- a
- יכול
- אודות
- מֵעַל
- מוּחלָט
- תאונה
- לאחר
- נגד
- תעשיות
- תמיד
- כמות
- ו
- לענות
- נראה
- אפליקציות
- סביב
- לתקוף
- מחבר
- המכונית
- רקע תמונה
- כי
- להלן
- גבול
- תַחתִית
- סניף
- ענפים
- להביא
- חרק
- באגים
- לִבנוֹת
- צרור
- מטמון
- שיחה
- שיחות
- מסוגל
- גורמים
- מרכז
- סיכוי
- לבדוק
- בדיקה
- סְגוֹר
- קוד
- מקודד
- איסוף
- צֶבַע
- חישוב
- המחשב
- עִקבִי
- קבוע
- מאוכל
- תוכן
- יכול
- לכסות
- נתונים
- התמודדות
- עיכוב
- תלוי
- עיצוב
- איתור
- הבדל
- אחר
- כיוון
- לְהַצִיג
- לְהַבחִין
- דיבוב
- באופן דינמי
- כל אחד
- או
- מוצפן
- הצף
- מספיק
- שגיאה
- שגיאות
- במיוחד
- אחוזה
- אֲפִילוּ
- נוסף
- תמצית
- נכשל
- מהר יותר
- מעטים
- קבצים
- אש
- ירי
- ראשון
- לסדר
- קבוע
- פגם
- בעקבות
- כדלקמן
- יום שישי
- החל מ-
- פונקציה
- בדרך כלל
- לתת
- knotls
- Goes
- עילה
- טיפול
- לקרות
- קורה
- גובה
- כאן
- לרחף
- איך
- אולם
- HTTPS
- מזהה
- לשפר
- in
- לכלול
- כלול
- כולל
- פנימי
- IT
- רק אחד
- לדעת
- גָדוֹל
- במידה רבה
- אחרון
- האחרון
- ספריות
- סִפְרִיָה
- קו
- צמוד
- לינוקס
- לִטעוֹן
- המון
- ארוך
- נראה
- לעשות
- עשייה
- ניהול
- רב
- שולים
- max-width
- זכרון
- הודעה
- שיטות
- יכול
- מִילִיוֹן
- מיליונים
- טעות
- יותר
- שם
- צורך
- רשת
- נתוני רשת
- רשתות
- רשתות
- הבא
- נוֹרמָלִי
- מספר
- ONE
- OpenSSL
- מבצע
- אורקל
- להזמין
- מְקוֹרִי
- אחר
- אחרים
- שֶׁלוֹ
- מנות
- חלק
- במיוחד
- פול
- ביצועים
- אוּלַי
- אדם
- מקום
- טקסט רגיל
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- נקודה
- פופולרי
- עמדה
- הודעות
- צפוי
- עקרון
- כנראה
- תהליך
- תהליך
- לייצר
- המוצר
- מְתַכנֵת
- תוכניות
- מחלים
- ללא קשר
- אָמִין
- לזכור
- חזר
- שוב ושוב
- דווח
- לבקש
- בקשות
- RSA
- הפעלה
- ריצה
- סמבה
- אותו
- חיפוש
- סוד
- סעיף
- אבטחה
- עדכון אבטחה
- לעתים נדירות
- רציני
- משותף
- דומה
- פָּשׁוּט
- בפשטות
- So
- מוצק
- כמה
- משהו
- לעמוד
- סטטיסטי
- עוד
- מִבְנֶה
- אמור
- SVG
- לקחת
- לוקח
- יעד
- מבחן
- אל האני
- שֶׁלָהֶם
- לחשוב
- זמן
- פִּי
- תזמון
- ל
- חלק עליון
- להעביר
- מַעֲבָר
- שָׁקוּף
- נָכוֹן
- בלתי צפוי
- עדכון
- עדכונים
- כתובת האתר
- להשתמש
- משתמש
- תועלת
- שונים
- גרסה
- רציתי
- שבוע
- מה
- אם
- אשר
- בזמן
- מי
- תיק עבודות
- היה
- שנים
- זפירנט