Massachusetts Institute of Technology. Vorlesung # 6.858. "Sicherheit von Computersystemen." Nikolai Zeldovich, James Mickens. 2014 Jahr
Computer Systems Security ist ein Kurs zur Entwicklung und Implementierung sicherer Computersysteme. Die Vorträge behandeln Bedrohungsmodelle, Angriffe, die die Sicherheit gefährden, und Sicherheitstechniken, die auf jüngsten wissenschaftlichen Arbeiten basieren. Zu den Themen gehören Betriebssystemsicherheit, Funktionen, Informationsflussmanagement, Sprachsicherheit, Netzwerkprotokolle, Hardwaresicherheit und Sicherheit von Webanwendungen.
Vorlesung 1: „Einführung: Bedrohungsmodelle“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 2: „Kontrolle von Hackerangriffen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 3: „Pufferüberläufe: Exploits und Schutz“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 4: „Trennung von Privilegien“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 5: „Woher kommen Sicherheitssysteme?“
Teil 1 /
Teil 2Vorlesung 6: „Chancen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 7: „Native Client Sandbox“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 8: „Netzwerksicherheitsmodell“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 9: „Sicherheit von Webanwendungen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 10: „Symbolische Ausführung“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 11: „Ur / Web-Programmiersprache“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 12: Netzwerksicherheit
Teil 1 /
Teil 2 /
Teil 3 Student: Vielleicht haben Sie immer noch ein Interessenkonfliktproblem, weil Sie 32 Bit für Peer-Adressen verwenden könnten und für jeden von ihnen viele Ports haben. Sie haben wahrscheinlich einen Konflikt von Sequenznummern all dieser Verbindungen, die Sie erhalten?
Professor: Es stellt sich heraus, dass diese Sequenznummern spezifisch für die IP-Adresse und die Portnummer des Quell- / Zielpaars sind. Wenn es sich also um unterschiedliche Ports handelt, stören sie sich überhaupt nicht. Insbesondere haben Ports niedrigere Seriennummern.
Student: Wenn die Seriennummern global sind, kann der Angreifer dann die Verbindung zwischen anderen Clients herstellen?
Professor: Ja, das ist ein guter Punkt. Wenn der Server die Seriennummer beispielsweise für jede Verbindung um 64 KB erhöht, stellen Sie eine Verbindung zum Server her, und dann stellen weitere 5 Personen eine Verbindung zum Server her. Hier können Sie einen Angriff organisieren. Bis zu einem gewissen Grad haben Sie Recht, es ist ein wenig mühsam. Andererseits könnten Sie es wahrscheinlich so machen, dass ein Paket aus der letzten Zeile von S-> A unmittelbar vor diesem Paket in der ersten Zeile von C-> S geliefert wird. Wenn Sie Ihre Pakete nacheinander senden, besteht eine gute Chance, dass sie auch einzeln auf dem Server eintreffen.
Der Server empfängt S-> A und antwortet mit dieser Sequenznummer (SNs). Es unterscheidet sich von den (SNs) in der zweiten Zeile, jedoch mit der unmittelbar darauf folgenden Seriennummer. Und dann wissen Sie genau, welche Sequenznummer (SNs) im dritten Paket Ihrer Sequenz enthalten sein soll.
Daher denke ich, dass dies keine sehr zuverlässige Möglichkeit ist, eine Verbindung zum Server herzustellen, sondern auf Annahmen basiert. Wenn Sie Ihre Pakete jedoch sorgfältig zusammenstellen, können Sie die Reihenfolge leicht erraten. Oder vielleicht versuchst du es mehrmals und hast Glück.
Student: Selbst wenn Zahlen zufällig generiert werden, müssen Sie eine der 4 Milliarden möglichen Zahlen erraten. Das ist nicht zu viel, oder? Ich denke, dass Sie innerhalb eines Jahres wahrscheinlich in dieses Netzwerk einbrechen können.
Professor: Ja, Sie haben absolut Recht. Sie sollten sich in Bezug auf die Sicherheit nicht zu sehr auf TCP verlassen. Weil Sie Recht haben, sind es nur 4 Milliarden Vermutungen. Und Sie können wahrscheinlich tagsüber viele Pakete senden, wenn Sie eine relativ schnelle Verbindung haben.
Hier haben wir also eine Art interessantes Argument über die Unzuverlässigkeit von TCP, da wir nur 32 Bit haben. Wir können ihn in keiner Weise sichern. Ich denke jedoch, dass viele Anwendungen, die sich ausreichend auf dieses Protokoll stützen, überhaupt nicht an Sicherheit denken, und dies wird wirklich zu einem Problem.
Aber du hast absolut recht. In der Praxis möchten Sie zusätzlich eine Art von Verschlüsselung verwenden, um ernsthaftere Garantien dafür zu erhalten, dass niemand Ihre Daten gefälscht hat, da Sie Verschlüsselungsschlüssel verwenden, die länger als 32 Bit sind. In den meisten Fällen verhindert dies immer noch eine Manipulation der TCP-Verbindung.
Mal sehen, warum es schlecht ist, wenn Leute TCP-Verbindungen von beliebigen Adressen fälschen können.
Einer der Gründe, warum dies schlecht ist, besteht darin, dass es die Autorisierung basierend auf der IP-Adresse beeinflussen kann, wenn der Server überprüft, von welcher Adresse die Anforderung stammt. Wenn ein Server basierend auf der IP-Adresse entscheidet, ob die Verbindung zugelassen oder verweigert wird, kann dies möglicherweise ein Problem für einen Angreifer sein, der die Verbindung von einer beliebigen Quelladresse aus gefälscht hat.
Ein Beispiel, bei dem dies ein Problem war, heute ist dieses Problem im Grunde genommen gelöst, die Verwendung einer Familie von r-Befehlen, wie z. B. rlogin. Früher konnte man so etwas wie rlogin für einen Computer beispielsweise unter athena.dialup.mit.edu ausführen. Und wenn Ihre Verbindung vom MIT-Host kommt, ist dieser Befehl rlogin erfolgreich, wenn Sie sagen: "Ja, ich bin Alices Benutzer auf diesem Computer. Lassen Sie mich als Alices Benutzer bei einem anderen Computer anmelden." Und dieser Vorgang ist zulässig, da alle Computer im mit.edu-Netzwerk vertrauenswürdig sind, um solche Anweisungen abzugeben.
Ich muss sagen, dass die Einwahl dieses Problem nie hatte. Diese Verbindung verwendete von Anfang an Cerberus. Aber andere Systeme hatten natürlich solche Probleme. Dies ist ein Beispiel für die Verwendung einer IP-Adresse in einem Verbindungsauthentifizierungsmechanismus, wenn das System prüft, ob der Client, der den Server anruft, vertrauenswürdig ist. Was früher ein Problem war, ist also kein Problem mehr. Aber sich auf IP zu verlassen, scheint immer noch ein schlechter Plan zu sein.

