Frage:
Warum schützen Betriebssysteme nicht vor nicht vertrauenswürdigen USB-Tastaturen?
trallgorm
2016-02-04 20:47:39 UTC
view on stackexchange narkive permalink

In letzter Zeit habe ich über Dinge wie BadUSB und RubberDucky gelesen, bei denen es sich im Wesentlichen um USB-Sticks handelt, die dem Computer mitteilen, dass es sich um eine Tastatur handelt. Sobald sie eingesteckt sind, "geben" sie alle Befehle ein, die sie ausführen sollen. Meine Frage ist, warum Tastaturen in fast jedem Betriebssystem automatisch vertrauenswürdig sind. Wenn ein Betriebssystem beispielsweise eine neue angeschlossene Tastatur erkennt, öffnen Sie eine Kennwortabfrage und lassen Sie zu, dass diese Tastatur nichts tut, bis sie das Kennwort eingibt. Es scheint nicht so, als würde dies eine Menge Usability-Probleme verursachen. Gibt es einen Grund, warum diese oder eine andere Schutzmaßnahme nicht angewendet wird?

Wie würden Sie das Passwort für die Tastatur ohne Tastatur eingeben?!
@spacetyper Sie würden die neue Tastatur verwenden. Der Punkt war, dass es zum Beispiel nicht in der Lage sein würde, die Verknüpfung für cmd zu "drücken" und dann dort Befehle einzugeben, bis das Passwort eingegeben wurde. Ich sehe keinen Schaden darin, nur Sachen in das Passwortfeld eingeben zu lassen.
Wenn die bösen Jungs lange genug physischen Zugriff auf Ihren Computer haben, um einen USB-Anschluss daran anzuschließen, haben Sie bereits verloren.
@Mindwin: Die Bösen müssen dir nur eine gefälschte Tastatur verkaufen. Sie benötigen keinen physischen Zugriff auf Ihren Computer.
Ich denke, eine bessere Möglichkeit, dies auszudrücken, ist "Implementieren Betriebssysteme ein Sicherheitsmodell für USB-Geräte, das dem Bluetooth-Pairing ähnelt"?
Die folgende Heuristik ist alles andere als narrensicher, aber Sie können möglicherweise viele Fälle erfassen, wenn der Computer einen Dialog anzeigt, wenn eine * zweite * Tastatur angeschlossen ist. (Fast) jeder möchte eine Tastatur verwenden, aber nicht so viele Wenn Sie zwei gleichzeitig verwenden, ist das Hinzufügen einer Tastatur, wenn bereits eine vorhanden ist, möglicherweise ein vernünftiger Indikator dafür, dass etwas seltsam ist. Der Schwellenwert kann für Personen konfigurierbar gemacht werden, die wissen, dass sie routinemäßig andere tastaturähnliche Geräte verwenden: Selbst wenn Sie routinemäßig eine Tastatur, das G700 und einen Optimus Mini verwenden, möchten Sie wahrscheinlich keine vier Tastaturen verwenden.
@TheSpooniest Dies können Sie beispielsweise mit USBGuard tun, das auf der diesjährigen fosdem vorgestellt wurde: https://fosdem.org/2016/schedule/event/usbguard/. Das Video des Vortrags ist bereits online. http://mirrors.dotsrc.org/fosdem/2016/h1309/usbguard.mp4 Wenn ich mich richtig erinnere, können Sie es so konfigurieren, dass die erste Tastatur zulässig ist, aber das zweite USB-Gerät, das die Tastaturschnittstelle verwenden möchte, blockiert wird. Haftungsausschluss: Ich bin nicht an dem Projekt beteiligt. Ich habe nur das Gerede gehört.
Kommentare sind nicht für eine ausführliche Diskussion gedacht. Diese Konversation wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/35361/discussion-on-question-by-trallgorm-why-dont-oses-protect-against-untrusted-usb).
Es ist keine schlechte Idee, ein mit der Tastatur (oder zumindest einer Tastatur) eingegebenes Passwort zu benötigen. Beachten Sie jedoch, dass es legitime Anwendungsfälle für Tastaturen mit Teilmengen von Tasten gibt. Das offensichtliche Beispiel sind die 10-Tasten-Pads, die früher üblich waren, damit Laptops von Buchhaltern bequem verwendet werden können. Benutzerdefinierte Tastaturen, die viele getastete Makrosequenzen oder zusätzliche F-Tasten bereitstellen sollen, haben ihren Platz an Orten wie CAD-Systemen und Computerspielen. Sie können also wahrscheinlich nicht verlangen, dass eine beliebige Zeichenfolge nur auf der neuen Tastatur eingegeben wird.
Ich habe das Gefühl, dass vielen Antworten die Tatsache fehlt, dass Sie nach "Tastaturen" gefragt haben, die nichts mit einer Tastatur zu tun haben. Vielleicht möchten Sie das hervorheben. Ich denke, die Leute verwenden viel häufiger einen kostenlosen 16-GB-USB-Stick, den sie von einer Konferenz erhalten haben, als eine skizzenhafte Tastatur von einer zufälligen Firma zu kaufen. Und wenn das Betriebssystem sie auffordert, die neue "Tastatur" zu bestätigen, wird sie mit größerer Wahrscheinlichkeit heruntergefahren. Beachten Sie, dass Sie das USB-Stick nicht einmal unbrauchbar machen müssen: Laden Sie die Tastaturtreiber nur nicht, wenn der Benutzer sich nicht sicher ist.
Warum muss das Passwort eingegeben werden? Das Betriebssystem oder BIOS kann eine Eingabeaufforderung anzeigen und der Benutzer klickt auf OK. Und dann haben Sie das gleiche Problem mit potenziell bösartigen Mäusen.
Sechs antworten:
Steve Sether
2016-02-04 21:07:32 UTC
view on stackexchange narkive permalink

