百度的Open-RASP将Gartner在年提出的RASP(Run-timeAp-pli-ca-tionSelf-Pro-tec-tion)安全防护技术进行了开源实现,使其迅速成为企业Web安全防护中的一个重要武器,有效增强防御体系纵深和对漏洞防护的适应能力。OpenRASP相较与传统WAF具有误报率低、高性能等优点。Django是Python实现的Web开发框架,最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。
本文介绍了OpenRASP和Django的一些基本内容,在搭建好OpenRASP测试实验环境的基础上编写官方测试用例的自动化漏洞验证脚本,最后通过Django快速开发报警接收Web应用。
二、OpenRASP和Django概述1.RASP(Run-timeAp-pli-ca-tionSelf-Pro-tec-tion)企业部署的应用程序通常在一个复杂且分散的环境中,包括有网络、操作系统和数据库。这样通常导致应用程序的安全体系结构碎片化,缺乏精确和可靠的安全路线图。开发运行时应用程序自我保护(RASP)的概念主要是为了解决开发人员面对威胁时所采用的特殊方法。
开发人员常常倾向于采用静态和传统的AppSec方法,而不是解决应用程序的设计缺陷,这些方法在面对复杂的安全威胁时往往会失败。这种完全不同的安全控制层常常成为应用程序、基础设施和安全层的多个组件的瓶颈,但随着RASP解决方案的出现,应用程序安全不再是对威胁的一种随意反应。RASP是应用程序安全生态系统中的一项创新,通过提供对隐藏的漏洞的更多可见性来处理运行时对软件应用层的攻击。它本质上是与应用程序或其运行时环境集成的安全软件,并不断拦截对应用程序的调用,以检查其安全性。RASP软件不会等待威胁影响应用程序。相反,它会在进入应用程序的流量中主动搜索恶意软件,防止欺诈性调用在应用程序内部执行。通过留在应用程序内,RASP解决方案中和已知的漏洞,并保护应用程序免受未知的0day攻击,无需任何人工干预。因此,RASP提供了一种与传统安全方法(如web应用程序防火墙(WAF))在概念上不同的安全范式,后者通过阻止所有可疑流量来保护应用程序。
RASP已经发展成为一种成熟的应用程序内安全概念,它允许开发者以多种方式对威胁进行防御。根据开发人员想要在应用程序或服务器中实现RASP安全层的方式,有四种方法可供选择:
(1).Servletfilters,SDKsandplugins
这种方法适用于监控和检查到达应用程序代码之前ApacheTomcat或其他Web服务器传入的HTTP请求和数据。
(2).Binaryinstrumentation
该方法适用于在应用程序中构建监视和控制元素,前者标识正在运行的应用程序中的安全事件,而后者记录此类事件的日志并阻止它们。
(3).JVMreplacement
此方法采用RASP层替换标准库(JAR或JVM(对于Java))来侦听对支持库的调用,并在调用被拦截时的应用规则。因此RASP对app代码库和系统调用路由框架有一个整体的了解,这使得RASP可以通过对应用调用的被动监控来了解机器行为和序列流。
(4).Virtualization
Virtualization,或者叫做containerizedruntimeprotection,它创建一个应用程序副本,并通过使用规则来控制应用程序该如何被保护,同时控制应用程序在副本上的运行时行为。RASP监视和学习应用程序代码路径、逻辑构造、参数化和生成的输出等,然后应用于应用程序请求。这种方法有助于区分清楚的请求和恶意请求,并允许采取适当的补救措施。
2.OpenRASPOpenRASP是百度安全推出的一款免费、开源的应用运行时自我保护产品。