DE102015113207A1 - Verfahren zum Autorisieren neu angeschlossener Geräte beim Anschließen an einen Computer über eine Schnittstelle - Google Patents

Verfahren zum Autorisieren neu angeschlossener Geräte beim Anschließen an einen Computer über eine Schnittstelle Download PDF

Info

Publication number
DE102015113207A1
DE102015113207A1 DE102015113207.9A DE102015113207A DE102015113207A1 DE 102015113207 A1 DE102015113207 A1 DE 102015113207A1 DE 102015113207 A DE102015113207 A DE 102015113207A DE 102015113207 A1 DE102015113207 A1 DE 102015113207A1
Authority
DE
Germany
Prior art keywords
data
computer system
test
interface
screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102015113207.9A
Other languages
English (en)
Inventor
Marco Blume
Rüdiger Kügler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WIBU-SYSTEMS AG
WIBU Systems AG
Original Assignee
WIBU-SYSTEMS AG
WIBU Systems AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WIBU-SYSTEMS AG, WIBU Systems AG filed Critical WIBU-SYSTEMS AG
Publication of DE102015113207A1 publication Critical patent/DE102015113207A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Verfahren zum Schutz eines Computersystems gegen die Übertragung von nicht autorisierten Daten eines an die Schnittstelle des Computersystems angeschlossenen Geräts, insbesondere eines USB-Geräts, wobei das Computersystem einen Bildschirm und eine Schnittstelle umfasst. Es weist ein Betriebssystem sowie einen für das angeschlossene Gerät passenden, bevorzugt spezifischen Treiber auf. Das Verfahren umfasst zunächst das Erkennen eines Gerätes an der Schnittstelle und ein optionales Klassifizieren des Gerätes. Die vom Gerät gesendeten Daten werden empfangen, wobei nicht autorisierte Daten erkannt werden. In einem weiteren Schritt wird ein Testformular auf dem Bildschirm angezeigt, das bevorzugt mit einer Eingabeaufforderung verknüpft ist. Das Ausführen eines Tests zur Autorisierung, insbesondere eines Turing Tests, stellt einen weiteren Schritt dar, ebenso das Auswerten der empfangenen Daten und das Prüfen, ob der Test erfolgreich war. Bei bestandenem Test wird das Gerät freigegeben und vom Gerät gesendete Daten an das Computersystem weitergeleitet. Bei nicht bestandenem Test wird das Gerät blockiert und weitere Daten gesperrt.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Schutz eines Computersystems gegen die Übertragung von nicht autorisierten Daten eines an die Schnittstelle des Computersystems angeschlossenen Geräts, beispielsweise eines USB-Geräts. Das Computersystem umfasst einen Bildschirm und eine Schnittstelle sowie ein Betriebssystem und einen für das angeschlossene Gerät passenden, bevorzugt spezifischen, Treiber.
  • Es gibt Angriffsszenarien auf die Integrität von IT Systemen, die darauf basieren, dass ein manipuliertes USB-Gerät (vorsätzlich oder unbewusst) an einen Computer angeschlossen wird und auf diesem Aktionen zum Nachteil des Anwenders, Systembetreibers oder der IT-Umgebung hervorruft oder Schadcode ausführt. Dieser mögliche Angriffsvektor wurde in den vergangenen Jahren mehrfach in wissenschaftlichen Arbeiten beschrieben. Die letzte Veröffentlichung stammt von Karsten Nohl „BadUSB – On accessories that turn evil" auf der Black Hat Konferenz am 6./7. August 2014 in Las Vegas.
  • Bedingt durch die technische Entwicklung und die somit einfacher und preiswerter werdende Realisierbarkeit eines derartigen Angriffes müssen IT Systeme vorausschauend gegen einen derartigen Angriff abgesichert werden.
  • Diese Absicherung muss ausreichend sicher sein, um einen nicht gezielt auf das spezifische System gerichteten Angriff abzuwehren und dabei bedienerfreundlich genug zu sein, um die Vorteile der Plug-and-Play Fähigkeit des USB nicht auszuhebeln. Letzteres ist für die Akzeptanz beim Benutzer essentiell wichtig, der allzu komplizierte Sicherheitsmaßnahmen oft deaktiviert.
  • Das manipulierte und zum Angriff vorgesehene Gerät kann zum Beispiel die Form eines USB-Speichersticks besitzen oder als Tastatur oder Computermaus getarnt sein. In Bezug auf eine beispielhafte USB-Schnittstelle kann letztendlich jedes Gerät mit einem USB Stecker oder jedes andere Teil, was die Form eines USB Steckers hat, mit Schadfunktionen behaftet sein. So kann auch ein vordergründig harmlos wirkendes einfaches USB Kabel mit Schadfunktionen ausgestattet sein, indem die für die Schadfunktion notwendige Hardware zum Beispiel in einen der Anschlussstecker eingegossen wird. Wird es an einen Computer angeschlossen, so meldet es sich neben seiner eigentlichen Funktion, die vom Anwender erwartet wird, beispielsweise als Speicherstick, auch zusätzlich oder ausschließlich beispielsweise als Tastatur am System an. Zweck kann sein, eine Folge von Eingaben oder Daten an den Computer zu senden, um dessen Integrität, Funktion oder Sicherheit zu beeinflussen. Dies kann unter anderem das Nachladen einer Schadsoftware oder auch das direkte Ausführen von Code umfassen. Die Schadfunktion kann auch die Buskommunikation des Gerätes protokollieren, um dieses Protokoll dann später zum Nachteil des Anwenders zu verwenden. Zum Beispiel kann eine Tastatureingabe protokolliert werden, um das Passwort des Anwenders auszuspähen und dieses an einen Dritten oder anderen Computer weiterzugeben, der die Schadfunktion kontrolliert oder steuert.
  • Derartige Angriffe sind nicht auf USB-Geräte beschränkt. Jegliche Geräte, die an die Schnittstelle eines Computersystems oder Rechners angeschlossen werden, können einen Code ausführen oder Schadsoftware übertragen. USB-Geräte sind ein mögliches Beispiel, auf die im Rahmen dieses Anmeldungstextes beispielhaft eingegangen wird. Andere Schnittstellen und entsprechende Geräte sind ausdrücklich mit umfasst, insbesondere IEEE-Schnittstellen, Firewire-, Thunderbolt-, Parallelport-, Serialport-, eSATA-, SDCard- oder wireless-Schnittstellen, wie IR-, GSM-, LTE- oder andere Schnittstellen. Die Liste ist nicht abschließend und umfasst auch zukünftige Schnittstellen. Insbesondere sind benutzerfreundliche Plug-and-Play-Schnittstellen betroffen.
  • Wenn ein Gerät an einen Computer angeschlossen wird, muss sichergestellt sein, dass das Anschließen (durch den Benutzer) beabsichtigt war. Ferner muss sichergestellt werden, dass das angeschlossene Gerät nur die Funktionalität mitbringt, die von dem Benutzer, sofern er ohne böse Absicht handelt, erwartet wird.
  • Gelöst wird die Aufgabe durch ein Verfahren mit den Merkmalen des Anspruchs 1 und durch ein Computersystem mit den Merkmalen des Anspruchs 10.
  • Das erfindungsgemäße Verfahren zum Schutz eines Computersystems gegen die Übertragung von nicht autorisierten Daten eines an eine Schnittstelle eines Computersystems angeschlossenen Gerätes, insbesondere beispielsweise eines USB-Gerätes, das an eine USB-Schnittstelle angeschlossen ist, umfasst mehrere Schritte, die auf einem Computersystem mit einem Bildschirm und einer Schnittstelle ablaufen. Das Computersystem weist ein Betriebssystem sowie einen Treiber auf, der für das angeschlossene Gerät spezifisch ist, beispielsweise einen USB-Treiber.
  • Erfindungsgemäß erfolgt zunächst eine Erkennung eines Gerätes an der Schnittstelle. Optional kann eine Klassifizierung des Gerätes als nicht autorisiert zum (aktiven) Senden von Daten und/oder Nutzerdaten stattfinden.
  • In einem weiteren Schritt werden Daten von dem Gerät empfangen und zunächst als nicht autorisierte Daten erkannt. Gemäß dem Verfahren wird dazu ein Formular (Challenge) zum Prüfen der Autorisierung auf dem Bildschirm des Computersystems angezeigt, wobei bevorzugt dieses Formular mit einer Eingabeaufforderung verknüpft ist. Nach Eingabe von Daten durch den Benutzer erfolgt eine Ausführung eines Tests zur Autorisierung. Hierbei wird insbesondere ein Turing Test verwendet, wie beispielsweise ein Captcha. Die empfangenen Daten werden in dem Computersystem ausgewertet und es wird überprüft, ob der Test erfolgreich ist. Bei bestandenem Test wird das angeschlossene Gerät freigegeben. Dies kann beispielsweise durch Klassifizierung des Gerätes als autorisiert stattfinden. Die Weiterleitung von Daten des Gerätes an das Computersystem ist dann möglich und wird von dem Computersystem gestattet.
  • Bei nichtbestandenem Autorisierungstest kann das Gerät gesperrt werden und der Empfang von weiteren Daten wird blockiert.
  • In einer bevorzugten Ausführungsform kann die Geräteklasse des Gerätes erkannt werden. Hier kann überprüft werden, ob es sich bei dem Gerät um ein sogenanntes HID-Gerät handelt, also ein Human Interface Device.
  • In einer bevorzugten Ausführungsform der Erfindung wird das an die Schnittstelle angeschlossene Gerät mit Energie versorgt.
  • Bevorzugt umfasst das erfindungsgemäße Verfahren auch das Laden eines gerätespezifischen Treibers. Optional kann ein Blockieren aller Eingaben und Daten des an die Schnittstelle angeschlossenen Gerätes erfolgen, solange keine Autorisierung erfolgt ist. Ebenso kann optional eine Umleitung der (zuerst) empfangenen Daten zu einem auf dem Computersystem installierten Treiber erfolgen. In einem weiteren Schritt findet ein Initiieren und/oder Ausführen des Autorisierungstests durch den Treiber statt. Optional erfolgt ein Auswerten des Testes und ebenso optional das Autorisieren des angeschlossenen Gerätes und/oder der vom Gerät empfangenen Daten. Die Daten können dann auf dem Computersystem weiter verarbeitet oder gespeichert werden.
  • In einer bevorzugten Ausführungsform werden die empfangenen Daten unterschieden in nicht autorisierte, d. h. nicht erlaubte Daten, und in erlaubte Daten, also autorisierte Daten. Die autorisierten bzw. erlaubten Daten werden auf dem Computersystem weiter verarbeitet. Beispielsweise können die Daten zur Anzeige eines Mauszeigers auf dem Bildschirm dienen. Nicht erlaubte Daten hingegen werden blockiert.
  • In einer ebenfalls bevorzugten Ausführungsform des Verfahrens wird eine Datenkommunikation zwischen dem angeschlossenen Gerät und dem Computersystem etabliert. Hierzu kann das Zuweisen einer Busadresse an das Gerät gehören. Ein weiterer Schritt umfasst bevorzugt das Auslesen von Konfigurationsdaten aus dem Gerät und ebenfalls bevorzugt das Zuordnen einer Geräteklasse zu dem angeschlossenen Gerät. Dies gilt nicht bei der Verwendung von USB-Schnittstellen und USB-Geräten. In diesem Fall erfolgt eine sogenannte USB-Enumeration automatisch nach dem Anschließen des USB-Geräts. Ausgelöst und gesteuert wird diese Enumeration durch die Firmware der beteiligten Geräte, also USB-Gerät und USB-Host-Controller-Chip auf dem Computer. Bevor dieser Vorgang nicht abgeschlossen ist, können die vorab beschriebenen Prozeduren aus systemarchitektonischen Gründen nicht ablaufen. Die Enumeration ist essentiell für USB-Geräte um überhaupt grundlegend zu funktionieren.
  • Besonders bevorzugt kann das Verfahren einen weiteren Schritt umfassen, indem beim Erkennen einer an die Schnittstelle des Computersystems angeschlossenen Tastatur der Test zur Autorisierung ein numerisches oder ein alphanumerisches Captcha umfasst, das auf dem Bildschirm dargestellt wird.
  • In einer zusätzlichen oder optionalen Ausführung des Verfahrens werden beim Erkennen einer Computermaus als angeschlossenes Gerät mehrere Punkte auf dem Bildschirm angezeigt, die in einer vorgegebenen oder beliebigen Abfolge mit dem auf dem Bildschirm dargestellten Mauszeiger angefahren oder angeklickt werden müssen, um den Autorisierungstest durchzuführen. Erst wenn die Punkte und Ziele mit dem Mauszeiger erreicht sind, erfolgt eine Freigabe der Computermaus an der Schnittstelle und steht somit zur weiteren Nutzung zur Verfügung.
  • Bevorzugt kann bei fehlerhafter Lösung des Autorisierungstests ein Zähler auf dem Computersystem erhöht werden. Nach einer vordefinierten Anzahl von Fehlversuchen kann das angeschlossene Gerät von dem Computersystem abgemeldet werden. Optional kann ein gerätespezifisches Datum oder Datensatz oder "Erstdaten" bevorzugt aus einer Konfigurationsdatei des Geräts in dem Computersystem hinterlegt und abgespeichert werden. Dies kann beispielsweise im Treiber erfolgen. Das Abspeichern ermöglicht es, ein späteres (erneutes) Verbinden des Gerätes mit dem Computersystem zu erkennen und optional zu blockieren. Hierbei kann eine dauerhafte oder zeitlich begrenzte Blockade erfolgen.
  • In einer ebenso bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens kann ein gerätespezifisches Datum oder Datensatz in dem Computersystem hinterlegt werden. Das Datum kann aus einer Konfigurationsdatei des Gerätes ausgelesen werden. Dieses Datum wird in dem Computersystem bevorzugt abgespeichert, beispielsweise in dem Treiber. Hierdurch kann beim späteren Verbinden des Geräts mit dem Computersystem das Gerät wieder erkannt werden und optional blockiert werden, wenn bei früheren Tests zum Autorisieren Fehlversuche erfolgt sind und eine Autorisierung abgelehnt wurde. Optional ist es auch möglich, dass beim Wiedererkennen des angeschlossenen Gerätes eine Freigabe ohne weiteren Autorisierungstest erfolgt, wenn ein erstmaliger Autorisierungstest bereits erfolgreich war.
  • Zur Lösung der gestellten Aufgabe dient auch ein Computersystem mit einer Schnittstelle, einem Prozessor, einem Bildschirm und einem Betriebssystem. Das Computersystem erkennt ein an der Schnittstelle angeschlossenes Gerät und führt zu seiner Autorisierung einen Test (Autorisierungstest) durch. Dies kann beispielsweise ein Turing Test oder ein Captcha sein. Beim Anschließen des Geräts wird das Gerät insoweit erkannt, dass ein an der Schnittstelle angeschlossenes Gerät vom Computersystem bemerkt wird (z. B. durch Plug-and-Play) und gegebenenfalls "Erstdaten" empfangen werden. Zunächst werden alle von dem Gerät gesendeten Daten blockiert und optional kann ein Testformular oder eine Eingabeaufforderung am Bildschirm angezeigt werden. Das Anzeigen des Testformulars erfolgt bevorzugt beim Erkennen von Daten, die von dem Gerät an das Computersystem gesendet werden. Die Daten können auch Kommunikationsdaten, Steuerdaten oder Ähnliches sein.
  • Bevorzugt umfasst das auf dem Bildschirm des Computersystems oder auf einer anderen Ausgabeeinheit angezeigte Formular eine Eingabeaufforderung. Die Daten, die von dem Gerät dann an das Computersystem gelangen, werden daraufhin geprüft, ob die Eingabedaten mit der Eingabeaufforderung übereinstimmen. Dies kann durch Abgleich der Daten erfolgen. Bei einem bestandenen Test werden weitere Daten von dem Endgerät autorisiert und können mit dem Betriebssystem des Computersystems weiter verarbeitet werden. Beispielsweise kann so eine an das Computersystem angeschlossene Tastatur erkannt werden.
  • Das verwendete Testformular kann jede beliebige und denkbare Art umfassen, solange der Benutzer zur Eingabe von Daten aufgefordert wird, die er zur Durchführung eines Autorisierungstests erkennt. Handelt es sich beispielsweise bei dem angeschlossenen Gerät um eine Computermaus oder einen Scrollball, so kann ein Mauszeiger auf dem Bildschirm angezeigt werden, der von dem Benutzer so gesteuert werden muss, dass verschiedene Punkt zur Lösung des Tests angefahren werden müssen.
  • Bevorzugt ist das Gerät an eine USB-Schnittstelle angeschlossen. Es können jedoch auch alle anderen bekannten Schnittstellen verwendet werden.
  • Das erfindungsgemäße Verfahren verhindert mit Hilfe eines vorgeschalteten Tests zur Autorisierung, z.B. eines „Turing Tests“, dass ein an einer Schnittstelle eines Computersystems angeschlossenes Gerät unerwünschte Aktionen an dem betreffenden Computersystem auslösen kann. Insbesondere bei sogenannten Human Interface Devices (HID) akzeptieren die Computersysteme das Anmelden von Geräten ohne Sicherheitsabfragen. HID sind z.B. Tastaturen, Mäuse und ähnliche Eingabegeräte.
  • Die zum Anschluss verwendeten Schnittstellen sind in der Regel USB-Schnittstellen; es können aber auch beliebige andere Schnittstellen sein, die für den Anschluss eines Peripheriegerätes geeignet sind. Auch wenn die beschriebenen Probleme und Lösungen beispielhaft für USB-Schnittstellen beschrieben werden, so ist dies nicht als Einschränkung auf USB-Schnittstellen und Protokolle zu verstehen sondern vielmehr nur als eines von vielen Beispielen für eine Schnittstelle eines Computers und das zugehörige Protokoll und gegebenenfalls den notwendigen Treiber. Die die Erfindung betreffenden Schnittstellen in ihrer Allgemeinheit werden durch die beispielhaft beschriebenen USB-Schnittstellen nicht beschränkt.
  • Die der Erfindung zu Grunde liegende Idee beruht auf einer Methode und einem Verfahren, um basierend auf einem Autorisierungstest, z.B. einem Turing Test, die ungewollte und ungewünschte Manipulation eines Computersystems durch ein an das System angeschlossenes Peripheriegerät zu verhindern. Beispielsweise kann unter Verwendung der Nutzung von Captchas verhindert werden, dass sich ein (USB-)Gerät in böswilliger Absicht als vertrauenswürdiges Eingabegerät, wie zum Beispiel eine Tastatur, ausgibt und daraufhin automatisch Schadcode auf einem Rechner oder Aktionen zum Nachteil des Benutzers oder der Systemumgebung ausführt.
  • Bevorzugt soll die hier beschriebene Lösung mit Hilfe eines vorgeschalteten „Turing Tests“ verhindern, dass an einem mit Schnittstelle, z.B. USB-Schnittstelle, ausgestatteten Computer(USB-)Peripherie-Geräte angeschlossen werden, die unerwünschte Aktionen an dem betreffenden Computer auslösen. Beispielsweise akzeptieren in der Regel alle gängigen Betriebssysteme USB-Deviceklassen, die sich als Human Interface Device (HID) anmelden ohne weitere Sicherheitsabfragen und damit vollkommen automatisch. In der Regel und mit dem damit vorgesehenen Verhalten sind dies Tastaturen, Mäuse, Gamecontroller und ähnliche Eingabegeräte.
  • Ein Captcha (engl. Completely Automated Public Turing test to tell Computers and Humans Apart) hat den Zweck festzustellen, ob es sich bei der zu prüfenden Instanz um eine Maschine oder einen Menschen handelt. Im hier vorliegenden Fall reicht es aus, die Fragestellung (also die Ausgabe des Captchas) von der zu prüfenden Instanz dahingehend zu trennen, dass die zu prüfende Instanz das Captcha nur lösen kann, wenn sie in der Lage ist, die Ausgabe zu verarbeiten. Ein Mensch kann diese auf einem Display lesen und darauf reagieren. Ein manipuliertes USB-Gerät, das Schadcode ausführen soll, vermag das nicht. Bei der Überprüfung ist wichtig, dass eine Information außerhalb des Computers verarbeitet wird (beispielsweise durch Eingabe eines Benutzers) und dann als Antwort zurück zum Computer gelangt. Da festgestellt werden soll, ob das Gegenüber, das die Autorisierung durchführt, ein Mensch ist, muss diese Rückführung zwangsläufig über ein Mensch-Maschine-Interface – wie eine Tastatur – erfolgen.
  • Die hier beschriebene Lösung zeigt wie ein neu angeschlossenes Gerät zunächst vom (USB-)Treiber beziehungsweise vom Betriebssystem abgefangen wird, bevor es in der Lage ist, Steuerinformationen wie Mausklicks oder Tastatureingaben an den Computer weiterzugeben.
  • Nach dem Anschließen eines Gerätes (USB-Gerätes) am Computer erfolgt die sogenannte Enumeration auf dem entsprechenden Bus (USB-Bus). Dabei wird zunächst auf elektrischer Ebene das Device mit Strom versorgt und dann die Datenkommunikation etabliert. Das neue Gerät bekommt eine Bus-Adresse und der Host Controller liest aus dem Device-Deskriptor im Controller des (USB-)Gerätes die Konfigurationsinformationen aus. Diese dient der Initialisierung des neuen Gerätes hinsichtlich der Deviceklasse und damit der Auswahl des passenden Treibers. Dabei wird auf Grund der Deviceklasse, in diesem Fall HID, der passende Treiber ausgewählt und mit dem Device verknüpft. Bis zu diesem Punkt verhält sich das System konform zu den heute gängigen Standards, insbesondere der USB-Spezifikation.
  • Der Sicherheitsmechanismus beginnt ab hier. Der Treiber beziehungsweise das Betriebssystem unterscheidet ab diesem Punkt nach erlaubten Eingaben und – ohne Autorisierung – noch nicht erlaubten Eingaben. Das gesamte neu angeschlossene Gerät gilt als noch nicht autorisiert. Der Treiber leitet die vom Gerät (z.B. USB-Device) gesendeten Daten nicht zur Verarbeitung durch das Betriebssystem oder die Applikationen weiter. Die Unterscheidung in erlaubte und nicht erlaubte Eingabe ist notwendig, um beispielsweise den Mauszeiger zu steuern. Die reine Bewegung kann keine Schadfunktion ausführen. Erst wenn ein Tastenklick gesendet wird, könnten ungewollte Funktionen ausgeführt werden.
  • Bei der ersten Eingabe des neuen Gerätes wie beispielsweise einem Tastendruck oder einer Mausbewegung wird ein für das Gerät passendes Captcha auf dem Bildschirm des Computers angezeigt. Der Eingabewert wird noch nicht zur Verarbeitung außerhalb des entsprechenden Stacks (z.B. USB-Stacks) weitergegeben. Zunächst muss das Gerät autorisiert werden. Somit ist ein manipuliertes Gerät nicht in der Lage selbständig Daten an das Betriebssystem oder ein darauf laufendes Programm zu senden.
  • Im Falle einer Tastatur wird zunächst ein numerisches oder alphanumerisches Captcha auf dem Display angezeigt, das den Benutzer auffordert eine Zeichenfolge einzugeben.
  • Beispiel: „Bitte geben sie folgende Zeichen ein: abcde“.
  • Die Länge und Komplexität der Zeichenkette ist hat keinen wesentlichen Einfluss auf die Sicherheit. Wichtig ist die Zufälligkeit. Damit soll überprüft werden, ob dieses neue Gerät von einem Mensch oder einer Maschine bedient wird. Dabei handelt es sich um eine zufällige Folge von Zeichen. Diese muss auf dem neu angemeldeten Gerät, in diesem Fall einer Tastatur, eingegeben werden. Erst nachdem dieses Captcha richtig gelöst wurde, gilt die neue Tastatur als autorisiert und die von dieser gesendeten Eingaben werden zur Weiterverarbeitung zugelassen.
  • Im Falle einer Computermaus wird ein graphisches Captcha angezeigt. Dabei müssen mit der Maus mehrere zufällig auf dem Bildschirm verteilte Zielkoordinaten in vorgegebener oder in beliebiger Reihenfolge angeklickt werden. Dies kann eine Bildschirmtastatur mit Standardlayout oder auch mit einem zufälligen Layout sein. Außerdem sind einfache, über den Bildschirm verteilte graphische Objekte möglich. Da die Mausbewegung eine nicht autorisierungspflichtige Eingabe ist, lässt sich der Zeiger in jedem Fall steuern. Klicks sind jedoch autorisierungspflichtig und werden so lange abgefangen und nur für die Lösung des Captchas verwendet, bis dieses richtig gelöst wurde.
  • Wird das Captcha nicht gelöst, wird das neue (USB-)Gerät nach einer konfigurierbaren Anzahl von Versuchen am (USB-)Bus abgemeldet. So wird ein automatisierter „Brute Force“-Angriff (das Durchprobieren aller möglichen Lösungen) verhindert. Aufgrund der fehlenden Rückkopplung zwischen den Komponenten der Anzeige wie Grafikprozessor und Monitor sowie der Signalwege und dem (USB-)Bus ist es technisch nicht möglich, dass ein Schadsoftware verbreitendes oder schadhaftes (böswilliges) (USB-)Gerät auf die angezeigten Daten zugreift und diese verarbeitet. Die Zufälligkeit der angezeigten und einzugebenden Daten des Turing Tests verhindern ein Ausprobieren der erforderlichen Eingabe.
  • Es ist bevorzugt einstellbar, dass die Captcha-Autorisierung bei einem Neustart des Computers (Reboot) oder einem erneuten Verbinden des Peripheriegeräts erneut durchgeführt werden muss.
  • Es kann auch einstellbar sein, ob ein einmal autorisiertes Gerät im Computer gespeichert bleibt oder bei erneutem Verbinden mit dem Computer eine erneute Autorisierung durchgeführt werden muss. Soll das Gerät gespeichert bleiben, so muss ein eindeutiges Merkmal des Gerätes gespeichert werden.
  • Die vorliegende Erfindung wird anhand der einzigen Figur näher erläutert. Die Figur zeigt eine schematische Darstellung eines Schichtenmodells eines Computersystems.
  • Moderne Schnittstellen an Computersystemen sind auf eine möglichst einfache Benutzung durch den Anwender ausgelegt. Dazu werden auf allen funktionalen Ebenen entsprechende Technologien eingesetzt.
  • Die Figur zeigt ein 3-Schichtenmodell mit Hardwareschicht 1, Firmware-Schicht 2 und Anwendungsschicht 3.
  • Auf der Hardwareschicht 1, nach dem Schichtenmodell die unterste Schicht, werden zwischen den beteiligten Elektronikkomponenten die technischen Betriebsparameter festgelegt. Darauf aufbauende Schicht 2 umfasst die Firmware, einen Driver Stack und Teile des Betriebssystems mit den entsprechenden Gerätetreibern. Die Anwendungsschicht 3 umfasst das User Interface und ein Display Interface sowie Anwendungsprogramme und Applikationen. Die Schichten 2, 3 sind bei herkömmlichen Systemen ebenfalls so gestaltet, dass ein über die Schnittstelle angeschlossenes Gerät ohne weiteres Zutun des Anwenders automatisch konfiguriert wird und verwendet werden kann.
  • Am Beispiel des Universal Serial Bus (USB) sind dies die USB Elektronik, die zunächst die Übertragungsgeschwindigkeit und den zulässigen Strom aushandelt. Dann erfolgt die Initialisierung der Elektronik, die sogenannte Enumeration. Dabei lernt ein Busmaster – in der Regel der Computer – welche Komponenten am USB-Bus des Computers angeschlossen sind, welche Funktionen diese anbieten, wie schnell und wie dringlich sie kommunizieren müssen und unter welcher Adresse sie ansprechbar sind. Basierend auf diesen Informationen (auch erstes Datum, erster Datensatz, "Erstdaten" genannt) wird auf dem Computer ein passender Treiber ausgewählt. Damit stellt sich das Peripherie-Gerät dann gegenüber dem Betriebssystem als Tastatur, Maus, Speichermedium, Drucker oder ähnlichem dar. Das Betriebssystem oder die darauf laufende Anwendung kommuniziert dann nur noch mit dem Treiber, der sich wiederum um die individuelle Kommunikation auf dem USB-Bus kümmert. Dieser gesamte Vorgang wird umgangssprachlich als Plug and Play bezeichnet. Dieser Terminus soll verdeutlichen, dass ein Gerät einfach angeschlossen werden kann und danach ohne weiteres Zutun des Anwenders seine vorgesehene Funktion erfüllt.
  • Aus diesen aufeinander aufbauenden Abstraktionsschichten 1, 2, 3 ergibt sich zum Beispiel, dass weder Betriebssystem noch Anwendungsprogramm zuverlässig sicherstellen können, dass ein Gerät, das z.B. vorgibt eine Tastatur zu sein, auch wirklich nur eine Tastatur ist und nicht noch weitere, nicht gewünschte und möglicherweise schadhafte Funktionen ausführt. Die unterschiedlichen Schichten erleichtern es also bei herkömmlichen Systemen auch, eine Schadfunktion zu verbergen und erlauben es einem Angreifer eine Schadsoftware zu platzieren und auf dem Computer auszuführen oder zur späteren Ausführung zu speichern. Hier setzt die vorliegende Erfindung ein und führt den Autorisierungstest ein, der die erwarteten Eigenschaften des verbündenden Geräts überprüft und durch den Benutzer verifizieren lässt. Die Sicherheitslösung wird in die Schicht 2 integriert. In der Anwendungsschicht 3 werden die übertragenen Eingabewerte nach der Autorisierung verarbeitet.
  • Wenn ein Gerät an einen Computer angeschlossen wird, wird durch die Erfindung sichergestellt, dass das Anschließen (durch den Benutzer) beabsichtigt war. Ferner wird sichergestellt, dass das angeschlossene Gerät nur die Funktionalität mitbringt, die durch den Benutzer, sofern er ohne böse Absicht handelt, erwartet wird.
  • Beispielsweise wird ein Benutzer merken, wenn er einen (USB-)Speicherstick anschließt und anschließend eine Sicherheitsabfrage für eine Tastaturfunktion stattfindet, dass mit dem Speicherstick etwas nicht in Ordnung ist. Dieser Vorgang kann nicht automatisiert werden, da die Automatisierung wiederum böswillig ausgenutzt werden könnte. Hier muss der Computer von einer menschlichen Instanz bestätigt bekommen, dass das gerade stattfindende Verhalten gewünscht ist.
  • Die verwendeten Fachbegriffe werden nachfolgend erläutert:
    User Interface / Display: Die visuelle Schnittstelle zum Benutzer. In der Regel ein Monitor. Kann aber auch ein Textdisplay oder anderes graphisches Display sein
  • Operating System: Das Betriebssystem des Rechners. Dieses stellt den darauf laufenden Programmen eine einheitliche Plattform und die benötigen Funktionen und Hardwarezugriffe zur Verfügung. Beispiele für Betriebssysteme sind Linux, Microsoft Windows, VxWorks, Mac OS X oder ähnliche.
  • Application: Alle Programme, die das Betriebssystem als Plattform nutzen, um ausgeführt zu werden. Dies können zum Beispiel Textverarbeitungsprogramme, Bildbearbeitungsprogramme oder im industriellen Umfeld Steuerungsprogramme wie eine Software SPS sein.
  • USB-Driver Stack: Die im Betriebssystem und teilweise auch im Bios/UEFI/Bootloader enthaltenen Softwarekomponenten, die zwischen der Hardware des USB-Host Controllers und dem Betriebssystem bzw der Application vermitteln. Der Stack inklusive der USB-Treiber stellen dem Betriebssystem bzw der Application eine einheitliche Schnittstelle zur Benutzung der unterstützten USB-Funktionen zur Verfügung.
  • USB-Host Controller: Der Chipsatz inklusive seiner Firmware die die USB-Schnittstelle elektrisch an die anderen Komponenten des Rechners ankoppelt.
  • USB-Device: Das am USB-Port angeschlossene Gerät. Zum Beispiel USB-Speicherstick, Tastatur, Computermaus, Drucker und ähnliche. Diese Geräte beinhalten zum Einen einen USB Chipsatz, der die elektrische Kommunikation übernimmt sowie eine Firmware, die das Gerät am Bus klassifiziert und dann die gewünschte Funktion bereitstellt. Ein möglicher Schadcode kann hier in der Firmware oder an daran angeschlossenen Bausteinen oder Funktionen abgelegt sein. Das Gerät kann ausschließlich eine Schadfunktion enthalten oder zur Tarnung sich einwandfrei so wie vom Anwender erwartet verhalten (Beispiel Tastatur) und die Schadfunktion sofort oder zeitverzögert zusätzlich ausführen.
  • Die vorliegende Erfindung betrifft also eine Methode, um den Zugriff auf einen Host-Computer zu verwalten und damit einen Zugriff durch ein angeschlossenes Gerät, bevorzugt ein HID-Gerät, auf Anfrage zu ermöglichen. Der Host-Computer führt eine Autorisierungsanfrage durch, z.B. in Form einer Captcha-Abfrage. Die Abfrage wird vom Computer-Treiber (USB Treiber) erzeugt, der die Schnittstelle des Computers (USB Schnittstelle) betreibt. Dies erfolgt nach dem Enumerationsprozess zur Identifikation des HID Eingabegeräts. Die Abfrage wird auf ein Ausgabegerät oder eine Ausgabeeinheit des Computers ausgegeben. Hierbei ist die erste Eingabe von dem (USB) HID Eingabegerät die Antwort auf die Autorisierungsabfrage, um Zugriff des Eingabegeräts auf den Computer zu erlauben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Karsten Nohl „BadUSB – On accessories that turn evil“ auf der Black Hat Konferenz am 6./7. August 2014 in Las Vegas [0002]

