Frage:
Ist grundsätzlich eine Serverinfrastruktur möglich, gegen die die klügste Person nicht verstoßen kann?
J.Todd
2015-08-25 08:45:06 UTC
view on stackexchange narkive permalink

TL; DR: h 2>

Vielleicht bin ich mit den Details meiner Frage über Bord gegangen, aber ich wollte sichergehen, dass die Frage klar ist, da das Thema sehr weit gefasst zu sein scheint. Aber hier ist es. Das Wort "klügste" ist grundsätzlich und nicht wörtlich gemeint.

Ist eine Serverinfrastruktur grundsätzlich möglich, gegen die die klügste Person nicht verstoßen kann?

Hintergrund:

Ich habe Artikel über die Server von massiven Banken (oder betrügerischen Websites) gelesen, die kompromittiert wurden, und in einem Artikel, der auf einem Interview mit einem an dem Fall interessierten Internet-Sicherheitsunternehmen basiert, behauptete ein Spezialist, dass es solche gibt Hochqualifizierte kriminelle Organisationen, insbesondere in China und Russland, die über enorme Ressourcen, Tools und einige der "besten" Hacker der Welt verfügen, und dieser Spezialist behauptete, es gäbe "kein System auf der Erde" (verbunden mit dem Internet). natürlich), die sie mit den ihnen zur Verfügung stehenden Ressourcen nicht kompromittieren konnten.

(Webserver) Informationssicherheit ist wie Schach:

Ich bin kein großer Schachspieler und keine große Info-Sek. Experte, aber ich bin ein Programmierer, der Serversoftware schreibt, und das interessiert mich. Wenn Sie alle Schachfaktoren außer Acht lassen, die mein Szenario zunichte machen könnten, wie zum Beispiel, dass die Person, die sich zuerst bewegt, einen Vorteil oder etwas Ähnliches hat, stellen Sie sich Informationssicherheit als Schachspiel zwischen zwei der besten Schachspieler der Welt vor.

Klassiker: Wenn Sie und ich eine Schachpartie spielen, gewinnt diejenige, die über größere Fähigkeiten, Kenntnisse und Intelligenz in Bezug auf die Schachpartie verfügt.

Programmiertes Szenario 1: Oder wenn wir das Spiel digital spielen, gewinnt derjenige von uns, der die intelligenteste Schachspielsoftware schreibt.

Programmiertes Szenario 2: Oder, und hier ist der Schlüssel, vielleicht können wir beide sowohl im Schach als auch im Programmieren so gut sein, dass wir beide so gut Schachspiel-Computerprogramme schreiben dass keines unserer Programme gewinnen kann und das Spiel in einer Pattsituation endet.

Betrachten Sie eine Serverinfrastruktur, z. B. einen Bankenserver oder einen Anwendungsserver, der mit Clients im Web kommunizieren muss. aber das darf kriminellen Parteien nicht erlauben, in ihre Datenspeicher einzudringen.

  • Die Sicherheit dieser Serverinfrastruktur kann entweder wie im programmierten Szenario 1 sein, dh wer auch immer, wer über die beste Software und das beste Wissen über Informationssicherheit verfügt, Die Leute, die zum Beispiel die Sicherheitsstrategien erfinden, haben immer die Chance, die Verteidigung einer Serverinfrastruktur zu durchbrechen, egal wie sicher. Grundsätzlich ist keine perfekte Verteidigung möglich.

  • Oder es könnte wie Programmiertes Szenario 2 sein, in dem es grundsätzlich möglich ist, sich zu entwickeln Eine Serverinfrastruktur, die eine Sicherheitsstrategie verwendet, die (grundsätzlich) von einem intelligenteren Programm nicht übertroffen werden kann. Eine perfekte Verteidigung ist grundsätzlich möglich.

Die Frage

Also, welche ist es? stark >

Sie suchen nach einem genau definierten Gleichgewicht in einem Spiel mit großer Unsicherheit. Hier gibt es kein statisches Gleichgewicht, nur ein Wettrüsten. Ein Wettrüsten ohne Regeln - alles ist möglich, wie @schroeder sagte, Schokoriegel und Gummischläuche. Oh, und Frauen (oder Männer). Das Spiel ist uralt, es heißt Krieg.
@DeerHunter Das ist akzeptabel. Aber ohne dieses Thema sehr gründlich zu studieren, ohne ein umfassendes Wissen über die Grundlagen der Serversicherheit, konnte ich nicht persönlich feststellen, ob grundlegende Prinzipien im Spiel sind, die eine Pattsituation durch eine perfektionierte Sicherheitsstrategie ermöglichen könnten oder nicht.
"Ist eine Serverinfrastruktur grundsätzlich möglich, die der klügste Mann nicht durchbrechen kann?" Ja. Leider bedeutet dies, dass jemand anderes, der nicht so klug ist, der sich nicht so gut mit der Funktionsweise auskennt, einfach dagegen verstößt, indem er dumm ist und Dinge ausprobiert, die keine gebildete Person in Betracht ziehen würde. denn so funktioniert es nicht.
@JonathanTodd Dann möchte ich Ihnen viel Mühe ersparen: Die Antwort lautet "Nein". Solange es Menschen geben wird, die auf die Daten zugreifen können sollten, wird es eine Lücke geben, die für Menschen ausgenutzt werden kann, die * nicht * sollten.
Ja. Es gibt eine Möglichkeit, zu verhindern, dass ein Server jemals verletzt wird. Alles was Sie tun müssen, ist es in einer dauerhaft versiegelten Box zu verschließen. Legen Sie dann die Kiste in einen Safe und werfen Sie den Safe in den Marianengraben. Und dann vielleicht den Graben mit Beton füllen.
Im Schach - wenn Sie 1000 Spiele spielen und 999 gewinnen und 1 verlieren, werden Sie wahrscheinlich als Champion betrachtet. In Sachen Sicherheit - wenn Sie 1000 "Spiele" spielen und 999 gewinnen und 1 verlieren, sind Sie fertig.
@Shadur Dies bedeutet, dass Sie ein perfekt sicheres System haben können, solange keine Benutzer vorhanden sind. :) :)
"Oh, aber du musst immer wieder durch diese Wälder reisen und du musst das Glück haben, den Wolf jedes Mal zu meiden, aber der Wolf braucht nur genug Glück, um dich einmal zu finden."
Sicherheit ist die Kunst, Kontrollebenen zu schaffen, die Verluste minimieren, wenn ein Aspekt der Sicherheit verletzt wird. Im Fall der Computersicherheit ist es bestenfalls schwierig, Schichten zu erstellen und Systeme zu teilen, um Verluste zu minimieren. Layering-Sicherheit ist jedoch der beste Weg, um einen Verstoß zu verhindern und Datenverluste zu minimieren, wenn ein Verstoß auftritt.
Es ist nicht wie Schach, weil die Situation nicht symmetrisch ist. Es ist ein asymmetrisches Spiel, bei dem eine Partei einen großen Nachteil gegenüber der anderen hat und nur gewinnen kann, wenn die andere Partei extrem dumme Fehler macht.
Nachweisbare Korrektheit ist in der Informatik grundsätzlich möglich. Machen Sie das zu implementierende Protokoll oder System einfach genug, und es kann tatsächlich praktisch sein. Aber es gibt das Problem, dass sich kommerzielle Anforderungen selten für die Kompromisse bei Entwicklungszeit, Kosten und Funktionskomplexität eignen, die für eine nachweisbare Implementierung erforderlich sind. (Implementieren Sie "eval", und Sie haben das Problem des Anhaltens; alle Wetten sind geschlossen!)
@JamesRyan und dies könnte in Zukunft eine realistische Möglichkeit sein. Jemand, der sich genug um die Sicherung eines Servers kümmert, beispielsweise die US-Regierung, wird wahrscheinlich künstliche Intelligenz (die im Gegensatz zu Menschen in einem Raum ohne Zugang zu "Schokoriegeln" eingesperrt sein könnte) verwenden können, um einen bewährten Mikrokern zu entwickeln, der sich bewährt hat Minisprache für diesen Kernel und bewährter einfacher Server mit dieser Sprache mit einem einzigen Kommandanten (nur ein Mensch im System), der allein die Fähigkeit hätte, einen Fehler in der Verteidigung des Systems zu machen.
Ich erinnere mich nicht, wer es gesagt hat oder das genaue Zitat, aber etwas in dieser Richtung: "Leute, die behaupten, etwas sei völlig narrensicher, haben den Einfallsreichtum totaler Dummköpfe eher unterschätzt."
Dreizehn antworten:
schroeder
2015-08-25 09:09:30 UTC
view on stackexchange narkive permalink

