在早期需求分析阶段开展安全左移可从以下几方面着手:
研究项目相关的法律法规、行业标准和监管要求。例如,金融类软件需遵循巴塞尔协议等金融监管规定;医疗软件要符合HIPAA(美国健康保险流通与责任法案)等隐私和安全法规。明确这些要求中的安全相关部分,将其转化为软件的安全需求。
与业务分析师、利益相关者合作,深入了解业务流程中的安全需求。比如,对于电商平台,要考虑用户支付安全、订单信息安全等业务场景下的安全需求。识别出防止欺诈、保护用户隐私等需求,像在用户注册登录时需要采用多因素认证来保障账户安全。
确定软件系统中的各类资产,包括数据资产(如用户信息、交易数据等)、系统资源(如服务器、网络设备等)。例如,在一个社交网络应用中,用户的个人资料、好友关系等都是重要的资产。
基于资产和业务流程,识别可能面临的威胁。如对于在线支付系统,可能存在黑客攻击窃取支付信息、恶意软件篡改交易金额等威胁。可以采用STRIDE(Spoofing身份欺骗、Tampering篡改、Repudiation抵赖、Information Disclosure信息泄露、Denial of Service拒绝服务、Elevation of Privilege权限提升)模型等方法进行威胁识别。
分析系统可能存在的脆弱性,即威胁可能利用的弱点。例如,新开发的功能模块可能存在代码漏洞,或者系统配置不当可能被攻击者利用。通过分析业务流程、技术架构等方面来找出这些脆弱性。
根据威胁建模和安全需求识别的结果,设定具体的功能性安全目标。例如,确保用户登录时的身份验证具有足够的强度,防止暴力破解;数据在传输过程中采用加密技术,保证数据的保密性和完整性。
确定非功能性的安全目标,如系统的可用性要求,即使在遭受一定程度的攻击时,也要保证系统能够正常运行;还有可扩展性方面的安全要求,随着业务的发展,安全机制能够方便地进行扩展和升级。