Das Vertrauensmodell für ein Gerät, das Sie an Ihren Computer anschließen, ist von Natur aus schwierig. Der USB-Standard wurde erstellt, damit buchstäblich jeder ein USB-Gerät erstellen kann. Sicherheit war kein Faktor. Auch wenn ja, wo setzen Sie das Vertrauen? Die Filmindustrie hat dieses Modell mit HDMI ausprobiert und es ist im Wesentlichen kläglich gescheitert. Sie können nicht gleichzeitig jemandem ein Gerät geben, das etwas tut, und ihn daran hindern, zu verstehen, wie dasselbe zu tun ist.

In Ihrem Beispiel wird vorgeschlagen, dem Benutzer das Vertrauen zu schenken. Das offensichtlichste Problem ist, dass niemand Passwörter eingeben möchte, nur um eine Tastatur zu verwenden. Würde es sonst wirklich etwas lösen?

Der Benutzer vertraut dem Gerät bereits, sonst würde er es nicht an seinen Computer anschließen. Warum sollten sie nicht einfach das tun, was erforderlich ist, damit es funktioniert, da bereits Vertrauen aufgebaut wurde?

Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde [zum Chat verschoben] (http://chat.stackexchange.com/rooms/35341/discussion-on-answer-by-steve-sether-why-dont-oses-protect-against-untrusted-us) .
HDMI ist kein guter Vergleich, da es sich um ein völlig anderes Bedrohungsmodell handelt. Im Fall von HDMI nimmt ein Dritter, der weder der Hersteller der Hardware noch der Eigentümer ist, den Eigentümer der Hardware als Bedrohung wahr und möchte, dass der Hersteller der Hardware diese Bedrohung abschwächt. Bei USB hat der Besitzer der Hardware tatsächlich ein Interesse an der Sicherheitsfunktion. Dies ist also ein Unterschied zwischen ** Schutz des Eigentümers ** und ** Schutz gegen den Eigentümer **.
@kasperd Das stimmt zwar, aber es geht wirklich darum, dass Sie kein Geheimnis darüber bewahren können, wie Hardware implementiert wird, wenn Sie sie an alle verkaufen. Wenn Sie der Hardware vertrauen und das große Geheimnis in der Hardware liegt, können Sie wirklich nichts tun, um zu verhindern, dass das Geheimnis herauskommt.
Die Frage fragt nach einem Sicherheitsmodell für USB. Ich sehe es nicht so, dass verlangt wird, dass dieses Sicherheitsmodell geheim gehalten wird. Die Frage verlangt auch nichts, was es erforderlich machen würde, einen Aspekt des Hardware-Designs geheim zu halten. Die Usability-Probleme können behoben werden, indem die Bestätigung nur auf Hardware angewendet wird, die nach dem Start des Systems angeschlossen wurde. Dies ist die Hauptbedrohung in dieser Frage.
@kasperd Ich bin der Meinung, dass die besten Antworten auf die Frage als Ganzes gerichtet sind, anstatt zu versuchen, sich eng auf den einen oder anderen Aspekt zu konzentrieren. Ihr Ansatz, alles auf etwas "gut Definiertes" zu bringen, verliert dabei jede Bedeutung. Wenn wir die Welt in immer kleinere Teile eingrenzen und die Dinge so präzise wie möglich gestalten, verlieren wir die Verbindung zur realen Welt.
Wenn die Anforderung darin besteht, ein Kennwort auf der neuen Tastatur einzugeben und die Tastatur die Form eines USB-Sticks hat, wie geht der Benutzer dann vor, "was auch immer erforderlich ist, damit es funktioniert"?
@Andreas Der Benutzer gibt das Kennwort wie gewünscht ein. Sie nehmen den Verdacht des Benutzers an, was ich nicht tue. Menschen sind keine Sicherheitsforscher, und sie verstehen Sicherheit nicht einmal ein bisschen.
@SteveSether Wie tippen sie mit dem USB-Stick?
Der @Andreas-USB-Stick verfügt über einen USB-Anschluss. Der Benutzer wird aufgefordert, die Tastatur anzuschließen und das Kennwort einzugeben.
@SteveSether Ah. Das ist wunderbar :)
Matthew
2016-02-04 21:02:01 UTC
view on stackexchange narkive permalink