"Grundsätzlich ist keine perfekte Verteidigung möglich."

Im Schach haben Sie 64 Felder, 2 spielende Personen und einen Satz unveränderlicher, allgemein bekannter Regeln.

In Serverinfrastrukturen gibt es eine unermessliche Anzahl von Assets und Möglichkeiten, sich diesen Assets zu nähern, eine unbekannte Anzahl von Spielern und Regeln, die sich ständig ändern, wenn Spieler absichtlich versuchen, die Regeln zu biegen, zu brechen oder zu umgehen.

Betrachten Sie zwei Elemente, die meinen Standpunkt belegen: null Tage und Schokoriegel .

Erstens ändern null Tage die Regeln, während das Spiel gespielt wird. Während eine Seite den Vorteil dieses Elements erhält, ist sich die andere Seite des Vorteils nicht bewusst und ist möglicherweise immer noch nicht in der Lage, diesen Angriffen entgegenzuwirken, selbst wenn sie schließlich bekannt sind. Jeder Nulltag ist eine neue Regel, die ungleichmäßig auf das Spiel angewendet wird. Selbst wenn eine "perfektionierte Sicherheitsstrategie" entwickelt und perfekt angewendet werden kann, können Null Tage bedeuten, dass die Strategie auf unbekannten Schwächen beruht, die der verteidigenden Seite möglicherweise nie bekannt sind.

Zweitens können Schokoriegel dies tun mehr, um die Sicherheit einer Infrastruktur zu brechen als jedes andere Element. Was ich meine ist, dass Menschen bestochen oder dazu verleitet werden können, "die Seite zu wechseln" und der gegnerischen Seite einen Vorteil zu verschaffen, manchmal für etwas so Kleines wie eine Tafel Schokolade (Studien zeigen). Phishing, Bestechung, Datenverlust usw. sind Teil der menschlichen Seite des Spiels, die die Technologie nicht vollständig erklären kann. Solange sich ein Mensch mit Macht in der Infrastruktur befindet, wird es immer diese Schwäche des Systems geben.

Was tun?

In der Geschichte gibt es mehrere Situationen, in denen ein massiver Verteidigungsversuch durch etwas Kleines und Unvorhergesehenes besiegt wurde (z. B. öffneten sich die Tore der Chinesischen Mauer für eine Konkubine, die ein Doppelagent für die Mongolen war). Als Verteidiger besteht das Ziel nicht darin, die perfekte Verteidigung aufzubauen, sondern eine belastbare und transparente Infrastruktur zu schaffen, in der Angriffe schnell erkannt und vollständig beantwortet werden können. Keine höheren Mauern, sondern eine wachsamere Miliz. Keine unerschütterlichen Fundamente, sondern eine austauschbare Architektur.

Es würde mich interessieren, was passiert, wenn Sie die Schokoriegel entfernen. Ich würde es grundsätzlich für möglich halten, eine gesamte Serverarchitektur selbst zu entwerfen, den Server in einer Box zu verschließen und den Schlüssel zu schlucken. Dann haben wir nur noch null Tage im Spiel.
Ja, ich habe den Zero-Day-Bereich erweitert. Denken Sie daran, dass selbst mit dem Lock / Box / Swallow-Plan eine Reihe von * anderen * menschlichen Elementen in einer Strategie enthalten sind, die Probleme verursachen können. Stromversorgung, Netzwerkverbindung, Wartung, Patches usw. spielen irgendwann in der Strategie eine Rolle. Ich habe noch nichts von einem Plan gehört oder ihn ausgearbeitet, der alle menschlichen Elemente berücksichtigen kann.
Ich habe mit einem jungen Absolventen der Netzwerksicherheit zusammengearbeitet, der sehr an den möglichen Angriffen auf unsere Systeme interessiert war. Als ich von den verschiedenen Angriffen sprach, die wir bereits erlebt hatten, wies er sie alle als "sozialbasierte" Angriffe ab und war daher letztendlich uninteressant. Als wir mitten im Rechenzentrum mit mehreren Racks, Klimaanlagen, Netzteilen, Kabeln und blinkenden Lichtern standen, wandte ich mich an ihn und rief aus: "Dies ist ALLES Sozial! Es gibt Systeme, die von Menschen benutzt werden können!" Ich weiß, es klang banal, aber es hat mich beeindruckt, warum es keine Abgrenzung des Technischen und Sozialen geben sollte.
Wenn Ihnen das nichts ausmacht, stellen Sie sich ein Szenario vor, in dem ich persönlich den Strom generiere, die Wartung durchführe und die Patches selbst anwende. Das ist schließlich ein realistisch überprüfbarer Umstand. Ich könnte in einem leeren Raum sitzen, einen Generator mit meinem Server in der Box betreiben und meine eigenen Updates anwenden. Die Schokoriegel können in einer Operation entfernt werden, die klein genug ist (nur ich), wenn man sich genug anstrengen möchte.
Trotzdem arbeitet der Stratege nicht mit vollständigem Wissen oder sogar vollständiger Kontrolle über seine eigenen Systeme, da er das menschliche Element der Verteidigung entfernt. Die Infrastruktur basiert auf einer zusammenhängenden Matrix aus Arbeit und abhängigen Systemen anderer Personen. Ein Zusammenbruch in einem dieser Elemente (wie ein Zero-Day) besiegt sogar die perfekteste Verteidigung. Was ist also damit, alles von Grund auf neu zu bauen? Betriebssystem, Firmware, Protokolle, Verschlüsselung usw. usw.?
Oh, du meinst die eigenen rechnerischen Abstraktionsschichten. Wie der Kernel und das Betriebssystem. Ja, nehmen Sie an, dass die serverseitige Partei sich so sehr um die Sicherheit kümmert (eine Bank gibt dieses Jahr eine Viertelmilliarde US-Dollar aus), dass sie ihren gesamten Kernel und ihr gesamtes Betriebssystem von Grund auf neu entwickelt. Nehmen wir an, der Eigentümer des Unternehmens, der an der Sicherheit interessiert ist, programmiert den Kernel, das Betriebssystem und den Server von Grund auf neu und entwirft ihn ohne Hilfe ohne Fehler. Wir sind hier von grundlegender Bedeutung, und so etwas ist ehrlich gesagt möglich, wenn man sich jahrelang damit beschäftigt.
@JonathanTodd Es ist innerhalb eines menschlichen Lebens für ein Betriebssystem mit einer signifikanten Menge an Funktionalität (nach heutigen Maßstäben) nicht möglich. Wenn Tausende von Experten in Kombination mit einer Anzahl von Mannjahren Tests, die die Lebensdauer eines Menschen weit überschreiten, a nicht entwerfen und implementieren können fehlerfreies Betriebssystem, die Wahrscheinlichkeit, dass Sie oder ich können, ist ziemlich gering.
@reirab Ich möchte diesen Kommentarthread nicht weiter erweitern, aber wir sprechen von einem Betriebssystem, auf dem * nur * Serversoftware ausgeführt werden muss. Grundsätzlich 1% der Funktionen des Betriebssystems, über das Sie sprechen. Der Kernel ist bei weitem die meiste Arbeit hier, aber Top-Programmierer sind in der Lage, einen Kernel allein zu entwickeln, wenn viel Zeit zur Verfügung steht. Schließlich müssen wir Kernel als Referenz verwenden. Wir müssen nur einen neu entwerfen, um Fehler zu beseitigen, die möglicherweise missbraucht werden können, um das System zu gefährden. Auch hier geht es bei meiner Frage um Grundlagen, nicht um Machbarkeit ...
Und im Schach muss Ihr Gegner warten, bis Sie an der Reihe sind, bis Sie einen Zug machen, aber hier kann Ihr Gegner eine Million Züge machen, bevor Sie überhaupt eine Warnung erhalten, dass etwas mit Ihrem Server nicht stimmt :)
@jonathantodd Tatsächlich macht Ihr ursprünglicher Kommentar die 0 Tage * schlechter *, da Sie jetzt keine Möglichkeit mehr haben, zum Computer zu gelangen, um sie zu reparieren, nachdem sie entdeckt wurden.
Wenn wir die Schachanalogie weiterführen, können wir argumentieren, dass man die grundlegende Prämisse des Gewinns eines stärkeren Spielers untergraben kann, indem man den schwächeren Spieler eine Waffe bringen und den Großmeister erschießen lässt, bevor das Spiel beginnt.
NB: Die Chinesische Mauer wurde nicht entworfen, um Eindringlinge vom Eindringen abzuhalten, sondern um Räuber, die mit Wertsachen beladen sind, so weit zu verzögern, dass sie gefangen werden können, bevor sie aussteigen. Ich bin mir nicht sicher, ob es eine Analogie zur Informationssicherheit gibt.
Es stellte sich heraus, dass diese Antwort technisch falsch war, da meine Frage nach grundlegenden Fähigkeiten und nicht nach Machbarkeit fragt.
pjc50
2015-08-26 20:35:11 UTC
view on stackexchange narkive permalink

