Apache HTTPD: ETag Inode Information Leakage
Napisał: Patryk Krawaczyński
02/02/2014 w Bezpieczeństwo Brak komentarzy. (artykuł nr 434, ilość słów: 260)
J
eśli używamy serwera Apache możemy wykorzystać w jego komunikacji z przeglądarką ETagi (ang. Entity Tag) dla statycznych zasobów serwowanych z dysku naszego serwera. Służą one między innymi serwerowi Apache do porównywania ich wartości z nagłówkiem If-None-Match
i zwracania w zależności od wyniku kodu: 304 Not modified
lub 200 OK
. Niestety od wersji 1.3.22 do 2.3.14 tego serwera w konstrukcji pola ETag używany jest numer i-node pliku, do którego zostało wykonane odwołanie.
Nie jest to błąd sam w sobie, lecz według klasyfikacji wyciek informacji, który sprawia, że pewne ataki związane z usługą NFS stają się znacznie prostsze do wykonania. W celu zmiany konfiguracji konstrukcji pola ETag (w tym byciu zgodnym z standardem PCI Compliance) wystarczy w konfiguracji serwera Apache zmienić opcję FileETag
na wartości: MTime Size
, które wykluczą z mechanizmu branie pod uwagę informację o i-node. Jeśli chcemy zupełnie wyłączyć funkcję ETagów wystarczy np. w pliku /etc/httpd/conf.d/no-etags.conf dodać wpisy (wymagają załadowanego modułu headers i restartu serwera):
Header unset ETag FileETag None
Błąd ten nie występuje już w serii 2.4, która posiada w standardowej konfiguracji tylko branie pod uwagę wielkość pliku wyrażoną w bajtach oraz ostatnią modyfikację pliku.
Więcej informacji: Apache 2.2 FileETag