Was sind die Risiken von Schwachstellen in Zugangskontrollsystemen mit Gesichtserkennung?

Moderne Zugangskontrollsysteme haben gelernt, Mitarbeiter am Gesicht zu erkennen. Es ist praktisch: Sie mĂŒssen kein RFID-Chip-Abzeichen um den Hals tragen und es an jeder geschlossenen TĂŒr am LesegerĂ€t anbringen. Es scheint, dass die Zukunft gekommen ist: Sie können mit erhobenem Kopf im BĂŒro herumlaufen, und die TĂŒren öffnen sich und erkennen Sie. Wir haben mehrere gĂ€ngige Zugriffskontrollsysteme fĂŒr die Gesichtserkennung untersucht und eine ganze Reihe von SicherheitslĂŒcken gefunden. Wir werden Sie in diesem Beitrag ĂŒber die gefĂ€hrlichsten Probleme informieren.



Bild



Karte oder Gesicht: grundlegende Unterschiede



Der Betriebsalgorithmus eines klassischen Zugangskontrollsystems sieht folgendermaßen aus:



  1. die Person bringt die Karte zum Leser;
  2. Der Leser empfÀngt die Kartennummer und sendet sie an den Server.
  3. Der Server ĂŒberprĂŒft die Berechtigungen fĂŒr diesen SchlĂŒssel und gibt, wenn der Zugriff zulĂ€ssig ist, den Status "OK" zurĂŒck.
  4. .


Wenn wir diesen Algorithmus anwenden und die Kartennummer durch ein Gesichtsbild ersetzen, kommt es zu einer lokalen Apokalypse, da das Bild viel grĂ¶ĂŸer als die Kartennummer ist. Dies bedeutet, dass die Übertragung zum Server lĂ€nger dauert und das Abgleichen von Bildern in der Datenbank auf dem Server viel mehr ist als das Finden der SchlĂŒsselnummer. Wenn sich viele Mitarbeiter im BĂŒro stĂ€ndig bewegen, besteht eine Wahrscheinlichkeit ungleich Null, dass Sie ĂŒber das Schloss lĂ€cheln mĂŒssen, wĂ€hrend Sie darauf warten, dass sich die TĂŒr einige Minuten lang öffnet.



Um dies zu vermeiden, verwenden sie anstelle einer einfachen IP-Kamera ein intelligentes GerĂ€t, das fĂŒr die Gesichtserkennung leistungsfĂ€hig genug ist, und die Datenbank der Gesichter wird auf dem GerĂ€t gespeichert. In der Regel handelt es sich bei einem solchen GerĂ€t um ein leistungsstarkes Android-GerĂ€t oder einen kompakten PC unter Windows oder Linux.



In diesem Fall wird der zentrale Server verwendet, um die Besucherdatenbanken zu synchronisieren, die Lesersoftware zu aktualisieren und das gesamte System zu verwalten.



Durch das Verschieben der Verarbeitungslast vom Server auf die externe Kante mĂŒssen keine sensiblen Daten wie Bilder zur Verarbeitung gesendet werden. Antwortzeiten sind akzeptabel und Bandbreitenanforderungen werden reduziert.

Zusammen mit der Verarbeitungsleistung werden jedoch andere Aufgaben zu den Randknoten verschoben. Diese Änderung fĂŒgt zwei bemerkenswerte Probleme hinzu:



  • An den Grenzknoten wird zusĂ€tzlich zu den primitiven Operationen des Lesens einer Karte und des Öffnens einer TĂŒr eine vollwertige GeschĂ€ftslogik hinzugefĂŒgt, die eine Quelle potenzieller Verwundbarkeit darstellt.
  • , .


Wir möchten auch so schnell wie möglich in der Zukunft sein, wo es ausreicht, ein Ticket zu kaufen, um ĂŒber das Drehkreuz zu lĂ€cheln, aber wir halten es fĂŒr notwendig, die Situation auszuschließen, in der jemand anderes lĂ€chelte und das Geld von Ihnen abgebucht wurde.



Wie unsere Studie Identified and Authorized: Sneaking Past Edge-Based Access Control Devices zeigt, weisen gesichtsbasierte Zugriffskontrollsysteme viele böse Schwachstellen auf: Sie können gehackt, ausgetrickst, mit einem Foto einer Person auf dem iPhone-Bildschirm anstelle des Gesichts einer Person dargestellt und sogar Administrator werden und gelöscht werden. Alle Chefs aus der Liste der in die RÀumlichkeiten zugelassenen.



Betrachten Sie eines der anfÀlligsten GerÀte in unserer Studie - ZKTeco FaceDepot 7B



Bild

Zugangskontrollsystem ZKTeco FaceDepot. Quelle: Trend Micro