Sicherheit kann nachgewiesen werden, aber Sie müssen verstehen, was bewiesen ist.

https://sel4.systems/FAQ/proof.pml

Unsere Beweisaussage in natürlicher Sprache auf hoher Ebene lautet wie folgt:

Der Binärcode des seL4-Mikrokerns implementiert das in seiner abstrakten Spezifikation beschriebene Verhalten korrekt und nichts weiter. Darüber hinaus erfüllen die Spezifikation und die seL4-Binärdatei die klassischen Sicherheitseigenschaften Integrität und Vertraulichkeit.

Integrität bedeutet, dass Daten nicht ohne Erlaubnis geändert werden können, und Vertraulichkeit bedeutet, dass Daten nicht ohne Erlaubnis gelesen werden können.

Unser Beweis geht sogar noch einen Schritt weiter und zeigt, dass Daten nicht ohne Erlaubnis abgeleitet werden können - bis zu einem gewissen Grad. Es ist bekannt, dass sogenannte informationsseitige Kanäle (auch verdeckte Kanäle genannt) existieren. Der Proof deckt nur die Informationsinferenzkanäle ab, die im formalen Modell vorhanden sind: Der Vertraulichkeitsnachweis deckt alle Kernel-Speicherkanäle ab, schließt jedoch Timing-Kanäle aus, die empirisch behandelt werden müssen.

Also , warum benutzt nicht jeder einfach sel4? (Derzeit befindet sich der TrustZone-Prozessor einiger Apple-Geräte am wahrscheinlichsten auf dem TrustZone-Prozessor.)

Die Antwort lautet, dass der Beweis nur den Kernel abdeckt und keine der User-Space-Software, die dies tut Vielleicht möchten Sie laufen. Es gibt beispielsweise keinen nachweislich sicheren Webserver, geschweige denn Sprachimplementierungen für die Anwendungen, die Sie möglicherweise darauf ausführen möchten. Außerdem müssten Sie Ihre Webanwendung als sicher beweisen. Die Entwicklung dieser Dinge erfordert eine sehr große Investition, an der kein großes Unternehmen interessiert ist.

Hochsicherheitssysteme werden normalerweise am Schlüssel- und Anmeldeverwaltungspunkt p angegriffen >

Es spielt keine Rolle, wie sicher das System ist, wenn Ihr Administrator versehentlich sein Passwort auf dem Pastebin belässt. Erst neulich haben wir gesehen, wie ein TSA-Mitarbeiter ein Bild der (physischen) TSA-Hauptschlüssel für Gepäckschlösser auf Twitter gepostet hat, sodass diese jetzt alle kompromittiert sind. Schwache Passwörter, erratene Passwörter, unsicher gespeicherte Passwörter, schlechte Hardware-Sicherheitstoken, kopierte Fingerabdrücke: All dies sind mögliche Angriffsmethoden.