Claims (10)

  1. Verfahren zum Schutz eines Computersystems gegen die Übertragung von nicht autorisierten Daten eines an die Schnittstelle des Computersystems angeschlossenen Geräts, insbesondere eines USB-Devices, wobei das Computersystem einen Bildschirm und eine Schnittstelle umfasst und ein Betriebssystem aufweist sowie einen für das angeschlossene Gerät passenden, bevorzugt spezifischen Treiber, umfassend die folgenden Schritte: – Erkennen eines Geräts an der Schnittstelle, – optionales Klassifizieren des Geräts als nicht autorisiert zum Senden von Daten, – Empfangen von Daten von dem Gerät, – Erkennen von nicht autorisierten Daten, – Anzeigen eines Testformulars auf dem Bildschirm, bevorzugt mit einer Eingabeaufforderung, – Ausführen eines Tests zur Autorisierung, insbesondere eines Turing tests, wie z.B. eines Captchas, – Auswerten der empfangenen Daten und Prüfen, ob der Test erfolgreich ist, – bei bestandenem Test Freigeben des Geräts, z.B. durch Klassifizieren des Geräts als autorisiert, und Weiterleitung von Daten des Geräts an das Computersystem oder – bei nicht bestandenem Test Sperren des Geräts und blockieren weiterer Daten.
  2. Verfahren nach Anspruch 1, gekennzeichnet durch: – optionales Versorgen des Geräts mit Energie – Erkennen der Geräteklasse des Geräts und prüfen, ob ein HID-Gerät vorliegt.
  3. Verfahren nach Anspruch 1 oder 2, gekennzeichnet durch die folgenden Schritte: – Laden des gerätespezifischen Treiber, – optionales Blockieren der Eingaben und Daten des Geräts oder optionales Umleiten der Daten an den Treiber, – Initiieren und/oder Ausführen des Tests durch den Treiber, – optionales Auswerten des Tests, – optionales Autorisieren des angeschlossenen Geräts und/oder der vom Gerät empfangenen Daten.
  4. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die empfangenen Daten unterschieden werden in nicht autorisierte, nicht erlaubte Daten und in erlaubte Daten, wobei die erlaubten Daten weiterverarbeitet werden, z.B. Daten zur Anzeige eines Mauszeigers auf dem Bildschirm, und nicht erlaubte Daten blockiert werden.
  5. Verfahren nach einem der vorherigen Ansprüche, gekennzeichnet durch die folgenden Schritte: – Etablieren einer Datenkommunikation zwischen dem Gerät und dem Computersystem, – Zuweisen einer Bus-Adresse an das Gerät, – Auslesen von Konfigurationsdaten aus dem Gerät, – Zuordnen einer Geräteklasse.
  6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass beim Erkennen einer Tastatur an der Schnittstelle des Computersystems der Test zur Autorisierung ein numerisches oder alphanumerisches Captcha ist, das am Bildschirm dargestellt wird.
  7. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass beim Erkennen einer Computermaus mehrere Punkte auf dem Bildschirm angezeigt werden, die in einer vorgegebenen oder beliebigen Abfolge mit dem auf dem Bildschirm dargestellten Mauszeiger angefahren oder angeklickt werden müssen.
  8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei fehlerhafter Lösung des Tests zur Autorisierung ein Zähler erhöht wird und nach einer vordefinierten Anzahl von Fehlversuchen das Gerät von dem Computersystem abgemeldet wird und optional ein gerätespezifisches Datum, bevorzugt aus der Konfigurationsdatei des Geräts, in dem Computersystem hinterlegt und abgespeichert wird, z.B. im Treiber, um ein späteres Verbinden des Geräts mit dem Computersystem zu erkennen und optional zu blockieren.
  9. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass ein gerätespezifisches Datum, bevorzugt aus der Konfigurationsdatei des Geräts, in dem Computersystem hinterlegt und abgespeichert wird, z.B. im Treiber, um bei einem späteren Verbinden des Geräts mit dem Computersystem dieses wiederzuerkennen und optional zu blockieren bei früheren Fehlversuchen des Tests zum Autorisieren oder optional zum Freigeben ohne weiteren Test zum Autorisieren.
  10. Computersystem mit einer Schnittstelle, einem Prozessor, einem Bildschirm und einem Betriebssystem, wobei das Computersystem ein an der Schnittstelle angeschlossenes Gerät erkennt und zu seiner Autorisierung einen Test, insbesondere einen Turing Test durchführt, wobei zunächst alle von dem Gerät gesendeten Daten blockiert werden und beim Erkennen von Daten ein Testformular auf dem Bildschirm angezeigt wird, bevorzugt mit einer Eingabeaufforderung, die Eingabedaten des Gerätes geprüft und bei bestandenem Test die Daten von dem Gerät autorisiert werden und mit dem Betriebssystem des Computersystems verarbeitet werden können.