Jetzt wird rlogin nicht mehr verwendet. Es wurde kürzlich durch die sichere SSH-Shell ersetzt, die ein hervorragendes Netzwerkschichtprotokoll darstellt. Andererseits gibt es viele andere Beispiele für Protokolle, die auf einer IP-Adress-basierten Autorisierung beruhen. Eines davon ist SMTP. Wenn Sie E-Mails senden, verwenden Sie SMTP, um mit einem Mailserver zu kommunizieren und Nachrichten zu senden. Um Spam zu vermeiden, akzeptieren viele SMTP-Server nur eingehende Nachrichten von einer bestimmten Quell-IP-Adresse. Beispielsweise akzeptiert der Comcast-Mailserver nur E-Mails von Comcast-IP-Adressen. Gleiches gilt für MIT-Mailserver - sie akzeptieren nur E-Mails von MIT-IP-Adressen. Wir hatten jedoch mindestens einen Server, der mit der IP-Authentifizierung nicht ordnungsgemäß funktionierte.
Alles hier ist nicht so schlimm. Im schlimmsten Fall senden Sie Spam über den Mailserver. Dies ist wahrscheinlich der Grund, warum sie immer noch rlogin verwenden, während die Dinge, mit denen Sie sich bei einem beliebigen Konto anmelden können, die IP-basierte Authentifizierung nicht mehr verwenden.
Warum ist ein solcher Authentifizierungsmechanismus ein schlechter Plan? Angenommen, ein Server hat rlogin verwendet. Was würden Sie tun, um anzugreifen? Was könnte passieren?
Student: Ein Angreifer kann einfach in Ihren Computer eindringen, einen Benutzer vortäuschen, der mit Ihrem Benutzernamen in das Netzwerk eintreten wird, und Zugriff auf das Netzwerk erhalten.
Professor: Ja, im Grunde übernimmt ein Angreifer einen Computer. Es synthetisiert Daten, die wie ein gültiger Satz von rlogin-Befehlen aussehen, die lauten: "Melden Sie sich als dieser Benutzer an und führen Sie diesen Befehl in meiner Unix-Shell aus."
Sie synthetisieren diese Datendaten (SNc + 1), mounten den gesamten Angriff und senden diese Daten, als ob ein legitimer Benutzer mit dem rlogin-Client interagiert hätte, und können dann fortfahren.