Oh wow, sehen Sie, diese Antwort beantwortet meine Frage ehrlich genauer als jede andere. Andere sprechen alle über Machbarkeit, aber meine Frage war buchstäblich: * Ist es grundsätzlich möglich, einen Webserver so zu sichern, dass mein Gegner mein System unabhängig von der Intelligenzstufe nicht gefährden kann? * - Und dementsprechend könnten wir einen Bewährten annehmen Server und Sprache wurden entwickelt, die dies tun. Während das Entfernen der "Schokoriegel" schwieriger ist, könnte dies dadurch erreicht werden, dass ein einzelner Mann die Wartung allein mit Hilfe der KI kontrolliert.
Zum Beispiel kann der US-Präsident von 2115 (in 100 Jahren unter der Annahme, dass die KI bis dahin poliert wurde) die geniale KI-Software anweisen, einen bewährten Mikrokernel, eine bewährte Sprache und damit einen Webserver zu erstellen und den KI-Computer und -Server in einem Raum zu sperren. damit er aus der Ferne auf Codes oder etwas wahnsinnig Geheimnisvolles zugreifen kann, ohne dass das Geheimnis herumgetragen wird, vorausgesetzt, er benötigt sie möglicherweise sofort. Wirklich weit hergeholtes extremes Beispiel, aber ich demonstriere nur ein Modell, bei dem ein bewährter Webserver ohne menschliche Schwäche in der Mischung sowohl anwendbar als auch möglich sein könnte.
Hervorragende Antwort. Dies ist die einzige, die die Frage * tatsächlich * wie beabsichtigt beantwortet.
Danke - ich hatte die Frage einige Tage lang gesehen und niemand hatte erwähnt, dass einige Formen des Softwareverhaltens nachweisbar sind. Die Leute werden von der Interpretation von Turing mitgerissen. Aber "AI" ist ein magisches, handgewelltes Wort, und es ist unwahrscheinlich, dass es Beweise für sein Verhalten gibt. Und vielleicht setzt der Präsident den Code auf den gleichen Wert wie sein Gepäck: http://arstechnica.com/tech-policy/2013/12/launch-code-for-us-nukes-was-00000000-for-20-years/
@pjc50 Ich habe diesen Artikel gelesen, ja, die Generäle haben Sicherheitsprotokolle umgangen, wie es allen anderen scheint. Deshalb empfehle ich die Verwendung von AIs für die zukünftige Möglichkeit, ein System mit Sicherheitsanforderungen zu verwalten, die von großer Bedeutung sind, wie z. B. den Raketenstart Codes. KI mag wie ein Zauberstab erscheinen, aber die Technologie ist eher ein "Wann", nicht "Wenn", und KI müsste nicht geprüft werden, da sie durch Eliminieren jeglichen externen Zugriffs (einschließlich Internet) außer über a gesichert werden können persönlicher Besuch des zuständigen Systemadministrators.
Zu meinen Gründen für Skepsis gehört die Idee, dass eine KI auf Geniestufe für immer in einer isolierten Kiste eingesperrt sein wird, nur mit einem nuklearen Startsystem für Unternehmen ...
Wissen Sie, ob ich mit sel4 ein Desktop-Betriebssystem haben kann? Nur für Tritte und Kichern!
@PyRulez sieht so aus, als könnten Sie es auf einem Desktop-PC booten, obwohl das Schreiben aller gewünschten User-Space-Dienstprogramme auf der Seite "Zukünftige Projekte" aufgeführt ist.
@pjc50 das ist eine sehr angenehme Einschätzung. Ich gehe davon aus, dass dies ein Problem für Unternehmen ist, die künstliche Intelligenz nutzen möchten. Ich denke, ein wirklich empfindungsfähiger Mensch wird sogar durch eine universelle Version, die über den Menschen hinausgeht, unter eine Art "Menschenrechtsgesetz" fallen ... Trotzdem besteht eine Lösung, die ich in Betracht gezogen habe, darin, eine KI im Labor zu entwickeln, die ihr Glück bekommt von einer bestimmten Person oder Gruppe zu helfen. Freier Wille ist schließlich eine Frage der Perspektive. Gott zu spielen hat ein paar Vorteile, die ich vermute.
@JonathanTodd: "Grundsätzlich möglich", solange Sie die Tatsache ignorieren, dass reale Systeme, wie sie in der realen Welt verwendet werden, immer eine menschliche Komponente haben werden; Außerdem wird diese Serverkonfiguration und -software immer im Fluss sein. Ich bezweifle, dass sich jeder, der Server für reale Anwendungen verwendet, leisten kann, dass alle Updates mathematisch immer als unzerbrechlich erwiesen werden. Abgesehen von einem Gedankenexperiment, das die reale Welt ignoriert und / oder sich auf das Wort "KI" stützt, werden Probleme mit "Nein" beantwortet.
Es gibt auch eine ziemlich große Liste von Annahmen, die für diesen Beweis erforderlich sind, wie zum Beispiel, dass die Hardware korrekt ist und dass alle darin enthaltenen Baugruppen korrekt sind und dass der Bootloader korrekt ist und eine Annahme enthält, die sogar die Aussage "Wir" enthält weiß, dass dies nicht der Fall ist. " Es wird also nicht einmal wirklich behauptet, dass der Vertraulichkeitsnachweis tatsächlich vollständig ist, sondern nur, dass er für bestimmte Pfade gilt. Verbunden mit mangelnder Kontrolle über die Lieferkette und es ist wahrscheinlich nicht wirklich möglich (siehe http://www.darpa.mil/program/vetting-commodity-it-software-and-firmware)
@TeemuLeisti Künstliche Intelligenz ist keine Märchenidee mehr aus einem Science-Fiction-Buch. Wir haben in diesem Bereich bereits Fortschritte erzielt, und es geht nicht mehr um "ob", sondern um "wann". Und * wenn * KI zu einer ausgefeilten Technologie wird, werden wir eine neue Fähigkeit haben, ein bewährtes System ohne menschliches Versagen aufrechtzuerhalten - kombiniert mit der Idee, die mir die ausgewählte Antwort gelehrt hat, unsere Fähigkeit, ein sicheres System zu beweisen, beseitigt dies menschliches Versagen, die größte Sicherheit Fehler und macht einen perfekt sicheren Webserver * möglich *. Nicht billig, nicht einfach, kaum machbar, aber grundsätzlich möglich. Und das war meine Frage.
@JohanthanTodd Behauptungen ohne Beweis. Ihre Frage lautet im Wesentlichen: "Ist es möglich, eine künstliche Intelligenz aufzubauen, die alle Angriffe auf die Integrität eines Servers abwehren kann?" Die Antwort darauf liegt völlig in der Luft.
Bedeutet empirisch nicht direkt weniger als absolute Perfektion?
@TeemuLeisti nein das ist albern. Ich gehe nicht von KI aus, die über Superkräfte verfügt, sondern nur von der Fähigkeit, die Wartung (Aktualisierung bewährter Codemodule) durchzuführen, damit Menschen, die erpresst werden können, nicht Teil des Systems sind. Wenn das System bewiesen ist, warum müssen Angriffe dann abgewehrt werden?
@ColorQuestor OK, vielleicht habe ich falsch verstanden. Ich habe jedoch immer noch das unangenehme Gefühl, dass diese Art der Erzielung einer "bruchsicheren" Serverinfrastruktur eher ein Gedankenexperiment ist als etwas, das im wirklichen Leben angewendet werden könnte, was immer kompliziert und chaotisch ist. Wie auch immer, ich verneige mich aus der Diskussion.
@TeemuLeisti Während es für die meisten unpraktisch ist, ist es absolut nicht nur ein Gedankenexperiment.Beispielsweise verwenden militärische Systeme häufig den semi-formal verifizierten INTEGRITY-127B-Mikrokernel, und Microsoft IIS verfügt über eine formal verifizierte HTTP-Implementierung (HTTP.sys).EAL7-bewertete Systeme sind ein weiteres Beispiel (INTEGRITY ist EAL6).
Letztendlich ist jede formale Überprüfung eines komplexen Systems wie eines Servers die Entwicklung eines formalen und konkurrierenden Angriffsbaums und die Überprüfung der jetzt stark reduzierten Menge an Code, die gefährdet ist.
Cort Ammon
2015-08-25 10:45:53 UTC
view on stackexchange narkive permalink

Niemand hat einen bestimmten Grund gefunden zu glauben, dass er ein solches System gefunden hat.

Sie erwähnen Schach, ein schönes Spiel auf einem 8x8-Gitter. Bedenken Sie, dass ein moderner Server etwas komplizierter ist. Spielen wir stattdessen in einem 65536x65536-Board, um es realistischer zu machen. Je mehr Sie im Schach spielen, desto weniger Positionen sind möglich. Stattdessen ist ein realistischeres System wie Go. Je mehr Sie spielen, desto enger kann die Position werden. Ich werde bemerken, dass das Go-Spiel unsere Arbeit an Schachcomputern mickrig erscheinen lässt.

