Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Nuclei – zautomatyzowane narzędzie badaczy bezpieczeństwa z poważną luką
Nuclei to szybki skaner podatności, który pozwala na łatwe rozszerzanie jego możliwości oraz współpracę z innymi użytkownikami za sprawą plików YAML, które definiują tzw. szablony (ang. templates). To przy pomocy szablonów można definiować nowe wzorce podatności. Przykładowy, dobrze prowadzony zbiór takich plików YAML jest utrzymywany przez społeczność i można go znaleźć na platformie GitHub. Narzędzie to jest szczególnie chętnie wykorzystywane przez bug hunterów, którzy po napotkaniu podatności mogą zautomatyzować jej przeszukanie w pełnym zakresie programu bug bounty.
Silnik Nuclei pozwala między innymi na zdefiniowanie poleceń wykonywanych podczas skanowania, np. z wykorzystaniem powłoki systemowej.
- engine:
- sh
- bash
source: |
aws acm describe-certificate --region $region --certificate-arn $certificatearn --query 'Certificate.[NotAfter, CertificateArn]' --output json | jq -r 'select((.[0] | fromdateiso8601 | mktime) - (now | mktime) < (30 * 86400)) | .[1]'
Listing 1. Fragment szablonu zawierający wykonanie polecenia aws (źródło: GitHub)
Ponieważ współdzielenie szablonów wiąże się z niebezpieczeństwem wykonania złośliwego kodu przez silnik Nuclei, wprowadzono mechanizm podpisów cyfrowych, które mają zapewnić autentyczność wykonywanych zadań.
Template signing via the private-public key mechanism is a crucial aspect of ensuring the integrity, authenticity, and security of templates. This mechanism involves the use of asymmetric cryptography, specifically the Elliptic Curve Digital Signature Algorithm (ECDSA), to create a secure and verifiable signature.
W wersjach Nuclei od 3.0.0 do 3.3.2 odkryto poważną lukę, oznaczoną identyfikatorem CVE-2024-43405, która została sklasyfikowana jako “High” z 7.8 punktów w skali CVSS. Wynika ona z błędów przetwarzania znaków nowej linii w plikach YAML co efektywnie pozwala na wstrzyknięcie dodatkowego kodu, który zostanie wykonany przez silnik, przy zachowaniu oryginalnego podpisu szablonu. W wyniku tego działania, atakujący któremu uda się dostarczyć spreparowany szablon, może wykonać kod na maszynie badacza bezpieczeństwa. Zalecana jest aktualizacja do wersji 3.3.2.
Narzędzia służące do przeprowadzania testów bezpieczeństwa to software jak każdy inny. To normalne więc, że zawiera błędy i podatności. Jednak konsekwencje ich wykorzystania mogą być poważniejsze, ze względu na charakter w jakim są wykorzystywane (nawet zachowując odpowiednią higienę, wykonanie kodu na maszynie bezpiecznika może prowadzić do wycieku informacji o innych elementach testowanej infrastruktury, a nawet innych projektach). Dlatego ważne jest aby narzędziownik każdego pentestera był regularnie aktualizowany.
~fc