През последните дни бе разкрит сериозен инцидент в екосистемата на JavaScript и TypeScript, при който 144 npm пакета, свързани с Mastra – популярна рамка за разработка на изкуствен интелект (AI) приложения, са били компрометирани. Атаката е осъществена чрез поемане на контрол върху един от акаунтите на сътрудник в проекта, което е позволило масово публикуване на злонамерен код в пакетите.
Какво се случи?
Според разследване, проведено от експерти от JFrog, SafeDep, Socket и StepSecurity, атаката е част от по-широка кампания, наречена easy-day-js. Злонамерените лица са успели да поемат контрол над npm акаунта с потребителско име "ehindero", който има права за публикуване на пакети в Mastra namespace (@mastra/*). Това им е позволило да инжектират вредоносен код в 144 различни пакета, които се използват широко в проекти за разработка на AI.
Тези пакети са част от отворената екосистема и се използват от разработчици по целия свят, което прави инцидента особено сериозен. Злонамереният код може да компрометира системите на крайни потребители, да събира чувствителна информация или да служи като входна точка за по-нататъшни атаки.
Защо това е важно?
Инцидентът с Mastra подчертава уязвимостите, присъщи на софтуерната верига за доставки, особено в проекти с отворен код, където множество разработчици имат достъп до публикуване и поддръжка на пакети. Подобни атаки могат да имат широки последици, тъй като компрометираните пакети се интегрират в множество приложения и услуги, разпространявайки злонамерен код на голям брой крайни потребители.
Това събитие е предупреждение за всички участници в софтуерната индустрия да засилят контрола върху достъпа до критични акаунти и да прилагат допълнителни мерки за проверка и мониторинг на публикувания код. За разработчиците на AI приложения, които често разчитат на външни библиотеки и рамки, това означава повишено внимание при избора и интеграцията на външни зависимости.
По-широк контекст
Атаките върху веригата за доставки на софтуер стават все по-чести и сложни, като целят да използват доверието в популярни библиотеки и инструменти, за да достигнат до голям брой потребители. В последните години подобни инциденти засегнаха няколко големи екосистеми, включително npm, PyPI и други.
Екосистемата на JavaScript и TypeScript е особено уязвима, тъй като много проекти използват стотици или хиляди външни пакети, което затруднява проследяването на сигурността на всеки компонент. В този контекст, атаката срещу Mastra е поредното доказателство за необходимостта от по-строги стандарти и автоматизирани инструменти за откриване на злонамерен код.
Какво може да последва?
В краткосрочен план, екипите зад Mastra и свързаните с тях проекти ще трябва да извършат щателен одит на кода и да премахнат компрометираните версии на пакетите. Потребителите трябва да актуализират зависимостите си и да следят за официални съобщения за сигурност.
В дългосрочен план, индустрията ще трябва да инвестира в подобряване на процесите за управление на достъпа до критични акаунти, въвеждане на многофакторна автентикация и използване на инструменти за автоматично сканиране на код. Също така, повишаването на осведомеността сред разработчиците за рисковете, свързани с външните зависимости, ще бъде ключово за намаляване на подобни инциденти.
Този случай също така подчертава важността на сътрудничеството между различни организации и експерти по сигурността за бързо откриване и реагиране на подобни атаки, което е от съществено значение за опазване на целостта на софтуерната верига за доставки.