Conway versuchte ungefähr 1970, das Go-Spiel auseinanderzubrechen. Er stellte fest, dass sich das Board oft in Teilspiele aufzuteilen schien, von denen jedes in seinem Raum gespielt wurde, um den endgültigen Gewinner zu ermitteln. Er fand die Art und Weise, wie sie zusammenarbeiteten, sehr kompliziert. Infolgedessen fand er surreale Zahlen, ein Zahlenschema, das buchstäblich größer ist als die reellen Zahlen, die wir in der Physik verwenden. Kein Scherz, es ist tatsächlich einfacher, das Wetter global vorherzusagen, als bei Go durch Teilen und Erobern zu gewinnen. Könnte es hier einen "Gewinn" -Fall geben? Vielleicht. Viel Glück beim Finden. Die einzige Möglichkeit, dies sicher zu wissen, besteht darin, das gesamte Board 65536 x 65536 auf einmal zu berücksichtigen.

Kevin Mitnick kommentierte in einem seiner Bücher Folgendes:

Der einzige wirklich sichere Computer ist ein Computer, der vom Internet getrennt, ausgeschaltet, ausgesteckt, in einem Betonbunker unter bewaffneter Bewachung aufbewahrt wird. Und selbst dann würde ich hin und wieder nachsehen. "

Tsk. Die bewaffnete Wache und die regelmäßigen Kontrollen sind potenzielle Angriffswege.
Steffen Ullrich
2015-08-25 10:26:31 UTC
view on stackexchange narkive permalink

Der Vergleich mit Schach ist interessant, weil er zeigt, was der Schutz eines Systems nicht ist. Im Vergleich zum Schach hat das Spiel zwischen Guten und Bösen in der IT-Sicherheit keine festen Regeln, Sie wissen nicht, wer Ihre Gegner sind, und Sie können außerhalb des Schachbretts angegriffen werden. Und wenn der Gegner eine Figur verliert, kann er einfach eine neue bekommen, während Sie dies nicht tun.

  • Sie haben begrenzte Ressourcen (Zeit, Geld, Wissen), um Ihre Systeme zu schützen. Die Angreifer haben ebenfalls begrenzte Ressourcen, aber wenn Sie ein interessantes Ziel sind, gibt es genügend interessierte Hacker, die insgesamt möglicherweise mehr Ressourcen als Sie haben.
  • Mit diesen begrenzten Ressourcen müssen Sie alles sichern. Dies bedeutet, alle möglichen (und Ihnen wahrscheinlich unbekannten) Wege / Exploits zu schließen, die ein Angreifer verwenden könnte, um in diese zu gelangen. Der Angreifer muss nur einen Weg finden und ihn verwenden.
  • Abgesehen davon besteht ein Konflikt zwischen Benutzerfreundlichkeit und Sicherheit. Schauen Sie sich nur die Zugriffskontrolle mit Passwörtern an, Möglichkeiten zum Zurücksetzen vergessener Passwörter usw. Diese sind von Natur aus nicht 100% sicher, da sie einen Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit darstellen. Sie könnten alle Ihre Benutzer auf sicherere Methoden wie Zwei-Faktor-Autorisierung, Client-Zertifikate, Smartcards usw. umstellen, aber diese könnten dann für die Benutzer zu unpraktisch sein und Sie würden Kunden verlieren. Und sie sind auch nicht 100% sicher, sondern nur sicherer als Passwörter.
  • Sie haben auch einen Konflikt zwischen Sicherheit und Leistung. Je schwieriger Sie alle eingehenden Daten analysieren, um Angriffe zu erkennen, desto langsamer wird es. Sie können zwar mehr Hardware auf das Problem werfen, es wird jedoch nicht linear skaliert, sodass Sie ein Gleichgewicht zwischen Geschwindigkeit und Analysetiefe finden müssen.
  • Und Sie müssen mit unsicherer Software umgehen. Es kann sich um eine geschlossene Quelle handeln, sodass Sie sie nicht suchen und beheben können, aber selbst mit Open Source haben Sie nicht die Zeit und Erfahrung, versehentlich oder absichtlich versteckte Fehler oder Hintertüren herauszufinden. Selbst wenn Sie das ganze Geld und die besten Experten hätten, die Sie für das Geld bekommen könnten, haben Sie nur eine begrenzte Zeit für die Bewertung und Analyse. Die Skalierung skaliert nicht linear mit der Anzahl der Experten (dh es hilft nicht, 1000 Experten zu finden, wenn Sie dies tun Sie müssen 1000 Codezeilen analysieren, da diese 1000 Zeilen nicht unabhängig voneinander sind.
  • Und schließlich gibt es die Personen, die Ihre Infrastruktur schützen und auch darauf zugreifen können. Sie sind Menschen, daher können sie mit Social Engineering angegriffen, bestochen, erpresst werden ...

Zusammenfassend: Theoretisch verfügen Sie möglicherweise über unbegrenzte Ressourcen (Zeit, Geld, Wissen, unbegrenzt schnelle Hardware) ) um ein System zu schützen und nur Kunden zu haben, die ebenfalls solche Experten sind und sichere gegenüber bequemen Zugriffsmethoden bevorzugen - in Wirklichkeit tun Sie dies nicht. Es wird immer einen Weg geben, sich darauf einzulassen, also sollten Sie darauf vorbereitet sein. Glauben Sie nicht, dass Sie jemals eine 100% sichere Infrastruktur erreichen werden, sondern schaffen Sie stattdessen eine Infrastruktur, die nicht nur robust gegen Angriffe von außen ist, sondern in der Sie einen Kompromiss erkennen und so schnell wie möglich beheben können. Schaden könnte angerichtet werden, sollte aber begrenzt werden.

PyRulez
2015-08-26 00:41:18 UTC
view on stackexchange narkive permalink

Ein solches System existiert wahrscheinlich, aber wir werden es wahrscheinlich nicht finden.

Wir haben viele Algorithmen zur Verwendung in der Sicherheit. Einige von ihnen sind wahrscheinlich richtig. Insbesondere sind einige von ihnen wahrscheinlich exponentiell schwer zu brechen. In der Tat kennen wir einige, die absolut unmöglich zu brechen sind (einmaliges Pad). Das Problem ist die Implementierung .

Bei der Sicherheit geht es nicht darum, wer schlauer ist. Bei der Sicherheit geht es um die Sorgfalt des Verteidigers v.s. die Intelligenz und Kreativität des Angreifers. Ein Verteidiger muss nicht brillant sein, wenn er einem Algorithmus äußerst sorgfältig folgen kann. Perfekte Verteidigung v.s. Ein perfekter Angriff führt zu einem defensiven Sieger im Sicherheitsland.

Das Problem ist, dass Server häufig komplexe Maschinen sind. Sie haben das Betriebssystem und die Mirades von Programmen sowie verschiedene Protokolle und Programmiersprachen und AHH. In einer solchen Umgebung ist eine perfekte Sicherheit nahezu unmöglich.

Wenn ein System jedoch einfach genug ist, kann ein Mensch es wahrscheinlich perfekt machen. Zum Beispiel habe ich eine Nachricht, $ M $, die als Zahl von 1 bis 6 codiert ist. Ich werde jetzt einen Würfel werfen, der der Schlüssel $ K $ ist, und $ M $ und $ K $ modular $ 6 $ hinzufügen , um den Chiffretext $ C $ zu erhalten.

