AppShark 静态污点分析平台使用教程

AppShark 静态污点分析平台使用教程

appshark Appshark is a static taint analysis platform to scan vulnerabilities in an Android app. appshark 项目地址: https://gitcode.com/gh_mirrors/app/appshark

1. 项目介绍

AppShark 是一个静态污点分析平台,用于扫描 Android 应用程序中的安全漏洞。它通过分析应用程序的代码,识别潜在的污点传播路径,从而发现可能的安全风险。

2. 项目快速启动

环境准备

AppShark 需要以下环境:

  • JDK 11

确保已经安装了 JDK 11,因为项目在其他 LTS 版本(如 JDK 8 和 JDK 16)上可能无法正常工作。

构建项目

假设您正在项目仓库的根目录下工作。可以使用 gradle 工具构建整个项目:

./gradlew build -x test

构建完成后,您会在 build/libs 目录下看到一个名为 AppShark-0.1.2-all.jar 的文件。

运行分析

仍然在项目根目录下,使用以下命令运行 AppShark 工具:

java -jar build/libs/AppShark-0.1.2-all.jar config/config.json5

其中 config.json5 文件应包含以下配置内容:

{
  "apkPath": "/Users/apks/app1.apk",
  "out": "output_path",
  "rules": "rule1.json,rule2.json",
  "rulePath": "./config/rules",
  "maxPointerAnalyzeTime": 300,
  "debugRule": "ruleNameForDebug"
}
  • apkPath: 需要分析的 APK 文件路径。
  • out: 输出目录的路径。
  • rules: 指定要使用的规则文件,默认为 $rulePath 目录下的所有 *.json 文件。
  • rulePath: 规则文件的父目录路径。
  • maxPointerAnalyzeTime: 从入口点开始的分析超时时间(秒)。
  • debugRule: 启用调试日志的规则名称。

提供配置文件并设置输出路径后,运行分析,您会在指定的输出路径中找到 results.json 文件,其中包含了分析结果。

3. 应用案例和最佳实践

案例分析

以下是一个简单的分析结果示例:

{
  "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"
          }
        ]
      }
    }
  }
}

这个结果揭示了 unZipSlip 类型的文件风险,其中包含了相关的详细信息,如位置、源头、目标以及风险的可能性等级。

最佳实践

  • 确保使用最新版本的规则库,以识别最新的安全风险。
  • 定期运行 AppShark 分析,以监测代码库中的新漏洞。
  • 针对发现的每个风险,进行深入分析和修复。

4. 典型生态项目

AppShark 作为静态污点分析工具,可以与以下类型的生态系统项目结合使用:

  • 安全自动化流程,例如持续集成(CI)系统。
  • 安全监控平台,用于实时监测和警告。
  • 代码审查工具,以在代码提交前检测潜在风险。

通过整合这些工具和服务,可以构建一个更加完善的安全开发流程。

appshark Appshark is a static taint analysis platform to scan vulnerabilities in an Android app. appshark 项目地址: https://gitcode.com/gh_mirrors/app/appshark

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花化贵Ferdinand

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值