代码静态分析与自定义规则应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码静态分析与自定义规则应用
目录
1. 为什么自定义规则? 2. 怎样自定义规则? 3. 自定义规则遇到的难题? 4. 数据展示
为什么自定义规则?
无线TC委员会
• 日志敏感信息输出 • 日志开关 • 日志函数中变量赋
值
信息安全部
• SQL注入隐患 • 拒绝服务隐患 • 目录遍历隐患 • 远程提权攻击隐患 • 组件导出过多 • 自定义权限安全 • 可被Debug漏洞 • Fragment漏洞 • 应用程序备份恢复
160万 30.31秒
0.375秒
163位用户
数据展示
目前实践过的项目:
360手机卫士
360手机助手
360
手机浏览器
360游戏大厅 360桌 面
360云盘
360 Security
360智能摄像机
360免费WiFi 360行车记录仪
路由器 卫士
360商城 360搜索
手心输入法
数据展示
数据展示
40分钟
40秒
难题三:跨语言条件组合
使用 Intent获 取数据
未做异 常处理
拒绝服 务漏洞
组件可 导出
数据展示
数据指标
工具累计运行天数 累计执行任务次数 已扫描代码总行数 已扫描总文件数 单个项目平均扫描时间
每千行代码扫描时间 已使用工具的开发人员数 量
数据参考
206天 8927次任务 4亿2千万
Log.i("Name:", Name); }
难题一:误报率
开始
是否有日志
输出?
Yes
记录日志输出节点
直接输出敏
Yes
感信息?
No
记录没有直接输出敏感 信息的日志节点
结束
No
日志开关为 True?
Yes
日志被开关
包裹?
Yes
间接输出敏 感信息?
Yes
No
记录违规
No
结束
难题一:误报率
白名单
难题二:扫描效率
2.间接输出 String Name = getLocalClassName(); Log.i("Name:", Name); Log.i("Name:", Name.toString()); Log.i("Name:", Name.length());
3.日志开关 boolean DEBUG = false; if (DEBUG) {
隐患 • 远程调用导致数据
泄露风险 • 本地存储用户数据
隐患
开发需求
• IO流关闭 • Cursor关闭
怎样自定义Fra Baidu bibliotek则?
Log.i("Name: ", getLocalClassName());
怎样自定义规则?
难题一:误报率
1.日志级别 Log.e("Name:", getLocalClassName());
目录
1. 为什么自定义规则? 2. 怎样自定义规则? 3. 自定义规则遇到的难题? 4. 数据展示
为什么自定义规则?
无线TC委员会
• 日志敏感信息输出 • 日志开关 • 日志函数中变量赋
值
信息安全部
• SQL注入隐患 • 拒绝服务隐患 • 目录遍历隐患 • 远程提权攻击隐患 • 组件导出过多 • 自定义权限安全 • 可被Debug漏洞 • Fragment漏洞 • 应用程序备份恢复
160万 30.31秒
0.375秒
163位用户
数据展示
目前实践过的项目:
360手机卫士
360手机助手
360
手机浏览器
360游戏大厅 360桌 面
360云盘
360 Security
360智能摄像机
360免费WiFi 360行车记录仪
路由器 卫士
360商城 360搜索
手心输入法
数据展示
数据展示
40分钟
40秒
难题三:跨语言条件组合
使用 Intent获 取数据
未做异 常处理
拒绝服 务漏洞
组件可 导出
数据展示
数据指标
工具累计运行天数 累计执行任务次数 已扫描代码总行数 已扫描总文件数 单个项目平均扫描时间
每千行代码扫描时间 已使用工具的开发人员数 量
数据参考
206天 8927次任务 4亿2千万
Log.i("Name:", Name); }
难题一:误报率
开始
是否有日志
输出?
Yes
记录日志输出节点
直接输出敏
Yes
感信息?
No
记录没有直接输出敏感 信息的日志节点
结束
No
日志开关为 True?
Yes
日志被开关
包裹?
Yes
间接输出敏 感信息?
Yes
No
记录违规
No
结束
难题一:误报率
白名单
难题二:扫描效率
2.间接输出 String Name = getLocalClassName(); Log.i("Name:", Name); Log.i("Name:", Name.toString()); Log.i("Name:", Name.length());
3.日志开关 boolean DEBUG = false; if (DEBUG) {
隐患 • 远程调用导致数据
泄露风险 • 本地存储用户数据
隐患
开发需求
• IO流关闭 • Cursor关闭
怎样自定义Fra Baidu bibliotek则?
Log.i("Name: ", getLocalClassName());
怎样自定义规则?
难题一:误报率
1.日志级别 Log.e("Name:", getLocalClassName());