Quick-Response-Codes (QR-Codes) sind ein praktisches Format, um alle möglichen Informationen auf lesbare und sichere Weise zu speichern – zumindest bei korrekter Implementierung. Während der anhaltenden COVID-19-Pandemie haben Regierungen beispielsweise kürzlich QR-Codes eingesetzt, um digitale COVID-Zertifikate für Impfungen, Teststatus und andere Zwecke zu erstellen.
Die QR-Technologie ist nicht neu, und Sicherheitsfunktionen wie die Zwei-Faktor-Authentifizierung (2FA) oder Multi-Faktor-Authentifizierung (MFA) fordern Nutzer häufig dazu auf, solche Codes zu generieren, um ihren Zugriff auf mobile Apps zu sichern. Und wie andere Authentifizierungstechnologien hat auch sie die Aufmerksamkeit von Hackern auf sich gezogen, die nach Möglichkeiten suchen, Schwachstellen auszunutzen. Erst im vergangenen Monat warnte das FBI vor dem möglichen Missbrauch von QR-Codes.
So funktionieren QR-Codes, wie Hacker sie gegen Sie einsetzen können und wie Sie sich und Ihre Organisation schützen.
So funktionieren QR-Codes hinter den Kulissen
Technisch gesehen ähnelt ein QR-Code einem Barcode, enthält aber in der Regel mehr Informationen. Für Menschen wirken sie vielleicht wie eine ungewöhnliche Ansammlung schwarzer Pixel auf weißem Hintergrund, doch das Format ist für Maschinen erstaunlich gut lesbar.
Computer verstehen QR-Codes als Matrizen aus 0 für die weißen Bereiche und 1 für die farbigen Bereiche. Da es sich jedoch nicht um ein für Menschen lesbares Format handelt, gibt es weder eine Reihenfolge von links nach rechts noch von oben nach unten. Die drei Quadrate im erzeugten Bild bestimmen die Ausrichtung, und viele Bereiche enthalten lediglich interne Parameter, die QR-Code-Lesegeräte zur Kalibrierung verwenden.
Tatsächlich enthält nur ein winziger Teil des QR-Codes Ihre Informationen, und ein mathematischer Algorithmus wird angewendet, um sie redundant zu machen. QR-Code-Lesegeräte lesen Ihre Informationen in 8-Bit-Blöcken, einem bestimmten Zeichensatz, der bei der Kodierung und Dekodierung verwendet wird.
Obwohl QR-Codes komplex wirken können, lassen sie sich relativ einfach erzeugen. In Python können Sie beispielsweise das QRcode-Paket verwenden, um benutzerdefinierte QR-Codes zu erstellen:

Das obige Beispiel verwendet nur einfachen Text. Sie können jedoch Links öffnen und Kontaktkarten hinzufügen, sodass Nutzer nur Ihren QR-Code scannen müssen, um eine Website aufzurufen oder Ihre Kontaktinformationen auf ihren Geräten zu speichern.
Bedrohungsakteure lieben QR-Codes
QR-Codes bieten zwar eine hervorragende Möglichkeit, Informationen zu speichern und abzurufen, bringen aber auch ein erhebliches Risiko mit sich.
Gefälschte Codes
Da QR-Codes Links automatisch öffnen können, können Hacker Nutzer auf gefälschte Websites umleiten und so beispielsweise die Erfolgsquote ihrer Phishing-Kampagnen steigern. Da QR-Codes außerdem nicht von Menschen gelesen werden können, sind Nutzer nicht in der Lage, schädliche Codes zu erkennen. Kriminelle können diese anstelle legitimer Codes verwenden.
QRL-Hijacking
QR-Logins (QRLs) sind QR-Code-basierte Authentifizierungsverfahren, die das Anmelden für Nutzer erleichtern sollen. Statt Namen und Passwort einzugeben, scannen Sie einen QR-Code.
Das macht die Anmeldung auf Websites zwar schnell und einfach, doch eine fehlerhafte Implementierung – etwa wenn bei jeder Anmeldung kein neuer QR-Code erzeugt wird – schafft Schwachstellen. Hacker können raffinierte Methoden wie QRL-Hijacking einsetzen, um eine QR-Sitzung zu initialisieren, den QR-Code zu klonen und die Opfer auf eine Phishing-Seite umzuleiten. So können Angreifer letztlich den Zugriff stehlen.
Siehe die wichtigsten Tools für das Schwachstellenmanagement
Hacking mit schädlichen QR-Codes
Die hervorragende Benutzerfreundlichkeit von QR-Codes erklärt, warum sie fast überall zu finden sind. Sie vergrößert jedoch auch die Angriffsfläche veralteter Software und Geräte.
Da QR-Codes viele Informationen enthalten können, gibt es mehr als genug Platz, um Schadcode einzufügen – wie in diesem Wikipedia-Beispiel:

