PyTorch: ערכת כלים של למידת מכונה התפתחה מחג המולד ועד השנה החדשה PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

PyTorch: ערכת כלים של למידת מכונה התפתחה מחג המולד ועד השנה החדשה

PyTorch היא אחת מערכות הכלים הפופולריות והנפוצות ביותר של למידת מכונה.

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

התוכנה פותחה ושוחררה במקור כפרויקט קוד פתוח על ידי פייסבוק, כיום Meta, והועברה לקרן לינוקס בסוף 2022, שמנהלת אותה כעת בחסות קרן PyTorch.

לצערי, הפרויקט נפגע באמצעות מתקפת שרשרת האספקה במהלך עונת החגים בסוף 2022, בין חג המולד [2022-12-25] ליום שלפני ערב השנה החדשה [2022-12-30].

התוקפים יצרו בזדון חבילת Python בשם torchtriton ב- PyPI, מאגר אינדקס החבילות הפופולרי של Python.

שם torchtriton נבחר כך שתתאים לשם של חבילה במערכת PyTorch עצמה, מה שיוביל למצב מסוכן הוסבר על ידי צוות PyTorch (ההדגשה שלנו) כדלקמן:

[א] חבילת תלות זדונית (torchtriton) […] הועלה למאגר הקודים של Python Package Index (PyPI) עם שם חבילה זהה לזה שאנו שולחים באינדקס החבילות הלילי של PyTorch. מכיוון שמדד PyPI מקבל עדיפות, החבילה הזדונית הזו הותקנה במקום הגרסה מהמאגר הרשמי שלנו. עיצוב זה מאפשר למישהו לרשום חבילה באותו שם כמו כזו שקיימת באינדקס של צד שלישי, וכן pip יתקין את הגרסה שלהם כברירת מחדל.

התכנית pip, אגב, היה ידוע בעבר בשם pyinstall, והיא ככל הנראה בדיחה רקורסיבית שקיצור לה pip installs packages. למרות שמו המקורי, זה לא מיועד להתקנת Python עצמה – זו הדרך הסטנדרטית של משתמשי Python לנהל ספריות תוכנה ויישומים שנכתבו ב- Python, כמו PyTorch וכלים פופולריים רבים אחרים.

מושפע מטריק שרשרת אספקה

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

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

  • מידע מערכת, כולל שם מארח, שם משתמש, משתמשים ידועים במערכת והתוכן של כל משתני סביבת המערכת. משתני סביבה הם דרך לספק נתוני קלט בזיכרון בלבד שאליהם תוכניות יכולות לגשת כשהן מתחילות, כולל נתונים שלא אמורים להישמר בדיסק, כגון מפתחות הצפנה ואסימוני אימות המעניקים גישה לשירותים מבוססי ענן. רשימת המשתמשים הידועים נשלפת /etc/passwd, אשר, למרבה המזל, אינו מכיל למעשה סיסמאות או גיבוב סיסמאות.
  • תצורת Git המקומית שלך. זה נגנב מ $HOME/.gitconfig, ובדרך כלל מכיל מידע שימושי על ההגדרה האישית של כל מי שמשתמש במערכת ניהול קוד המקור הפופולרית Git.
  • מפתחות ה-SSH שלך. אלה נגנבים מהספרייה $HOME/.ssh. מפתחות SSH כוללים בדרך כלל את המפתחות הפרטיים המשמשים לחיבור מאובטח באמצעות SSH (מעטפת מאובטחת) או שימוש ב-SCP (עותק מאובטח) לשרתים אחרים ברשתות שלך או בענן. הרבה מפתחים שומרים לפחות חלק מהמפתחות הפרטיים שלהם לא מוצפנים, כך שסקריפטים וכלי תוכנה שהם משתמשים בהם יכולים להתחבר אוטומטית למערכות מרוחקות מבלי להשהות כדי לבקש סיסמה או מפתח אבטחה חומרה בכל פעם.
  • 1000 הקבצים האחרים הראשונים בספריית הבית שלך קטנים מ-100 קילובייט. תיאור התוכנה הזדונית של PyTorch לא אומר כיצד מחושבת "רשימת 1000 הקבצים הראשונים". התוכן והסדר של רשימות הקבצים תלויים בשאלה אם הרשימה ממוינת בסדר אלפביתי; האם מבקרים בספריות משנה לפני, במהלך או אחרי עיבוד הקבצים בספריה כלשהי; האם כלולים קבצים מוסתרים; והאם נעשה שימוש באקראיות כלשהי בקוד שעובר את דרכו במדריכים. אתה כנראה צריך להניח שכל קבצים מתחת לסף הגודל יכולים להיות אלה שבסופו של דבר ייגנבו.

בשלב זה, נזכיר את החדשות הטובות: רק אלה שהביאו את מה שנקרא "לילי", או ניסיונית, של התוכנה היו בסיכון. (השם "לילי" נובע מהעובדה שזה המבנה האחרון מאוד, שנוצר בדרך כלל אוטומטית בסוף כל יום עבודה.)

רוב משתמשי PyTorch כנראה ידבקו הגרסה המכונה "יציב", שלא הושפעה מהמתקפה זו.

