Return to overview
5 min leestijd

Einbruch in ABUS Secvest-Alarmanlagen mit Internetanschluss (CVE-2020-28973)

5 min Leestijd
April 20, 2021
Door: Eye Security
image
Door: Eye Security
7 März 2024

ABUS Secvest ist ein drahtloses Alarmsystem, das an Verbraucher und kleine Unternehmen vermarktet wird. Es wird in der Regel von einem spezialisierten Unternehmen eingesetzt. Ein Secvest FUAA50000 Controller kostet etwa 400 EUR. Ein typischer Einsatz mit Bewegungsmeldern, einer Sirene und Tür-/Fenstersensoren kann Tausende von Euro kosten. In diesem Artikel beschreibe ich, wie mehr als 10.000 mit dem Internet verbundene Alarmsysteme gehackt und aus der Ferne deaktiviert werden konnten.

ABUS hat eine korrigierte Version der Secvest-Software veröffentlicht. Wenn Sie dieses System verwenden, empfehlen wir Ihnen, die Version V3.01.21 (oder höher) zu installieren. Dazu benötigen Sie einen "Installer"-Zugang. Wenn Sie das System nicht selbst installiert haben, benötigen Sie möglicherweise die Hilfe der Firma, die das System installiert hat. Als vorübergehende Lösung könnten Sie die Portweiterleitung auf Port 4433 in Ihrem Router entfernen. Dies würde jedoch verhindern, dass Sie die Smartphone-App oder die Webschnittstelle zur Steuerung des Systems verwenden können.

ABUS Secvest

Die Alarmanlage kann über die Alarmzentrale, das Webinterface oder über die Secvest-App (iPhone oder Android) gesteuert werden. Um das System über eine App oder ein Webinterface zu steuern, muss das Alarmsystem mit dem Internet verbunden sein und ein HTTPS-Port (standardmäßig 4433) muss an das System weitergeleitet werden.

Basierend auf diesen Informationen haben wir eine schnelle Untersuchung durchgeführt, um zu sehen, wie beliebt das System ist. Dazu haben wir öffentlich verfügbare HTTPS-Scans von Rapid7 verwendet:

Wie Sie sehen, wird das System vor allem in den deutschsprachigen Ländern und den Benelux-Staaten eingesetzt. Nach Angaben von ABUS ist die Secvest das meistverkaufte Funkalarmsystem in Deutschland. Da wir nur die Ports untersucht haben, die von den Rapid7-Daten abgedeckt werden, ist die tatsächliche Anzahl der exponierten Systeme wahrscheinlich etwas höher, da die Leute den Standardport ändern.

Sobald Sie in der App sind, können Sie den Status Ihrer Alarmanlage sehen und sie ein- und ausschalten.

Mir gefällt die Tatsache, dass diese Einrichtung es uns ermöglicht, das Alarmsystem, ohne die Abhängigkeit von einem cloudbasierten System zu steuern. Sie birgt jedoch auch einige Risiken: Da die Alarmanlage mit unserer IP-Adresse verbunden ist, können Kriminelle interessante Ziele im Internet etwas genauer beobachten. Auf der Grundlage Ihrer IP-Adresse können sie diese Informationen in einigen Fällen zu einem tatsächlichen Standort zurückverfolgen. Dies macht sie zu einem interessanten Ziel für Kriminelle, die besonders Interesse an gehobene Häuser oder Unternehmen zeigen.

Sicherheitsforscher des deutschen Sicherheitsunternehmens, SySS GmbH, haben sich bereits eingehend mit der drahtlosen Seite des Systems befasst und einige Probleme gefunden, wie in diesem Artikel und diesem Video beschrieben wird. Ich beschloss, mir die IP-basierte Konnektivität des Systems anzusehen, und fand ebenfalls einige ernsthafte Probleme.