Dies ist einer der Gründe, warum Sie nicht möchten, dass Ihre TCP-Sequenznummern erraten werden. Ein weiteres Problem sind diese Reset-Angriffe. Genauso wie wir ein SYN-Paket senden könnten, können wir ein Reset-Paket auf die gleiche Weise senden, wenn wir die Seriennummer einer Person kennen.
Wir haben kurz einen legalen Client erwähnt, der ein gefälschtes Verbindungsrücksetzpaket sendet, das ein Angreifer eingerichtet hat. Ein Angreifer könnte genauso gut versuchen, Pakete für eine vorhandene Verbindung zu verwerfen, wenn er irgendwie weiß, dass sich Ihre Sequenznummer in dieser Verbindung befindet. In der Tat ist nicht klar, wie groß dieses Problem ist.
Auf einer bestimmten Ebene sollten Sie davon ausgehen, dass alle Ihre TCP-Verbindungen in jedem Fall unterbrochen werden können und dass Ihr Netzwerk zu keinem Zeitpunkt zuverlässig ist. Daher sollten Sie möglicherweise eine Unterbrechung erwarten.
In dem Fall, in dem die Router miteinander "sprechen", ist diese Annahme besonders kritisch. Wenn Sie viele Router haben, die über einige Routing-Protokolle miteinander kommunizieren, bestehen einige physische Verbindungen zwischen ihnen. Zusätzlich zu diesen physischen Verbindungen kommunizieren sie über ein Netzwerkprotokoll, das über TCP funktioniert. Tatsächlich wird in jeder dieser physischen Verbindungen, über die die Router Routing-Informationen austauschen, eine TCP-Sitzung gestartet. Hier wird das BGP-Protokoll verwendet, über das wir später sprechen werden.
Dieses BGP-Protokoll verwendet die Tatsache, dass, wenn die TCP-Verbindung aktiv ist, auch die physische Verbindung aktiv ist. Wenn eine TCP-Verbindung unterbrochen wird, glaubt der Router, dass die Verbindung unterbrochen ist, und beginnt, alle Routing-Tabellen erneut zu zählen.

