paint-brush
MASC: Ein Tool zur mutationsbasierten Evaluierung von statischen Krypto-API-Missbrauchsdetektorenvon@mutation
861 Lesungen
861 Lesungen

MASC: Ein Tool zur mutationsbasierten Evaluierung von statischen Krypto-API-Missbrauchsdetektoren

Zu lang; Lesen

MASC ist ein benutzerfreundliches Tool, das Mutationstests zur Bewertung von Kryptodetektoren verwendet, nicht dokumentierte Fehler entdeckt und die Softwaresicherheit durch ein automatisiertes, anpassbares und erweiterbares Framework verbessert.
featured image - MASC: Ein Tool zur mutationsbasierten Evaluierung von statischen Krypto-API-Missbrauchsdetektoren
Mutation Technology Publications HackerNoon profile picture
0-item

Autoren:

(1) Amit Seal Ami, Computer Science Department, William & Mary Williamsburg, Virginia, USA, und dieser Autor haben in gleichem Maße zu diesem Papier beigetragen ([email protected]).

(2) Syed Yusuf Ahmed, Institute for Information Technology, University of Dhaka Dhaka, Bangladesch, und dieser Autor haben zu gleichen Teilen zu diesem Papier beigetragen ([email protected]);

(3) Radowan Mahmud Redoy, Institute for Information Technology, University of Dhaka Dhaka, Bangladesch, und dieser Autor haben zu gleichen Teilen zu diesem Papier beigetragen ([email protected]);

(4) Nathan Cooper, Fakultät für Informatik, William & Mary Williamsburg, Virginia, USA ([email protected]);

(5) Kaushal Kafle, Fakultät für Informatik, William & Mary Williamsburg, Virginia, USA ([email protected]);

(6) Kevin Moran, Institut für Informatik, University of Central Florida Orlando, Florida, USA ([email protected]);

(7) Denys Poshyvanyk, Fakultät für Informatik, William & Mary Williamsburg, Virginia, USA ([email protected]);

(8) Adwait Nadkarni, Fakultät für Informatik, William & Mary Williamsburg, Virginia, USA ([email protected]).

Linktabelle

Zusammenfassung und 1 Einleitung

2 Überblick über MASC

3 Designziele

4 Umsetzung von MASC

4.1 Mutationsoperatoren

4.2 Mutationsbereiche

5 MASC verwenden

6 Zukünftige Arbeit und Schlussfolgerung, Danksagungen und Referenzen

ABSTRAKT

Während Softwareentwickler optimistisch Krypto-API-Missbrauchsdetektoren (oder Kryptodetektoren) in ihre Softwareentwicklungszyklen einführen, muss diese Dynamik von einem gründlichen Verständnis der Wirksamkeit von Kryptodetektoren beim Auffinden von Krypto-API-Missbrauch in der Praxis begleitet werden. Dieses Demopapier präsentiert die technischen Details und Nutzungsszenarien unseres Tools, nämlich Mutation Analysis zur Bewertung von Static Crypto-API Misuse Detectors (MASC). Wir haben 12 verallgemeinerbare, nutzungsbasierte Mutationsoperatoren und drei Mutationsbereiche entwickelt, nämlich Main Scope, Similarity Scope und Exhaustive Scope, die verwendet werden können, um kompilierbare Varianten der Krypto-API-Missbrauchsfälle ausdrucksvoll zu instanziieren. Mithilfe von MASC haben wir neun wichtige Kryptodetektoren bewertet und 19 einzigartige, nicht dokumentierte Fehler entdeckt. Wir haben MASC so konzipiert, dass es konfigurierbar und benutzerfreundlich ist; ein Benutzer kann die Parameter konfigurieren, um die Art der generierten Mutationen zu ändern. Darüber hinaus verfügt MASC sowohl über eine Befehlszeilenschnittstelle als auch ein webbasiertes Frontend, was es für Benutzer mit unterschiedlichem Fachwissen praktisch macht.


