安卓静态代码分析器
qark的Python项目详细描述
Android快速评测套件
此工具旨在查找源代码或打包的apk中的几个与安全相关的android应用程序漏洞。该工具还能够创建“概念证明”可部署的apk和/或adb命令,能够利用它发现的许多漏洞。不需要根目录测试设备,因为该工具关注的是在其他安全条件下可以利用的漏洞。
要求
在Python2.7.13和3.6上测试 在OSX、Linux和Windows上测试
用法
有关更多选项,请参见--help命令。
APK:
~ qark --apk path/to/my.apk
Java源代码文件:
~ qark --java path/to/parent/java/folder ~ qark --java path/to/specific/java/file.java
结果
报表是用json生成的,可以构建成其他格式类型,要更改报表类型,请使用--report-type标志。
安装
带PIP(无安全检查要求):
~ pip install --user qark # --user is only needed if not using a virtualenv ~ qark --help
使用requirements.txt(对需求进行安全检查):
~ git clone https://github.com/linkedin/qark ~ cd qark ~ pip install -r requirements.txt ~ pip install . --user # --user is only needed if not using a virtualenv ~ qark --help
利用apk
qark可以为已经发现的几个漏洞生成一个基本的利用apk的漏洞。
要生成攻击apk,有几个步骤要遵循。您需要有android sdk v21和构建工具v21.1.2
- 安装android sdk,您可以在“命令行工具”下获得它:https://developer.android.com/studio/#downloads
- 解压缩android sdk
- 进入新目录,使用bin/sdkmanager–licenses生成许可证
- 确保生成的许可证位于android sdk目录中。
- 安装sdk和正确的构建工具版本:bin/sdkmanager–install“platforms;android-21”“sources;android-21”“构建工具;21.1.2”
检查
qark是一个易于使用的工具,能够在android应用程序中发现常见的安全漏洞。与商业产品不同,它是100%免费使用的。qark提供教育信息,使安全审查人员能够准确、深入地定位漏洞的解释。qark自动使用多个反编译器,利用它们的组合输出,在反编译apk时产生更好的结果。最后,与传统工具相比,qark的主要优势在于,它可以生成adb命令,甚至可以生成全功能apk,从而将假设的漏洞转化为有效的“poc”攻击。
此工具试图查找的安全漏洞类型包括:
- 无意中导出的组件
- 不正确保护的导出组件
- 易被拦截或窃听的意图
- 不正确的X.509证书验证
- 创建世界可读或世界可写文件
- 可能泄露数据的活动
- 粘性意图的使用
- 不安全地创建挂起的意图
- 发送不安全的广播意图
- 源中嵌入的私钥
- 弱或不正确的加密使用
- 可能被利用的WebView配置
- 导出的首选项活动
- 窃听
- 启用备份的应用程序
- 可调试的应用程序
- 应用程序支持过时的API版本,存在已知漏洞
注意
注意:qark将android应用程序反编译回原始源代码。请不要使用这个工具,如果这可能被认为是非法的在您的法律用语。如果您不确定,请咨询法律顾问。
如果您在osx上遇到问题,特别是与到play store的出站呼叫或sdk的下载有关的问题,那么 可能是因为您的python/openssl配置以及osx最近的更改影响了通过brew安装的python。核武你的 python安装和从源代码重新安装可能会解决您的问题。
许可证
版权所有2015 LinkedIn Corp.保留所有权利。
版权所有2015 LinkedIn Corp.根据Apache许可证2.0版(以下简称“许可证”)获得许可;除非符合许可证,否则您不得使用此文件。
您可以获得许可证的副本here。 除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发,无任何明示或默示的保证或条件。