Das GerĂ€t wird in einem stabilen MetallgehĂ€use mit Bildschirm und Frontkamera fĂŒr den Besucher geliefert. Die Gesichtserkennung erfolgt im GerĂ€t. WĂ€hrend der Authentifizierung aufgenommene Fotos werden nicht an den zentralen Server gesendet - die Prozessorleistung des Tablets reicht völlig aus, um die Erkennung selbst durchzufĂŒhren.

Eine typische Bereitstellung des ZKTeco FaceDepot ACS umfasst mehrere solcher GerĂ€te und einen zentralen Server, ĂŒber den die Benutzerbasis zwischen GerĂ€ten synchronisiert wird.



Ungesicherter USB-Anschluss



Das MetallgehĂ€use schĂŒtzt das ACS vor physischen Störungen, aber der offene USB-Anschluss an der Unterseite des GerĂ€ts beeintrĂ€chtigt alles. Es wurde entwickelt, um das GerĂ€t zu warten.



Bild

SicherheitslĂŒcke Nr. 1 - Öffnen Sie den USB-Anschluss. Quelle: Trend Micro



Veraltete Android-Version



Eine weitere globale SicherheitslĂŒcke von ZKTeco ist die GerĂ€tefirmware, die auf der im April 2016 veröffentlichten Version von Android Lollipop 5.1.1 basiert. Heute ist die aktuelle Version von Android die zehnte. Im Laufe der Jahre hat das Betriebssystem viele sicherheitsrelevante Verbesserungen erhalten. Offensichtlich ist in der fĂŒnften Version nichts dergleichen vorgesehen.



Bild

Bildschirm mit Android-Version auf ZKTeco FaceDepot SKD. Quelle: Trend Micro



Die Möglichkeit, APK-Pakete zu installieren



Da dies Android ist, kann der Benutzer zum Startbildschirm gehen und die App starten. Beispielsweise kann er ApkInstaller starten und jedes Android APK-Paket von einem Medium installieren, das an einen USB-Anschluss angeschlossen ist.



Bild

APK Installer lÀuft unter ACS. Quelle: Trend Micro



Der GerĂ€tehersteller hat den Zugriff auf MenĂŒs und Anwendungen nur fĂŒr Benutzer mit Administratorrechten eingeschrĂ€nkt. Wie weitere Untersuchungen des GerĂ€ts gezeigt haben, ist dies kein Problem, da das GerĂ€t weiterhin mit dem Server kommuniziert und dies ĂŒber HTTP tut.



UnverschlĂŒsselter Austausch mit dem Server



Das GerĂ€t kommuniziert mit dem Server ĂŒber HTTP. Alle Informationen werden im Klartext ĂŒbertragen und können leicht abgefangen werden. Am schlimmsten ist, dass Verwaltungsbefehle im Klartext ĂŒbergeben werden - Benutzerregistrierung, Zuweisen einer Administratorrolle zu einem Benutzer, Löschen eines Benutzers und Synchronisieren.



Ein Angreifer, der Zugriff auf das Netzwerk erhĂ€lt, mit dem das Tablet verbunden ist, kann den Netzwerkverkehr zwischen dem ACS und dem Server abhören und die fĂŒr die DurchfĂŒhrung von Angriffen erforderlichen Informationen abrufen.



Leider ist es den GerĂ€teentwicklern gelungen, die mit der fehlenden DatenverschlĂŒsselung verbundene SicherheitsanfĂ€lligkeit weiter zu verstĂ€rken: Sie haben ein vollstĂ€ndig undichtes GerĂ€teauthentifizierungsverfahren durchgefĂŒhrt.



AnfÀllige GerÀteauthentifizierung



Das einzige Zeichen fĂŒr die LegitimitĂ€t eines GerĂ€ts auf dem Server ist das Token, das im Cookie ĂŒbergeben wird. Das Token wird gesetzt, wenn das GerĂ€t zum ersten Mal auf dem Server registriert wird und sich nach unseren Angaben nie Ă€ndert.



Bild

Der Token-Wert wird als Cookie gespeichert. Quelle: Trend Micro



Da das "geheime" Token im Klartext ĂŒbertragen wird, kann sich jeder HTTP-Client als legitimes ACS ausgeben. In unseren Experimenten haben wir curl verwendet, ein einfaches Befehlszeilenprogramm.



So haben wir beispielsweise einen neuen Benutzer im System registriert und ein Image fĂŒr ihn festgelegt:



Bild

Der erste Befehl registriert einen Benutzer mit dem Namen Bogus auf dem Server, der zweite legt ein Foto fĂŒr ihn fest. Quelle: Trend Micro



Die Datei userdata.post enthÀlt die Daten, die wir per POST an den Server gesendet haben. In unserem Fall enthÀlt die Datei die folgenden Daten: Inhalt der Bilddatei



Bild

, die an den Server gesendet werden soll. Quelle: Trend Micro



Registrieren eines Administrators bei curl



