本次大会以“数字转型,安全超频”为主题,聚焦于“创新前沿技术、全球安全战略、企业安全世界”等内容,邀请了网络安全行业内的各路精英,一同探讨网络共建安全顶层设计规划和落地,一起分享这一年来的创新黑科技研究成果。
360安全服务中心在大会的白帽LIVE专场上,为大家分享了【在代码中审计漏洞的世界】以及【APP审计之白帽必杀技】两份议题。
下面,小编将为大家带来两份议题的详细解读:
在代码中审计漏洞的世界
本次分享,作者从开发者的角度对漏洞进行了分析,并结合案例对漏洞挖掘与利用的思路进行了演示,使大家了解到代码审计的逻辑。
代码审计痛点
一、结构复杂:
程序开发是一个系统的过程,由于同一个功能(算法、逻辑)可能有多种不同的实现方式,所以不同的程序员在实现代码的时候,往往都会有一些自己的编写方式,这就会导致程序实现模块往往五花八门,而且有一些编写方式往往都是“灵光一现”的操作,这种操作本身很难有可持续性,而且也不会是常规操作,如果没有注释,编写者自己也很容易忘记。
同时在开发的过程中也会遇到各式各样的框架,为了方便程序开发,框架将各种实现进行了包装隐藏,只开放出接口,这使开发者对内部的逻辑并不是很了解。
二、代码繁多:
现在一个程序少则几万多则百万行的代码量,使得纯人工进行代码审计变的不切实际,时间紧任务重数量多同样也是代码审计的一个难点。
三、时间耐心:
做代码审计时需要配合验证漏洞,人工的低审计率与工具的高误报率使得工程师耐心逐渐消失。
四、工具问题:
误报率高,对代码只进行静态扫描,不能准确跟踪代码执行过程。
解析漏洞的成因
从开发者编写代码的角度去分析,程序为什么会存在漏洞?
作者从自身出发,通过开发者人性、程序复杂性、以及安全开发规范,这三个方面来对程序中漏洞成因进行了分享,结合实际案例分析讲解,增强了参会者对代码审计的认识。
Php漏洞案例
作者通过前台任意文件删除和后台任意文件上传两个常见漏洞,展示了攻击者从前台通过任意文件删除漏洞登录到管理员后台,再通过后台的任意文件上传漏洞绕过程序本身的过滤条件,上传webshell获取服务器权限的过程。
Java漏洞案例
通过Java的实际案例,对漏洞成因、危害、预防以及安全建议进行了分享,并针对此类漏洞在实际工作过程中如何进行代码审计进行了详细的分析。
漏洞挖掘总结
作者根据自身漏洞挖掘的经验,总结出了以上经验,帮助入门童鞋快速掌握代码审计的技巧。
思维初步建设
最后作者对代码审计的三个阶段以及每个阶段需要掌握的技能进行了介绍,分享了如何进行规划,如何一步步进行技能提升,只有静下心来认真研究才能够知己知彼,百战不殆,避免做无用功。
个人总结
从学习到读懂代码...从学习到挖掘漏洞...走向属于自己的安全之路。
在大部分白帽子的视角下,APP相关的审计工作,主要还是趋于接口层面的OWASP TOP10,本次议题旨在以白帽子的视角来看待APP的审计项目,除了接口层的常规渗透之外,如何在其他层面找到安全风险点。
移动APP架构中的威胁目标
应用自身安全:主要介绍了常见的代理检测、反调试、环境检测、签名校验以及APP包中可能会存在的敏感信息以及其利用方式。
应用组件安全:主要从安卓四大组件以及近年来移动端被爆出的有危害的第三方库及其利用方式进行描述。
运行时安全:主要介绍APP运行过程中可能会存储敏感信息的风险点以及绕过手势密码的一些思路技巧。
通信安全:主要介绍如何针对网络请求中的签名校验参数以及加密后的httpbody进行解密。
风控安全:结合实际的黑灰产案例,将APP逆向与大数据风控结合,详细分析了风控产品的基本流程以及相应的绕过方式。
常见业务中的审计流程总结
APP审计后续发展
作者认为,目前APP审计的发展趋势,逐渐地在往轻量级的fuzz上靠拢。
将目前轻量级的hook工具frida,与afl等fuzz工具的理念相结合,使用frida编写js脚本,实现对于APP中api接口以及so文件和dylib的模糊测试工作。
这里用frida编写简单的fuzz脚本,来fuzz URLscheme接口,举了一个简单的例子。
360政企安全-安全服务中心火热招聘中,欢迎发送简历至邮箱:[email protected] 详细职位信息,可点击下方查阅。