Dawno nie było już nic o jakiejś nowej (lub nowo nagłośnionej) podatności dotyczącej (web)serwerów, więc chyba warto coś wspomnieć o HTTPoxy, czyli podatności dotyczącej CGI/FastCGI, o której od wczoraj jest dość głośno…
Spis treści w artykule
HTTPoxy – a CGI application vulnerability
Oczywiście – zgodnie z trendem – skoro mamy jakiś błąd, to nie mogło zabraknąć nazwy, dedykowanej strony internetowej (choć warto też zajrzeć na stronę CERTu), i oczywiście logo:
Zmienna HTTP_PROXY
Nie będę zbytnio rozpisywał się nad samy problemem, gdyż szczegółowe informacje znajdziecie na tej stronie. Ale jakieś minimum informacyjne musi być.
Problem dotyczy kodu uruchamianego jako/w ramach CGI/FastCGI, m.in. w takich językach jak PHP, Go, Python, a do tego – by skala byłą jeszcze większa – dotyczy m.in. webserwerów działających na Apache2 i Nginx. W pewnych sytuacjach – wykorzystując konflikt nazw zmiennych środowiskowych (zmienna HTTP_PROXY) może dojść do posłuchania komunikacji wychodzącej z serwera (atak MiTM).
Ale co najważniejsze – jeśli macie na serwerze zwykłą stronę internetową, to problem dotyczy Was tylko teoretycznie, bo zapewne w takiej sytuacji nie korzystacie z serwera proxy, jak i niezależnego serwera aplikacji, z którego odpowiedź za sprawą podstawionego nagłówka HTTP_PROXY trafić może do fałszywego serwera proxy:

Źródło grafiki: Mitigating the HTTPoxy Vulnerability with NGINX
No i chyba warto wspomnieć, że nie jest to nowy błąd, tylko jak to ostatnio często bywa z pewnych przyczyn dostaje drugie, lepsze życie… ;-)
Zabezpieczamy (web)serwer
Niezależnie od tego, czy w przypadku Waszego serwera jest szansa na wykonanie tego typu ataku warto się zabezpieczyć, zwłaszcza że raczej nie powinno tu być żadnych niespodziewanych efektów ubocznych.
Webserwer Apache2
W przypadku webserwera Apache2 otwieramy plik:
sudo nano /etc/apache2/apache2.conf
I dodajemy tam linijkę:
RequestHeader unset Proxy early
sudo a2enmod headers
Następnie jeszcze test konfiguracji i restart webserwera:
sudo apache2ctl configtest
sudo service apache2 restart
Webserwer Nginx
W przypadku webserwera Nginx otwieramy plik:
sudo nano /etc/nginx/fastcgi.conf
I dodajemy linijkę:
fastcgi_param HTTP_PROXY "";
sudo nano /etc/nginx/fastcgi_params
Cloudflare
Jeśli korzystacie z Cloudflare, i macie aktywny przynajmniej plan pro, to możecie aktywować filtrowanie tego typu ataków za pomocą Web Application Firewall (WAF), aktywując regułę nr 100050.
- Zmiana „w locie” poziomu logowania w ESPHome za pomocą komponentu „select” (nie tylko z poziomu Home Assistant) - 1970-01-01
- Gdy chcesz wkleić hasło wygenerowane przez menedżer haseł, ale w KSeF uznali, że wygodniej i bezpieczniej będzie, jak je wpiszesz ręcznie - 1970-01-01
- DC-Unlocker, czyli prosty sposób na odblokowanie routera Huawei E5373 (MiFi Router), by działał bez baterii - 1970-01-01