כמו כן, מהדוח של PyTorch, נראה שכן קובץ ההפעלה של תוכנת זדונית Triton ממוקד במיוחד לסביבות לינוקס של 64 סיביות.

לכן אנו מניחים שתוכנית זדונית זו תפעל רק במחשבי Windows אם תת-מערכת Windows עבור Linux (WSL) הייתה מותקנת.

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

גניבת נתוני DNS

באופן מסקרן, התוכנה הזדונית של Triton אינה מסננת את הנתונים שלה (מונח הז'רגון המיליטריסטי שתעשיית אבטחת הסייבר אוהבת להשתמש במקום לגנוב or להעתיק באופן לא חוקי) באמצעות HTTP, HTTPS, SSH או כל פרוטוקול אחר ברמה גבוהה.

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

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

זה אותו סוג של טריק שבו השתמשו האקרים של Log4Shell בסוף 2021, שהדליף מפתחות הצפנה על ידי חיפושי DNS עבור "שרתים" עם "שמות" שבמקרה היו הערך של מפתח הגישה הסודי שלך ל-AWS, שנגזל ממשתנה סביבה בזיכרון.

אז מה שנראה כמו חיפוש DNS תמים, אם כי חסר טעם, עבור "שרת" כגון S3CR3TPA55W0RD.DODGY.EXAMPLE ידליף בשקט את מפתח הגישה שלך במסווה של חיפוש פשוט המכוון לשרת ה-DNS הרשמי הרשום עבור DODGY.EXAMPLE תחום.


LIVE LOG4SHELL הדגמה המסבירה אקספילטרציה של נתונים באמצעות DNS

[תוכן מוטבע]

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


אם הנוכלים הבעלים של הדומיין DODGY.EXAMPLE, הם יכולים לומר לעולם לאיזה שרת DNS להתחבר בעת ביצוע חיפושים אלה.

חשוב מכך, אפילו רשתות שמסננות בקפדנות חיבורי רשת מבוססי TCP באמצעות HTTP, SSH ופרוטוקולי שיתוף נתונים ברמה גבוהה אחרים...

...לפעמים אין לסנן כלל חיבורי רשת מבוססי UDP המשמשים לחיפושי DNS.

החיסרון היחיד עבור הנוכלים הוא שלבקשות DNS יש גודל מוגבל למדי.

שמות שרתים בודדים מוגבלים ל-64 תווים מתוך קבוצה של 37 (AZ, 0-9 וסמל המקף או המקף), ורשתות רבות מגבילות מנות DNS בודדות, כולל כל הבקשות הסגורות, הכותרות והמטא נתונים, ל-512 בתים בלבד כל אחת.

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

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

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

מה לעשות?

PyTorch כבר נקטה בפעולה כדי לסגור את ההתקפה הזו, אז אם עדיין לא נפגעת, כמעט בטוח שלא תקבל מכה עכשיו, כי הזדוני torchtriton החבילה ב- PyPI הוחלפה בחבילה "דוד" בכוונה ריקה בעלת אותו שם.

זה אומר שכל אדם, או כל תוכנה, שניסה להתקין torchtriton מ-PyPI לאחר 2022-12-30T08:38:06Z, בין אם בטעות ובין אם בתכנון, לא יקבל את התוכנה הזדונית.

חבילת PyPI הנוכלית לאחר התערבותה של PyTorch.

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

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

לפי PyTorch:

  • התוכנה הזדונית מותקנת עם שם הקובץ triton. כברירת מחדל, היית מצפה למצוא אותו בספריית המשנה triton/runtime בספריית חבילות אתר Python שלך. בהתחשב בכך ששמות קבצים בלבד הם אינדיקטורים חלשים של תוכנות זדוניות, עם זאת, התייחס לנוכחות של קובץ זה כראיה לסכנה; אל תתייחסו להעדרו כאל צלול.
  • לתוכנה הזדונית במתקפה הספציפית הזו יש סכום SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. שוב, ניתן בקלות להרכיב מחדש את התוכנה הזדונית כדי לייצר סכום ביקורת אחר, כך שהיעדר קובץ זה אינו סימן לבריאות מוגדר, אך ניתן להתייחס לנוכחותו כאל סימן לזיהום.
  • חיפושי DNS המשמשים לגניבת נתונים הסתיימו בשם הדומיין H4CK.CFD. אם יש לך יומני רשת שמתעדים חיפושי DNS לפי שם, אתה יכול לחפש מחרוזת טקסט זו כהוכחה לכך שדלפו נתונים סודיים החוצה.
  • תשובות ה-DNS הזדוניות כנראה הגיעו אל, ותשובות, אם בכלל, הגיעו משרת DNS שנקרא WHEEZY.IO. נכון לעכשיו, איננו יכולים למצוא מספרי IP המשויכים לשירות זה, ו-PyTorch לא סיפקה שום נתוני IP שיקשרו את טאפיק ה-DNS לתוכנה זדונית זו, כך שאיננו בטוחים עד כמה המידע הזה משמש לציד איומים. כרגע [2023-01-01T21:05:00Z].

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

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

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

אם אתה חושד שנפגעת, כמובן, אל תדחה את עדכוני מפתח ה-SSH האלה - אם עדיין לא עשית אותם, בצע אותם עכשיו!


בול זמן:

עוד מ ביטחון עירום