Closed firmianay closed 1 year ago
是否支持Manifest配置错误的检测(例如debuggable),以及有时候需要结合组件是否export来判断问题(例如https://github.com/github/codeql/blob/main/java/ql/lib/semmle/code/java/security/FragmentInjection.qll#L21)
暂不支持对manifest.xml等资源文件的检测,只支持java,kotlin代码的检测。
暂不支持对manifest.xml等资源文件的检测,只支持java,kotlin代码的检测。
我看到代码里预留了接口但没有实现:
interface ManifestVulnerability {
fun check(manifest: ProcessManifest)
}
soot在解析的时候其实已经做了这件事,所以是不是在parseApkInternal()中加上下面的代码就可以:
val isDebuggable = manifest.application.isDebuggable
Log.logDebug("debuggable $isDebuggable")
val isAllowBackup = manifest.application.isAllowBackup
Log.logDebug("allowBackup $isAllowBackup")
val isUsesCleartextTraffic = manifest.application.isUsesCleartextTraffic
Log.logDebug("usesCleartextTraffic $isUsesCleartextTraffic")
最后结果是放在results的AppInfo里,还是单独在SecurityInfo列一项ManifestRisk?我可以提交一个PR
建议单独列一个ManifestRisk。 目前没做这个主要原因是,appshark的核心功能是数据流分析,这些虽然有用,但是实际上随便一个安卓分析工具都有,就没有实现。
如果你能提交一个pr,当然非常好!
大家可以一起来写规则,比如把flowdriod,或者其他引擎的规则移植过来。