Code: https://github.com/Secure-Platforms-Lab-WM/MASC

1. EINLEITUNG

Softwareentwickler verlassen sich seit Jahrzehnten auf Kryptodetektoren, um die korrekte Verwendung kryptografischer APIs in der Software und den Diensten sicherzustellen, die sie erstellen, entwickeln und warten [6]. Solche Kryptodetektoren sind in der Softwareentwicklung allgegenwärtig, da sie in IDEs (z. B. CogniCrypt-Plugin für Eclipse IDE [8]), Testsuiten von Organisationen wie Oracle Corporation [9, 17] und für Continuous Integration/Continuous Deployment (CI/CD)-Pipelines [12, 18] integriert sind. Darüber hinaus stellen Hosting-Anbieter wie GitHub solche Kryptodetektoren offiziell bereit, z. B. die GitHub Code Scan Initiative [10]. Mit anderen Worten: Die Sicherheit von Software und Diensten hängt zunehmend von Kryptodetektoren ab. Wir haben uns jedoch auf manuell kuratierte Benchmarks verlassen, um die Leistung von Kryptodetektoren zu bewerten. Solche Benchmarks sind bekanntermaßen unvollständig, falsch und unpraktisch zu warten [16]. Um die Wirksamkeit von Kryptodetektoren aus sicherheitsorientierter Perspektive zu bestimmen, ist daher eine zuverlässige und sich weiterentwickelnde Bewertungstechnik erforderlich, die mit dem Volumen und der Vielfalt der Krypto-APIs sowie den unterschiedlichen Missbrauchsmustern skalierbar ist.


Wir haben Mutationstesttechniken kontextualisiert, um das Framework „Mutation Analysis for Evaluation Static Crypto-API Misuse Detectors (MASC)“ zu erstellen. In unserer ursprünglichen Prototyp-Implementierung von MASC [3] nutzte es intern 12 verallgemeinerbare, nutzungsbasierte Mutationsoperatoren, um Mutationen von Crypto-API-Missbrauchsfällen für Java zu instanziieren. Die Mutationsoperatoren wurden basierend auf den Designprinzipien der Java Cryptographic Architecture (JCA) [11] und einem Bedrohungsmodell entwickelt, das aus Benutzern mit unterschiedlichen Fähigkeiten und Absichten bestand (Abschnitt 4.1). MASC injiziert diese mutierten Missbrauchsfälle in Java- oder Android-basierte Apps an drei Mutationsbereichen (Injektionsstellen), nämlich Similarity Scope (erweitert von MDroid+ [13, 14]), Exhaustive Scope (erweitert von 𝜇SE [4, 5, 7]) und seinem unabhängig entwickelten Main Scope, und erstellt so mutierte Anwendungen, die Crypto-API-Missbrauch enthalten. Wir haben die Praktikabilität der Prototyp-Implementierung von MASC durch die Evaluierung von neun Kryptodetektoren aus Industrie und Wissenschaft demonstriert und dabei 19 bisher undokumentierte, unbekannte Schwachstellen entdeckt, die die Zuverlässigkeit der Kryptodetektoren innerhalb des Anwendungsbereichs beeinträchtigen. Alle Einzelheiten zur Methodik von MASC, zu Designüberlegungen, zur Evaluierung von Kryptodetektoren, die zur Entdeckung neuer Schwachstellen führte, zu den praktischen Auswirkungen der gefundenen Schwachstellen in Open-Source-Anwendungen (und damit zur Anwendbarkeit der Mutationsoperatoren) und zur Diskussion der Ergebnisse finden Sie im ursprünglichen Forschungspapier [3].