Um sich an der Webschnittstelle zu authentifizieren, benötigen Sie einen Benutzernamen und eine 4-stellige Alarm-PIN. In späteren Firmware-Versionen wurde die Option einer 6-stelligen PIN hinzugefügt. Es gibt drei Benutzerebenen: Installateur, Admin und normaler Benutzer. Sobald Sie sich authentifiziert haben, können Sie je nach Ihrer Benutzerrolle die Konfiguration ändern, Benutzer verwalten oder das System (de)aktivieren. In späteren Firmware-Versionen wurde eine vierte Benutzerebene für Firmware-Updates hinzugefügt. Ich hätte ein separates Passwort vorgezogen, anstatt die PIN wiederzuverwenden, da 4 Ziffern in etwa fünf Minuten geknackt werden können. Die Zentrale schlägt nach zu vielen Fehlversuchen Alarm, und der Benutzername müsste ebenfalls erraten werden.

ABUS login screen

Ich habe festgestellt, dass die HTTPS-Anfrage zur Deaktivierung des Systems zwar eine Authentifizierung erfordert, viele andere Anfragen jedoch nicht. Auf das Skript ‘sec_about_panel.cgi‘ kann beispielsweise ohne Anmeldung zugegriffen werden; es liefert eine Zusammenfassung des Systems einschließlich der Anzahl der Sensoren, Schlösser usw. Die Datei ‘sec_virtkeypad_raster.bmp‘ gibt einem Angreifer eine Live-Ansicht des Bildschirms der Alarmanlage, sodass er den Systemnamen sehen kann und ob der Alarm ein- oder ausgeschaltet ist:

sec_virtkeypad_raster

Wir können auch einen Test der internen Sirene mit einer HTTP-POST-Anfrage durchführen, wie im folgenden curl-Befehl zu sehen ist:

Zum Glück können wir sie auch abschalten, indem wir die letzte '1' in '0' ändern, denn der Ton wird sehr schnell lästig. Eine externe Sirene habe ich nicht gekauft, aber die könnten wir wahrscheinlich auch testen (und dabei die ganze Nachbarschaft aufwecken). Stellen Sie sich vor, ein Angreifer 'testet' die Sirenen von 10.000 Alarmsystemen, was zu einer Menge verärgerter Leute (meist Deutsche) führt.

Noch schlimmer ist, dass wir eine Kopie der Konfiguration des Alarmsystems herunterladen können, indem wir die Datei ohne jegliche Authentifizierung anfordern. Diese hexadezimal kodierte Binärdatei enthält die Benutzernamen und Kennwörter aller Benutzer, so dass wir uns an der Weboberfläche authentifizieren und das Alarmsystem vollständig kontrollieren können. Nachfolgend finden Sie einen Auszug aus einem Hexdump meiner Konfigurationsdatei: 

0000f870  03 13 37 ff 01 73 03 70  69 63 6f 62 65 6c 6c 6f  |..7..s.picobello|
0000f880 62 76 00 01 74 c3 05 00 00 00 00 00 01 75 c3 01 |bv..t........u..|
0000f890 0f 01 76 02 00 01 00 09 45 02 01 01 01 00 00 d2 |..v.....E.......|
0000f8a0 05 02 01 01 00 02 72 c3 03 13 38 ff 01 73 03 31 |......r...8..s.1|
0000f8b0 33 33 38 00 01 74 c3 05 00 00 00 00 00 01 75 c3 |338..t........u.|
0000f8c0 01 0f 01 76 02 01 01 00 09 45 02 01 01 01 00 00 |...v.....E......|
0000f8d0 d2 05 02 02 01 00 02 72 c3 03 12 34 ff 01 73 03 |.......r...4..s.|
0000f8e0 61 64 6d 69 6e 00 01 74 c3 05 00 00 00 00 00 01 |admin..t........|
0000f8f0 75 c3 01 0f 01 76 02 01 01 00 09 45 02 01 01 01 |u....v.....E....|
0000f900 00 00 d2 05 02 03 01 00 02 72 c3 03 99 99 ff 01 |.........r......|
0000f910 73 03 6e 69 65 6c 73 00 01 74 c3 05 00 00 00 00 |s.niels..t......|

Ich habe vier Benutzer: picobellobv (der Installer), 1338, admin und niels. Der Installateur hat den Code "1337", der im Hex-Dump deutlich zu sehen ist, und zwar 6 Bytes vor dem Benutzernamen. Die Codes für zwei weitere Benutzer (1338, 1234 und 9999) sind ebenfalls deutlich zu erkennen.

