火线扫描是由360公司内部孵化出的免费静态代码扫描工具, 它目前最新版本v1.2.4主要针对Android静态代码的安全问题进行扫描. 在360内部该方案也服务于360安全卫士、手机助手、手机浏览器等15个App. 据火线的开发者说后续可能会对Kotlin(Android first-class开发语言)扫描、IOS扫描、圈复杂度和覆盖率统计等提供支持.并且火线是本地部署, 可以避免代码泄露和其他安全信息泄露的风险. 推荐结合jenkins, sonar等使用, 作为App上线的checklist之一.
规则集
火线的规则集按照不同的类型分为四种, 分别是安全类, 日志类, 内存类和基础类. 同时根据规则的严重程度分为了四个级别, 分别是Block, 风险, 优化和建议. 具体的规则分布如下图所示.
类型/等级/个 | 安全类 | 日志类 | 内存类 | 基础类 |
---|---|---|---|---|
Block | 6 | 1 | 0 | 0 |
风险 | 3 | 0 | 3 | 4 |
优化 | 0 | 0 | 0 | 50 |
建议 | 1 | 2 | 0 | 7 |
总数 | 10 | 3 | 3 | 61 |
安全类
从危险等级的规则数分布来看, 安全类的权重还是很大的, 就像火线的宣传主要是安卓APP安全检查规则一样. 规则主要覆盖了Android中信息泄露, 系统漏洞, 越权绕过, 拒绝服务, 远程提权, sql注入等场景进行扫描.
日志类
日志类的规则很少, 主要限定了敏感信息的打印, Log方法中对变量进行赋值操作和日志开关的位置.
内存类
内存方面扫描针对资源对象使用完成后没有关闭, 或者数据库操作相关的资源对象没有关闭等. 这些场景Sonar都有覆盖.
基础类
基础类主要集中在Java代码规范和少部分Android特性上, 在Java规范方面火线的覆盖不如Sonar全面. 可以配合Sonar一起使用.
接入指引
转载请注明出处:http://blog.csdn.net/l2show/article/details/73022668