安全攻防技能 30 讲
何为舟
前微博安全研发负责人
34681 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
开篇词 (1讲)
安全攻防技能 30 讲
15
15
1.0x
00:00/00:00
登录|注册

22 | RASP:写规则写得烦了?尝试一下更底层的IDS

思考题
RASP的其他功能
RASP的劣势
RASP的优势
RASP的原理
RASP
文章总结

该思维导图由 AI 生成,仅供参考

你好,我是何为舟。
在前面的课程中,我们已经介绍了防火墙、WAF 和入侵检测。这些产品都有一个共同的特性,就是基于网络请求或者系统行为对攻击的特征进行检测,然后再采取相应的防控手段。这些安全产品基本都和应用本身解耦。也就是说,基本上我们不需要对应用做任何开发和改动,就能够部署这些安全产品。
尽管解耦在部署上能够节省很大的成本,但解耦同样意味着,安全产品和应用本身是通过接口、请求等形式来进行数据交换的。换一句话说,安全产品只能够看到应用输入和输出的数据,并不知道数据在应用内的流动情况。因此,这种工作模式不可避免会产生一定的误判和漏报。
我们来看一个关于 WAF 检测 SQL 注入的例子。下面是请求代码:
http://server.com/login?username=test&password=" or ""="
WAF 可能会检测到 password 参数中的 SQL 注入痕迹进行拦截。如果应用采用的是安全的 PreparedStatement 方法,那这个 SQL 注入就不会生效,也就不需要拦截。但是 WAF 和应用解耦,让 WAF 不知道应用的逻辑,从而产生了误报。
所以,对于任何安全产品来说,能获取到的数据和信息越多,检测的能力就越强,误判和漏报的概率也就越低。因此,2012 年,Gartner 提出了 RASP(Runtime Application Self Protection)的概念,就是希望将安全产品部署在应用的底层,完全站在应用的视角去发现攻击行为,从而实现更加完善的安全防护。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

RASP与WAF的比较是本文的重点。RASP作为一种新的安全防护概念,能够更全面地监控应用的底层,从根本上发现攻击行为的产生。相比之下,RASP能够获取更多的数据和信息,提高检测能力,降低误判和漏报的概率。文章详细介绍了RASP的优势,包括对应用运行时上下文的了解、防范未知攻击的能力以及减少规则维护成本。然而,RASP的推广难度、解决方案的通用性和性能问题也是需要考虑的劣势。此外,RASP还具备额外的安全防护功能,如数据保护、虚拟补丁等。总的来说,RASP作为一种新兴的安全防护概念,具有很多优势,但在实际落地中还存在一些挑战。 RASP的功能确实能给应用的安全性带来一个质的提升。对比低耦合的WAF等安全产品,RASP的准确率、覆盖度都有较大优势。但是,正因为耦合度过高,RASP部署起来比较麻烦,实际推广落地的时候,经常出现开发人员不配合的情况。总的来说,推广的难度属于管理上的问题,需要你想办法说服开发人员。单纯从安全角度上来说,RASP是一款提升应用安全性的最佳安全产品。 另外,我认为在实际工作中,我们也可以将RASP和其他安全产品进行适当组合,以达到取长补短的目的。比如说,RASP推广比较难,我们可以只做局部的部署。这些局部的部署可以当作WAF的样本数据来源,只要RASP在底层发现了攻击行为,就将相应的表层特征输出到WAF。这样一来,我们就可以将RASP在局部上的防御能力拓展到整体的WAF上,从而实现全面的安全防护提升。 在这一讲中,我们只是以SQL注入为例,讲述了RASP是如何进行攻击检测的。对于其他的攻击方式,如反序列化漏洞、命令执行和SSRF等,RASP又该如何防护呢?你可以先学习一下OpenRASP的说明文档,之后再来思考这个问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《安全攻防技能 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • leslie
    提一下课中的内容:以及对于课程对于RASP的理解; 1.目前其实是暂时处于初期阶段,即我们所说的软件1.0,其后续的许多支持暂时并未出现 2.RASP目前最大的问题在于对于编程语言的支持力度不够,尤其分布式中用的最多的PYTHON和GO语言尚未支持 3.它的部署不是有Ops去做:开发团队本身就能力高低差异巨大,开发又恰恰是最不懂这块的人,各种不确定性就更加难以把控。 故而东西虽好,可是真正能用它有能力用好的人在实际团队中并不多;个人觉得初期用WAF与RASP同时分场景结合使用相对合适。这就如同现在的数据系统已经很少中大型团队用单一的关系型数据库解决一切问题,都是相互结合使用;可能当某天它的使用门槛降降低兼容性做的更好,2.0或3.0时再适当调整使用比例。 以上是我对于课程的一点见解:谢谢老师今天的分享。

    作者回复: 其实对于RASP的部署,各公司也都在试探和推广。不过单纯推动开发去作使用,确实难度比较大。一直在思考,随着CICD的发展等,是不是其实可以把RASP当成上线的一种标准,来强制部署。

    2020-02-07
    2
  • illman
    老师,是否可以用一个具体的例子(最好是Python代码段)来说说rasp是如何实现恶意行为识别的,这样更具象,更能引发思考。谢谢老师。

    作者回复: Rasp可以理解成通过获取底层逻辑,来判断程序应该做什么,不应该做什么。比如一段代码本来不会执行shell,但是执行了,那么就有问题。一个sql本来只有一个where条件,实际却出现了多个,那么就有问题。

    2021-01-03
    2
  • 半兽人
    开发人员的思路:“我负责解决SQL注入、XSS,对于中间件的漏洞,是运维人员负责的。”在这种情况下肯定没有动力去用RASP。除非DevOps真的推广开,开发人员发现运维工作太麻烦才会去动手改善。

    作者回复: 确实是流程规范很重要。当安全和运维,能够介入到应用的部署上线等流程中去,就会方便很多了。

    2020-03-23
  • 小老鼠
    RASP和WAF支持微服务吗?

    作者回复: WAF属于微服务的形式,RASP不支持。

    2020-02-26
  • 自然
    个人比较讨厌 waf rasp 一类的东西,这类东西部署后(经常在你不知道的情况下被部署),经常拦截或者做其他处理,任何信息都不报,让人无法定位故障(还以为是应用的问题,排查了半天)。
    2022-06-20
    1
  • 一键修复
    请问下老师,使用部署在K8S的微服务应用,推荐使用什么应用安全检测工具呢?WAF、RASP 或者是有其他建议?
    2021-01-20
  • 一键修复
    请问在微服务K8S部署环境下,有哪些比较推荐的应用检测或防护方案?
    2021-01-19
  • Devin
    【SELECT、 *、FROM、Users、WHER、Username、=、""、AND、Password、=、""、or、""、=、""】 应该是下面这样的? 【SELECT、 *、FROM、Users、WHER、Username、=、""、AND、Password、=、" "、or、" "、=、""】
    2020-07-11
  • COOK
    增长了见识,感谢老师!
    2020-03-26
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部