Wenn der Gegner eine Art DoS-Denial-of-Service-Angriff arrangieren möchte, kann er daher versuchen, die Seriennummern dieser Router zu erraten und diese Sitzungen abzubrechen. Wenn die TCP-Sitzung zwischen den beiden Routern deaktiviert ist, betrachten beide Router diese Verbindung als unterbrochen und sollten alle Routing-Tabellen erneut auflisten, wodurch sich die Routen ändern. Danach kann der Angreifer eine andere Verbindung zurücksetzen und so weiter.
Dies ist also ein etwas alarmierender Angriff, und zwar nicht, weil er das Geheimnis eines anderen verletzt und so weiter, zumindest nicht direkt, sondern weil er anderen Benutzern des Systems wirklich viele Zugriffsprobleme verursacht.
Student: Wenn Sie ein Angreifer sind und einen gezielten Angriff gegen einen bestimmten Benutzer organisieren möchten, können Sie dann weiterhin Anfragen senden, um im Namen seiner IP-Adresse eine Verbindung zum Server herzustellen, und ihn zwingen, die Verbindung zum Server zurückzusetzen?
Professor: Angenommen, ich verwende Google Mail und Sie möchten verhindern, dass ich Informationen von Google Mail erhalte. Senden Sie also einfach Pakete an meinen Computer und geben Sie vor, von einem Google Mail-Server zu stammen. In diesem Fall müssen Sie die richtigen Quell- und Zielportnummern erraten.
Die Zielportnummer ist wahrscheinlich 443, da ich HTTPS verwende. Aber die Quellportnummer wird eine zufällige 16-Bit-Sache sein. Außerdem variieren die Seriennummern. Wenn Sie also nicht die Sequenznummer erraten, die sich in meinem TCP-Fenster befindet und die mehrere zehn Kilobyte beträgt, werden Sie keinen Erfolg haben.
Man muss also eine ganze Menge Dinge erraten. Hier gibt es keinen Oracle-Zugriff. Sie können den Server nicht einfach nach der Seriennummer dieses Mannes fragen. Dies ist der Grund, warum dies auch nicht funktioniert.
Viele dieser Probleme wurden behoben, einschließlich dieser RST-basierten Sache, insbesondere für BGP-Router. Es gab tatsächlich zwei lustige Korrekturen. Eines zeigt wirklich, wie Sie vorhandene Dinge ausnutzen oder zur Behebung bestimmter Probleme verwenden können. Es verwendet die Eigenschaft, dass diese Router nur miteinander und nicht mit anderen Personen im Netzwerk kommunizieren. Wenn das Paket nicht von einem Router am anderen Ende der Verbindung ankommt, wird dieses Paket verworfen.
Die erfolgreiche Implementierung der Entwickler dieser Protokolle ist ein wunderbarer Bereich im Paket, der als "Lebensdauer" oder TTL bezeichnet wird. Dies ist ein 8-Bit-Feld, das von jedem Router dekrementiert wird, um sicherzustellen, dass Pakete nicht in einer Endlosschleife enden. Der maximale TTL-Wert beträgt 255 und nimmt weiter ab.
Was mache ich mit diesen intelligenten Protokollen? Sie verwerfen jedes Paket mit einem TTL-Wert ungleich 255. Wenn das Paket den Wert 255 hat, kann es nur von einem Router auf der anderen Seite dieser Verbindung stammen. Wenn der Gegner versucht, ein anderes Paket in die vorhandene BGP-Verbindung einzuspeisen, hat er einen TTL-Wert von weniger als 255, da dieser Wert von anderen Routern entlang des Routing-Pfads, einschließlich dieses Routers, verringert wird. Daher wird dieses Paket vom Empfänger einfach abgelehnt.
Dies ist also ein Beispiel für eine clevere Kombination abwärtskompatibler Techniken, die dieses sehr spezifische Problem lösen.
Student: Sendet der untere rechte Router nicht etwas mit einer TTL von 255?
Professor: Dies ist ein physischer Router. Und er weiß, dass dies separate Verbindungen sind, also schaut er sich sowohl TTL als auch die Herkunft des Pakets an. Wenn das Paket also vom oberen linken Router stammt, akzeptiert es es nicht für eine TCP-Verbindung zwischen ihm und dem oberen rechten Router.
Zum größten Teil vertrauen diese Router ihren unmittelbaren Nachbarn, und dieser Prozess kann mithilfe des Auto-Pan-Mehrweg-Routing-Mechanismus gesteuert werden.
Andere Korrekturen für BGP bestehen darin, eine Art Authentifizierungsheader zu implementieren, einschließlich eines MD5-Authentifizierungsheaders. In Wirklichkeit konzentrierten sich die Entwickler jedoch auf diese spezielle Anwendung, für die ein Reset-Angriff besonders wichtig ist.
Dieses Problem besteht bis heute fort. Wenn es eine langfristige Verbindung gibt und ich sie unterbrechen möchte, muss ich nur eine große Anzahl von RST-Paketen senden, ungefähr Hunderttausende, aber wahrscheinlich nicht 4 Milliarden. Da Server tatsächlich etwas anfällig für die Sequenznummer sind, die sie zum Zurücksetzen akzeptieren.
Es kann sich um ein beliebiges Paket in einem bestimmten Fenster handeln. In diesem Fall kann der Angreifer diese Verbindung ohne großen Aufwand trennen. Dies ist immer noch ein Problem, für das es keine wirklich gute Lösung gibt.
Und das Letzte, was aufgrund der Vorhersagbarkeit von Sequenznummern passieren kann, ist das Einfügen von Daten in vorhandene Verbindungen. Angenommen, wir haben ein hypothetisches Protokoll ähnlich wie rlogin, das keine IP-basierte Authentifizierung durchführt. Sie müssen also Ihr Kennwort eingeben, um sich anzumelden.
Das Problem ist, dass sobald Sie Ihr Passwort eingeben, Ihre TCP-Verbindung möglicherweise einfach hergestellt wird und beliebige Daten akzeptieren kann. Der Angreifer muss also nur warten, bis sich einer von Ihnen durch Eingabe Ihres Passworts am Computer anmeldet.
Der Angreifer weiß nicht, wie das Kennwort lautet. Sobald Sie jedoch eine TCP-Verbindung herstellen, versucht er sofort, Ihre Seriennummer zu erraten und einige Daten in Ihre vorhandene Verbindung einzugeben. Wenn ich also Ihre Seriennummer richtig erraten kann, kann ich so tun, als wäre ich es nicht, aber Sie haben einen Befehl eingegeben, nachdem Sie sich korrekt mit einem Passwort authentifiziert haben.

