Lab2 TBO - Mikołaj Domagalski #49
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Zadanie 1
W ramach zadania zidentyfikowano, że w trakcie dodawania klienta w logach na konsoli widoczne są jego dane wrażliwe. W celu rozwiązania tego problemu zmieniono sposób reprezentacji klasy Customer tak, aby wypisywała ona tylko ID oraz imię i nazwisko klienta, a resztę pól przedstawiała jako gwiazdki.
Zadanie 2
Użycie gitleaks pozwoliło zidentyfikować 3 sekrety które były hardcodowane. Po zweryfikowaniu każdego przypadku okazało się, że dwa z nich miały wprawdzie taką samą wartość, ale zapisaną w oddzielnych plikach. Zatem, wyciekowi uległ: 1 prywatny klucz RSA oraz 1 klucz prawdopodobnie do usług związanych z AWS.
Zadanie 3
Wykorzystanie narzędzia pyupio pozwoliło na wykrycie łącznie 11 podatności w 3 importowanych bibliotekach: jinja2, werkzeug oraz healpy.
W ramach zadania przeanalizowano podatność biblioteki werkzeug opisaną przez pyupio jako:
+==============================================================================+| werkzeug | 2.3.7 | <3.0.6 | 73969 |+==============================================================================+| Affected versions of Werkzeug are vulnerable to Path Traversal (CWE-22) on || Windows systems running Python versions below 3.11. The safe_join() function || failed to properly detect certain absolute paths on Windows, allowing || attackers to potentially access files outside the intended directory. An || attacker could craft special paths starting with "/" that bypass the || directory restrictions on Windows systems. The vulnerability exists in the || safe_join() function which relied solely on os.path.isabs() for path || validation. This is exploitable on Windows systems by passing paths starting || with "/" to safe_join(). To remediate, upgrade to the latest version which || includes additional path validation checks. || NOTE: This vulnerability specifically affects Windows systems running Python || versions below 3.11 where ntpath.isabs() behavior differs. |+==============================================================================+Zainstalowana wersja Pythona to 3.9.25, dlatego podatność potencjalnie mogłaby dotyczyć projektu, jednak po zgłębieniu tematu okazało się, że problematyczna funkcja
safe_join()nie jest wywoływana nigdzie - ani bezpośrednio w kodzie aplikacji, ani pośrednio, np. przez Flask'a, który również jest wykorzystywany w projekcie i korzysta z werkzeug.Flask potencjalnie mógłby pośrednio używać tej funkcji po wywołaniu
send_from_directory,send_filelubstatic_folder, lecz żadna z tych funkcji nie jest użyta w aplikacji, więc ryzyko wykorzystania tej podatności jest na ten moment minimalne.