Hakerzy wypełniają projekty na GitHub, ukrywając w nich złośliwy kod.
Cyberprzestępcy maskują złośliwy kod przy pomocy „niewidocznych” znaków Unicode
Nowe badania firmy Aikido Security wykazały, że na początku marca pojawiło się 151 projektów na GitHubie zawierających ukryty kod szpiegowski. Złośliwe paczki wykorzystują znaki Unicode, które dla człowieka wyglądają jak spacje lub puste linie, ale przy zwykłym uruchomieniu JavaScript zamieniają się w wykonywalny bajt‑kod i trafiają do funkcji `eval()`.
Jak wygląda atak
1. Nazwy bibliotek
Pakiety nazywane są tak samo jak znane rozwiązania komercyjne (np. „React” lub „Node.js”). To sprawia, że programiści błędnie uważają je za bezpieczne i włączają do swoich projektów.
2. “Czytelny” kod + ukryte fragmenty
Duża część kodu wygląda jak zwykły, łatwy do przeczytania program. Wewnątrz znajdują się bloki wypełnione „niewidzialnymi” znakami. Podczas ręcznego przeglądania znikają, a podczas wykonywania – aktywują się.
3. Repozytoria testowe
Takie złośliwe paczki zostały już wykryte nie tylko na GitHubie, ale także w NPM, Open VSX i marketplace Visual Studio Code.
Dlaczego ich trudno zauważyć
- Zmiany w projektach wyglądają zwykle: aktualizacja wersji, poprawki błędów, refaktoryzacja.
- Przestępcy, według ekspertów, wykorzystują duże modele językowe AI do automatyzacji fałszowania kodu. Dzięki temu szybko przygotowano ponad 150 projektów bez ręcznej pracy.
Historia znaków
Znaki Unicode odpowiadające literom łacińskim zostały dodane do systemu dziesięciolecia wcześniej. Od 2024 roku hakerzy zaczęli ich używać do maskowania złośliwych zapytań do chatbotów i kodu w repozytoriach. Tradycyjne narzędzia analizy statycznej nie wykrywają ich; tylko przy uruchomieniu JavaScript małe dekodery ujawniają rzeczywisty bajt‑kod.
Co robić programistom
1. Sprawdzaj zależności – przed podłączeniem zewnętrznych bibliotek dokładnie przeanalizuj ich kod źródłowy i historię zmian.
2. Automatyczne kontrole – używaj linterów, skanerów pod kątem „niewidocznych” znaków oraz narzędzi analizy zachowania dynamicznego.
3. Aktualizuj – monitoruj, aby paczki nie zostały usunięte po pobraniu; może to wskazywać na ukrytą zagrożenie.
Perspektywy
Jeśli przypuszczenia o zastosowaniu AI w tej schemacie się potwierdzą, wykrywanie i eliminowanie takich ataków będzie stawało się coraz trudniejsze. Mimo to świadomy podejście do sprawdzania kodu źródłowego i zależności pozostaje najlepszą ochroną przed podobnymi zagrożeniami.
Komentarze (0)
Podziel się swoją opinią — prosimy o uprzejmość i trzymanie się tematu.
Zaloguj się, aby komentować