Zunächst einmal wird Tastaturen viel früher im Startvorgang als dem Betriebssystem vertraut. Wenn Sie ein BIOS-Kennwort oder einen Bitlocker-Schlüssel haben, geben Sie dies vor dem Laden des Betriebssystems über die Tastatur ein . Tatsächlich kann eine besonders böswillige Tastatur so ziemlich alles tun, um zu verhindern, dass das Betriebssystem geladen wird, bis hin zu einem bootfähigen Laufwerk, und wahrscheinlich ein Rootkit zu starten, bevor das Betriebssystem gestartet wird.

Sie können dieselben Regeln auch auf Mäuse ausweiten (sie können auf einen vordefinierten Satz von Punkten klicken, um die virtuelle Tastatur zu öffnen, und dann eingeben, was sie möchten).

Alternativ können Sie entscheiden, dass Sie nur verwenden Geräte, denen Sie vertrauen, und akzeptieren das geringe Risiko, dass schlimme Dinge passieren.

Ich bin nicht sicher, ob diese Antwort vollständig ist. Während es wichtig ist, sich über das Problem beim Booten Gedanken zu machen, ist das BadUSB-Beispiel eher eine Plug-in-Play-Sicherheitsanfälligkeit.
H. Idden
2016-02-04 23:25:26 UTC
view on stackexchange narkive permalink

Die Antwort lautet Verwendbarkeit

Wie sollte der Benutzer zustimmen, dass der Maus / Tastatur vertraut wird? Was könnte mit der Tastatur / Maus bösartig sein? Wie gehen Sie mit dem Fall um, wenn die Tastatur ausgetauscht / ersetzt werden muss? Insbesondere im Serverszenario sind mehrere Tastaturen / Mäuse an einem anderen Ort gespeichert, und Sie können die nächstbesten ermitteln, wenn Sie physischen Zugriff auf den Server benötigen. Sie werden sich nach Monaten / Jahren nicht mehr daran erinnern, welche Tastatur zu welchem ​​Server gehörte, und die Tastatur könnte sogar zerstört werden. Wie verwende ich die Ersatztastatur? Geben Sie Ihre Zustimmung mit der unbekannten Tastatur? Wie geht das mit der ersten Tastatur? Angenommen, Sie probieren einen neuen PC eines Freundes aus, verwenden Ihre eigene Tastatur und geben sie dann Ihrem Freund. Wie soll er seiner Tastatur zustimmen? Bearbeiten: Sie können vor der ersten Verwendung nach einem Kennwort fragen, aber meinen vorletzten Absatz lesen.