DE102015113207.9A 2014-08-13 2015-08-11 Verfahren zum Autorisieren neu angeschlossener Geräte beim Anschließen an einen Computer über eine Schnittstelle Pending DE102015113207A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14180817.0 2014-08-13
EP14180817 2014-08-13

Publications (1)

Publication Number Publication Date
DE102015113207A1 true DE102015113207A1 (de) 2016-02-18

Family

ID=51417140

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015113207.9A Pending DE102015113207A1 (de) 2014-08-13 2015-08-11 Verfahren zum Autorisieren neu angeschlossener Geräte beim Anschließen an einen Computer über eine Schnittstelle

Country Status (1)

Country Link
DE (1) DE102015113207A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201600125464A1 (it) * 2016-12-13 2018-06-13 Maurizio Pizzonia Metodo e apparato per la protezione di apparecchiature elettroniche con interfaccia usb da attacchi che emulano un human interface device
CN111062027A (zh) * 2019-12-25 2020-04-24 北京安天网络安全技术有限公司 防止bad HID设备入侵的方法、装置、电子设备及存储介质
CN113343240A (zh) * 2021-07-08 2021-09-03 南方电网电力科技股份有限公司 一种usb伪装入侵的检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Karsten Nohl "BadUSB - On accessories that turn evil" auf der Black Hat Konferenz am 6./7. August 2014 in Las Vegas

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201600125464A1 (it) * 2016-12-13 2018-06-13 Maurizio Pizzonia Metodo e apparato per la protezione di apparecchiature elettroniche con interfaccia usb da attacchi che emulano un human interface device
CN111062027A (zh) * 2019-12-25 2020-04-24 北京安天网络安全技术有限公司 防止bad HID设备入侵的方法、装置、电子设备及存储介质
CN113343240A (zh) * 2021-07-08 2021-09-03 南方电网电力科技股份有限公司 一种usb伪装入侵的检测方法及装置
CN113343240B (zh) * 2021-07-08 2024-03-01 南方电网电力科技股份有限公司 一种usb伪装入侵的检测方法及装置

