安全|关于云原生应用,这些安全风险了解一下( 二 )


机密性受损的风险
典型的如信息泄露风险,攻击者可通过利用资产脆弱性和嗅探、暴力破解等攻击方式窃取用户隐私数据,从而造成信息泄露风险。
完整性受损的风险
典型的如未授权访问风险,攻击者可通过利用资产脆弱性和中间人攻击等行为绕过系统的认证授权机制,执行越权操作,从而造成未授权访问的风险。
可用性受损的风险
典型的如系统被拒绝服务的风险,一方面,攻击者可通过畸形报文、SYN泛洪等攻击方式为目标系统提供非正常服务,另一方面,系统供不应求的场景也会导致系统遭受拒绝服务风险。
本小节接下来的内容,将以信息泄露、未授权访问、拒绝服务为例,分别介绍上述三类风险。
3.1.1 数据泄露的风险
云原生环境中,虽然造成应用数据泄露风险的原因有很多,但都离不开以下几个因素:
应用漏洞:通过资产漏洞对应用数据进行窃取。
密钥不规范管理:通过不规范的密钥管理对应用数据进行窃取。
应用间通信未经加密:通过应用间通信未经加密的缺陷对传输中数据进行窃取,进而升级到对应用数据的窃取。
3.1.1.1 应用漏洞带来的风险
应用中存储的数据多是基于API进行访问,若应用中某API含有未授权访问漏洞,例如Redis未授权访问漏洞,攻击者便可利用此漏洞绕过Redis认证机制,访问到内部数据,进而导致了敏感信息泄露的风险。
传统单体应用架构下,由于API访问范围为用户到应用,攻击者只能看到外部进入至应用的流量,无法看到应用内部的流量,所以针对恶意使用API漏洞进行数据窃取造成的损失范围通常是有限的。
反观微服务化应用架构,当单体应用被拆分为若干个服务后,这些服务会根据业务情况进行相互访问,API访问范围变为服务到服务(Service to Service),若某服务因API漏洞导致攻击者有利可图,那么攻击者将会看到应用内部的流量,这无疑为攻击者提供了更多的攻击渠道,因而针对数据泄露的风险程度而言,微服务架构相比传统单体应用架构带来的风险更大。此外,随着服务数量达到一定规模,API数量将不断递增,进而扩大了攻击面,增大了数据泄露的风险。
3.1.1.2 密钥不规范管理带来的风险
在应用的开发过程中,开发者常疏于对密钥的管理从而导致数据泄露的风险,例如开发者将密钥信息、数据库连接密码等敏感信息硬编码在应用程序中,从而增大了诸如应用程序日志泄露、应用程序访问密钥泄露的风险。
传统单体应用架构中,开发者常将配置连同应用一起打包,当需要修改配置时,只需登录至服务端进行相应修改,再对应用进行重启便可实现,这种单个集中式配置文件的存储方式从密钥管理风险的角度上讲是相对可控的。
微服务应用架构中,应用的配置数量与服务数量的逐渐增多是成正比的,例如微服务应用中会存在各种服务、各种数据库访问、各种环境变量的配置,且各配置支持动态调整。同时,微服务应用架构对服务的配置管理也提出了更高的要求,例如代码与配置可分离、配置支持分布式、配置更新的实时性、配置可统一进行治理等,因而微服务下的配置管理更加复杂,对运维人员的要求更高,密钥管理的难度也在不断提升,最终会造成更大的数据泄露风险。
3.1.1.3 应用通信未经加密带来的风险
【 安全|关于云原生应用,这些安全风险了解一下】如果应用采用HTTP协议进行数据传输,那么HTTP页面的所有信息将都以纯文本形式进行传输,并且默认不提供任何加密措施。因而在数据传输过程中易被攻击者监听、截获和篡改,典型的攻击流程为攻击者通过Fiddler、Wireshark等抓包工具进行流量监听,截获传输的敏感信息(例如数据库密码、登录密码等),最后攻击者根据自身意图对敏感数据进行篡改并发送至服务端,进而导致数据泄露的风险。