加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 应用 > 正文

AppShark:一款针对Android应用程序的静态分析与漏洞扫描框架

发布时间:2022-12-09 15:03:47 所属栏目:应用 来源:互联网
导读:
关于AppShark
AppShark是一款针对Android应用程序的安全测试框架,该工具本质上是一个静态污点分析平台,可以用于扫描Android应用程序中的漏洞。
AppShark除了实现行业普遍应用的数据流分

程序应用初始化失败_非连续变形分析方法程序与工程应用_app应用程序

关于AppShark

AppShark是一款针对Android应用程序的安全测试框架,该工具本质上是一个静态污点分析平台,可以用于扫描Android应用程序中的漏洞。

AppShark除了实现行业普遍应用的数据流分析,还将指针分析与数据流分析融合,因而漏洞建模上更精准,规则更灵活app应用程序,在误报率和漏报率方面有了比较大的改进。Appshark可以作为公司内部的Android App的自动化检测工具,辅助企业发现App的安全漏洞及隐私合规风险,也可以作为白帽子日常App漏洞挖掘的助手,提高漏洞挖掘的效率及产出。

工具要求

AppShark需要使用指定版本的JDK,即JDK11。经过测试后,我们发现该工具不支持其他的LTS版本,比如说JDK8和JDK16。

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git?clone?https://github.com/bytedance/appshark.git

项目构建与编译

打开命令行终端,然后切换到项目目录下,并使用gradle工具完成项目代码的构建和编译:

$ ./gradlew build ?-x test

执行上述命令之后,我们将会在项目目录的build/libs中查看到生成的jar文件:AppShark-0.1.1-all.jar。

AppShark运行

在命令行终端中切换到项目根目录下,然后运行下列命令并使用配置文件来执行AppShark:

$ java -jar build/libs/AppShark-0.1.1-all.jar ?config/config.json5

config.json5文件的配置内容如下所示:

{
??"apkPath": "/Users/apks/app1.apk",
??"out": "out",
??"rules": "unZipSlip.json",
??"maxPointerAnalyzeTime": 600
}

其中的每一个JSON字段解释如下:

apkPath:需要分析的apk文件路径;

out:输出目录路径;

rules:规则文件的路径地址,可以指定多条;

maxPointerAnalyzeTime:从每一个入口点执行分析的超时时间间隔;

debugRule:指定调试过程中启用日志记录的规则名称;

结果解析

下面给出的是一个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": "",
??????????????"Sink": "->$r31",
??????????????"entryMethod": "",
??????????????"Source": "->$r3",
??????????????"url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/1-unZipSlip.html",
??????????????"target": [
????????????????"->$r3",
????????????????"pf{obj{:35=>java.lang.StringBuilder}(unknown)->@data}",
????????????????"->$r11",
????????????????"->$r31"
??????????????]
????????????},
????????????"hash": "ec57a2a3190677ffe78a0c8aaf58ba5aee4d2247",
????????????"possibility": "4"
??????????},
??????????{
????????????"details": {
??????????????"position": "",
??????????????"Sink": "->$r34",
??????????????"entryMethod": "",
??????????????"Source": "->$r3",
??????????????"url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/2-unZipSlip.html",
??????????????"target": [
????????????????"->$r3",
????????????????"pf{obj{:33=>java.lang.StringBuilder}(unknown)->@data}",
????????????????"->$r14",
????????????????"->$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"
}

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

AppShark:【GitHub传送门】

参考资料

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章