Der Chiffretext ist $ 5 $. Was war die Nachricht?

Dieses Beispiel war so einfach, dass ich plausibel alle Möglichkeiten in Betracht ziehen konnte. Andererseits ist ein Server ziemlich komplex.

Welchen Rat können wir daraus ziehen? Halten Sie es einfach, dumm. (Das K.I.S.S.-Prinzip.) Auch wenn es wahrscheinlich außerhalb unserer menschlichen Fähigkeiten liegt, einen perfekten Server zu erstellen, ist es umso besser, je einfacher der Server und unsere Algorithmen sind. Dokumentieren Sie Ihren Code, machen Sie ihn verständlich und einfach. Jede Codezeile hat einen Grund. Verwenden Sie ein einfaches Betriebssystem (Hinweis: Verwechseln Sie Einfachheit nicht mit Benutzerfreundlichkeit. Denken Sie an Arch Linux, nicht an iOS.) Halten Sie nur ein Minimum an Programmen bereit. Wählen Sie eine Programmiersprache mit einer kleinen Definition und ohne seltsame Regeln und dergleichen (ich sehe Sie an, Javascript). Obwohl dies nicht perfekt ist, trägt es wesentlich dazu bei, Sie sicherer zu machen. P. >

Ihre Antwort kommt der richtigen Antwort auf meine Frage am nächsten, unter den vielen Antworten hier, die alle die Frage nach der * grundlegenden Möglichkeit * (die nach der neu akzeptierten Antwort existiert) nicht beantworten können. Jeder dachte sofort "Zu viele Variablen, nicht machbar, nichts wie Schach", aber im Grunde dachte niemand daran, das System zu vereinfachen, um perfekte Sicherheit zu erreichen, was anscheinend als "Beweisen" des Systems bezeichnet wird, und dies wurde mit Mikrokernen I durchgeführt weiß jetzt dank der neu ausgewählten Antwort.
Ein OTP mag in der realen Welt unmöglich zu knacken sein, aber theoretisch könnte ich auf das versehentlich verwendete Pad stoßen. Mein einziger Punkt ist, dass das, was in der realen Welt anwendbar und wahr ist, für diese Art von theoretischer Frage nicht gilt.
@ChrisMurray Ich habe die Würfel schon bewegt.
@JonathanTodd Simplifying wird nicht als "Beweisen" des Systems bezeichnet. Vereinfachung ist eine fast notwendige Voraussetzung für den Nachweis eines Systems. Ein vereinfachtes System an sich wird jedoch automatisch bewiesen. Das zu beweisen kann ziemlich schwierig sein.
@PyRulez, Ich wollte nicht buchstäblich darüber stolpern. Ich meinte, was ist, wenn ich es beim ersten Mal nur erraten habe? Was auch immer die Chancen stehen, es ist möglich. Es ist eine Chance ungleich Null und daher keine "perfekte Sicherheit".
@ChrisMurray Das OTP sagt nicht, dass Sie es nicht erraten konnten. Es bedeutet, dass Sie nicht wissen würden, ob es richtig ist. Sie könnten zwar alle sechs Zahlen erraten, wenn Sie möchten, aber was bringt Ihnen das? (Ich versichere Ihnen, es gibt keinen Hash des Würfelwerts.)
@PyRulez, Unter der Annahme, dass alle sechs (irgendwie) zu lesbaren Sätzen entschlüsselt werden, wird mir die Nachricht plus 5 irrelevante Nachrichten angezeigt. Vielleicht reicht das aus, um zu handeln, vielleicht auch nicht. Das einzige, was ich beweisen kann, ist, dass ich im Besitz der richtigen entschlüsselten Nachricht bin. Sicherlich sollte ich in einem "perfekten" System die entschlüsselte Nachricht überhaupt nicht haben?
@ChrisMurray Die Nachricht war ein zufälliger Würfelwurf.
@PyRulez Du hast mich falsch verstanden. Ich wollte nicht darauf schließen, dass der Nachweis eines Systems es vereinfacht, sondern nur, dass durch die Vereinfachung eines Systems auf die genauen Aspekte der benötigten Funktionalität, sichere Datenbereitstellung, beispielsweise mit großer Schwierigkeit und Genialität ein System entwickelt werden kann sicher bewährter Server. Grundsätzlich ist es nach den Angaben in der akzeptierten Antwort möglich. Möglich? Vielleicht nicht. Wartbar? Vielleicht nicht jetzt, denn bis wir die Entwicklung der KI aufpoliert haben, werden wir menschliche Betreuer des Systems benötigen. Aber grundsätzlich möglich.
Dennis Jaheruddin
2015-08-25 13:24:25 UTC
view on stackexchange narkive permalink

Angenommen, Sicherheit ist wie Schach

Im Gegensatz zu den meisten Menschen hier weiß ich ziemlich viel über Schach und gerade genug über Sicherheit, um dies zu einer nützlichen Antwort zu machen.

Wenn Sie überlegen Schach Sie werden feststellen, dass:

Die Anzahl der Möglichkeiten ist so groß, dass keine praktische Strategie sie alle explizit abdeckt.

Daher, wie wir auch in der Praxis sehen Der stärkste Teilnehmer gewinnt am wahrscheinlichsten. Trotzdem besteht immer die Möglichkeit, dass eine starke Person / ein starker Computerspieler gegen eine (viel) schwächere Person verliert.

Fazit:

Es sei denn, Sie kennen den richtigen Zug In jeder möglichen Situation ist keine perfekte Verteidigung möglich

Ches mit 10 ^ 80 Stück ... :)
@HagenvonEitzen Wie Sie vielleicht bemerken, wird meine Argumentation erst mit zunehmender Komplexität der Situation stärker!
Schach ist ein endliches Informationsspiel. Wir wissen, dass ein Gleichgewicht besteht, auch wenn wir nicht wissen, wie wir es berechnen sollen.
@DeerHunter Das ist richtig. Wenn wir also Informationssicherheit als unendliche und nicht vollständige Information betrachten, wird meine Schlussfolgerung im Grunde genommen "unmöglich" statt "praktisch unmöglich".
Schach ist fast immer eine völlig nutzlose Analogie. Es ist ein perfektes Informationsspiel. Kein richtiges Spiel hat alle Schauspieler mit perfekten Informationen!
@Aron Ich verstehe die Einschränkungen der Analogie im Allgemeinen, sehe es jedoch nicht als Problem für diese spezifische Antwort. Es wird nicht speziell erwähnt, aber selbst wenn der Angreifer keine perfekten Informationen hat (kann von ihm simuliert werden, indem er völlig zufällige Bewegungen ausführt), gibt es immer noch keine perfekte Verteidigung.
Im Schach macht jeder Spieler einen Zug, und der Gegner weiß sofort, welchen Zug er gemacht hat, und er kann ihn kontern. Wenn der Gegner einen Gewinnzug machen kann, endet das Spiel. In InfoSec kann der Hacker viele, viele Züge machen, bevor der Verteidiger es weiß. Außerdem weiß der Verteidiger möglicherweise nie, dass er spielt oder tatsächlich verloren hat oder wie er verloren hat.
@Aron Wenn ich das richtig verstehe, meinen Sie, dass Verteidiger der Informationssicherheit einige zusätzliche Nachteile haben. Meine Hauptschlussfolgerung ist, dass es keine perfekte Verteidigung gibt, wenn Informationssicherheit wie Schach ist. Daher würden zusätzliche Probleme für den Verteidiger meine Schlussfolgerung nur stärken.
Ich finde es lächerlich, dass die Leute die Anzahl der Möglichkeiten im Schach sogar als vage vernünftig betrachten. Alles, was Sie über den Zustandsraum des Schachs wissen müssen: Es wird angenommen, dass die Anzahl der möglichen Positionen im Bereich von 10 ^ 43 liegt. Die Komplexität des Spielbaums wird auf 10 ^ 123 geschätzt, wenn das bekannte Universum 100% Wasserstoff wäre etwa 10 ^ 80 Atome sein. Go ist noch komplexer. Ich würde sagen, InfoSec ist einfacher zu lösen;)
emory
2015-08-26 00:11:37 UTC
view on stackexchange narkive permalink

