it-swarm.com.de

Wofür wird das HTTP-Antwortheaderfeld "Server" verwendet?

Erst kürzlich begann ich, die Verwendung des Feldes Server im HTTP-Antwortheader in Frage zu stellen.

Ich habe einige Nachforschungen angestellt:

RFC 2616 besagt:

14.38 Server

Das Feld Antwortheader des Servers enthält Informationen zu der Software, die vom Origin-Server zur Bearbeitung der Anforderung verwendet wird. Das Feld kann mehrere Produkt-Token (Abschnitt 3.8) und Kommentare enthalten, die den Server und alle wichtigen Unterprodukte identifizieren. Die Produkt-Token werden in der Reihenfolge ihrer Bedeutung für die Identifizierung der Anwendung aufgelistet.

   Server         = "Server" ":" 1*( product | comment )

Beispiel:

   Server: CERN/3.0 libwww/2.17

Wenn die Antwort über einen Proxy weitergeleitet wird, darf die Proxy-Anwendung den Server-Antwortheader NICHT ändern. Stattdessen sollte es ein Via-Feld enthalten (wie in Abschnitt 14.45 beschrieben).

  Note: Revealing the specific software version of the server might
  allow the server machine to become more vulnerable to attacks
  against software that is known to contain security holes. Server
  implementors are encouraged to make this field a configurable

Dies erwähnt jedoch nicht den Zweck dieses Feldes. Dies scheint mir Offenlegung von Informationen . Diese Serverzeichenfolgen enthalten viele Informationen, die sich hervorragend für alle eignen, die versuchen, den Server mit einem Fingerabdruck zu versehen. Automatisierte Scan-Tools würden nicht gepatchte oder anfällige Server schnell identifizieren. Es scheint eine schlechte Idee zu sein, wenn mein Webserver Versionsinformationen für sich selbst und Module wie OpenSSL präsentiert.

  • Wird dieses Feld für irgendetwas benötigt? Wenn ja, was?
  • Ist es bereits eine bewährte Methode, dieses Feld auf Servern zu deaktivieren oder zu ändern?

Ich würde denken, dass wir aus Sicherheitsgründen dem Feind (dh jedem) so wenig Informationen wie möglich geben möchten, während das Geschäft weiterhin läuft. hier ist eine interessante Beschreibung der Informationskriegsführung.

37
ZnArK

Serverinformationen sollten aus HTTP-Antworten entfernt werden, und es ist ein unsicherer Standard, diese Daten zu verlieren. Dies ist kein großes Sicherheitsrisiko oder sogar ein mittleres Sicherheitsrisiko - aber ich fühle mich nicht wohl, wenn ich meinen Gegnern nur solche Details mitteile. Eine genaue Versionsnummer leckt wann und wie oft Sie Ihre Produktionssysteme patchen - auch wenn die Version aktuell ist . Ein Gegner, der den Patch-Zyklus kennt, bedeutet, dass er weiß, wann Sie der Schwächste sind.

Der HTTP-Host-Header ist wahrscheinlich am nützlichsten für Netcraft Web Server Survey . Aber in Bezug auf HTTP sollte es keine Rolle spielen. Aus diesem Grund haben wir Standards, damit Clients und Server, die von verschiedenen Anbietern geschrieben wurden, zusammenarbeiten können.

27
rook

Es wird für alles verwendet, wofür Sie es verwenden möchten. Ich fand es in der Vergangenheit hilfreich bei Reverse Engineering-Compliance-Problemen. z.B. IIS bricht HTTP/1.1 ( RFC 2616 ) in vielerlei Hinsicht, aber die meisten kommen dem Benutzer in Bezug auf die Leistung zugute und werden von den meisten Browsern unterstützt Die meisten aktuellen Browser erfüllen nicht mehr die Regeln in RFC 2616 (jetzt 13 Jahre alt).

Ich habe in der Vergangenheit Probleme mit Fehlern im HTTP-Servercode und in der Konfiguration festgestellt. Zu wissen, was am Remote-Ende ausgeführt wird, ist eine große Hilfe bei der Diagnose und Lösung dieser Probleme.

Ja, in Security 101 wird Ihnen gesagt, dass das Verschleiern dieser Art von Informationen die Sicherheit verbessert. IME sind die Vorteile begrenzt:

  • Script Kiddies/automatisierte Angriffe machen sich nicht die Mühe zu sehen, welche Software Sie ausführen - sie feuern einfach alle ihre Waffen ab und hoffen auf das Beste.

  • Jeder, der einigermaßen kompetent ist, sollte in der Lage sein, den Servertyp zu bestimmen (obwohl ich dies bei HTTP-Servern nicht versucht habe, habe ich vor einigen Jahren eine Umfrage unter SMTP-Servern durchgeführt - mit durchschnittlich 2,1 Befehlen konnte ich den finden Geben Sie die Hauptversionsnummer der MTAs von 12 verschiedenen Anbietern ein und erraten Sie sie.

11
symcbean