Similar Documents

Publication Publication Date Title
DE60129967T2 (de) Auf biometrie basierende beglaubigung in einer nichtflüchtigen speichervorrichtung
US8856892B2 (en) Interactive authentication
CN111651757A (zh) 攻击行为的监测方法、装置、设备及存储介质
US9311504B2 (en) Anti-identity-theft method and hardware database device
CN109327439B (zh) 业务请求数据的风险识别方法、装置、存储介质及设备
US11301548B2 (en) Apparatus and method for preventing unintended or unauthorized peripheral device connectivity by requiring authorized human response
DE102017202423A1 (de) Gesteuerte sichere Codeauthentifizierung
US10142343B2 (en) Unauthorized access detecting system and unauthorized access detecting method
CN108462687B (zh) 防刷登录的方法、装置、终端设备及存储介质
RU2634173C1 (ru) Система и способ обнаружения приложения удалённого администрирования
JP2014502757A (ja) コンピュータシステムへのアクセスを制御するための方法およびデバイス
DE112020000792T5 (de) Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung
DE112016000576T5 (de) Sicheres Booten eines Computers von einer für den Benutzer vertrauenswürdigen Einheit aus
DE102017117903A1 (de) Zugriffserlaubnis auf falsche Daten
EP2351320B1 (de) Serversystem und verfahren zur bereitstellung mindestens einer leistung
DE102015113207A1 (de) Verfahren zum Autorisieren neu angeschlossener Geräte beim Anschließen an einen Computer über eine Schnittstelle
KR20190034789A (ko) 난수발생장치를 이용한 사용자 인증 방법
US8645706B2 (en) Preventing error in an access protocol
CN105959294A (zh) 一种恶意域名鉴别方法及装置
DE102015208510A1 (de) Verfahren zum Ausführen einer sicherheitskritischen Funktion einer Recheneinheit in einem cyber-physischen System
US9600678B1 (en) Image-based completely automated public turing test to tell computers and humans apart (CAPTCHA)
DE102014204417A1 (de) Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode
EP3323050A1 (de) Zwischenmodul zur steuerung einer kommunikation zwischen einem datenverarbeitungsgerät und einem peripheriegerät
EP1924945B1 (de) Verfahren zur verbesserung der vertrauenswürdigkeit von elektronischen geräten und datenträger dafür
CN114143103A (zh) Ad域威胁检测方法、装置及电子设备

Legal Events

Date Code Title Description
R012 Request for examination validly filed