Âûáèðàé : Ïîêóïàé : Èñïîëüçóé
0

Ìèëëèîíû ïðîãðàììèñòîâ â áîëüøîé áåäå. Õàêåðàìè âçëîìàíà îäíà èç ñàìûõ ïîïóëÿðíûõ áèáëèîòåê JavaScript

Õàêåðû àòàêîâàëè ïàêåò Axios – îäíó èç ñàìûõ âîñòðåáîâàííûõ áèáëèîòåê äëÿ ÿçûêà ïðîãðàììèðîâàíèÿ JavaScript. Ñàì JavaScript âõîäèò â òîï-10 ñàìûõ ïîïóëÿðíûõ â ìèðå, à ýòî îçíà÷àåò, ÷òî íà íåì ïèøóò äåñÿòêè ìèëëèîíîâ ðàçðàáîò÷èêîâ ïî âñåé ïëàíåòå. Êîìïðîìåòàöèÿ Axios äåëàåò êàæäîãî èç íèõ ïîòåíöèàëüíîé æåðòâîé õàêåðîâ.

Õàêåðû ïðîòèâ ïðîãðàììèñòîâ

Îäíà èç ñàìûõ ïîïóëÿðíûõ áèáëèîòåê JavaScript, ïàêåò Axios, áûëà àòàêîâàíà õàêåðàìè. Êàê ïèøåò Tom’s Hardware, êèáåðïðåñòóïíèêè âçëîìàëè ëè÷íûé ïðîôèëü îäíîãî èç ìåéíòåéíåðîâ ýòîãî ïðîåêòà è îïóáëèêîâàëè îò åãî èìåíè âðåäîíîñíûå âåðñèè ýòîé áèáëèîòåêè â ðåïîçèòîðèè npm.

Ïîä óãðîçîé äåñÿòêè ìèëëèîíîâ ïðîãðàììèñòîâ. Ñîãëàñíî ðåéòèíãó Tiobe çà ìàðò 2026 ã., JavaScript íàõîäèòñÿ íà øåñòîì ìåñòå ñðåäè ñàìûõ ïîïóëÿðíûõ ÿçûêîâ ïðîãðàììèðîâàíèÿ. ×òî êàñàåòñÿ áèáëèîòåêè Axios, òî â ìåíåäæåðå ïàêåòîâ npm ó íåå îêîëî 100 ìëí çàãðóçîê â íåäåëþ.

Õàêåðû âûëîæèëè ñðàçó äâà çàðàæåííûõ ðåëèçà ýòî ïàêåòà – axios@1.14.1 è axios@0.30.4.  êàæäûé èõ íèõ áûëà âíåäðåíà ñêðûòàÿ çàâèñèìîñòü, êîòîðàÿ íåçàìåòíî óñòàíàâëèâàåò êðîññïëàòôîðìåííûé òðîÿí óäàëåííîãî äîñòóïà íà ìàøèíû ðàçðàáîò÷èêîâ ïîä óïðàâëåíèåì macOS, Windows è Linux.

Êàæäûé, êòî èñïîëüçóåò áèáëèîòåêó Axios, ìîã ïîïàñòüñÿ íà óòî÷êó õàêåðîâ

Îáå âðåäîíîñíûå âåðñèè äîáàâèëè â ìàíèôåñò ïàêåòà îäíó íîâóþ çàâèñèìîñòü: plain-crypto-js@4.2.1, ñïåöèàëüíî ñîçäàííûé òðîÿí, çàìàñêèðîâàííûé ïîä ëåãèòèìíóþ áèáëèîòåêó crypto-js. Ýòîò ïàêåò íèêîãäà íå èìïîðòèðîâàëñÿ è íå óïîìèíàëñÿ íèãäå â èñõîäíîì êîäå Axios. Åãî åäèíñòâåííàÿ ôóíêöèÿ çàêëþ÷àëàñü â âûïîëíåíèè ñêðèïòà postinstall, êîòîðûé ñâÿçûâàëñÿ ñ ñåðâåðîì óïðàâëåíèÿ è êîíòðîëÿ ïî àäðåñó sfrclak.com, çàãðóæàë âðåäîíîñíîå ÏÎ, à çàòåì óíè÷òîæàë âñå ñëåäû ñâîåãî âûïîëíåíèÿ.

Êàê òàê âûøëî

Àòàêó íà Axios âûÿâèëè ñïåöèàëèñòû StepSecurity – ïëàòôîðìû äëÿ çàùèòû öåïî÷êè ïîñòàâîê ïðîãðàììíîãî îáåñïå÷åíèÿ îò àòàê. Îíè îáíàðóæèëè, ÷òî õàêåðàì íå ïðèøëîñü âçëàìûâàòü ïðîôèëü ñàìîãî ïðîåêòà íà GitHub – îíè âëåçëè â àêêàóíò îäíîãî è ãëàâíûõ ñîïðîâîæäàþùèõ ïðîåêòà è âûëîæèëè çàðàæåííûå ñáîðêè áèáëèîòåêè îò åãî èìåíè.

