Kürzlich hat das Open Worldwide Application Security Project (OWASP) zum ersten Mal seit 2016 seine Top 10 Risiken für Mobile Anwendungen aktualisiert. Das Sicherheitsrisiko an erster Stelle diesmal? „Unzureichende Verwendung von Zugangsdaten.“
Dies ist ein Weckruf an die Anbieter von mobilen Apps hinsichtlich der Gefahr von fest codierten Zugangsdaten und allgemeiner schlechter Geheimnispflege.
Ein falscher Umgang mit den Geheimnissen, die Ihre Anwendung verwendet, insbesondere bei mobilen Apps, kann zu verheerenden Sicherheitsverletzungen führen. Lassen Sie uns dieses neue Hauptaugenmerk auf die Absicherung unserer Anwendungen genauer betrachten und gemeinsam Maßnahmen ergreifen, um diesen Bedenken entgegenzuwirken.
Die wachsende Bedrohung durch den falschen Umgang mit Geheimnissen
Unzureichende Verwendung von Zugangsdaten tritt auf, wenn Geheimnisse wie Passwörter oder Tokens nicht ordnungsgemäß gesichert sind und somit anfällig für Diebstahl durch Angreifer sind. Mobile Apps sind insbesondere dafür bekannt, Geheimnisse preiszugeben. Laut einer Untersuchung von CyberNews haben über 50% der mobilen Apps auf Plattformen wie dem Google Play Store fest codierte Geheimnisse, was bedeutet, dass diese sensiblen Informationen leicht von bösartigen Akteuren aufgedeckt werden können.
Wenn wir uns die von OWASP bereitgestellte Definition ansehen, verstehen wir schnell, warum dieses Risiko besonders besorgniserregend ist:
Wenn Geheimnisse aufgedeckt werden, können Angreifer sie nutzen, um unbefugten Zugriff auf Dienste, Daten oder sogar ganze Systeme zu erhalten. Dies macht das Geheimnismanagement zu einer obersten Priorität für App-Entwickler und Sicherheitsteams gleichermaßen.
Warum Geheimnisse das Hauptziel sind
Geheimnisse sind attraktive Ziele für Angreifer, da sie direkten Zugriff auf kritische Systeme gewähren. Im Gegensatz zu anderen Schwachstellen, die weitere Ausnutzungen erfordern, haben Angreifer, sobald sie Zugriff auf einen API-Schlüssel oder ein Passwort erhalten, oft einen klaren Weg zu wertvollen Ressourcen.
Zum Beispiel können hartcodierte API-Schlüssel in mobilen Apps mithilfe statischer Analysetools extrahiert und für unbefugte API-Anfragen verwendet werden. Dies gefährdet nicht nur Benutzerdaten, sondern kann auch finanzielle Verluste verursachen, insbesondere wenn diese Schlüssel an Dienste gebunden sind, die basierend auf der Nutzung abrechnen.
Geheimhaltung auf der Client-Seite ist schwierig
Ein entscheidender Punkt beim Verständnis des Geheimnismanagements ist, dass Geheimhaltung auf der Client-Seite praktisch unmöglich ist. Unabhängig davon, wie gut Geheimnisse in einer mobilen App verschleiert oder verschlüsselt sind, können Angreifer mit ausreichenden Ressourcen die App reverse-engineeren und sie abrufen. Das liegt daran, dass Geheimnisse zu einem bestimmten Zeitpunkt im Speicher der App verfügbar sein müssen. Durch dynamische Analyse können Angreifer diese Geheimnisse abrufen und ausnutzen.
Als Ergebnis ist der einzige sichere Weg zum Verwalten von Geheimnissen, sie vollständig von der Client-Seite fernzuhalten. Anstatt API-Schlüssel oder Anmeldeinformationen in der App einzubetten, sollten Entwickler diese sensiblen Informationen in das Backend verschieben, wo sie mehr Kontrolle über den Zugriff und die Sicherheit haben.
Best Practices für das Geheimnismanagement
Um der Herausforderung des Geheimnis-Lecks entgegenzuwirken, müssen Entwicklungsteams eine Reihe bewährter Verfahren implementieren.
1. Geheimnisse niemals fest codieren
Geheimnisse sollten niemals direkt im Code der App gespeichert werden. Dazu gehören API-Schlüssel, Authentifizierungstoken und andere sensible Daten. Das Festcodieren von Geheimnissen ist eine der häufigsten Möglichkeiten, wie sie durchsickern können und zu erheblichen Sicherheitsverletzungen führen können.
2. Verwenden von sicheren Speicher-APIs
Bei Benutzergeheimnissen (z. B. Passwörter, Tokens) sollten Entwickler sichere Speichermechanismen verwenden, die von mobilen Betriebssystemen bereitgestellt werden. Beispielsweise bietet iOS den Schlüsselbund und Android hat den Schlüsselspeicher. Diese APIs ermöglichen eine sichere Speicherung und Zugriffskontrolle sensibler Daten auf dem Gerät.
3. Geheimnisse ins Backend verschieben
Anstatt Geheimnisse auf der Client-Seite zu handhaben, sollten mobile Apps serverseitige Logik verwenden, um API-Schlüssel und andere sensible Daten zu verwalten. Durch die Verlagerung dieser Operationen ins Backend wird das Risiko des Geheimnis-Lecks drastisch reduziert.
4. Regelmäßiges Rotieren und Ungültigmachen von Geheimnissen
Auch bei ordnungsgemäßer Geheimnisverwaltung sollten Geheimnisse regelmäßig rotiert und kompromittierte Schlüssel sofort ungültig gemacht werden. Dies stellt sicher, dass ein Angreifer, der Zugriff auf ein Geheimnis erlangt, es nicht unbegrenzt verwenden kann.
5. Zertifikats-Pinning
Wenn Geheimnisse zur Laufzeit an die App gesendet werden, sollten Entwickler das Zertifikats-Pinning verwenden, um sicherzustellen, dass die Kommunikation sicher ist. Dies fügt eine zusätzliche Schutzschicht hinzu, indem die Identität des Servers während der Verbindung überprüft wird.
6. Implementieren Sie die Secrets-Erkennung im gesamten SDLC
Die Verwaltung von Secrets im Entwicklungszyklus führt unweigerlich irgendwann zu Fehlern und Lecks. OWASP betont die Notwendigkeit eines „umfassenden Sicherheitstestprozesses“. Es müssen mehrere Erkennungsebenen in den Commit-, Push- und Build-Phasen durchgesetzt und eine reibungslose Fehlerbehebung im Falle eines Vorfalls ermöglicht werden.
Es ist entscheidend zu bedenken, dass ein fest codiertes Secret nicht bis zur Produktion gelangen muss, um eine schwerwiegende Sicherheitslücke darzustellen.
Die Konsequenzen von geleakten Secrets
Wenn Secrets geleakt werden, können die Konsequenzen schwerwiegend sein. Angreifer können offengelegte Anmeldedaten nutzen, um auf sensible Daten zuzugreifen, Geschäftslogik zu manipulieren oder sogar ganze Systeme zu übernehmen. Beispielsweise könnten Angreifer, wenn ein mit einem Zahlungssystem verknüpfter API-Schlüssel geleakt wird, betrügerische Transaktionen initiieren, was zu finanziellen Verlusten sowohl für das Unternehmen als auch für seine Kunden führen könnte.
“Adversaries can exploit vulnerabilities in both hardcoded credentials and improper credential usage. Once these vulnerabilities are identified, an attacker can use hardcoded credentials to gain unauthorized access to sensitive functionalities of the mobile app. They can also misuse credentials, for instance, by gaining access through improperly validated or stored credentials, thereby bypassing the need for legitimate access.”
Darüber hinaus können geleakte Secrets die Integrität einer mobilen App gefährden und zu teuren rechtlichen und reputativen Schäden führen. Beispielsweise könnte das Leaken von API-Schlüsseln in einer Gesundheits-App, die den Zugriff auf Patientendaten ermöglichen, zu erheblichen regulatorischen Geldstrafen und einem Vertrauensverlust bei den Kunden führen.
Tools zur Secrets-Erkennung
Zur Bewältigung des Problems des Secrets-Leakings sind Tools zur Secrets-Erkennung für die moderne App-Entwicklung unverzichtbar geworden. Diese Tools scannen Code-Repositorys, CI/CD-Pipelines und Produktionsumgebungen nach offengelegten Secrets und helfen Teams, Sicherheitslücken zu entdecken, bevor sie ausgenutzt werden.
Diese Tools und Plattformen ermöglichen eine Echtzeitüberwachung von Code-Änderungen, um sicherzustellen, dass Geheimnisse während des Entwicklungsprozesses nicht versehentlich fest codiert werden. Durch die Integration solcher Tools in den Entwicklungszyklus können Organisationen das Risiko von Geheimnis-Lecks erheblich reduzieren.
Geheimnissicherheit ist eine Reise, auf der wir alle sind
Das Management von Geheimnissen ist nicht nur ein technisches Problem; es handelt sich um eine kritische Sicherheitsherausforderung, die weitreichende Konsequenzen haben kann, wenn sie nicht ordnungsgemäß gehandhabt wird. Organisationen können ihre sensiblen Daten schützen und die Wahrscheinlichkeit kostspieliger Sicherheitsverletzungen verringern, indem sie die Risiken einer unsachgemäßen Verwendung von Anmeldeinformationen verstehen, bewährte Verfahren zur Sicherung von Geheimnissen umsetzen und Tools zur Erkennung von Lecks verwenden.
Da Cyberangriffe und Sicherheitsverletzungen weiterhin Schlagzeilen machen, ist die Absicherung von Geheimnissen die wichtigste Schutzstrategie, um Organisationen und Systeme sicher zu halten. Zum Glück stehen uns OWASP-Freiwillige zur Seite, um uns bei der Bewältigung der sich ständig verändernden Cybersicherheitslandschaft zu unterstützen.
Referenz
- Top 10 Risiken für mobile Anwendungen, Open Worldwide Application Security Project (OWASP)
Source:
https://dzone.com/articles/secrets-security-important-issue-mobile-apps