Heim > Artikel > Betrieb und Instandhaltung > Welche Sicherheitsrisiken bestehen, wenn das SDK nicht gehärtet ist?
Was sind die Sicherheitsrisiken, wenn das SDK nicht verstärkt wird?
1 Es ist für Wettbewerber oder böswillige Parteien leicht, einen Einblick in interne Implementierungsdetails oder interne Anrufprozesse zu erhalten, und kann sogar private Daten preisgeben #🎜🎜 ##🎜 🎜#Der Großteil des Android-Plattform-SDKs ist in Java-Sprache geschrieben und lässt sich leicht dekompilieren. Durch einfache Verschleierung können interne Implementierungsdetails offengelegt werden, während private Daten innerhalb des SDK eher durchsickern. Wenn diese Details die Implementierungsmethode der Schlüsseltechnologie offenbaren, kommt dies einem Durchsickern der Kerntechnologie gleich.
2. Schädliche Werbung oder bösartiger Code werden von böswilligen Parteien durch Bytecode-Injektion und auf andere Weise implantiert und dann neu verpackt und veröffentlichtAufgrund der Das SDK ist einzigartig, da es nicht über eine Signaturverifizierungslogik wie die App verfügt. Wenn also eine böswillige Person böswilligen Code oder böswillige Werbung in Ihr SDK implantiert und diese dann erneut veröffentlicht, ist dies schwierig zu erkennen, was das Markenimage ernsthaft beeinträchtigt und Ruf des Entwicklers.
3. Die geknackte Person umgeht Schlüssellogik und verursacht wirtschaftliche VerlusteWenn das SDK über eine Zahlungsfunktion verfügt und von böswilligen Akteuren analysiert wird Finden Sie die Zahlungslogik. Wenn die zahlungsbezogene Logik auf der Serverseite nicht gut überprüft wird, bedeutet dies, dass der kostenpflichtige Dienst kostenlos verfügbar ist, sobald die böswilligen Akteure die Zahlungslogik über AOP entfernen.
4. Das SDK selbst kann Schwachstellen aufweisen und von böswilligen Parteien leicht ausgenutzt werdenSDK-Entwickler konzentrieren sich häufig auf die Implementierung von Funktionen Der Sicherheit wird im Allgemeinen nicht allzu viel Aufmerksamkeit geschenkt, sodass es schwierig ist, sicherzustellen, dass das von Ihnen selbst entwickelte SDK keine Schwachstellen aufweist. Sobald also einige Sicherheitslücken im SDK vorhanden sind und diese Schwachstellen bekannt sind und von böswilligen Akteuren ausgenutzt werden, ist das so, als würde man eine Landmine legen, die jederzeit explodieren kann. Der Ruf von SDK-Entwicklern wird nicht nur durch Bedrohungen der Daten- und Datenschutzsicherheit beeinträchtigt, sondern sie können auch für finanzielle Entschädigungen haftbar gemacht werden, wenn Probleme auftreten.
So lösen SieWie aus der obigen Sicherheitsrisikoanalyse hervorgeht, besteht der Kern des Problems darin, dass böswillige Benutzer leicht darauf zugreifen können die Implementierungslogik des SDK. Daher wird den Entwicklern empfohlen, die folgenden Schutzmaßnahmen zu ergreifen:
1 Änderungen an Schlüsseldaten müssen die serverseitige Überprüfung bestehen: Beispielsweise die oben erwähnte zahlungsbezogene Logik, Änderungen an Daten wie Der Kontostand oder der Zahlungsbetrag müssen zuerst die serverseitige Überprüfung bestehen und dann die Ergebnisse mit dem Client synchronisieren.
2 Fügen Sie die Schlüssellogik zur Implementierung in die native Ebene ein: Übertragen Sie einige Schlüssellogiken aus Java Ebene auf die JNI-Ebene übertragen und in C/C++ implementieren.
3 Zeichenfolgen im Code verschlüsseln, insbesondere Zeichenfolgen mit vertraulichen Informationen.
Das Erreichen der oben genannten Punkte reicht jedoch nicht aus. Es kann nur normale Entwickler verhindern. Das SDK, an dessen Entwicklung wir so hart gearbeitet haben, könnte in den Händen professioneller Cracker zu Kanonenfutter werden und zu finanziellen Verlusten führen.
Daher wird empfohlen, auf Sicherheitsdienste von Drittanbietern zuzugreifen, beispielsweise auf den SDK-Verstärkungsdienst von Yidun.
Einführung in die Yidun SDK-VerstärkungBevor wir die Yidun SDK-Verstärkung vorstellen, stellen wir zunächst vor, was die meisten Entwickler derzeit auf dem Markt verwenden. Die Methode zur Verschleierung - Proguard. Proguard ist die am weitesten verbreitete Verschleierung auf der Android-Plattform. Sie wird von der Syntaxebene aus über abstrakte Syntaxbäume verarbeitet, was das Lesen und Verstehen des verarbeiteten Codes erschwert. Wie unten gezeigt:
Aber ändern Sie den Klassennamen und den Methodennamen in einige bedeutungslose Zufallszeichenfolgen, z. B. „a, b, c“. „Obwohl es die Lese- und Verständniskosten des Crackers erhöhen kann, ist seine Wirkung offensichtlich äußerst begrenzt. Für Cracker ist es nur eine Frage der Zeit, bis sie die Absicht des Codes herausfinden können.
Was ist also Yiduns SDK-Verstärkungslösung? Als nächstes stelle ich Ihnen Folgendes vor:
1. Yidun SDK-Verstärkungs-VMP-LösungLeeren Sie die Methoden der zu schützenden Klasse und extrahieren Sie sie Die Verarbeitung der Befehlsverschlüsselung wird zur Laufzeit über eine benutzerdefinierte virtuelle Maschine ausgeführt, wodurch es für Cracker unmöglich ist, an die ursprüngliche Codelogik zu gelangen.
Der Effekt ist wie folgt:
Diese Lösung besteht darin, die Methode der zu schützenden Klasse zu nativenisieren und gleichzeitig die ursprüngliche Funktionsimplementierungslogik in den der nativen Ebene entsprechenden C/C++-Code zu konvertieren Führen Sie die entsprechende Native-Funktion direkt zur Laufzeit aus. Der Effekt ist wie folgt:
Beispiel vor Verstärkung
# 🎜🎜#
Beispiel nach der Verstärkung
Aus der Perspektive der statischen Analyse ist im Vergleich zur Proguard-Verschleierung offensichtlich, dass die Verstärkungsmethode dies hat wurde nativeisiert und implementiert. Die Logik ist in der Java-Schicht völlig unsichtbar. Die ursprüngliche Funktionslogik der Java-Schicht wird in die C/C++-Code-Implementierung der JNI-Schicht umgewandelt. Gleichzeitig wird das generierte native Schicht-SO verschlüsselt, um die Schwierigkeit des Knackens in allen Aspekten zu verbessern.
(Hinweis: Um die gehärtete Methode im obigen Bild klarer zu sehen, wurde sie in die entsprechende Native-Layer-Implementierung konvertiert. Das generierte Native-Layer-SO ist nicht verschlüsselt. In der tatsächlichen Situation hat das Yidun SDK Java2c gehärtet Die Lösung generiert den gehärteten Code SO für die Verschlüsselung)
Das obige ist der detaillierte Inhalt vonWelche Sicherheitsrisiken bestehen, wenn das SDK nicht gehärtet ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!