In diesem Artikel präsentieren wir den Interessengruppen von Kryptodetektoren wie Sicherheitsforschern, Entwicklern und Benutzern eine ausgereifte Implementierung des MASC-Frameworks mit Schwerpunkt auf Erweiterbarkeit, Benutzerfreundlichkeit und Wartbarkeit. Um es genauer zu beschreiben: Dank der neu entwickelten Plug-in-Architektur können MASC-Benutzer jetzt ihre eigenen Mutationsoperatoren erstellen, die einfach in MASC integriert werden können, ohne tief in die vorhandene Codebasis (11𝐾+ Quellcodezeilen) eintauchen zu müssen. Während die ursprüngliche Prototypimplementierung von MASC eine halbautomatische Auswertung von Kryptodetektoren beinhaltete, haben wir den Arbeitsablauf von MASC automatisiert, indem wir die de-facto SARIF [15]-formatierte Ausgabe von Kryptodetektoren nutzen. Darüber hinaus haben wir ein webbasiertes Frontend der MASC-Implementierung für Benutzer erstellt, um die Einstiegshürde zu senken. Schließlich haben wir die Open-Source-Codebasis von MASC neu strukturiert und überarbeitet, um die Wartbarkeit und Erweiterbarkeit von MASC zu verbessern, was zukünftige Beiträge und Verbesserungen sowohl für Entwickler als auch für Open-Source-Enthusiasten von MASC einfacher machen wird. Mit diesen Ergänzungen und Verbesserungen hoffen wir, dass die aktuelle Open-Source-Implementierung von MASC dazu genutzt werden kann, Fehler in vorhandenen Kryptodetektoren zu finden und diese so zu verbessern.


Beitrag : Wir präsentieren MASC, ein benutzerfreundliches Framework, das Mutationstesttechniken zur Bewertung von Kryptodetektoren nutzt, mit Details zu den zugrunde liegenden Techniken, Designüberlegungen und Verbesserungen. Die neuen, wichtigsten Funktionen von MASC sind wie folgt: Automatisierte Bewertung von Kryptodetektoren: MASC kann zur Bewertung von Kryptodetektoren in einem durchgängigen automatisierten Workflow innerhalb des Hauptbereichs verwendet werden.


Anpassbare Auswertung von Kryptodetektoren: Ein Benutzer kann die Auswertung von Kryptodetektoren anpassen, indem er die Mutationsoperatoren zum Erstellen von Instanzen für den Missbrauch von Krypto-APIs angibt.


Plug-in-Architektur für benutzerdefinierte Operatoren : MASC unterstützt Sicherheitsforscher, Entwickler und Benutzer dabei, direkt mit der Bewertung von Kryptodetektoren zu beginnen, indem sie ihre eigenen, benutzerdefinierten Mutationsoperatoren erstellen, die direkt in den Hauptbereich eingesteckt werden können, ohne dass sie sich mit den internen Details von MASC vertraut machen müssen.


Benutzerfreundliches Frontend für Endbenutzer : Zusätzlich zur Verbesserung der Befehlszeilenschnittstelle der ursprünglichen Prototypimplementierung erstellen und führen wir ein Open-Source-Frontend auf Webbasis für Endbenutzer ein, das lokal ausgeführt werden kann. Das Frontend enthält eine zusätzliche Play-Test-Learn-Schnittstelle, MASC Lab, wo Stakeholder mit Mutationsoperatoren interagieren und etwas über den Missbrauch mutierender Krypto-APIs lernen können.


Tool- und Datenverfügbarkeit: Die Prototyp-Implementierung des MASC-Frameworks, Skripte und Ergebnisse der Evaluierung von Krypto-Detektoren,


Abbildung 1: Ein konzeptioneller Überblick über das MASC-Framework.


Listing 1: Beispiele für den Missbrauch von Krypto-APIs, erstellt von MASC


wie im Originalpapier [3] beschrieben, sind im MASC-Artefakt [1] verfügbar. Darüber hinaus ist die Codebasis der aktiv gepflegten, ausgereiften Implementierung von MASC separat mit ausführlicher Dokumentation und Beispielen verfügbar [2].