Detecting Vulnerabilities in Encrypted Software Code while Ensuring Code Privacy
Dieser Beitrag stellt CoCoA vor, ein neuartiges Werkzeug, das Statische Analyse mit durchsuchbarer symmetrischer Verschlüsselung kombiniert, um die Erkennung von Software-Schwachstellen in verschlüsseltem Quellcode unter Wahrung der Code-Datenschutz zu ermöglichen und dabei eine Präzision von 93 % bei lediglich 42,7 % Performance-Overhead im Vergleich zu nicht-vertraulichen Baselines erreicht.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie haben ein geheimes Rezept für den besten Kuchen der Welt. Sie möchten einen berühmten Lebensmittelkritiker engagieren, um ihn probieren zu lassen und Ihnen zu sagen, ob es Mängel gibt (wie zu viel Salz oder eine verbrannte Kruste). Allerdings haben Sie panische Angst, dass sie, wenn Sie ihnen das Rezeptbuch geben, es stehlen, fotokopieren oder an Ihre Konkurrenten verkaufen könnten.
Normalerweise hätten Sie zwei schlechte Optionen:
- Geben Sie ihnen das Buch: Sie können die Mängel finden, aber sie könnten Ihr Rezept stehlen.
- Verschließen Sie das Buch in einem Safe: Sie können es nicht stehlen, aber sie können es auch nicht lesen, um die Mängel zu finden.
Diese Arbeit stellt eine magische Lösung namens COCOA vor, die dieses Dilemma löst. Sie ermöglicht es dem Kritiker, Mängel in Ihrem Rezept zu finden, ohne jemals die eigentlichen Worte des Rezepts zu sehen.
So funktioniert es, aufgeteilt in einfache Schritte:
1. Das Problem: Das „Glashaus"-Dilemma
Softwareentwickler schreiben Code (das Rezept) für Websites. Sie benötigen Experten, die diesen Code auf Sicherheitslücken (Schwachstellen) prüfen, bevor Hacker sie finden. Aber um den Code zu prüfen, müssen Experten normalerweise den Rohtext sehen. Wenn sie ihn sehen, könnten sie das geistige Eigentum des Entwicklers stehlen. Wenn sie ihn nicht sehen, können sie ihren Job nicht erledigen.
2. Die Lösung: Die „Verschlüsselte Karte"
Die Autoren haben ein System namens COCOA (Confidential Code Analysis) entwickelt. Anstatt den Rohcode an den Experten zu senden, führt der Entwickler zuerst eine spezielle Transformation durch.
Stellen Sie sich den Code nicht als Geschichte vor, sondern als Straßenkarte.
- Der Rohcode: Die eigentlichen Sätze und Wörter.
- Die Karte: Ein Diagramm, das zeigt, wie die Straßen (Daten) miteinander verbunden sind und wo sich die Ampeln (Steuerfluss) befinden.
COCOA nimmt den Rohcode und verwandelt ihn in diese „Karte", verschlüsselt diese Karte dann jedoch mit einem High-Tech-Schloss (Verschlüsselung).
- Es ersetzt spezifische Namen (wie „Benutzereingabe" oder „Datenbank") durch generische Bezeichnungen wie „Straße A" oder „Ampel B".
- Es erstellt einen speziellen Index (wie einen Bibliothekskatalog), der ebenfalls verschlüsselt ist.
3. Der magische Trick: Suchen ohne Lesen
Nun sendet der Entwickler diese verschlüsselte, verschlüsselte Karte an den Experten (den Analysator). Der Experte möchte eine bestimmte Gefahr finden, wie einen „Brückeneinsturz" (eine Sicherheitslücke).
In einer normalen Welt müsste der Experte die gesamte Karte lesen, um die Brücke zu finden. Aber mit COCOA verwendet der Experte einen magischen Schlüssel, der vom Entwickler bereitgestellt wird.
- Der Entwickler sagt: „Ich ermächtige Sie, nach 'Brückeneinstürzen' zu suchen."
- Der Experte verwendet diesen Schlüssel, um die verschlüsselte Karte abzufragen.
- Das System springt sofort zu den relevanten Teilen der Karte und sagt: „Ja, hier gibt es einen Brückeneinsturz", ohne jemals zu verraten, woraus die Brücke besteht, wer sie gebaut hat oder wie der Rest der Karte aussieht.
Der Experte erfährt nur, dass ein Mangel existiert und wo er ist. Er erfährt nichts über den eigentlichen Code, die Geschäftslogik oder die Geheimnisse des Entwicklers.
4. Wie es funktioniert (Der „Invertierte Index")
Technisch verwendet die Arbeit eine Methode namens Searchable Symmetric Encryption (SSE) (Suchbare Symmetrische Verschlüsselung).
- Stellen Sie sich eine Bibliothek vor, in der jedes Buch in einem Safe verschlossen ist.
- Normalerweise können Sie nicht nach einem Wort innerhalb der Bücher suchen, da sie verschlossen sind.
- COCOA erstellt einen speziellen „Index", in dem die Standorte der Wörter verschlüsselt sind.
- Wenn der Experte fragt: „Wo ist das Wort 'Gefahr'?", prüft das System den verschlüsselten Index und zeigt auf den spezifischen Safe, der diese Gefahr enthält, ohne die anderen Safes zu öffnen oder den Inhalt des Buches preiszugeben.
5. Die Ergebnisse: Schnell und Genau
Die Forscher testeten dieses Tool (COCOA) an echten PHP-Webanwendungen (eine sehr häufige Art von Website-Code).
- Genauigkeit: Es fand Schwachstellen genauso gut wie Standardtools, die den Code lesen (etwa 93 % Genauigkeit).
- Geschwindigkeit: Es war nur geringfügig langsamer als die Standardtools. Es dauerte etwa 209 Millisekunden, um 4.000 Codezeilen zu verarbeiten. Das ist wie das Hinzufügen einer winzigen Verzögerung zu einem Vorgang, der normalerweise nur einen Wimpernschlag dauert.
- Privatsphäre: Der Code blieb vollständig verborgen. Die „verschleierte" Version belegte tatsächlich weniger Platz auf der Festplatte als der ursprüngliche Code, da das System unnötige Kommentare und Details entfernte.
6. Warum das wichtig ist
Diese Arbeit definiert ein neues Feld namens Confidential Code Analysis (Vertrauliche Codeanalyse). Sie beweist, dass Sie nicht zwischen Sicherheit (Schutz Ihres Codes) und Qualität (Finden von Fehlern) wählen müssen.
Zusammenfassung der Analogie:
- Alter Weg: Sie geben Ihr geheimes Rezept einem Kritiker. Er korrigiert das Salz, merkt sich aber auch das Rezept und verkauft es.
- COCOA-Weg: Sie geben dem Kritiker eine verschlüsselte, verschleierte Karte des Rezepts. Er verwendet einen speziellen Schlüssel, um den Ort des „zu viel Salz" zu finden und sagt Ihnen genau, wo er ist. Er sieht niemals die Zutaten, den Namen des Kochs oder den Rest des Rezepts.
Dies ermöglicht es Unternehmen, Sicherheitsprüfungen an Dritte auszulagern, ohne Angst vor Diebstahl zu haben, und ermöglicht Entwicklern, ihren Code privat zu halten und gleichzeitig sicherzustellen, dass er für die Öffentlichkeit sicher ist.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.