חוקר חושף: כך פרצתי בקלילות לאפל, מיקרוסופט, טסלה ופייפאל

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

תמונה: Pexels​

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

האם האמונה העיוורת שלכם יכולה להיות מנוצלת?

ללא מעט שפות תכנות יש מאגרי קודים מאחוריהן שמשתמשים לרוב בקוד פתוח שנכתב על ידי אנשים אחרים. כל אחד יכול להעלות אליהם חבילות כך שאחרים ישתמשו בהן. ל-Python יש את PyPi, ל-Node יש את npm ול-Ruby יש את RubyGems. “כשאתם מורידים ומשתמשים בחבילות מכל אחד מהמאגרים האלה, אתם בפועל בוטחים במפרסמים שלהם שיריצו קוד על המכונות שלכם. אז האם האמונה העיוורת הזאת יכולה להיות מנוצלת על ידי שחקנים רעים?”, תהה בירסן.

והתשובה היא כן.

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


רוצים לקבל את הידיעות ברגע שהן עולות? הירשמו עכשיו לערוץ הטלגרם שלנו


כדי שהוא יוכל לזהות למי הוא הצליח לפרוץ, ולהוכיח לצוותי האבטחה של אותן חברות שהוא אכן אסף מידע שמוגדר כרגיש, בירסן יצר חבילות שאוספות את שם המשתמש, ה-Hostname, נתיב ההתקנה וכתובות IP חיצוניות. את המידע הוא שלח לעצמו באמצעות שאילתות DNS. משם הוא בנה בנק מטרות על ידי חיפוש של שמות חבילות פרטיות בגיטהאב ושירותי איחסון חבילות אחרים, וכן על ידי חיטוט בקובצי JavaScript. כך למשל, הוא הצליח למצוא שמות חבילות פנימיות של אפל, Yelp וגם טסלה.

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

130 אלף דולר מתיאוריה אחת

“אחוזי ההצלחה היו מדהימים”, הוא מספר. בירסן מכנה את המתקפה הזאת “Dependency Confusion”, ותיאורטית היא יכולה לאפשר לו או לשחקן רע גישה לרשתות של כמה מהחברות הגדולות בעולם, לאפשר לו להפעיל קוד מרחוק ולבנות דלתות אחוריות ישר אל תוך המוצרים של החברות. בירסן הצליח לחדור ליותר מ-35 אירגונים עד כה, רובם הגדול מעסיקים גדולים של יותר מ-1,000 עובדים, לטענתו. בחלק מהמקרים, הוא טוען כי החבילות הותקנו תוך דקות מההעלאה שלהן.

בסופו של יום, בירסן הרוויח יותר מ-130 אלף דולר דרך תוכניות Bug Bounty ומבדקי חדירה (Pen Test) מאושרים מראש של החברות השונות. מיקרוסופט פירגנה יותר מכולן עם סכום של 40 אלף דולר, בעוד אפל, Yelp ופייפאל הסתפקו בסכומים צנועים יותר. דווקא האנשים שמאחורי PyPI, טענו שהעבודה סביב תוכנית Bug Bounty לא מסייעות בהגנה על כל האקוסיסטם. בירסמן עצמו ביקש להבהיר כי הוא לא ממליץ לעשות בדיקות שכאלו ללא תיאום מראש עם החברות השונות, וכי הוא עשה את כל הבדיקות הללו תחת אישור, הסכמים פרטיים או תוכניות מוגדרות מראש.

לגילוי של בירסן, יש גם נקודה ישראלית. בירסן ציין גם את JFrog Artifactory, שמאפשרת עירבוב בין ספריות פנימיות ופומביות תחת אותו מאגר: “מספר לקוחות ציינו ש-Artifactory משתמשת בדיוק באותו אלגוריתם עם אותה חולשה שתיארתי, כדי להחליט האם הוא יגיש חבילה פנימית או חיצונית בעלת אותו השם” כתב החוקר. עם זאת, הוא מציין שג’ייפרוג מודעת לבעיה ומטפלת בה אך ללא כל מועד משוער לתיקונה.

פנינו לחברת JFROG ומהחברה נמסרה לנו התגובה הבאה:בניגוד לאמור בבלוג, JFrog Artifactory מאפשר לסנן ספריות תוכנה המגיעות ממקורות חיצוניים על מנת לא לחשוף משתמשים למתקפות כגון זו המוזכרת בבלוג. כאשר משלבים בין מקורות פנימיים וחיצוניים יש להקפיד על סינון של ספריות תוכנה המגיעות ממקורות חיצוניים על מנת לא לחשוף את החברה למתקפות ואף פרסמנו בבלוג שלנו את השיטות המומלצות להתמודדות באמצעות Artifactory וכיצד ליישם אותן. אנו מייחסים חשיבות עליונה לשמירה על אבטחת מידע והגנה על סביבות הפיתוח של לקוחותינו ברחבי העולם”.

רק קצה הקרחון?

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

לפוסט המלא של בירסן

 

 

עידן בן טובים

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

הגב

5 תגובות על "חוקר חושף: כך פרצתי בקלילות לאפל, מיקרוסופט, טסלה ופייפאל"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
מיאני
Guest

פשוט וגאוני.

משתמש אובונטו
Guest

זאת הפרצה הכי פשוטה ויעילה שאני יכול לחשוב עליו. כל הכבוד לחוקר הזה. מעניין כמה שנים זה כבר קיים בmaven העתיקה ושאר מנהלי dependencies.

דורון
Guest

JFROG פורסם השבוע

מישהו
Guest

אין לזה אף פתרון חוץ מלציין UUID במקום שם חבילה להתקנה, וכן שהחברות שמנהלות את המאגרים לא ירשו העלאת חבילות בשמות זהים לקיימות

תומר
Guest

צריך פשוט לעבוד עם package lock עם גרסאות מוכחות בלבד ללא auto upgrade

wpDiscuz

תגיות לכתבה: