JavaScript Obfuscator - JavaScript deobfuscator - złośliwe oprogramowanie JavaScript

Dlaczego narzędzia do zaciemniania kodu JavaScript są nadużywane przez atakujących (i jak je wykryć)

Co robi narzędzie do zaciemniania kodu JavaScript?

Obfuscator JavaScript został zaprojektowany, aby przekształcić czysty, czytelny dla człowieka kod w coś ledwo czytelnego, co utrudnia jego zrozumienie lub inżynierię wsteczną. Narzędzia te zmieniają nazwy zmiennych i funkcji, usuwają spacje, spłaszczają struktury kodu i stosują techniki takie jak dzielenie ciągów znaków, kodowanie szesnastkowe czy spłaszczanie przepływu sterowania. Chociaż celem jest często ochrona własności intelektualnej lub zmniejszenie rozmiaru pliku, wynikająca z tego złożoność zapewnia również idealną ochronę przed złośliwym oprogramowaniem JavaScript. Dlatego wiele zespołów ds. bezpieczeństwa korzysta z narzędzi do deobfuscatora JavaScript, aby analizować przekształcony kod i wykrywać ukryte zachowania.

Na przykład coś tak prostego jak:

Dla deweloperów dostarczających logikę po stronie klienta (np. SaaS w przeglądarce), obfuscator JavaScript jest częścią łańcucha narzędzi. Jednak ta sama transformacja sprawia, że ​​jest on idealną przykrywką dla złośliwego oprogramowania JavaScript.

Jak atakujący wykorzystują zaciemnianie, aby ukryć złośliwe oprogramowanie JavaScript

Atakujący wykorzystują narzędzia do zaciemniania kodu JavaScript, aby się ukryć złośliwe oprogramowanie wstrzykiwane do bibliotek typu open source, pakiety npmlub bezpośrednio do skryptów przeglądarki. Częstym wzorcem jest ukrywanie ładunków w zaciemnionych funkcjach, które uruchamiają się w czasie wykonywania w określonych warunkach.

Rozważmy skompromitowany pakiet npm. Na pierwszy rzut oka wszystko wygląda legalnie. Jednak głębsze przyjrzenie się ujawnia zaciemnione odwołania do zakodowanych ciągów JavaScript, zdalnych adresów URL lub dynamicznych… eval () wywołania:

To nie kompresja. To przykrywka. Ukrywa się tu złośliwe oprogramowanie JavaScript, czekające na wykradzenie tokenów, wstrzyknięcie formularzy phishingowych lub eskalację uprawnień w aplikacjach.

Rzeczywiste zagrożenia w zakresie bezpieczeństwa aplikacji i łańcucha dostaw

Nowoczesne oprogramowanie pipelineSztuczne oprogramowanie jest zbudowane w oparciu o kod stron trzecich. Złośliwe oprogramowanie JavaScript osadzone za pomocą zaciemnionych skryptów to nie tylko luka w zabezpieczeniach, ale także naruszenie łańcucha dostaw. Gdy zaciemnione złośliwe oprogramowanie trafi do współdzielonej biblioteki, rozprzestrzenia się:

  • Do kompilacji CI poprzez pakiet.json
  • Do pakietów front-endowych za pośrednictwem Webpack/Rollup
  • Do produkcji za pośrednictwem sieci CDN lub wstrzykiwania skryptów

Na przykład incydent z strumieniem zdarzeń pokazał, jak atakujący wykorzystywali zaciemnianie kodu do umieszczania ładunków w powszechnie używanych pakietach. Programiści rzadko sprawdzają głęboko zaciemniony kod, co czyni go idealną kryjówką.

Ryzyko nie jest teoretyczne. Jest już w kodzie, jeśli zależności nie są skanowane.

Wykrywanie zaciemnionego kodu za pomocą narzędzi JavaScript Deobfuscator

Aby wykryć ukryte zagrożenia, zespoły korzystają z narzędzi deobfuscatorowych JavaScript. Analizują one zaciemnione wzorce kodu, dekodują ciągi znaków i ujawniają sygnały ostrzegawcze, takie jak dynamiczne eval (), zaciemnionych pętli i niepotrzebnej złożoności.

Przydatne deobfuscatory nie tylko formatują kod, ale także sygnalizują:

  • w korzystaniu Funkcjonować, eval, ustawiony limit czasu z zakodowanymi ładunkami
  • Długie sekwencje ciągów Base64 lub szesnastkowych
  • Spłaszczanie przepływu sterowania lub wstrzykiwanie martwego kodu

Zautomatyzowane narzędzia, takie jak analizatory statyczne czy parsery AST, pomagają wykryć te wzorce. Stanowią pierwszą linię obrony podczas sprawdzania zależności lub walidacji aktualizacji pakietów.

Przykład: zintegrowanie skanowania deobfuskacyjnego z kontrolą przed scaleniem w celu uniknięcia scalania ukrytych zagrożeń.

Integracja wykrywania z CI/CD Pipelines

Wykrywanie nie jest zadaniem wykonywanym po wdrożeniu. Skanowanie maskujące powinno być częścią CI/CD pipeline, Posługiwać się Akcje GitHub, GitLab CIlub Jenkins aby uruchamiać skanowanie przy każdym wypchnięciu lub scaleniu.

Typowy pipeline pływ:

Dzięki egzekwowaniu zasad możesz blokować kompilacje zawierające ryzykowny, zaciemniony kod. Połącz to z SCA narzędzia do krzyżowego odwoływania się do znanych sygnatur złośliwego oprogramowania w pakietach npm.

Nie czekaj na niespodzianki w czasie wykonywania. Odrzuć kod już na etapie kompilacji.

Ukryty koszt zaciemniania: walka ze złośliwym oprogramowaniem JavaScript za pomocą deobfuscatorów

Narzędzia do zaciemniania kodu JavaScript mają uzasadnione zastosowania. Jednak atakujący wykorzystują je do ukrywania złośliwego oprogramowania JavaScript i wykorzystywania zaufania do ekosystemu open source. Prawdziwe ryzyko w AppSec tkwi nie tylko w tym, co piszesz, ale także w tym, co importujesz. Poprzez osadzanie skanów deobfuscatora JavaScript i analizy statycznej w CI/CD pipelineZespoły programistów mogą wcześnie wykrywać zagrożenia. Traktuj zaciemniony kod w zależnościach z podejrzliwością, zwłaszcza gdy jest nieoczekiwany.

Narzędzia takie jak Xygeni zostały stworzone, aby pomóc zespołom DevSecOps uzyskać wgląd w zaciemnianie i ryzyko związane z łańcuchem dostaw w ekosystemach JavaScript. Wykorzystaj je, aby ulepszyć swoje pipeline i wykrywaj, co kryje się w kodzie, zanim trafi on do produkcji.

Xygeni wykracza poza podstawowe skanowanie, analizując wzorce zaciemniania kodu JavaScript, sygnalizując potencjalne złośliwe oprogramowanie JavaScript i śledząc ryzykowne zachowania w pakietach w całym łańcuchu dostaw oprogramowania. Bezproblemowo integruje się z CI/CD pipelineumożliwiając automatyczne zarządzanie jakością kodu i bezpieczeństwem.

Zachowaj paranoję. Skanuj wszystko. I pamiętaj: jeśli coś wygląda jak bełkot, prawdopodobnie warto się temu przyjrzeć.

sca-tools-oprogramowanie-narzędzia-analizy-kompozycji
Określ priorytety, rozwiąż problemy i zabezpiecz zagrożenia związane z oprogramowaniem
Załóż darmowe konto.
Nie wymagamy karty kredytowej.

Zabezpiecz swoje oprogramowanie i dostarczanie

z pakietem produktów Xygeni