Die ungelöste Frage lautet also im Grunde: Wie kann der Computer eine vertrauenswürdige / sichere Verbindung herstellen? der Benutzer, der nicht auf einfache Weise von anderer Hardware / Software / Bösewicht / ... gefälscht / umgangen werden kann?

Regel 3 der 10 unveränderlichen Gesetze des Computers Sicherheit ist: "Wenn ein Bösewicht uneingeschränkten physischen Zugriff auf Ihren Computer hat, ist es nicht mehr Ihr Computer." Wenn Sie einen BadUSB von einem Bösen eingeben, sind Sie der Diener des Bösen und geben ihm durch Proxy physischen Zugriff darauf. Beachten Sie, dass es ähnlich schlimmere Angriffe als bei schlechtem USB gibt. Wenn er beispielsweise ein Gerät eines Bösewichts in ein FireWire oder eine andere DMA-Schnittstelle einbindet, kann er jeden Speicher lesen / schreiben und jeden Code ausführen und sogar Sperrbildschirme von Windows / Linux / Mac umgehen. Legen Sie also am besten niemals ein nicht vertrauenswürdiges Gerät in Ihren Computer ein.

Bearbeiten: Aufgrund dieser Regel und solcher Angriffe wurde bei der Überlegung des Standards nicht berücksichtigt (physische Sicherheit war zu diesem Zeitpunkt weniger wichtig, außer in Fällen, in denen der physische Zugriff ohnehin eingeschränkt war), so etwas wurde nie Teil des Standards . Es gab bereits viele einfachere mögliche Angriffe mit physischem Zugriff, so dass es sich nicht lohnte, einen so kleinen Randfall in Betracht zu ziehen. Dies hätte die Komplexität des Systems massiv erhöht, insbesondere wenn die Autorisierung zwischen mehreren Betriebssystemen und dem BIOS geteilt werden müsste ( "Drücken Sie F10 für BIOS") und wie viele gespeichert werden sollen. Das nächste Problem tritt bei der Entscheidung auf, wo das Kennwort angezeigt werden soll, insbesondere wenn mehrere Monitore wie ein defekter Laptop-Bildschirm erkannt werden. All dies hätte sich auch negativ auf die Akzeptanz bei den Benutzern ausgewirkt, und stattdessen könnte ein einfacher zu verwendender Standard zum Standard geworden sein. Da die Geräte von Wirtschaftsunternehmen hergestellt werden, die eine höhere Komplexität (= Kosten) und eine geringere Akzeptanz (weniger verkaufte Teile) aufweisen, wäre dieses Gehäuse mit schmaler Kante zu diesem Zeitpunkt nicht wichtig gewesen.

Es gibt spezielle Software auf dem Markt Hiermit können Sie vertrauenswürdige USB-Geräte für Hochsicherheitsumgebungen von Unternehmen definieren, die jedoch aufgrund der von mir erwähnten Punkte nicht allgemein verwendet werden.

