Podręcznik
4. Błędy kontroli dostępu
4.1. Ujawnienie danych poufnych poprzez niezabezpieczony dostęp
Pierwszą kategorią jest ujawnienie danych poufnych w pośredni sposób poprzez dostęp do plików je zawierających. Mogą to być:
- pliki kontroli wersji (.git, .svn, .gitignore).
W przypadku katalogu .git interesujący jest plik .git/config zawierający
konfigurację repozytorium. W przypadku .gitignore zawierającego pliki
ignorowane przez kontrolę wersji może ujawniać to lokalizację wrażliwych plików,
które system kontroli wersji pomija (np. lokalizację dzienników aplikacji), a które mogły zostać skopiowane i mogą być osiągalne poprzez bezpośrednie podanie adresu URL,
- pliki konfiguracji potoków CI/CD (.gitlab-ci.yml) - bardzo często zawierają, przy niewłaściwym użyciu poufne tokeny dostępowe do repozytoriów kodu lub API; Serwisy takie jak Github czy GitLab wprowadziły automatyczne skanowanie tego rodzaju plików pod kątem ujawniania tokenów dostępowych, ale nie są w stanie wykryć innych poufnych danych w tych plikach,
- pliki typowe dla wskazanego systemu, a skopiowane przez przypadek np. .DS_Store z Mac OS - ujawniające nazwy plików i katalogów oraz metadane z tymi plikami powiązane,
- pliki i katalogi konfiguracji środowisk programistycznych (.idea, package.json) – w szczególności package.json zawierający zależności dla Node.js może zostać użyty do wyszukania podatnych zależności aplikacji,
- pliki dzienników aplikacji – szczególnie często umieszczane nieprawidłowo, w drzewie plików udostępnianym przez serwer www w przypadku hostingów współdzielonych.
Ten typ problemów wynika głównie z nieprawidłowej konfiguracji serwera WWW umożliwiającej dostęp do tych plików. Narzędziem przydatnym do audytu własnego serwera pod tym kątem może być ffuf (https://github.com/ffuf/ffuf) wraz z odpowiednią listą typowych plików do wyszukania.