Eine perfekte Verteidigung ist grundsätzlich möglich.

Ich bin eigentlich mittelmäßig im Schach, aber es ist für mich trivial, die größten Spieler der Welt in eine Pattsituation zu bringen, und ich kann sogar in eine Pattsituation geraten die schnellsten und besten Schachcomputer.

Ich sitze einfach auf meinen Händen und warte, bis die Zeit abgelaufen ist, und der Schachgroßmeister kann keinen Sieg über mich erringen.

Ebenso Der undurchdringliche Server reagiert niemals auf Client-Anfragen und kann nicht einmal von dem klügsten Hacker besiegt werden.

Trotz seiner perfekten Sicherheit ist er völlig nutzlos.

Beachten Sie, dass in der Frage ausdrücklich angegeben ist, dass der Server mit Clients im Web kommunizieren muss. Eine Situation, in der Sie niemandem erlauben, sich zu bewegen, ist hier möglicherweise nicht sehr relevant. - Nebenbemerkung: Eine Situation, in der sich niemand bewegt, ist keine Pattsituation, sondern nur ein fortlaufendes Spiel.
@DennisJaherudd Ich habe mich bei den Timeout-Regeln geirrt - https://en.wikipedia.org/wiki/Draw_(chess)#Draws_in_timed_games. Ich dachte, du musst schachmatt setzen, um zu gewinnen (oder schachmatt gesetzt sein, um zu verlieren). Es stellt sich jedoch heraus, dass Sie verlieren und Ihr Gegner gewinnt, wenn Ihnen die Zeit ausgeht und es mindestens eine Reihe von legalen Schritten gibt, die zu Ihrem Schachmatt führen würden.
Steve Sether
2015-08-26 02:32:05 UTC
view on stackexchange narkive permalink

Informationssicherheit ist grundsätzlich anders als Schach. Schach ist ein schlechtes Modell für die Informationssicherheit, obwohl die Unterschiede zwischen beiden aufschlussreich sein können.

Schach ist ein Spiel mit perfekten Informationen. Beide Parteien wissen zu jeder Zeit genau, wo sich alle Teile befinden. In der Informationssicherheit ist ein Großteil der Informationen verborgen, und eine Partei kann einen Vorteil erzielen, indem sie über mehr Informationen als die andere verfügt. "Klügste" hat damit nichts zu tun.

Schach ist ein Spiel, bei dem alle Regeln bekannt und festgelegt sind. In der Informationssicherheit ist die Existenz von Regeln bestenfalls fraglich. Die "Regeln" werden besser als Umgebung und damit als bewegliches Ziel betrachtet.

Schach ist ein Nullsummenspiel. In der Informationssicherheit kann jeder verlieren, jeder kann gewinnen, niemand kann gewinnen, und Gewinnen und Verlieren kann nichts bedeuten.

Schach ist ein Spiel mit zwei Spielern. Informationssicherheit hat mehrere Akteure mit unterschiedlichen Motivationen (siehe "kein Nullsummenspiel").

Schach hat einen klar definierten Gewinn und Verlust. Gewinne sind vollständig und Verluste sind vollständig. Informationssicherheit ist viel schlammiger und überhaupt nicht schwarz-weiß. Das System kann teilweise kompromittiert und Verluste gemindert werden.

Es befasst sich mit der Analogie, scheint aber die eigentliche Frage nicht zu beantworten.
@DennisJaheruddin Einige Fragen sind keine guten Fragen. Um sie zu beantworten, müssen Sie die Frage selbst beantworten, anstatt sie direkt zu beantworten. Zum Beispiel George W. Bush. Großer Präsident oder der größte Präsident. Das ist alles was ich habe, wähle eins.
LawrenceC
2015-08-27 19:36:41 UTC
view on stackexchange narkive permalink

Ja. Eine Null-Server-Infrastruktur kann grundsätzlich nicht verletzt werden.

Kein Server = nichts zu verletzen = grundsätzlich unmöglich zu verletzen.

Alles andere kann grundsätzlich verletzt werden.

Ich kann den Link jetzt nicht finden, aber ein berühmter Experte sagte, dass mit einem Computer perfekte Sicherheit erreicht werden kann, indem: "ihn nicht eingeschaltet, nicht verwendet, nichts darauf gespeichert wird." Ich denke, das fasst es zusammen, was?
Thom Smith
2015-08-26 02:15:37 UTC
view on stackexchange narkive permalink

Offensichtlich gibt es keine perfekte technische Lösung, um menschliches Versagen zu verhindern oder um zu verhindern, dass ein Angreifer Ihren Systemadministrator besticht. Wenn wir jedoch die rein deterministische technische Seite betrachten, lautet die Antwort (trivial) Ja.

Sie können ein mit dem Netzwerk verbundenes System als Funktion betrachten. Sie haben eine Funktion, die Sie berechnen möchten, wobei die Eingänge ein Systemzustand sind und Bits über die Leitung eingehen und die Ausgänge ein neuer Systemzustand sind und Bits über die Leitung gesendet werden. Wenn die Funktion berechenbar ist, gibt es eine Systemimplementierung, die genau das tut.

Das Problem besteht darin, dass die Entscheidung, ob ein bestimmtes System eine Funktion perfekt berechnet, im Allgemeinen unmöglich und nicht mit Sicherheit zu bestimmen ist üben, wenn das Verhalten des Systems komplex ist. Eine Person, deren System wirklich undurchdringlich ist (wiederum aus dieser begrenzten technischen Perspektive), könnte sich dessen niemals sicher sein. Umgekehrt hält jemand, der der Sicherheit eines sehr komplexen Systems völlig sicher ist, diesen Glauben irrational.

Michael K.
2015-08-27 16:34:07 UTC
view on stackexchange narkive permalink

Die wahre Frage dahinter ist vielmehr: Wie viel Ressourcen möchten Sie ausgeben, um die Verteidigung zu brechen? Und was ist überhaupt das Mindestmaß an Sicherheit, das als vollkommen sicher angesehen werden kann? Kein Zugang, was auch immer? Zugriff auf zufällige Daten? Oder wird nur der Zugriff auf die Daten, die für Gewinnzwecke verwendet werden können, als Verstoß angesehen?

Um Ihr Beispiel für Schach zu verwenden: Irgendwann in der Zukunft werden wir einen Computer bauen, der alles enthält Positionen aller möglichen Schachpartien. Wenn Sie gegen sich selbst antreten, wird dies wahrscheinlich zu 100% Unentschieden / Pattsituationen führen. Bei einem "begrenzten" Satz möglicher Züge ist dies eine gültige Annahme einer perfekten Verteidigung.

