作者
上海银行金融科技部 许思中 罗喆帅
数字化时代,随着数字化转型的深入推进和互联网金融的快速发展,银行应用系统规模不断扩大,用户对于便捷的电子银行服务的需求也不断提高,同时,应用系统的安全问题日益凸显。越来越多的安全攻击事件不断威胁银行的信息资产和客户隐私安全,移动银行、网上银行、支付接口等多样化的应用形式给恶意攻击者带来了更多的攻击突破口。此外,近年来内存后门、零日漏洞等高级威胁的兴起,对银行业的应用系统安全防护提出了更高的要求。
一、传统应用安全防护面临的挑战
通常情况下,银行基于传统应用安全防护理念对应用系统进行漏洞管理和修补,并部署边界防御系统,如防火墙、入侵防御系统(IDS)、Web应用防火墙(WAF)、抗拒绝服务攻击(DDos)等安全产品,将应用系统与外部网络进行隔离,通过设置访问控制规则和过滤策略来限制相关人员对应用系统的访问和数据传输。边界防御主要关注网络层和传输层的安全,以保护应用系统免受外部攻击。
随着应用技术架构的变化,以及微服务、容器等技术的不断引入,银行应用系统逐渐从整体向模块化过渡。传统的安全措施越来越难以产生实际效果,容易被攻击者绕过或规避,防御关键点很难部署到应用内部。同时,由于缺乏实时监测手段,一旦受到攻击,安全团队需要大量时间来定位具体的应用并采取适合该应用特点的措施,从而增加银行应用的恢复成本。应用系统传统防御体系面临的挑战如下。
1.零日漏洞攻击
传统应用安全防护主要依赖于漏洞管理和特征检测,但对于尚未被公开披露的零日漏洞,传统防护手段无法对其进行识别和阻止。
2.高级持续性威胁(APTs)
APTs通常采用隐蔽的攻击方式,长期潜伏在目标系统中,绕过传统防护措施对应用系统进行渗透和控制,传统手段往往无法有效检测和防御。
3.欺骗攻击和社会工程
传统应用安全防护主要关注技术层面的防护,而忽视了攻击者利用社会工程和欺骗攻击的方式入侵的可能性,如钓鱼邮件等。
4.人为失误
传统防护手段往往忽视人为因素对应用安全的影响。用户的安全意识和行为习惯对应用安全至关重要,但传统防护手段无法解决人为失误和疏忽带来的安全问题,如密码泄露、弱密码等。
二、RASP技术概述
实时应用自我防护(Runtime Application Self-Protection,RASP)是一种新兴的应用安全技术,旨在保护应用系统免受攻击,并可实时检测和防范安全漏洞威胁。RASP被嵌入应用系统或应用系统运行环境中,可实时监控和分析应用系统的行为,并主动对潜在的安全威胁进行拦截和阻断,如同在应用系统中安装了摄像头,实时检测应用系统的一举一动。
RASP是一种基于服务器的安全技术,应用系统一旦运行就会被激活。所有RASP技术都包含运行时监视器,该监视器接收带有关联数据的连续事件流。每个RASP系统都可以交叉检查事件和相关数据,以确保只有被允许的事件才能执行。
1.RASP技术的优势
相较于传统应用安全防护技术,RASP技术具有以下优势。
(1)实时监控
RASP技术能够在应用系统运行时持续监控应用的行为和交互情况,包括输入输出、数据库访问、网络通信等。
(2)上下文感知
RASP技术能够了解应用系统的上下文环境,包括用户会话信息、请求参数、应用配置等,从而更准确地识别异常行为和潜在的安全风险。
(3)安全策略执行
RASP技术能够根据预定义的安全策略对应用系统的行为进行实时评估和操作,如阻止恶意请求、拦截攻击代码等。
(4)可见性
RASP技术能够提供详细的安全事件日志和报告,帮助开发人员和安全团队更好地了解应用系统的安全状况和潜在风险。
(5)低误报率
相比传统的基于规则的安全防御技术,RASP技术通过上下文感知和行为分析,能够减少误报和虚警,从而为应用系统提供更可靠的安全保护。
(6)集成性
RASP技术可以与应用系统无缝集成,不依赖外部设备或网络,避免了传统防御技术的网络延迟和依赖性问题。
由于RASP技术的运行模式具有一定的入侵性,因此建议金融机构将其先行部署在测试、办公等应用系统中,同时,综合考虑其性能、防护能力、易用性以及与其他安全工具的集成能力。此外,应充分重视RASP技术与Java开发工具包(Java Development Kit,JDK)的冲突隐患,当前RASP技术的主流应用是针对Java开发的应用系统,对JDK版本有一定的依赖,因此,在部署RASP技术之前应对JDK版本进行充分测试。
2.RASP技术的实现方案
RASP技术可以通过静态安装和动态注入两种方案来实现应用系统运行时的自我保护力。
(1)静态安装方案
静态安装是指在应用系统部署或构建阶段,将RASP的保护组件静态地集成到应用系统的可执行文件或库中,其实现方法如下。
一是选取合适的集成方式。根据应用系统的类型和构建方式选择适合的集成方式,如源代码修改、编译时插桩、二进制修改等。
二是插入RASP代码。将RASP的保护代码嵌入应用系统的源代码或二进制文件中,通常是在关键函数调用或代码路径上插入RASP代码片段。
三是编译和构建。确保RASP代码与应用系统的其他部分正确编译和构建,以生成包含RASP保护组件的可执行文件或库。
四是运行时保护。在应用系统运行时,RASP保护组件会被加载和执行,通过监控应用系统的行为和执行流程,实时检测和阻止异常行为。
在静态安装方案中,由于RASP组件在编译或构建阶段就已经集成到应用系统中,因此应用系统在运行时不需要额外注入和加载操作,对应用系统的性能影响较小,但是会对应用系统的源代码或可执行文件进行修改和重新编译,这将提高RASP组件构建过程的复杂性。
(2)动态注入方案
动态注入是指在应用系统运行时,将RASP的保护组件动态地注入应用系统的进程中,以监控和控制应用系统的行为,其实现方法如下。
一是选择注入点。确定在应用系统的哪个位置进行注入,通常是选择一些关键的函数调用或代码路径。
二是注入RASP组件。将RASP的保护组件(如代码片段或动态链接库)注入应用系统的内存空间中,使其与应用系统共享相同的地址空间。
三是链接和执行。确保RASP组件与应用系统的其他部分正确链接,并在注入后执行RASP组件的初始化操作。
四是监控和控制。RASP组件可以通过应用系统提供的API或修改内存中的代码来监控应用系统的执行流程、输入和输出,并根据定义的安全策略进行检测和阻止异常行为。
动态注入需要在应用系统运行时修改内存空间,因此需要拥有足够的系统权限。由于不同的操作系统和编程语言对动态注入的支持程度不同,实现跨平台和跨语言的动态注入可能会面临一些挑战,例如Windows依赖特定的API或工具进行动态注入,还涉及UAC用户账户控制等问题。
三、RASP技术在金融行业的应用场景
在金融行业,RASP技术可以适用于多种不同的应用场景。
1.Web应用安全增强
RASP技术可以保护金融机构Web应用免受常见的攻击,如SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)等。它可以实时监测和阻止恶意行为,并提供详细的日志和报告,以迅速识别和应对安全事件。
2.客户隐私及敏感数据保护
金融行业需要严格遵守合规要求,包括个人数据保护和隐私保护等要求。RASP技术可以监控应用系统的行为,及时检测并阻止可能导致数据泄露或违反隐私法规的操作。同时,它可以提供实时的应用系统自我保护功能,以确保客户敏感数据的安全。
3.移动App防护
目前,移动App是金融机构非常重要的入口,伴随着移动银行和支付应用的普及,攻击者也越来越关注移动App的安全漏洞。RASP技术可以为移动App提供全面的防护,包括安全认证、应用加密和运行时异常检测等。
4.API安全保护
金融行业普遍采用微服务技术架构进行系统解耦,这样的演变使应用系统之间的交互和数据共享越来越频繁,API安全成为一个重要的问题。RASP技术可以监控应用系统中的API调用,防止恶意使用或滥用API接口,确保数据的安全性和完整性。
5.云环境安全
目前,金融机构大多处在数字化转型上云过程中,有的机构本身也提供云基础设施服务。在云环境中,应用系统和数据的责任方发生了变化,导致安全风险也相应增加。RASP技术可适配虚拟机、容器、K8s等多种环境,为云应用提供实时保护,检测和阻止潜在的攻击,同时提供可视化的安全监控和分析。
6.事后安全审计和监控
金融机构需要对应用系统的安全事件进行审计和监控,以满足合规性要求和安全标准。RASP技术可以提供详细的运行时安全事件日志和报告,帮助金融机构进行安全审计,分析潜在的安全问题,并采取相应的措施。
综上所述,RASP技术作为一种在应用系统运行时可对其进行实时保护的技术,在金融行业具有广泛的应用潜力,可以在不同的应用场景中提高应用系统的安全性,保护敏感数据,并提供实时的安全报告。
四、上海银行应用RASP技术实践效果
上海银行应用系统的试点验证表明,RASP技术的性能损耗不会对业务造成影响,同时还可以带来多方面的安全能力提升。因此,在攻防实战行动之前,上海银行就着手对一些非核心业务中容易遭到攻击的集权系统,如办公流程平台、移动办公门户、综合办公、移动OA、视频会议、云文档、人力资源、财务等系统进行RASP能力部署,并插桩了RAPS检测能力。在试运行一段时间后,经过不断调整配置参数、优化检测策略、消除告警噪音,将RASP调校到最优状态,在对内存后门、SQL注入、XSS、代码注入的实时攻击检测和防御,0day漏洞预警与防护,应用弱密码识别,一键响应与修复,安全事件监控和分析等方面都取得了不错的实践效果。
本文刊于《中国金融电脑》2024年第5期
声明:本文来自中国金融电脑,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。