热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我教同事如何跟相亲对象解释什么是RASP

 作者:阿里安全工程师简柏不久前,我一个同事去相亲,这种事情你们懂的,介绍完年龄工作后,就是谈谈兴趣爱好。我同事的相亲对象有些不一样,在聊完工作后,话题居然没有转向兴趣爱好,而是想详细了解下同事的工作

 

作者:阿里安全工程师简柏

不久前,我一个同事去相亲,这种事情你们懂的,介绍完年龄工作后,就是谈谈兴趣爱好。我同事的相亲对象有些不一样,在聊完工作后,话题居然没有转向兴趣爱好,而是想详细了解下同事的工作到底是做什么。“要不是她真的表现得很小白,差点以为是猎头。”同事说。

“我是搞安全的。”

“嗯,网络安全,知道,大企业有自己的安全部门。”

嘿,这姑娘懂得不少,同事小伙很少碰见能交流工作的。于是,他开始自信地介绍自己是做“RASP”的。

“RASP是什么?”姑娘有点懵圈了。

“这样说吧,RASP就是今天你可能不小心摔了一跤,摔伤了腿,但我还要拉着你工作,然后回家你该拖地拖地,该洗碗洗碗,该干的活一样不少,仿佛跟没摔伤一样,我们就是帮应用做这类安全产品的,你懂吧……”

同事话还没说完,姑娘白了他一眼就跑了……

我教育了一顿同事,你怎么能这么说呢,要是我,我就从开源软件有很多漏洞开始说起。不久前,媒体报道开源软件Nagios软件中包含13个漏洞,极有可能被恶意利用,攻击者可以靠此劫持基础设施。

最近,国内安全厂商也发布相关软件供应链安全分析报告,称“国内企业软件项目100%使用了开源软件,超8成软件项目存在已知高危开源软件漏洞,平均每个软件项目存在66个已知开源软件漏洞。”

安全行业数据显示:每天至少会有数千个开源软件漏洞被公开,应用研发人员需要频繁升级版本才能降低应用被漏洞利用的风险。每当业界出现了新的安全漏洞后, 大家第一反应就是尽快进行漏洞修复,而披露的漏洞愈发不止, 每一次修复对技术团队和安全同学来说都苦不堪言。事实上,技术团队对于这套不断出现问题,再响应问题的的安全处置流程感到非常被动, 非常希望能有一个更好的方案, “一劳永逸”地解决问题。

运行时应用自防护产品RASP具备在无需应用变更(修改代码、升级组件版本、发布…)的情况下,即时止血新披露出的安全漏洞。它像疫苗一样注入到应用程序中,根据应用运行时上下文识别攻击,具备对于未知攻击(0day、-1day)的防护能力,使应用自身免疫攻击行为。可以大幅降低研发团队对安全的成本投入。

这就是典型的工具选得好,漏洞可能就追不上我。

认识一下RASP

RASP,全称 Runtime Application Self-Protection,是一种在运行时检测应用程序攻击并进行自我保护的安全产品。Gartner 在2014年应⽤安全报告里将 RASP列为应用安全领域的关键趋势。

RSAP将自身注⼊到应⽤程序中,与应用程序融为一体。通过Hook少量关键函数,实时观测程序运行期间的内部情况。当应用出现可疑行为时,RASP根据当前上下文环境精准识别攻击事件,并给予实时阻断。相对于常见的基于流量规则的WAF产品,得益于身处程序内部,RASP可以拿到完整的、无花式编码的攻击数据, 这带来了更低的误报率及漏报率。在产出的报警上, RASP可以清晰的还原出代码行级别的攻击路径。同时对于东西向流量的覆盖, RASP有力的补充了WAF边界防护的不足。

不过,RASP的理念再好,如果不能和企业自身情况结合,那么也是“不好用”的。

接下来,我将要向大家分享的是阿里安全从甲方企业的角度出发,构建企业级RASP的技术思路,希望可以给其他有相关需求的甲方企业带来一些建设思路,对安全公司而言,也会为其打造更符合用户需求的RASP产品提供借鉴。

阿里安全的RASP建设之路


  1. JAM的简单引荐

在2015年底, 阿里安全就已完成了JAM的初版Demo,2016年产品化完成落地日常全量部署。历经多次技术方案迭代,当前的架构如下:

JAM的整体架构包括3个部分: 客户端引擎、云端日志&分析、控制面板。

核心引擎包括Agent、Daemon两个部分, 基于字节码织入技术, 运行时Hook安全关注的敏感函数(如命令执行、DNS访问…)。内置高性能规则引擎, 应用内每一次的敏感行为都将经过上千条专家规则的检测, 对rt的影响控制在0.5毫秒内。

云端分析引擎负责处理客户端引擎上报的海量日志, 主要为拦截日志和风险行为日志。拦截日志为准确识别的攻击日志,用于攻击感知, 亦可分析攻击手法甚至使用的0day。风险行为日志通过机器学习算法做异常检测分析, 避免漏网之鱼,同时刻画应用行为基线。

控制面板支撑运营部署、策略下发、设备管理、数据大盘等场景。


  1. 核心优势带来的拦路虎