Die Realität hat zu viele Optionen, um Regeln und mögliche Situationen zu umgehen. Vielleicht möchten Sie die Daten nicht stehlen, vielleicht möchten Sie nur, dass alle Backups nicht mehr existieren. Sie bombardieren also die Serveranlage - und sind mit den nicht funktionierenden Abfällen zufrieden.

In der Praxis können Lösungen wie Intrusion Detection-Systeme, Cold Storage (Speichersysteme, die nicht im Web verfügbar sind), aggressive &-Kennwortverwaltungsprozesse, defensives Anwendungsdesign und Analyse des Nutzungsverhaltens die Kosten erhöhen Um diese Systeme auf ein solches Niveau zu hacken, könnten nur sehr tiefe Taschen daran denken, sie anzugreifen.

Und Sie benötigen "James Bond" -ähnliche Fähigkeiten und gut ausgebildete taktische Fähigkeiten, um dies zu erreichen. Für einen bestimmten sehr großen Teil der Hacking-Community wäre dies eine "nahezu" perfekte Verteidigung.

Die am meisten gehackten Websites in den Nachrichten wissen nicht einmal, wer sich auf ihren "digitalen Rasenflächen" befindet. Viele Hacker verbringen Wochen oder Monate unentdeckt in ihren Systemen. Sie dachten einfach nicht daran, Millionen von Dollar für die Mindestverteidigung auszugeben, da dies gesetzlich nicht vorgeschrieben ist und die Klagen möglicherweise billiger sind als der Beginn des Schachspiels „Hacking Defense“.

Jemand erwähnte in einer Antwort die Tatsache, dass bewährte Systeme existieren. Es können Mikrokerne entwickelt werden, die eine perfekte Verteidigung haben. Mit größerem Aufwand könnte eine bewährte Sprache für diesen Mikrokernel und damit ein bewährter Server mit der Aufgabe entwickelt werden, beispielsweise dem Präsidenten, aber niemand anderem, den Fernzugriff auf Nuklearstartcodes zu einem bestimmten Zeitpunkt zu ermöglichen, ohne sie herumzutragen. Darüber hinaus könnte eine Operation, die in Zukunft teuer ist, das menschliche Fehlerelement beseitigen, indem künstliche Intelligenz ohne externen Zugriff zur Entwicklung und Wartung des Systems verwendet wird.
@Michael K. eigentlich ... Selbst mit wirklich großen Computern (Galaxiengröße!) Und wirklich dichtem Speicher (wie wäre es mit einem Bit pro Atom? Okay, zehn Bits!) Konnten Sie immer noch nicht alle möglichen Schachpartien aufzählen. Siehe https://en.wikipedia.org/wiki/Shannon_number.
Francis from ResponseBase
2015-08-28 04:36:13 UTC
view on stackexchange narkive permalink

Es erweist sich als viel einfacher, ein System zu entwerfen, um die klügsten Leute fernzuhalten, als ein System zu entwerfen, um die namenlosen, schamlosen, kreativen und hartnäckigen Leute fernzuhalten.

Intelligente Menschen gehen auf identifizierbar strukturierte Weise entlang vorhersehbarer Wege der Anstrengung und Erforschung vor und stützen sich auf eine miserabel vorhersehbare und ähnliche Reihe von Annahmen. Ein Genie scheint immer anzunehmen, dass bei Verwendung der Additionsfunktion 2 und 2 immer 4 und niemals 22 oder 2 & 2 sind.

Die größte Bedrohung für ein empirisches, rationales System - beim Menschen Begriffe - erweist sich als Gegner, der weniger als einen genialen IQ besitzt, eher ein Außenseiter ist oder im Takt seiner eigenen Trommel tanzt, anstatt den sozialen Normen der Herde zu folgen, und selten wird er nie als klug identifiziert eine in sozialen Gruppen. Gut eingestellt, wohl in ihrer Haut und in dem, wer sie sind und ihren Status als nicht der Rudelführer in irgendeinem Bereich akzeptieren, wird diese Person weder von der frivolen persönlichen Konkurrenz, die sie umgeben könnte, beeinflusst noch nimmt sie daran teil. Selbstgetrieben, Selbststarter, inspiriert und angetrieben von der inneren Realität in sich, verbindet dieses Individuum einen gewissen Funken Spontanität und echte, nicht rationale Kreativität mit einer unerschütterlichen Beharrlichkeit und innerem, temperiertem, diszipliniertem Willen oder Willen.

Sie benötigen keine soziale Validierung, sodass sich eine ganze Reihe von Social-Engineering-Exploits als nutzlos erweisen. Sie bleiben in der Menge oft unbemerkt, da sie sich nicht um die Aufmerksamkeit von irgendjemandem kümmern oder um diese konkurrieren, außer um diejenigen, die sie selbst als interessant oder ihrer Anstrengung und Aufmerksamkeit würdig identifizieren.

Ich habe einige kostbare Male persönlich eine Chance gesehen Leben Eine Person wie ich beschreibe, verletze und verletze die Design- und Implementierungsspezifikationen der klügsten Genies.

Auch hier müsste ich lieber ein System gegen die klügsten Leute entwickeln als gegen eine Person wie die, die ich beschrieben habe.

Diese Art von Person nenne ich einen "Neo".
KeithS
2015-08-28 23:49:31 UTC
view on stackexchange narkive permalink

Wenn es einen legitimen Weg gibt, gibt es einen illegitimen Weg.

Der einzige Server, auf den grundsätzlich keine Verletzung möglich ist, ist einer, auf den grundsätzlich kein Zugriff möglich ist. In der Netzwerksicherheit wird dies als "Luftspalt" bezeichnet. Ein Server oder Subnetz ist physisch von jedem anderen Netzwerk einschließlich der Außenwelt getrennt. In Kombination mit der physischen Sicherheit der Komponenten dieses Netzwerks mit Luftspalt, die verhindert, dass unbefugte Personen mit dem Netzwerk verbundene Computerhardware erreichen und physisch berühren können, können Computer in diesem Netzwerk von einem Hacker nicht angegriffen werden.

... Art von. Wenn es einen legitimen Weg gibt, gibt es auch einen illegitimen Weg. Die physische Sicherheit ist letztendlich ein menschliches Unterfangen und daher letztendlich fehlbar. Social Engineering kann verwendet werden, um persönliche Sicherheitsprotokolle zu umgehen, indem entweder ein "Gatekeeper" dazu gebracht wird, eine nicht autorisierte Person einzulassen, oder indem eine autorisierte Person dazu gebracht wird, etwas zu tun, das sie nicht im Namen einer nicht autorisierten Person tun sollte. Je besser die beteiligten Menschen darin geschult sind, die physischen Sicherheitsprotokolle zu befolgen, desto unwahrscheinlicher ist dies, aber es besteht immer eine Chance ungleich Null, die physische Sicherheit bis hin zu roher Gewalt zu umgehen (so etwas wie der Zero Dark Thirty-Überfall). Obwohl dies nicht im geringsten subtil ist, könnte es theoretisch gegen jede Unternehmenszentrale auf dem Planeten verübt werden (es geht nur darum, die richtigen Leute mit der richtigen Ausrüstung zu haben, um die Arbeit zu erledigen).



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...