All dies zeigt, warum Sie sich im Sinne der Sicherheit wirklich nicht auf diese 32-Bit-Sequenznummern verlassen möchten. Aber lassen Sie uns sehen, was moderne TCP-Stacks tatsächlich tun, um dieses Problem zu mindern. Ein Ansatz für das Problem, das wir in den nächsten beiden Vorlesungen behandeln werden, besteht darin, ein gewisses Maß an Sicherheit auf Anwendungsebene zu implementieren. Auf dieser Ebene werden wir Kryptografie verwenden, um Nachrichten ohne großen TCP-Aufwand zu authentifizieren, zu verschlüsseln, zu signieren und zu verifizieren.
Einige der vorhandenen Anwendungen helfen auch bei der Lösung von Sicherheitsproblemen oder erschweren es einem Angreifer zumindest, diese Probleme auszunutzen. Dies wird heute beispielsweise unter Linux und Windows praktiziert, wobei für jedes Quell- / Zielpaar unterschiedliche Anfangssequenznummern beibehalten werden.
Daher berechnen die meisten TCP-SYN-Implementierungen diese anfängliche ISN-Sequenznummer immer noch auf die gleiche Weise wie zuvor. Dies ist also ein alter ISN-Stil. Und um tatsächlich eine Seriennummer für eine bestimmte Verbindung zu generieren, fügen wir dieser ISN im alten Stil einen zufälligen 32-Bit-Offset hinzu. Das heißt, wir fügen eine Funktion hinzu - so etwas wie eine Hash-Funktion oder SHA-1 oder etwas Besseres.

