Publicznie dostępny plik .DS_Store
Co to jest
Na stronie jest publicznie dostępny plik .DS_Store. Tworzy go Finder w macOS i zapisuje w nim listę elementów folderu. Na serwer trafia przez pomyłkę, gdy folder zostanie wgrany przez FTP, rsync albo spakowany do archiwum. Sprawdzamy, że odpowiedź ma strukturę prawdziwego .DS_Store, a nie tylko HTTP 200.
Dlaczego to problem
Sam plik niczego nie kradnie. Ujawnia jednak nazwy plików i folderów, do których nigdzie nie ma linków i których nikt nie powinien widzieć:
- kopie zapasowe, eksporty i stare wersje (
db-dump.sql,web-old), - wewnętrzne foldery i skrypty,
- wskazówki, co próbować dalej. Atakujący szuka wtedy właśnie tych nazw.
To ustalenie o niskiej wadze. Pokazuje jednak, że na serwer trafia też to, co tam nie powinno.
Jak to naprawić
Usuń pliki na serwerze
find /var/www -name .DS_Store -deleteNie dopuść do powrotu
Dodaj go do .gitignore i wyłączaj przy wgrywaniu:
.DS_Storersync -av --exclude=.DS_Store ./ server:/var/www/site/Zablokuj pliki zaczynające się od kropki
nginx (przepuszcza tylko .well-known):
location ~ /\.(?!well-known) {
deny all;
}Apache:
<FilesMatch "^\.DS_Store$">
Require all denied
</FilesMatch>Sprawdź też, co plik wymieniał. Jeśli jest tam kopia zapasowa lub eksport, upewnij się, że nie jest publiczny.