-1; * "Wie verwende ich die Ersatztastatur? Gib deine Zustimmung zur unbekannten Tastatur? Wie mache ich das mit der ersten Tastatur?" * - Ja, warum nicht? Unter der Annahme, dass dieser Prozess einigermaßen ratenbegrenzt ist, sodass die Tastatur das Kennwort nicht nur brutal erzwingen kann, scheint dies eine praktikable Lösung zu sein. Es ist eine Sache zu sagen, dass dies die Kosten für die Benutzerfreundlichkeit nicht wert ist, aber Sie scheinen zu implizieren, dass es von Natur aus nicht lebensfähig ist und es nicht ist.
@MarkAmery Nachdem ich wegen Ihres Kommentars darüber nachgedacht hatte, bemerkte ich Ihren natürlich gültigen Punkt. Mein Denkprozess war wie folgt: 1. Gerät anschließen. 2. Gerät autorisieren 3. Treiber installieren und zugänglich machen 4. Mit Gerät interagieren. Die andere Möglichkeit, an die ich dachte, war 1, 3, 4, 2. Wenn man 1, 3, 2, 4 machen und nur die Eingabe des Passworts vor 4 erlauben würde, wäre dies tatsächlich möglich. Ich muss meine Antwort überdenken und auch Dinge wie Treiber, BIOS-Modus ("Drücken Sie F10 für BIOS") berücksichtigen. Auch das Teilen dieser Informationen zwischen dem BIOS und allen installierten Betriebssystemen müsste gelöst werden
@MarkAmery Ich hoffe, ich konnte die Antwort mit Ihrer Hilfe verbessern.
Das Problem ist bei weitem nicht so schwer, wie Sie es klingen lassen. Das Betriebssystem sollte neue Eingabegeräte einfach nicht zulassen, ohne sie über ein vorhandenes Eingabegerät zu akzeptieren. Wenn Sie sie akzeptieren, sollten Sie in der Lage sein, "Einmal akzeptieren" oder "Dieses Gerätemodell immer an diesem bestimmten USB-Port akzeptieren" auszuwählen.
@R .. Nehmen wir an, Sie haben so etwas wie einen Logitech Unifying Receiver, der mit Ihrer Tastatur und Maus arbeitet. Jetzt bricht es zusammen und Ihr örtlicher Elektronikladen verfügt über keine Logitech-Hardware, hat jedoch Microsoft-Mäuse und -Tastaturen auf Lager. Erklären Sie mir, wie Sie diese Situation in dem von Ihnen beschriebenen Szenario auf eine Weise lösen würden, die uns in Bezug auf nicht vertrauenswürdige USB-Geräte in Bezug auf die Sicherheit nicht auf den ersten Platz zurückbringt.
@R .. Zusätzlich zu Michaels Kritik ignorieren Sie eine andere Sache über Computerbenutzer völlig - sie werden versuchen, jeden Dialog verschwinden zu lassen, ohne ihn zu lesen oder ihm Aufmerksamkeit zu schenken. Sie haben also grundsätzlich zwei Hauptrouten, die die Benutzer einschlagen werden - entweder drückt der Benutzer X, sobald der Dialog angezeigt wird, oder er klickt einfach auf Zulassen "Natürlich möchte ich das Gerät verwenden, deshalb habe ich es gekauft". Benutzer lesen nicht. Sie haben nicht das Wissen, um die richtige Antwort zu finden, selbst wenn sie * gelesen * haben.
@MichaelKjörling: Das ist trivial: Akzeptieren Sie immer das erste Eingabegerät, wenn kein Eingabegerät angeschlossen ist. Dadurch wird das Bedrohungsmodell "bösartige Hardware" weiterhin ohne Unannehmlichkeiten für den Benutzer gelöst.
@R .. Was ist, wenn beim Booten mehrere Eingabegeräte vorhanden sind, einschließlich BadUSB? Was ist mit lang laufenden Computern wie Servern, auf denen Eingabegeräte während des normalen Betriebs angeschlossen sind? Was ist mit Servern / Heimkino-Servern, die ohne Eingabegerät starten?
@H.Idden: Geräte, an die normalerweise keine Tastatur angeschlossen ist, verfügen im Allgemeinen über Eingabemöglichkeiten, bei denen bereits ein Eingabegerät vorhanden sein sollte - Touchscreen, Fernbedienung für ein Unterhaltungsgerät usw. Dies ist bei weitem nicht so schwierig wie Sie mache es. Leute wie Sie müssen aufhören, absichtlich dicht mit einem Sicherheitsproblem umzugehen, das leicht behoben werden kann, sobald die falsche Erzählung, dass es nicht reparierbar ist, aus dem Weg geht.
@H.Idden: In Bezug auf Server liegen sie eher außerhalb des Diskussionsbereichs, wie eine Richtlinie für benutzerbezogene Eingabegeräte funktionieren sollte. Sie sind auch nicht sofort einem Risiko für diese Art von Problem ausgesetzt, da ein Server nicht von einer Root-Shell startet. Sie müssen sich anmelden, bevor unerwünschte Eingaben eine Bedrohung darstellen. Auch hier ist das Thema dasselbe: Hören Sie auf, absichtlich dicht zu sein, und eröffnen Sie eine Diskussion über echte Lösungen.
@R .. Es tut mir leid, wenn ich zu pedantisch war. Ich habe viel mit Anforderungsanalyse zu tun und habe zu viele Projekte / Produkte zum Scheitern gebracht, weil sie solche Randfälle im Nutzungsfluss bei der Definition der Anforderungen überwacht haben. Eines der schlimmsten Beispiele, die ich als Benutzer gesehen habe, war eine Sicherungssoftware, die nur für die Wiederherstellung auf dem ursprünglichen Betriebssystem und der ursprünglichen Festplatte verwendet werden konnte. Ich bemerkte es, als meine Festplatte ausfiel und die Software sich weigerte, mein Backup zu verwenden, weil ich es mit den Daten nicht von der sterbenden Festplatte booten / ausführen konnte. Zum Glück konnte ich eine Kopie der wichtigsten Daten von woanders bekommen.
@R Ich glaube nicht, dass H. Idden "absichtlich dicht" ist. Er weist darauf hin, dass es nicht so einfach ist, wie Sie zu glauben scheinen. Dies sind Dinge, die Sie berücksichtigen müssen, wenn Sie entscheiden, wie das Standardverhalten eines Systems aussehen soll, insbesondere wenn viele Betriebssysteme heutzutage auf so ziemlich jedem Gerätetyp ohne oder mit nur geringen Änderungen ausgeführt werden können. Der Plan "OK über bereits installiertes Gerät" schlägt auf einem Laptop fehl, auf dem die Tastatur / das Touchpad nicht mehr ordnungsgemäß funktioniert. Halbgebackene Lösungen sind keine Lösungen, sondern Probleme.
Die Implementierung dieser Art von Funktion muss optional sein und über das BIOS aktiviert werden. Die meisten Benutzer werden nicht vollständig verstehen, warum sie die Tastatur genehmigen müssen, und diejenigen, die sich für solche Probleme interessieren, werden höchstwahrscheinlich eine dedizierte vertrauenswürdige Tastatur reservieren, die nur zum Aktivieren dieser Funktion verwendet wird. Aus Sicht der Benutzerfreundlichkeit ist dies also kein Problem.
Sighbah
2016-02-04 20:56:17 UTC
view on stackexchange narkive permalink

