httpoxy – Ny omfattande sårbarhet mot webbapplikationer
httpoxy är namnet på en nygammal säkerhetsbrist kan återfinnas i otroligt många ramverk för webbapplikationer. Denna nya bugg gör det möjligt för en angripare att styra om utgående trafik från en webbapplikation.
Buggen kan beskrivas lättast genom följande förfarande:
- Angriparen gör ett anrop mot en sårbar applikation och skickar med Proxy-http headern
- Applikationen gör en utgående förfrågan efter data och använder sedan uppgifter från angriparens Proxy-http header som proxy
- Angriparen kan sedan sätta sig i mitten och genomföra MITM-attack
Nedan listas några programspråk och dess uppsättning som kan vara sårbar för denna attack.
Programspråk | Ramverk | HTTP-klient |
---|---|---|
PHP | php-fpm mod_php |
Guzzle 4+ Artax |
Python | wsgiref.handlers.CGIHandler twisted.web.twcgi.CGIScript |
requests |
Go | net/http/cgi | net/http |
Åtgärder
För att förhindra denna attack måste först och främst din applikation använda sig av ovan programspråk, ramverk och http-klient. Även så måste din webbapplikation göra utgående http-förfrågningar när en besökare gör sitt anrop.
För att ta bort HTTP_PROXY miljövariabeln som är boven i dramat så kan du som använder Nginx lägga till följande:
fastcgi_param HTTP_PROXY "";
Använder du Apache som webbserver bör du först och främst läsa denna advisory och sedan kan du använda följande direktiv för att ta bort Proxy http-headern:
RequestHeader unset Proxy
Och använder du Microsoft IIS tillsammans med PHP så bör du lägga in följande i din apphost.config:
<system.webServer>
<rewrite>
<rules>
<rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
<match url="*.*" />
<serverVariables>
<set name="HTTP_PROXY" value="" />
</serverVariables>
<action type="None" />
</rule>
</rules>
</rewrite>
</system.webServer>
Buggen har återkommit under flertalet år i olika ramverk och tyvärr så har den aldrig riktigt åtgärdats.
Säkerhetsbuggen har fått följande CVE-er:
- CVE-2016-5385: PHP
- CVE-2016-5386: Go
- CVE-2016-5387: Apache HTTP Server
- CVE-2016-5388: Apache Tomcat
- CVE-2016-1000109: HHVM
- CVE-2016-1000110: Python
Här hittar du mer information: httpoxy.org