freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

RASP安装部署不再繁琐,轻松获得应用自免疫能力
xuing 2022-06-24 17:28:16 199079
所属地 四川省

前言

目前RASP类的产品,如雨后春笋般涌现出来。

RASP如同为应用程序注射疫苗般,为应用程序自身增加应对攻击/漏洞的免疫能力。

RASP中的防护代码也得益于可以站在程序内部对行为进行监控和拦截,使得其有着明显的高检出、低误报的特性。对于加密请求、混淆绕过的攻击检测也有得天独厚的优势。

WAF与RASP的对比区别
image.png

RASP的相关技术原理、特性,包括检测技术的分享已经有很多师傅分享过了,这里想介绍一个RASP在使用时常遇到的一个痛点:安装部署

万事开头难,而RASP的安装部署可能是阻碍很多师傅尝试使用的第一个拦路虎。

目前想要部署RASP虽然已经有大量的文章介绍,但仍是一个技术活,首先要懂得如何通过k8s、Docker-Compose之类的容器工具部署管理后端。
为了部署Agent探针,接下来又要简单了解JavaAgent、php扩展等相关技术。
最后再对中间件的启动脚本、环境变量亦或者是dockerFile进行二次修改。
等到卸载时又是同样的操作。


如此繁琐的过程中,还要时刻小心不能影响到业务线的正常运行,如果在重启应用程序时,发生错误,
难免手忙脚乱,身心俱疲。

再者,有时只是想简单的检验一下RASP的能力、或者仅仅是某个特殊的时间段,开启RASP,作为安全能力的兜底。此时降低安装部署成本就更为必要了。

此时,不免就想通过一些工具、策略将上述过程更加透明更加易用,使得更多安全从业者、普通程序员、运维等能将RASP这项"新技术"利用起来。这也就是本文想介绍的一种降低安装部署RASP成本的方式。

管理后端-SaaS化

SaaS(Software-as-a-Service),软件即服务。其实笔者对SaaS产品的理解也很浅薄,在我看来简而言之,就是通过统一的SSO登录,在云环境下使用产品。而无需考虑自行部署、维护硬件资源等繁杂事项。

笔者参与开发的应用威胁自免疫(AntiyRASP)就是采取的此种方式,AntiyRASP的管理后端以多租户架构提供SaaS化服务平台的。当用户想要使用AntiyRASP产品时,只需要在安天垂直响应平台(vs.antiy.cn)上登录、免费申请,即可开通对应的服务。

随后平台会自动分配相应的计算资源,用户可以访问自己的管理后端了。

PS:针对跨租户的数据安全性,会依据具体需要,会通过分字段、分表甚至分库的方式来隔离数据。这一块的安全性还是很有保障的,无须担心。

image.png

更进一步,管理后端支持用户与租户的多对多关系,以及进一步的管理员与审计员的权限划分。方便安服师傅、安全专家等在云端为企业排查处理安全告警等。

每个租户下又可以创建多个应用,每个应用可以对应多个微服务,方便应对复杂的真实场景。这里不是本文重点,就不过多赘述。

Agent-一键部署脚本

解决了管理端的部署问题,但RASP毕竟是一个要和实际业务应用绑定到一起的。不免涉及到Agent探针的安装、注入问题。

针对JAVA语言的agent注入问题,JVM已经提供了比较好的解决方案,即通过Attach API 远程加载 Java agent。可以在应用不重启的情况下,将JavaAgent注入到应用程序中。

但即使是上述所说的方法,还是需要下载相关jar包,解压,并保证环境中有JDK环境,再通过jps等命令获取当前运行jvm虚拟机的PID进程号。然后再通过命令行进行注入...整体来说,其实也没有简单很多。如果是批量的注入,或者是重启后重复注入等需求就显得更加繁琐了。

所以在AntiyRASP这里,我们想更进一步的去简化这个注入步骤。我们采取的方式如下:
image.png

  1. 在需要被保护的主机中运行一键安装脚本

  2. 填入鉴权用的Access_Token

  3. 选择需要保护的进程或容器。将进行自动注入。

只需要三步,就可以完成业务程序的RASP注入。

注入原理

一键安装脚本,会自动下载运行AntiyRASP安装帮助程序,并注册为system daemon

接下来通过AccessToken鉴权,并使用wss协议将主机中可以被注入的应用程序列表和当前运行的容器列表,发送至管理后台。

后续,用户就可以在管理后台选择要保护的应用。安装帮助程序会自动将RASP注入到进程/容器中。并且在即使下次业务进程/容器重启,也会进行注入。

image.png

后续即使需要更为复杂的注入策略,通过安装帮助程序的协助也可以很方便的实现。毕竟我们的产品也是在快速迭代当中。

Kubernetes

除此之外,针对Kubernetes应用,我们也增加了相当便捷的接入方式。
image.png

  1. 管理后端会生成rasp-daemonset.yml,其中包含AccessToken。通过kubectl apply命令,将AntiyRASP安装帮助程序注册为一个DaemonSet。

  2. 接下来只需要为被防护的应用,添加一个Label标签。DaemonSet程序就会自动将AntiyRASP注入到容器当中。

热更新能力

AntiyRASP同样具备算法策略下发、引擎热更新的能力。

得益与SaaS化平台的优势,Agent的版本管理变得非常简单,版本管理菜单中将列出目前可用的各个版本,只需要推送操作。企业下的所有应用都会将该版本设置为默认版本,并执行版本更新操作,且不影响业务的正常运行。

image.png

引擎智能下发

RASP引擎其实自身也会存在陈旧依赖的问题,以JAVA为例,低版本的JDK编译出来的引擎Jar包,业务应用程序一般都是可以兼容的,兼容性也是最佳的,但是如果RASP为了能在低版本的应用中编译,就需要使用一些老旧的依赖库,甚至引入一些安全问题/性能问题。

AntiyRASP为了解决这样的问题,引擎被编译了多份,将依赖尽可能的升级到最新,以获得最新的功能/安全更新。然后会根据业务应用程序使用的JDK版本,选择适合版本进行下发,保证安全性与兼容性的共存。以目前来说,只要是JDK11的业务程序,就可以用到最新的依赖包了。

目前除了手动添加实例以外,这个引擎的选择过程在用户侧是完全透明的。

结语

如果各位师傅觉得这个部署过程还算简便,可以在垂直响应平台https://vs.antiy.cn/rasp申请试用AntiyRASP,一般都能获取到15天的免费使用。

我们非常希望能得到各位师傅的使用反馈与批评建议,以帮助我们能更快的进步。

# web安全 # 代码安全 # rasp # SaaS安全 # 运行时应用自我保护
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 xuing 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
xuing LV.3
这家伙太懒了,还未填写个人描述!
  • 3 文章数
  • 9 关注者
Apache中.htaccess文件利用的总结与新思路拓展
2019-11-15
Linux挖矿病毒的清除与分析
2019-04-15
文章目录