Skip to content

Conversation

@xPriNz
Copy link

@xPriNz xPriNz commented Jan 29, 2025

Security By Design - Zadanie 1

Zadanie 1 - Weryfikacja wycieku wrażliwych danych

Podczas dodawania użytkownika w aplikacji Python pojawił się następujący problem w logach z wrażliwymi danymi:
Zrzut ekranu 2025-01-29 182205

Zmiana w kodzie spowodowała zamaskowanie danych:
Zrzut ekranu 2025-01-29 182711

Zadanie 2 - weryfikacja wycieku sekretów

Repozytorium przeskanowano za pomocą gitleaks. Program odnalazł 3 wycieki:
Zrzut ekranu 2025-01-29 223748

Program wskazuje wycieki w plikach:

deployment.key
deployment2.key
awscredentials.json

Niestety w przypadku tych plików doszło do wycieku kluczy, więc nie są to fałszywe alarmy, a poważne zagrożenie bezpieczeństwa.

Zadanie 3 - weryfikacja bezpieczeństwa bibliotek OpenSource wykorzystywanych w projekcie

Krytyczna luka w Jinja2 (<3.1.5) – możliwość zdalnego wykonania kodu (RCE)
Identyfikator luki: 74735
Wersje: Jinja2 <3.1.5
Typ zagrożenia: Remote Code Execution (RCE)

Luka w kompilatorze Jinja2 umożliwia wykonanie dowolnego kodu w Pythonie poprzez manipulację zarówno nazwą pliku szablonu, jak i jego zawartością.

Aby skutecznie wykorzystać tę lukę, atakujący musi:
Mieć możliwość kontroli nazwy pliku szablonu (np. poprzez dynamiczne wczytywanie szablonów na podstawie wejścia użytkownika).
Mieć możliwość kontrolowania zawartości szablonu, czyli wstrzyknięcia złośliwego kodu.

Jeśli aplikacja pozwala użytkownikom na przesyłanie i renderowanie własnych szablonów HTML, ryzyko ataku jest bardzo wysokie.

Konsekwencje ataku jest:
Zdalne wykonanie kodu (RCE) – atakujący może uruchomić dowolne polecenia na serwerze.
Przejęcie serwera – atakujący może instalować złośliwe oprogramowanie, kraść dane, modyfikować pliki i uzyskać pełną kontrolę nad systemem.

Jak to naprawić?
Natychmiastowa aktualizacja do Jinja2 3.1.5 lub nowszej wersji.
Blokowanie możliwości kontrolowania nazwy pliku szablonu przez użytkowników.
Unikanie renderowania dynamicznych szablonów tworzonych przez użytkowników, jeśli nie są one w pełni zweryfikowane.
Ograniczenie dostępu do katalogów z szablonami, aby uniemożliwić atakującym wczytywanie własnych plików.

W testowanej przeze mnie aplikacji nie ma warunków do przeprowadzenia tego ataku.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant