Ha megnézzük egy ASP.NET alkalmazásunk hálózati forgalmát, akkor könnyen felfedezhetjük az alábbi fejléceket a HTTP válaszban:
Server: Microsoft-IIS/8.0 X-Powered-By: ASP.NET X-AspNet-Version: 4.0.30319 X-AspNetMvc-Version: 5.0
Ezek a fejléc mezők egyáltalán nem befolyásolják az alkalmazás működését, az egyetlen céljuk, hogy a Bing bot több információt nyerjen a webhelyről.
Sajnos azonban ezek a fejlécek a támadók dolgát jelentősen megkönnyítik, hiszen ha pontosan ismert a platform és a verziószám, akkor már elég csak azokkal az támadásokkal próbálkozni, amik ebben a környezetben működnek. Éppen ezért biztonsági okokból célszerű megváltoztatni az alapbeállításokat és eltávolítani ezeket a fejléceket.
Server
A Server fejléc “sugárzása” bele van drótozva az IIS-be, én nem tudok olyan kapcsolóról, amivel kényelmesen kikapcsolható lenne. Lehet használni az UrlScant, bár az az eszköz utoljára 2008-ban frissült. Ha ASP.NET alkalmazásunk van, akkor a global.asax-ban leszedhetjük ezt a fejléc mezőt, mielőtt a HTTP válasz kimenne a szerverről:
protected void Application_PreSendRequestHeaders() {
this.Response.Headers.Remove( "Server" ); }
X-Powered-By
Az X-Powered-By fejlécet az IIS pakolja rá a HTTP válaszokra, így akár szerver szinten megszabadulhatunk tőle az IIS Managerben:
Vagy akár web.configban is:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
X-AspNet-Version
Az X-AspNet-Version fejlécet viszonylag egyszerű kikapcsolni a web.configban:
<httpRuntime enableVersionHeader="false" />
X-AspNetMvc-Version
Az X-AspNet-Version fejlécet az alkalmazásunk indulásakor kapcsolhatjuk ki:
protected void Application_Start() {
MvcHandler.DisableMvcResponseHeader = true; }
Ha mindezeket a beállításokat egyszerűbben szeretnénk elvégezni, akkor támaszkodhatunk a CodePlexen ingyenesen elérhető NWebsec projektre, amely a konfiguráció szigorításán kívül további lehetőségeket nyújt MVC-s és Azure-os projektek számára, illetve a session kezelés biztonságosabbá tételére. Ezek a funkciók egymástól függetlenül, önállóan is elérhetők NuGet csomagok formájában.
Jó kis cikk volt, köszi. Miért ez a nagy para hirtelen? Diagnosztizáltak mostanában tömeges támadásokat IIS-én?
Részemről nincs nagy para hirtelen, nem tudok jelentős friss támadásról.
Korábban én is megcsináltam ezt. Csak a “server” maradt a headerben.
Igazából ez sajnos csak hamis biztonsági érzetet ad, nagyon könnyű kideríteni a platformot.
(Hogy néznek ki a cookiek, lát-e antiforgery tokent, netán van-e viewstate field stb.)
A server szerintem valahol állítható az iis-ben, legalábbis a régi felületen volt valami. Még technet cikket is olvastam jó pár éve, hogy hogyan hazudjuk apache-nak az iis-üknek 🙂
Ez nem szabad, hogy önmagában bármilyen biztonságérzetet adjon. Ez csak emeli a lécet.