Die Frage scheint immer zwischen Sicherheit und Komfort zu sein. Bei den HID-Angriffen scheint das Gleichgewicht aufgrund des für diese Angriffe erforderlichen physischen Zugriffs günstig zu sein. Natürlich könnte dies implementiert werden, aber es scheint im Moment nicht notwendig zu sein, dies zu tun. Warum zusätzlichen Code und zusätzliche Probleme hinzufügen, wenn die Bedrohung zu diesem Zeitpunkt minimal ist.

Nein, es gibt keinen Kompromiss zwischen Sicherheit und Komfort. Es gibt gutes Design und schlechtes Design, und es gibt umsetzbare Sicherheit und unlösbare Probleme. In diesem Fall hat das Betriebssystem keinen Einfluss darauf, wie Hardware vom BIOS verarbeitet wird, und kann daher nichts dagegen tun, dass die Tastatur schädlich ist. Siehe @Matthew's-Antwort.
"Das Sicherheits- und Komfortdilemma ist zu einem der größten Probleme der Informationssicherheit geworden. In vielen Unternehmen herrscht heute die Mentalität, alles zu sperren. Diese Infrastrukturen für die Informationssicherheit werden nach dem Vorbild von Fort Knox modelliert, ohne dass darüber nachgedacht wird, wie es wird den Endbenutzer betreffen. " https://www.giac.org/paper/gsec/3770/security-vs-convenience/106079 ". Matthew hat einen Punkt mit dem BIOS, aber ich denke, Sie haben mehr Probleme, wenn jemand die Möglichkeit hat, physisch auf den Computer zuzugreifen .
Ja, so präsentieren es die Leute, die Design nicht verstehen: "Wir müssen zwischen etwas Sicherem und etwas Einfachem wählen", damit sie kein Anforderungs-Engineering durchführen, menschliches Verhalten verstehen und Interaktionen und Services entwickeln müssen Das führt dazu, dass sich Menschen sicher verhalten und den Nutzen nicht für die Sicherheit opfern.
Sie müssen nicht auf Ihre Hardware zugreifen, um einen BadUSB-Angriff oder einen ähnlichen Angriff auf HW-Ebene auszuführen. Sie können die Sicherheit eines Hardwareanbieters gefährden und dessen Firmware beschädigen. Anbieter selbst und Angreifer auf Bundesstaatsebene können dies tun. Sie haben in der Vergangenheit Signaturschlüssel von solchen Anbietern gestohlen.
@Steve DL - Ich stimme Ihren Punkten in Bezug auf Anforderungsentwicklung und -design zu, obwohl ich Ihre Ansicht gerne verstehen würde, wenn die Anforderungen die Benutzerinteraktion behindern. Ist das schlechtes Design oder einfach sicherer? Wo ziehen Sie die Grenze zwischen schlechtem Design und einfach sicherer? Was sind einige gute Beispiele?
@Motivated "schlechtes Design" = all der Mist, den wir als Alternativen zu Passwörtern und Captchas bekommen, die die Nutzen- und Kostenanforderungen aus der Sicht der Benutzer nicht analysieren, da sie mit mehreren Technologien für Endziele handeln, die überhaupt nicht technologiebezogen sind. Manchmal ist gutes Design, auf etwas ganz zu verzichten. Befürworter des linearen Sicherheits-Usability-Paradigmas werden vergleichende Bewertungen von ebenso beschissenen Authentifizierungsmechanismen durchführen, während Personen mit einer Service-Design-Denkweise Verbundidentitätsschemata implementieren, weil sie verstehen, wo der Nutzen verloren geht.
@Motivated schlechtes Design ist, wenn Sie keinen benutzerzentrierten Designprozess implementieren, sondern nur schlechte Metriken für Sicherheit und Benutzerfreundlichkeit entwickeln (schlecht wie bei Ihrer Interaktion, Ignorieren von Einrichtungs- und Wartungskosten und Ignorieren von Alternativen, die größere Änderungen erfordern zur Technologie). Manchmal ist der Entwurfsraum sehr begrenzt, aber oft versäumen es die Menschen, die zugrunde liegenden Annahmen zur Sicherheitstechnologie zu überprüfen und das lineare Paradigma als Entschuldigung für die Mängel ihrer Entwürfe zu verwenden.
@Sighbah Die Frage macht keinen Sinn, wenn Sie davon ausgehen, dass der Benutzer weiß, dass er eine Tastatur anschließt. Dies ist der Fall, wenn das beworbene USB-Gerät vorgibt, keine Tastatur zu sein, und dann als eine fungiert. In diesem Fall ermöglichen die von dem Gerät benötigten Funktionen jedoch andere Angriffe, die schwerwiegender sind und das Betriebssystem vollständig umgehen. Die gesamte Diskussion in Frage stellen.
@SteveDL - Wenn der Fokus auf benutzerzentriertem Design liegt (und ich stimme dem zu), welche Alternativen würden Sie zu aktuellen Entwurfsentscheidungen in Betracht ziehen, z. Captchas, Multi-Faktor-Authentifizierung usw.
@Motivated das ist eine lange Diskussion. Ich schreibe gerade ein Papier über Theorie und Designprinzipien für Sicherheit, aber es ist noch nicht zur Überprüfung bereit. Es tut uns leid. Fühlen Sie sich frei, mich in der DMZ anzupingen.
@Steve DL Ich würde gerne sehen, dass Ihr Artikel Theorie und Designprinzipien für die Sicherheit behandelt, ohne den Benutzer zu belästigen.
@SteveDL - Was wären außerdem Alternativen zu USB-Geräten, wenn die Sicherheit keine Rolle spielt?
@Motivated Entschuldigung, ich bin überhaupt kein Experte für physische Sicherheit, daher bin ich nicht sehr daran interessiert zu diskutieren, wie Protokolle zur Geräteidentifikation / -authentifizierung geschrieben werden sollten. Alles, was ich mit Sicherheit sagen kann, ist, dass Probleme auf Hardwareebene auf Softwareebene nicht gelöst werden. Dafür ist es etwas spät.
phyrfox
2016-02-06 12:48:16 UTC
view on stackexchange narkive permalink