Diese Funktion umfasst die Quell-IP-Adresse, die Quellportnummer, die Ziel-IP-Adresse, die Zielportnummer und einen geheimen Schlüssel, den nur der Server kennt. Auf diese Weise bieten wir für eine bestimmte Verbindung eine gute Gelegenheit, die IP-Adresse und den Port für das Quell- / Zielpaar zu bestimmen und dabei alle guten Eigenschaften dieses Algorithmus zur Zuweisung von Sequenznummern im alten Stil beizubehalten.
Wenn Sie jedoch Verbindungen von verschiedenen Quellen- / Zielgruppen haben, können Sie den genauen Wert der Seriennummer einer anderen Gruppe von Verbindungen nicht ermitteln. Tatsächlich müssen Sie diesen Schlüssel erraten, um diesen Wert zu berechnen.
Ich hoffe, dass der Kernel des Server-Betriebssystems diesen Schlüssel irgendwo in seinem Speicher speichert und ihn niemandem gibt. Auf diese Weise lösen die meisten TCP-Stapel heute dieses spezielle Problem im Bereich der üblichen 32-Bit-Sequenznummern. Das ist nicht zu groß, aber es funktioniert.
Student: Könnten Sie das noch einmal wiederholen? Über die Einzigartigkeit des Schlüssels ...
Professor: Wenn meine Maschine hochfährt oder wenn eine Maschine hochfährt, wird ein zufälliger Schlüssel generiert. Jedes Mal, wenn Sie es neu laden, wird ein neuer Schlüssel generiert. Dies bedeutet, dass sich die Seriennummern eines bestimmten Quelle / Ziel-Paares jedes Mal mit derselben Versatzfrequenz ändern. Somit sind für ein gegebenes Quell / Ziel-Paar die Funktionsparameter festgelegt. Sie folgen also der Sequenz, wenn sich die Zahlen gemäß Ihren anfänglichen Sequenznummern für neue Verbindungen entwickeln und sich gemäß einem bestimmten Algorithmus ändern. Somit wird ein Schutz gegen das Einspeisen alter Pakete von früheren Verbindungen in neue Verbindungen sowie ein Schutz gegen eine Neuzuweisung von Paketen bereitgestellt.
Das einzige, wofür wir diese Seriennummer des alten Beispiels benötigen, ist die Wahl des Algorithmus, um Probleme mit diesen doppelten Paketen zu vermeiden. Früher haben wir berücksichtigt, dass Sie, wenn Sie eine Seriennummer für eine Verbindung A: A -> S: SYN (...) erhalten, danach eine Schlussfolgerung über die Seriennummer für die ACK (SNs) -Verbindung ziehen können.

, 32- , F. , , .
: ?
: , . F, , F , , , .
: , …
: , F - -, . -, , . , , , , . , F .
, TCP, . , , - .
, . , TCP , DNS, . , DNS UDP – . UDP — , , . UDP . , , , . , , . DNS-. DNS?

, DNS- C: C53 -> S53 mit.edu, 53.
S: S53 -> C53 IP-, – .
, , , , . , mit.edu, .
, DNS- . IP-, , . IP- mit.edu IP-. , , , , . , .

, , . IP-. , , DNS- . , , IP- mit.edu.
: , , ?
: , . , , . DNS-, , . 2 . — , 16 . , 16 . ID, 16 , .
, , 32 . , , , , .

, , .
, DNS DNS . , , DNS . , DNS SEC, . , , , DNS- . , , .
origin. DNS , IP-, : „, “. , , , , , , . , , ?
, – DNS- , . , , . -, DNS-, . , DNS SEC, , , DNS- . DNS- , , , – , .
DNS SEC , NSEC. , . , NSEC , foo.mit.edu, goo.mit.edu, , .

, , , , , , „, “.
. , foo.mit.edu -> goo.mit.edu — >…. : » , , gooa.mit.edu". , , .
, DNS . NSEC3, – - , - .
52:00
MIT-Kurs "Computer Systems Security". 12: « », 3.
Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Dezember kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie
hier bestellen.
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?