Angreifer können manipulierte Payloads in QR-Codes kodieren und darauf warten, dass Nutzer sie scannen, um die Malware auszuführen.
Außerdem können viele Open-Source-Pakete und -Bibliotheken fehlerhafte QR-Codes erzeugen und verbreitete Exploits kodieren, etwa Cross-Site-Scripting (XSS), Local File Inclusion (LFI), Directory Traversal oder SQL-Injection.
Lesen Sie auch: So schützen Sie sich vor gängigen IT-Sicherheitsschwachstellen
Fehlerhafte Implementierungen können verheerend sein
Im Jahr 2020 erklärte Omer Shafiq, wie er einen verschlüsselten QR-Code fälschte, der COVID-Testberichte enthielt und digital signiert sowie fälschungssicher sein sollte.
Der Softwarearchitekt demonstrierte, dass sich dies in angemessener Zeit mithilfe von Open-Source-Tools erreichen ließ, mit denen sich die App zur Erzeugung und Validierung von QR-Codes untersuchen ließ.
Auch wenn dies für Personen ohne technischen Hintergrund möglicherweise nicht umsetzbar ist, zeigte die Untersuchung, dass die App fest codierte Verschlüsselungsschlüssel und symmetrische AES-Verschlüsselung verwendete. Dadurch konnte jemand nach einigen Manipulationen überprüfbare QR-Codes erzeugen.
Einige Experten sagen, QR-Codes seien von Natur aus fehlerhaft. Darüber hinaus offenbarte Sophos 2019, dass der Erfinder von QR-Codes nicht alle möglichen Auswirkungen auf die Sicherheit vorhergesehen hatte und sogar erklärte: „QR-Codes brauchen eine Sicherheitsüberarbeitung.“
Das geht jedoch möglicherweise weiter als nötig. Das Problem liegt in der Nutzung und Implementierung.
Schutzmaßnahmen gegen QR-Code-Hacking
Entwickler sollten keine statischen QR-Codes für Benutzeranmeldungen oder Finanztransaktionen verwenden, da Hacker deren Schwachstellen ausnutzen können, um Zahlungen abzufangen oder Zugangsdaten zu stehlen. Stattdessen sollten sie dynamische QR-Codes einsetzen und Nutzer dazu zwingen, diese neu zu erzeugen – auch wenn sich derselbe Nutzer ein zweites Mal anmeldet.
Neben der klassischen Phishing-Prävention muss das Sicherheitsbewusstsein auch QR-Codes einschließen. Nutzer sollten darauf hingewiesen werden, auf Seiten, die über solche Verknüpfungen geöffnet wurden, keine persönlichen Informationen preiszugeben, sofern es sich nicht um eine vertrauenswürdige Quelle handelt. Prüfen Sie die URL sorgfältig auf selbst geringfügige Schreibfehler und rufen Sie eine Website nach Möglichkeit nicht direkt über einen QR-Code auf bzw. laden Sie darüber keine App herunter. Laden Sie außerdem keine App zum Scannen von QR-Codes herunter – die Kamera Ihres Smartphones kann diese Funktion wahrscheinlich standardmäßig ausführen.
Auch wenn QR-Codes nicht von Menschen gelesen werden können, müssen sensible Informationen zum Schutz der Privatsphäre der Nutzer verschlüsselt werden. Entwickler müssen außerdem bewährte Verfahren für eine sichere Entwicklung befolgen.
Lesen Sie als Nächstes: Das beste Schulungsangebot für Cybersicherheitsbewusstsein von Mitarbeitern im Jahr 2022