Das Betriebssystem weiß nichts über die Welt außerhalb von sich. Es wurde natürlich entwickelt, um Hardware zu vertrauen, da es keine Möglichkeit gibt, zu überprüfen, ob die Hardware tatsächlich vorhanden ist. Wenn Sie das Konzept eines Betriebssystems auf Hardware mit dem Film The Matrix vergleichen würden, wären Sie genau richtig. Das Betriebssystem ist einfach eine Sammlung von Bytes, die schließlich von der Hardware verarbeitet werden. Es kann auf einer realen Hardware ausgeführt werden, die mit anderen Betriebssystemen virtualisiert ist, die sich gleichermaßen nicht bewusst sind, oder sogar physisch auf mehrere Hardwareeinheiten verteilt ist, die als zusammenhängendes Ganzes fungieren. Die einzige wirkliche Anforderung besteht darin, dass sich die Hardware so verhält, wie es das Betriebssystem für erforderlich hält.

Letztendlich kann das Betriebssystem ohne die Hardware nicht existieren und ist absolut abhängig auf die Hardware, um die Wahrheit zu sagen. Während einige Fortschritte bei der Entwicklung sicherer Systeme erzielt wurden (z. B. als sie anfingen, die Verwendung von DMA durch PCI-Busse einzuschränken), handelt es sich bei diesen immer noch hauptsächlich um Hardwarelösungen für die Sicherheit. Das Betriebssystem kann die Eingabe von USB-Geräten ablehnen, aber es kann nicht zuverlässig feststellen, was ein USB-Gerät ist, indem es es untersucht, da das Gerät lügen kann. Es kann sich als das identifizieren, was es will, und das Betriebssystem kann nichts dagegen tun. Jede Überprüfung der Hardware müsste von mehr Hardware stammen. Das Betriebssystem weiß nur, dass es auf einem bekannten Bus ein Signal empfängt, das einem bekannten Protokoll entspricht. Sie können dies leicht emulieren, indem Sie beispielsweise eine andere Art von Software verwenden, die in einem Hypervisor ausgeführt wird. Das Betriebssystem kann den Unterschied nicht erkennen.

