代码漏洞检测架构演进与实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 代码漏洞检测架构演进与实践
卢中阳
火线安全联合创始人&开发负责人
2.
3. • 漏洞&应用安全趋势
• 传统代码漏洞检测工具架构设计演进
• 下一代代码漏洞检测架构设计分享
4. 一、漏洞&应用安全趋势
5. 应用安全趋势
安全意识的普及
网络安全法、个人信息保护
法的普及让安全得到了普
及。
从17年开始勒索病毒呈爆发
式增长。
敏捷开发+DevOps
应用迭代、发版的速度更
快,需要匹配更快、更准、
侵入性更小的安全检测工
具。
云原生
软件间的依赖
开源软件、组件占比达
应用的运行场景发生了变 80%~90%。
化,为传统漏洞检测方式带 SaaS 、SDK大量接入。
来新的挑战。 供应链攻击风险增加。
6. 漏洞趋势
7. 二、传统代码漏洞检测工具架构设计演进
8. 初代扫描器
准确的发现更多的漏洞(准)
爬虫URL
X
Payload
测试网站
9. 第二代扫描器
更少的请求,发现更多的漏洞(准且快)
代理
启发式爬虫
流量去重
流量清洗
流量镜像
访问日志
权限识别
用户识别
通用
Payload
逻辑
Payload
语义分析
请求去重
目标系统
10. 第三代扫描器 主动插桩Agent
更少的请求,发现更多的漏洞(准快且全)
代理
启发式爬虫
流量去重
流量清洗
流量镜像
访问日志
权限识别
用户识别
通用
Payload
逻辑
Payload
Agent
语义分析
请求去重
目标系统
11. 传统漏扫局限性
产生脏数据,使用成本高
DevOps集成困难
新的防护措施导致无法扫描:防重放、验证码、数据包加密
云原生下分布式、微服务漏洞检测困难
12. 三、下一代IAST代码漏洞检测架构
13. 洞态IAST代码漏洞检测原理
不可信数据采集
_jspService
put
不可信数据传播图 数据调用链路查找
_jspService _jspService
_jspService
decode
id
不可信数据预处理
cmd->id
decode
getParameter
cmd->id
getParameter
put
id
getParameter
id
id
exec
id
decode
getParameter
id
cmd->id
exec
cmd->id
id
id
id
decode
id
put
exec
id
id
put
exec
14. Agent端检测
Server端检测
Agent端性能损耗高 Agent端性能损耗低
无法构建统一的数据底座,数据无
法得到充分的利用 无法构建统一的数据底座,数据无
法得到充分的利用
新漏洞需重新下发规则重新扫描 新漏洞直接在云端即可检出
无法进行微服务的调用链追踪 可以进行微服务的调用链追踪
15. 洞态IAST代码漏洞检测架构
16. 洞态IAST产品能力
漏洞详情定位到代码行
依赖组件的供应链风险排查
梳理API Sitemap精准反馈未测试接口
支持云原生的部署方式,一键启动
统一探针上报的数据格式,利用数据分析实现漏洞的离线检测
17. 弹性扩容能力
探
针
集
群
OpenAPI Storage Engine
OpenAPI Storage Engine
OpenAPI Storage Engine
OpenAPI Storage Engine
... ... ...
OpenAPI cluster Storage cluster
Engine cluster
18. 场景一:更强的DevSecOps能力
19. 场景二:安全能力沉淀
传统安全工程师工作
手动/半自动安全测试、手动复测、安全运营
基于IAST的安全工程师
安全研究沉淀规则自动化漏洞检测自动通知自动复测
20. 洞态IAST 组件梳理
21. 洞态IAST 漏洞触发过程分析
22. 洞态IAST API Sitemap
23. 开源
https://github.com/HXSecurity/DongTai
https://dongtai.io/
全球首家开源IAST产品
邀请更多的开发者和厂商一起共建
24. 洞态IAST规划
更强的漏洞检测能力
敏感信息泄露检测
项目间、跨语言的关联检测
自动化
25.
26.