Ýòîò øàã áûë ïðåäïðèíÿò, ïî âñåé âèäèìîñòè, íàìåðåííî. Ïðîíèêíîâåíèå â ïðîåêò ÷åðåç ïðîôèëü îäíîãî èç ìåéíòåéíåðîâ óñûïèëî áäèòåëüíîñòü àëãîðèòìîâ áåçîïàñíîñòè äëÿ ïðîâåðêè ïóáëèêàöèé. Õàêåðû ïîëó÷èëè âñå ïðàâà ñîïðîâîæäàþùåãî ïðîåêòà, êîòîðûé ìîæåò âûêëàäûâàòü ñáîðêè ñàìîñòîÿòåëüíî, òàê êàê ÿâëÿåòñÿ äîâåðåííûì ó÷àñòíèêîì.

Ñëîâíî íèíäçÿ

Çàðàæåííàÿ áèáëèîòåêà ïîñëå çàïóñêà ñêà÷èâàåò íà êîìïüþòåð æåðòâû âðåäîíîñíîå ÏÎ, à ïîñëå âûïîëíÿåò ðÿä äåéñòâèé, ÷òîáû íèêòî íå äîãàäàëñÿ î òîì, ÷òî áèáëèîòåêà Axios çàðàæåíà. Ñêðèïò óäàëÿåò âñå ñëåäû ñâîåé àêòèâíîñòè è äàæå âíåäðÿåò ÷èñòûé ôàéë package.json, áóäòî íè÷åãî è íå áûëî.

Ñïåöèàëèñòû StepSecurity âûÿâèëè, òî çàðàæåííàÿ áèáëèîòåêà – ýòî êëàäåçü òåõíîëîãèé ìàñêèðîâêè âðåäîíîñíîãî ÏÎ.  ÷àñòíîñòè, íåîáõîäèìûå êîìïîíåíòû îíà ñêðûâàåò â ïàïêàõ, ïðåäíàçíà÷åííûõ äëÿ âðåìåííûõ ôàéëîâ, à òðåáóåìûå êîìàíäû âûïîëíÿåò íå íà óñòðîéñòâå, à íà õîñòå. Ïîìèìî ýòîãî, äåîáôóñêàöèÿ êîäà ïðèìåíÿåòñÿ èñêëþ÷èòåëüíî âî âðåìÿ âûïîëíåíèÿ ñêðèïòà.

Ê ìîìåíòó âûõîäà ìàòåðèàëà íå áûëî äîñòîâåðíî èçâåñòíî, ñêîëüêî ÷åëîâåê çàïóñòèëè íà ñâîèõ ÏÊ çàðàæåííóþ áèáëèîòåêó. Êàê ïèøåò Tom’s Hardware, âðåäîíîñíûå âåðñèè Axios îñòàâàëèñü àêòèâíûìè ïðèìåðíî äâà-òðè ÷àñà ïîñëå ïóáëèêàöèè, à çàòåì npm óäàëèë èõ.

Íå ïåðâûé ðàç

Õàêåðû, ïî-âèäèìîìó, õîòÿò íàñîëèòü êàê ìîæíî áîëüøåìó ÷èñëó ðàçðàáîò÷èêîâ íà JavaScript, ïîñêîëüêó ðåãóëÿðíî óñòðàèâàþò àòàêè íà íèõ.  èþíå 2025 ã. CNews îñâåùàë èñòîðèþ âíåäðåíèÿ âðåäîíîñíîãî ÏÎ ñðàçó â íåñêîëüêî ïàêåòîâ â ðåïîçèòîðèè npm.

Çàðàæåíû áûëè ïàêåòû Gluestack @react-native-aria ñ îáùèì êîëè÷åñòâîì åæåíåäåëüíûõ ñêà÷èâàíèé - ñâûøå 1 ìëí. Ñàìûìè ïîïóëÿðíûìè ÿâëÿþòñÿ interactions, utils (aria) è focus – îò 100 äî 125 òûñ. ñêà÷èâàíèé.

Íà÷àëîñü âñå 6 èþíÿ 2025 ã., êîãäà â npm áûëà ïîäãðóæåíà íîâàÿ âåðñèÿ ïàêåòà @react-native-aria/focus. Ïîñëå ýòîãî 17 èç 20 ïàêåòîâ Gluestack áûëè ñêîìïðîìåòèðîâàíû â òå÷åíèå äâóõ ñóòîê.

Êîììåíòàðèè