Wir können sicherlich Dinge tun, um die Situation für schädliche Software zu erschweren, z. B. die Notwendigkeit eines Verschlüsselungschips mit asynchronen Schlüsseln, möglicherweise mithilfe eines Schlüsselsystems auf der schwarzen Liste / Whitelist, das vor gelegentlichen böswilligen Handlungen schützen würde, aber das wäre nur so behindern die Entwicklung und erhöhen die Kosten für neue Hardware, frustrieren die Verbraucher und sperren den Wettbewerb aus, der nicht auf die Whitelist gelangen kann oder sogar aktiv von einer schwarzen Liste blockiert wird. Es gibt keine perfekte Lösung für das Problem, und jede vernünftige Lösung müsste auf Hardwareebene erfolgen, da das Betriebssystem nicht ohne weiteres feststellen kann, ob die Hardware so ist, wie es angeblich ist.

Alexey Vesnin
2016-02-05 03:38:13 UTC
view on stackexchange narkive permalink

Mein Motto für Software lautet 3-D:

  • Divergenz
  • Division
  • Domain

Jede Komponente MUSS das tun, was sie tun soll und nichts extra / sonst , da Sie nicht erwarten, dass Ihr Kühlschrank Ihr Bier öffnet. Das Betriebssystem muss eine einheitliche Umgebung und API-Konsistenz bieten. Einschließlich für den tatsächlichen Schutz vor schlechtem USB , aber der Schutz selbst muss ein Modul sein, eine Erweiterung , die auf allgemein akzeptierten APIs basiert. Das war's - es ist eine architektonische Frage.

Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde [zum Chat verschoben] (http://chat.stackexchange.com/rooms/35385/discussion-on-answer-by-alexey-vesnin-why-dont-oses-protect-against-untrusted-u) .


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...