安全共生|代码疫苗关键技术浅析
日期:2023年07月07日 阅:128
前言 聚焦数字化转型时代的关键技术
一、核心架构及运作原理
二、关键配置及业务保障
三、落地实践及典型场景
四、小结:企业共生安全演进趋势
本文字数:3186,阅读时长:8分钟
数字化时代,企业面临日益复杂和普遍的网络安全威胁。随着黑客技术的不断演进和网络攻击的规模不断扩大,企业级用户面临着巨大的业务安全风险。在这个信息泄露和数据侵犯的时代,保护企业的敏感信息和业务资产变得尤为重要。
在处理安全漏洞时,企业常常面临修复漏洞周期长、成本高的问题。传统的漏洞修复流程往往需要耗费大量的时间和资源,导致企业在应对安全漏洞时陷入被动地位。此外,人工处理漏洞修复过程不仅效率低下,还面临着人为错误和疏漏的风险,给企业带来额外的负担。
在这个关键时刻,代码疫苗技术应运而生。代码疫苗技术为企业级用户提供了一种创新的解决方案,能够从业务安全风险、修复漏洞周期及成本以及人工效率及成本几个维度来提升企业的安全防护能力。通过引入代码疫苗技术,企业可以更加迅速、准确地检测和修复漏洞,大大缩短了漏洞修复的周期,降低了修复的成本,并提高了人工处理漏洞的效率,精准建立威胁自免疫、安全自防护的共生安全架构。
本文将重点探讨代码疫苗技术在企业级用户中的应用落地,是如何帮助解决业务安全风险、提升修复漏洞效率、提高人工效率及降低成本的。通过深入分析代码疫苗技术的核心架构及运作原理、关键配置及业务保障、典型场景及最佳实践,帮助用户了解如何利用代码疫苗技术保护其业务安全,实施更高效、更可靠的共生安全防护策略。
悬镜安全首创的代码疫苗技术的关键是将智能风险检测和积极防御逻辑注入到运行时的数字化应用中,如同疫苗一般与应用载体融为一体,使其实现对潜在风险的自发现和对未知威胁的自免疫。
代码疫苗技术是基于插桩技术来实现的,统一融合了IAST、SCA、RASP、DRA、API分析、APM监控等能力,凭借一个探针解决应用长期面临的安全漏洞、数据泄漏、运行异常、0Day攻击等风险,减轻多探针运维压力的同时,为应用植入“疫苗”,实现应用与安全的共生。
作为智能代码疫苗技术的核心,函数级探针植入在应用内存上下文之中,既能够在开发测试环节里通过IAST对软件安全风险进行智能检测,精准定位API安全风险和缺陷,有效解决运行时API中敏感数据流动的追踪问题,又能够在部署和运营环节通过RASP实现软件风险自免疫。
代码疫苗技术有四个显著的特性:应用生命周期覆盖、不改变应用源代码、无感融入DevOps以及拥有全面覆盖应用风险的统一Agent能力。
代码疫苗技术的架构从下往上可分为四层:
01. 基础层:统一的插桩能力及接口;
02. 辅助层:通信及信息上报、配置管理、熔断降级、热加载、日志管理等;
03. 业务层:IAST、SCA、RASP、敏感信息链路追踪、API分析、热补丁等安全能力;
04. 分析层:将业务层获取的数据进行统一分析,包括词法/语法分析、规则、检测模型、聚合联动、污点分析等。
基础层
代码疫苗需要依靠插桩技术,而插桩的实现和具体编程语言的机制相关,共分为两大类:一类是针对有运行时环境的语音如Java、Python、PHP等,可以在启动/运行阶段,通过runtime扩展、修改字节码/IL等来动态植入;另一类是针对编译运行的语言如Golang、C/C++等,可以劫持编译阶段,通过修改编译过程的AST、源代码等进行静态植入。
业务层
基于插桩,代码疫苗技术能提供业务层所涵盖的安全能力,其中包括:
1)IAST(交互式应用安全测试):分为被动模式和主动模式。主流的被动模式IAST是基于动态污点追踪技术实现,优点是秒级上报漏洞、无脏数据、可检测加密接口等;主动模式IAST基于交互式缺陷定位技术,需要配合扫描端进行流量重放即分析扫描端发送的payload是否进入关键流程中,其优势是检测精度更高。往往两者是结合起来使用,被动模式主要用来实现面覆盖,主动模式主要用来支持被动模式进行漏洞验证。
2)RASP(运行时应用自保护):同样是基于统一的插桩能力实现,在运行时的应用内部进行攻击检测和拦截。IAST可以定位漏洞点具体的源代码位置、行数,而RASP是可以定位攻击触发的函数调用栈以及实现攻击溯源,同时将基于真实攻击事件生成的数据集成到SIEM(安全、信息和事件管理)平台或自研风险度量平台,进而在安全运营环节进行统一的分析。
3)SCA(软件成分分析):依赖插桩技术的主要是运行时SCA。基于运行时SCA技术,可以审查和监控应用系统实际运行过程中动态加载的第三方开源组件及依赖,在此基础上实时检测组件中潜藏的各类安全漏洞及开源协议风险。此外,通过代码疫苗的Agent插桩,可以分析软件成分,构建软件物料清单SBOM,对线上应用资产进行梳理。
4)API:应用间存在许多微服务节点,彼此通过API关联。微服务场景下的漏洞检测,除了关注某一节点的漏洞风险外,还需要审查与该节点关联的其他节点上的风险,因而需要通过Agent将漏洞检测与链路追踪相结合,即通过代码疫苗实现API资产梳理(暴露面、风险分析)、API链路调用威胁阻断以及OWASP API TOP10(权限控制、注入等)风险管控等。
5)敏感数据追踪检测:与微服务链路追踪类似,对于敏感数据,既要关注某一个点的数据泄露问题,也要对泄露路径进行溯源。
6)应用漏洞热修复技术:应用上线阶段,当漏洞爆发时,可以借助RASP提供的热修复能力即虚拟补丁,通过配置对攻击进行拦截阻断。一般分为两个场景,针对高危组件漏洞,通过禁用风险函数进行修复;针对应用代码风险,通过添加参数白名单来修复或者加固业务。
代码疫苗技术由于需要插桩,与业务高度耦合,所以在实际部署时会遇到多种挑战,对此,悬镜安全的技术研发团队针对性地提供了解决方案。
在部署与对接方面,由于用户的应用运行环境不同,充分考虑了技术的兼容性:
1)针对容器及K8S环境,可通过修改Dockerfile、动态热部署以及K8S实例动态监控来进行探针插桩;
2)针对自研流水线,可通过应用、节点、版本控制灵活实现与各类自研流水线的关联;
3)针对商业版本的DevOps平台,提供插件或者专门的支持对接。
在业务保障方面,代码疫苗技术具有以下显著优势:
1)熔断降级机制,基于CPU、内存、QPS、GC等多种性能参数,决定是否降级或者卸载Agent;
2)技术叠加:统一的Agent技术,累计插桩300万+的应用;
3)框架兼容:兼容支持各种语言对应的中间件、框架及第三方Agent,包含大小版本判断;
4)多模式切换:轻量化探针,支持模块化能力的切换。
代码疫苗技术的实践场景主要包含以下四类。
第一类场景是DevOps检测防护一体化。由于探针是轻量级的,可以随流水线一同上线发布,故而在开发和测试环节,可以利用IAST进行漏洞检测,在上线后则可以开启RASP进行漏洞防护,以实现全流程的检测防护一体化,使DevOps的效率更高。
第二类场景是红蓝对抗。在这一场景下,RASP充当的是高级漏洞攻击防护工具的角色。目前红蓝对抗中会更多地应用0day、1day或一些未公开的EXP进行攻防。这对于传统的流量手段而言是难以防护的,而RASP则有能力去应对。
第三类场景是突发漏洞的应急。RASP能够提供针对基于行为与调用栈位置威胁的检测。这可以在一定程度上缓解0day或1day攻击,为漏洞修复争取时间。也可以利用RASP提供的热补丁功能,通过一些简单配置,针对第一波漏洞攻击进行防护。
第四类场景是应用上线自免疫。在容器化的环境之中,可以将探针和应用进行打包,使应用在上线之后能够自带攻击防护效果。
随着过去十年云原生、微服务等新技术和软件开源趋势的出现,产业界不断孕育出诸如敏捷开发、DevOps及NoOps等全新的IT实践。在这些全新的敏捷实践中,新功能被不断快速开发出来并集成到研发的软件上。诸如功能测试、安全测试等流程也通过新技术、新工具实现了自动化,使企业在持续开发、持续集成、持续部署的情形下仍能保持研发效能与应用安全。
尽管DevOps提升了软件开发及运营效能,改变了传统的开发运营模式,但是也引入了新的问题。现有安全保障方法越来越无力匹配软件发布的速度。DevSecOps敏捷安全应运而生,它通过一套全新的敏捷安全实践框架及配套技术工具链将安全能力完整嵌入到整个DevOps体系,在保证业务研发效能的同时又能够实现敏捷安全共生生和自成长。传统的外挂式安全管理方式既无法深入理解数字化业务情境也无法敏捷地提供配套安全保障。而DevSecOps主张将安全性要素融入到CI/CD流水线,重塑企业组织的文化、流程、技术和度量体系,帮助企业在数字化转型过程中逐步构筑一套适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的共生敏捷安全体系,而代码疫苗作为DevSecOps敏捷安全核心技术之一,已然成为体系建立的关键抓手。
悬镜AI(北京安普诺信息技术有限公司)由北京大学白帽黑客团队"Xmirror"主导创立。公司力求以人工智能技术赋能信息安全,在公司研发的产品中,深度结合机器学习、红蓝对抗、攻击链模型等技术,为企事业单位提供前沿高效的DevSecOps全流程AI安全管家服务。