身处应用内部给RASP带来了众多核心优势。JAM通过JavaAgent技术将自身注入业务进程实现安全防护, 这样的技术栈决定了它存在高度的稳定性风险。稍有不慎即可影响到应用正常运行, 带来业务风险。

其一是对应用的资源占用、性能影响风险, JAM采用分体式架构, 将非必要进入业务进程的逻辑单独抽取成出独立Daemon进程,最小化对业务的侵入及资源占用, 提高可用性及稳定性。Agent身处应用内部,与应用共用计算资源,高性能成为一个基础的技术要求。通过高性能字节码编织技术ASM、上下文环境识别过滤大量已知安全事件、细分场景最小化控制对计算资源的占用、规避正则自实现模式匹配来降低其对应用进程的性能影响。当前部署JAM前后性能差异为: cpu + ~1%、mem + <100m、rt + <0.5ms, 处于业界领先水平。

其二是与部署应用技术栈的兼容性风险,阿里内部有数万个在线应用, 由于业务形态的差异存在着各式各样的框架、插件、JDK,每一种技术组件还拥有众多版本。在这个规模下期望通过测试覆盖100%的情况是不切实际的, 但业务的可用性又必须保障万无一失。为此我们在提高测试覆盖的同时, 于产品能力上构建一系列保障措施: 应用评估分级、完善的部署灰度流程、快速降级机制等,具体如产品上限制必须在应用预发环境灰度足够长的时间后才可部署线上环境。


  1. 应用自身的攻击免疫系统

在解决了拦路虎之后, JAM得以充分发挥自身力量, 为构建企业纵深防御添砖加瓦。JAM于应用内部构建三道安全防线: 已知漏洞(行为)黑名单防护、异常检测灰名单防护、应用行为白名单防护,为应用量身打造攻击免疫系统。

应用运行期间的每一次敏感行为都将经过数名安全专家持续沉淀出的上千条专家规则的检测, 一旦命中到恶意特征, 即会在触发调用时被实时拦截。

除已知漏洞的防护外, JAM还会对可疑的风险行为保持关注, 进行进一步评估, 如应用突然访问了一个罕见的域名。JAM每日收集到百亿级别应用行为日志(部署规模较大), 通过大数据平台结合机器学习算法训练异常检测模型,识别潜在风险,并反哺到专家规则,形成良性循环。

JAM收集到的应用行为日志除了做异常检测之外,同时也将按应用粒度归类, 并通过归一化算法刻画出应用行为画像。即给定一个应用, 可知其正常运行会执行哪些命令,访问哪些文件,哪些网络, 甚至包括Http Header粒度的分析, 如应用历史上响应过302 Location清单。在刻画出应用画像后, 便已抽象出应用的逻辑沙箱。配合JAM的实时函数检测拦截能力, 形成不可复制的高水位防护能力: 应用行为白名单防护。


  1. 构建RASP+

在捕获到攻击事件后, 溯源是一个重要的事情。

它是怎么进来的? 是通过哪个漏洞利用进来的?

它是从哪里进来的? 从南北向哪个Http接口进来的?从东西向哪个RPC进来的?请求报文是什么?

JAM通过Hook应用各个访问入口出口(HTTP、RPC、MQ、DB…), 追踪事件轨迹。当攻击事件被捕获时, 事件内容将自动填充关联的入口Http、RPC报文、执行攻击时的payload、堆栈等上下文信息, 联动阿里其他安全技术产品, 提供到安全专家应用内、应用间全链路的攻击可视化能力,为溯源提供有力支持。

在保护应用的同时, RASP自身的安全也很重要。RASP的安全策略仍然一定程度上于依赖信息不对称, 如何保障策略在传输过程、运行时不被恶意窃取分析是一个重要问题。JAM基于阿里集团自研“白盒密码”技术认证RASP部署环境、全链路加密策略内容,保障安全策略可靠下发。

在安全事件频发的今天, 不断有新的漏洞爆发出来。RASP可以通过轻松的更新一条拦截策略即做到紧急止血,避免技术同学短时间内进行紧急升级, 将一次新披露漏洞的应急时间从数天缩短到数分钟, 在保障安全风险的同时大幅提高企业人效。即时面对0day攻击, 也能够化被动成主动,做到从容不迫。

传统的网络安全架构基于网络边界防护,企业在构建防护体系时, 通过在边界上部署防火墙、WAF等安全产品进行重重防护,内网的安全往往相形见绌。RASP在不仅服务于南北向流量风险,亦可以防护东西向流量,提高内网安全水位。

所以,你们听懂了吗?

你们觉得这样介绍,同事的相亲对象还会跑路吗?


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Elasticsearch1Elasticsearch入门1.1Elasticsearch术语1.1.16.0以前的Elasticsearch术语1.1.26.0以后的Elasti ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 转自:微点阅读(www.weidianyuedu.com)微点阅读-范文大全-免费学习知识的网站电脑唯独搜不到自己家wifi,别人家的都能搜到,手机也可以搜到自己家的,就是电脑不可 ... [详细]
author-avatar
东cz莞痴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有