Dies ist die einzige Schwachstelle, die wir brauchen. In dem wir die Konfigurationsdatei herausholen, können wir alle Benutzernamen und Kennwörter erhalten und uns in das System einloggen. Wir haben nun die gleichen Rechte wie der Besitzer (oder Errichter) der Alarmanlage. Ein Angreifer kann nun das System neu konfigurieren oder deaktivieren, die Protokolle einsehen, um ein Lebensmuster zu erstellen, oder nach Hinweisen suchen, um den physischen Standort des Systems zu finden (z. B. den Namen des Besitzers, den die Errichter oft als Systemnamen eingeben).

In der Konfigurationsdatei sind auch Klartextkennwörter für angeschlossene Systeme enthalten. Wenn ein Benutzer Kameras an das System angeschlossen hat, können wir mit den Kennwörtern aus der Konfigurationsdatei auf die Videoübertragung zugreifen.

Ebenfalls in der Konfigurationsdatei enthalten ist das Kennwort für "ABUS Server". Dies ist ein kostenloser dynamischer DNS-Dienst, der von ABUS bereitgestellt wird. Da viele Provider ihren Nutzern keine dynamischen IP-Adressen zur Verfügung stellen, bietet ABUS die folgende Lösung an. Anstatt die Android/iOS-App mit einer statischen IP-Adresse zu konfigurieren, kann der Benutzer einen DNS-Namen konfigurieren, z. B. ‘secvest.u12345.abus-server.com‘. Für einen Angreifer ergeben sich daraus interessante Möglichkeiten. Durch die Übernahme des dynamischen DNS können wir die Benutzer auf unsere eigene IP-Adresse umleiten und Informationen manipulieren. Wir könnten der App zum Beispiel mitteilen, dass die Alarmanlage aktiv ist, während sie in Wirklichkeit ausgeschaltet ist. Wenn der Benutzer eine Kamera hat, können wir auch den Videostream manipulieren. Wir können nun einen Teil des Videos aufnehmen und immer wieder abspielen, so dass für den Endbenutzer alles normal aussieht, während wir einbrechen. Alternativ könnten wir auch ein schönes Video von Mr. Rick Astley zeigen:Gegenwärtig läuft auf etwa 10 % der Secvest-Systeme die neueste Version der Software. Das bedeutet, dass 90 % der Systeme im Internet mit einer anfälligen Version arbeiten.

Zeitplan für die Offenlegung:

2020-10-30: Kontaktaufnahme mit ABUS über ein Webformular mit der Bitte um einen Sicherheitskontakt.

2020-11-04: Erhalt der Support-E-Mail-Adresse für das ABUS Security Center. Senden einer E-Mail mit der Bitte um einen Sicherheitskontakt.

2020-11-06: Die Kontaktdaten des technischen Leiters wurden erhalten und eine Empfehlung wurde per E-Mail gesendet.

2020-11-08: ABUS bestätigt den Empfang des Hinweises.

2020-11-20: Eye fragt per E-Mail, ob ABUS die Ergebnisse reproduzieren kann.

2020-11-20: ABUS bestätigt, dass sie in der Lage waren, den Fehler zu reproduzieren und dass die nächste Version einen Fix enthalten wird.

2020-11-23: Eye fordert CVE an und sendet die erhaltene CVE-Nummer an ABUS.

2020-11-24: ABUS bestätigt den Erhalt der CVE-Nummer.

2020-12-16: Eye bittet um ein Update, ABUS antwortet, dass sie bis Mitte Januar eine neue Firmware herausgeben werden.

2021-01-22: ABUS veröffentlicht die Software-Version V3.01.21, die die gemeldete Sicherheitslücke behebt.

2021-04-20: Eye veröffentlicht diesen Blogpost.

Nehmen Sie Kontakt auf

Möchten Sie wissen, wie wir helfen können?

Lassen Sie uns drüber reden
GET IN TOUCH
Share this article.