
منصة تحليل التلوث الثابتة لتطبيقات أندرويد تكتشف الثغرات ومشكلات الامتثال باستخدام مسح قائم على قواعد قابلة للتخصيص وتقارير نتائج مفصلة.
Appshark هي منصة تحليل تلوث ثابتة لفحص الثغرات الأمنية في تطبيقات Android.
يتطلب Appshark إصدارًا محددًا من JDK
نفترض أنك تعمل في الدليل الجذر لمستودع المشروع. يمكنك بناء المشروع بالكامل باستخدام أداة gradle.
$ ./gradlew build -x test
بعد تنفيذ الأمر أعلاه، سترى ملفًا AppShark-0.1.2-all.jar في الدليل build/libs.
كما في الخطوة السابقة، نفترض أنك لا تزال في المجلد الجذر للمشروع. يمكنك تشغيل الأداة باستخدام
$ java -jar build/libs/AppShark-0.1.2-all.jar config/config.json5
يحتوي config.json5 على محتويات التكوين التالية.
{
"apkPath": "/Users/apks/app1.apk"
}
يحتوي كل JSON على هذه الحقول الأساسية.
,. الافتراضي هو جميع ملفات *.json في دليل $rulePathلمزيد من حقول التكوين، يرجى زيارة net.bytedance.security.app.ArgumentConfig
إذا قمت بتقديم ملف تكوين JSON يحدد مسار الإخراج كـ out في الدليل الجذر للمشروع، ستجد
ملف النتيجة out/results.json بعد تشغيل التحليل.
فيما يلي مثال على results.json.
{
"AppInfo": {
"AppName": "test",
"PackageName": "net.bytedance.security.app",
"min_sdk": 17,
"target_sdk": 28,
"versionCode": 1000,
"versionName": "1.0.0"
},
"SecurityInfo": {
"FileRisk": {
"unZipSlip": {
"category": "FileRisk",
"detail": "",
"model": "2",
"name": "unZipSlip",
"possibility": "4",
"vulners": [
{
"details": {
"position": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>",
"Sink": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31",
"entryMethod": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>",
"Source": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3",
"url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/1-unZipSlip.html",
"target": [
"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3",
"pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>:35=>java.lang.StringBuilder}(unknown)->@data}",
"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r11",
"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31"
]
},
"hash": "ec57a2a3190677ffe78a0c8aaf58ba5aee4d2247",
"possibility": "4"
},
{
"details": {
"position": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>",
"Sink": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34",
"entryMethod": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>",
"Source": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3",
"url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/2-unZipSlip.html",
"target": [
"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3",
"pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>:33=>java.lang.StringBuilder}(unknown)->@data}",
"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r14",
"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34"
]
},
"hash": "26c6d6ee704c59949cfef78350a1d9aef04c29ad",
"possibility": "4"
}
],
"wiki": "",
"deobfApk": "/Volumes/dev/zijie/appshark-opensource/app.apk"
}
}
},
"DeepLinkInfo": {
},
"HTTP_API": [
],
"JsBridgeInfo": [
],
"BasicInfo": {
"ComponentsInfo": {
},
"JSNativeInterface": [
]
},
"UsePermissions": [
],
"DefinePermissions": {
},
"Profile": "/Volumes/dev/zijie/appshark-opensource/out/vuln/3-profiler.json"
}
AppShark مرخصة بموجب رخصة أباتشي، الإصدار 2.0
واجهة المستخدم/الخادم هي أداة اختبار مساعدة لا ينبغي استخدامها في بيئات الإنتاج ويمكن نشرها فقط للاختبار المحلي.
لارك 