Ein vorhandener Administrator kann einen neuen Benutzer ĂŒber die Konsole auf dem GerĂ€t zum Administrator hochstufen. Der aktuelle Administrator muss sich zuerst ĂŒber die Gesichtserkennung beim GerĂ€t anmelden und dann auf die Systemkonsole zugreifen, um den Heraufstufungsprozess zu starten. Sobald der Benutzer auf die Administratorebene befördert wurde, sendet das GerĂ€t einen Bericht an den Server und benachrichtigt ihn ĂŒber die StatusĂ€nderung.

Da jedoch jeder Benutzer, dem das Token gehört, legitimen Netzwerkverkehr zwischen dem GerĂ€t und dem Server simulieren kann, hindert ihn nichts daran, den folgenden Befehl auszufĂŒhren und einen Benutzer zum Administrator zu machen: Durch



Bild

Festlegen von Berechtigungen = 14 wird der Benutzer zum Administrator. Quelle: Trend Micro



Nach der nĂ€chsten Synchronisierung des Servers und aller darauf registrierten ACS-GerĂ€te wird der neue Administrator im gesamten BĂŒronetzwerk erkannt.



Laden Sie alle Benutzerfotos hoch



Die URLs der auf dem Server gespeicherten Fotos sind vorhersehbar, sodass das Auflisten aller URLs und das Hochladen der Fotos ein Kinderspiel ist. FĂŒr den Zugriff auf diese URLs ist keine Authentifizierung erforderlich.



Unter der folgenden URL sendet der Server beispielsweise ein Foto eines Benutzers mit der ID „11111“:



Bild



Um Bilder zu sammeln, können Sie ein einfaches Skript erstellen, das Benutzer-IDs von „00000“ zu einer beliebigen Nummer durchlĂ€uft und alle im System verfĂŒgbaren Fotos herunterlĂ€dt.



GefÀlschte Serverinjektion



Da die gesamte Kommunikation zwischen dem GerĂ€t und dem Server ĂŒber HTTP erfolgt, ist es relativ einfach, alle AC-GerĂ€te mithilfe einer ARP-Vergiftung (Address Resolution Protocol) auf einen gefĂ€lschten Server umzuleiten.



Nachdem wir das ZielgerĂ€t gezwungen hatten, mit unserem gefĂ€lschten Server zu kommunizieren, konnten wir dem GerĂ€t die Updates senden, die wir wĂ€hrend einer seiner regulĂ€ren Synchronisierungssitzungen benötigten. Diese Technik kann fĂŒr eine Vielzahl von Angriffen verwendet werden. Beispielsweise können Sie EndgerĂ€te mit einem Foto eines Benutzers versehen, fĂŒr den Sie den illegalen Zugriff auf ein FirmengelĂ€nde organisieren möchten.



Zugang per Foto eines legalen Besuchers



Angesichts der Anzahl möglicher Angriffsoptionen war das Testen dieser Methode bereits etwas ĂŒberflĂŒssig. Angesichts der Einfachheit und VerfĂŒgbarkeit eines solchen Angriffs, selbst fĂŒr eine Person, die weit von der Technologie entfernt ist, haben wir dennoch geprĂŒft, ob es möglich ist, das ACS anhand eines Fotos einer im System registrierten Person zu tĂ€uschen, die Zugang zum BĂŒro hat. Und sie waren sehr ĂŒberrascht, als der Angriff nach Durchlaufen mehrerer Optionen funktionierte: Die ZKTeco FaceDepot-Kamera unterstĂŒtzte die auf dem iPhone X und iPhone XS gezeigten Fotos, weigerte sich jedoch, dasselbe Foto auf dem Bildschirm des Smartphones iPhone 6, Samsung A10, Samsung S8, Samsung S9 zu ĂŒberspringen , Samsung S10, Samsung S10 + und Samsung Note 10.



Empfehlungen an Hersteller



Das ZKTeco FaceDepot-ZugangskontrollgerĂ€t ist nicht das einzige, das in unserer Studie getestet wurde. Leider enthielten auch andere GerĂ€te schwerwiegende SicherheitslĂŒcken, die ernsthafte Zweifel aufkommen ließen, dass sie verwendet werden könnten, um einen wirklich sicheren Umfang des physischen Zugriffs auf die UnternehmensrĂ€ume zu schaffen.



Alle in GerĂ€ten gefundenen SicherheitslĂŒcken sind in den Top 10 Sicherheitsrisiken fĂŒr Webanwendungen enthalten , die vom OWASP-Projekt zusammengestellt wurden:



  • Keine StandardverschlĂŒsselung und Deaktivierung der serverseitigen VerschlĂŒsselung.
  • anfĂ€lliges Authentifizierungs- und Sitzungsverwaltungssystem;
  • veraltete Betriebssystemversionen.


Um die Sicherheit von ZugangskontrollgerÀten zu erhöhen, sollten Hersteller die folgenden Richtlinien befolgen:



  • — , ;
  • ;
  • — USB- ;
  • , .



All Articles