对部署在云环境中的应用进行安全防护,主要分为安全开发、应用防火墙、渗透测试和安全众测等部分。
1.安全开发
在开发过程中,遵循安全开发生命周期进行开发应用,可有效提高应用的防御能力。传统的安全开发生命周期如下表所示。
阶段 |
具体内容 |
安全培训 |
·核心安全培训 |
安全要求 |
·确定安全要求 ·创建质量门/Bug栏 ·安全和隐私风险评估 |
开发设计 |
·确定设计要求 ·分析攻击面 ·威胁建模 |
开发实施 |
·使用批准的工具 ·弃用不安全的函数 ·静态分析 |
安全验证 |
·动态分析 ·模糊测试 ·攻击面评析 |
产品发布 |
·事件响应计划 ·最终安全评析 ·发布存档 |
时间响应 |
·执行事件响应计划 |
在安全开发生命周期的各阶段都有相应的安全任务。这些任务若没有完成,也就是说该阶段的安全问题或风险未解决,一旦不予解决并带给下一阶段,将最终带入生产环境。借助安全开发生命周期的流程保障,可保证不把问题、风险、缺陷带到下一阶段。
全开发生命周期在大型公司的产品开发中都有广泛应用,以阿里云为例,其安全云产品的开发生命周期主要包括:安全培训、需分设计、安全开发、安全测试和发布应急五个阶段。
2.Web应用防火墙
为了对应用的安全进行防护,我们还建议引入Wb应用防火墙来保证应用安全。但引入Web应用防火墙后,其本身可能带来的安全威胁也值得特别重视,如下表所示。
安全问题 |
具体内容 |
防数据泄露 |
防御OWASP常见威胁,包括SQL注入、核心文件非法访问、路径穿越等 |
网站隐身 |
隐藏网站真实地址、构造强大防御体系使攻击者无从绕过 |
阻拦恶意访问 |
针对恶意消耗资源的访问进行封禁,可对固定IP、地区等进行一键阻断 |
大数据威胁情报 |
构建恶意IP库、恶意样本库,0Day挖掘 |
自定义业务防护 |
针对HTTP常见头部字段组合防护策略,打造业务专属防护、如盗链、管理后台保护 |
0day漏洞补丁热修复 |
针对常见Web服务器、插件的漏洞、攻防团队定期及时更新防护规则 |
3.渗透测试
在应用上线前,对应用进行不以破坏为目的的渗透测试,可有效发现应用中存在的隐患与漏洞。
此外,渗透测试的过程并不是完全固定的。在此过程中,有经验的测试人员会根据实际测试情况随机应变,随时调整测试方案。
4.安全众测
在应用开发完成后,正式上线之前,进行安全众测可高效地发现应用漏洞。用户部署在云环境上的应用,可通过云服务提供商的安全众测服务进行安全检测。此外,用户可自己设定测试范围与奖励计划,云服务提供商由测试漏洞的效果进收费。用户还可以邀请可信任的第三方白帽子和安全公司参与测试。当检测出漏洞后,需审核并修复。待修复完成后,再复测该漏洞,保证应用的安全性。另外,进行安全众测还能定期对部署应用的用户提供安全报告。