Atak na łańcuchy dostaw oprogramowania to temat, który budzi coraz większe zainteresowanie i obawy w środowisku technologicznym. Niedawny incydent związany z biblioteką axios, często używaną przez programistów Node.js do wykonywania żądań HTTP, pokazuje, jak poważne mogą być konsekwencje takich ataków.
Axios, biblioteka którą ściąga się około 100 milionów razy tygodniowo, stała się celem złośliwych działań. Osoby stojące za atakiem przejęły kontrolę nad kontem npm jej twórcy i użyły wykradzionego tokenu dostępu do publikacji dwóch złośliwych wersji. Kod wstrzyknięty do tych wersji różnił się w jednym istotnym aspekcie: zmodyfikowano plik package.json, dodając złośliwą zależność plain-crypto-js, która działała w tle podczas instalacji pakietu.
Zainfekowane wersje axiosa 1.14.1 oraz 0.30.4 potrafią przeprowadzać różne działania w zależności od używanego systemu operacyjnego. Na przykład, na Windowsie złośliwy kod ukrywa się pod plikiem Windows Terminal, po czym uruchamia PowerShell’a z niechcianym kodem. Na macOS podszywa się pod demona systemowego, a na Linuxie instaluje backdoora w postaci skryptu Pythona. Wszystkie te operacje mają na celu połączenie się z serwerem dowodzenia i kontroli (C2), co skutkuje możliwością zdalnego wykonania dowolnego kodu na zainfekowanym systemie.
W obliczu takiej sytuacji, użytkownicy muszą jak najszybciej podjąć kroki zabezpieczające. Przede wszystkim powinni sprawdzić, czy ich systemy nie zostały zainfekowane. Należy wykonać konkretne komendy, aby wykryć obecność złośliwego oprogramowania i odizolować zainfekowane maszyny od sieci. W niektórych przypadkach może być konieczne przywrócenie systemu z czystych kopii zapasowych oraz regeneracja wszystkich wrażliwych danych, takich jak klucze SSH czy API.
Istotnym działaniem prewencyjnym, które można wdrożyć, jest zaostrzenie polityki instalacji pakietów. Polecenia instalacyjne npm mogą być teraz wykonywane z flagą –ignore-scripts, co zapobiega samoczynnemu uruchamianiu złośliwych skryptów. Należy również monitorować anomalie w plikach konfiguracyjnych pakietów, takie jak brakujące commity czy brakujące oficjalne tagi.
Długoterminowo, warto również wdrożyć podejście polegające na opóźnianiu instalacji nowych wersji pakietów o kilka dni. W społeczności technologicznej takie ataki są zazwyczaj szybko odkrywane i zgłaszane, dzięki czemu zapobiega się rozpowszechnianiu złośliwych wersji oprogramowania.
Atak na bibliotekę axios jest kolejnym przypomnieniem dla społeczności programistycznej o konieczności szczególnej ostrożności w zarządzaniu zależnościami oprogramowania. Bezpieczeństwo w tworzeniu oprogramowania to dynamicznie rozwijająca się dziedzina, wymagająca ciągłego dostosowywania strategii do zmieniających się zagrożeń. Organizacje powinny inwestować w szkolenia z zakresu bezpieczeństwa aplikacji webowych, aby uniknąć podobnych problemów w przyszłości.






