建立安全需求
业务需求对于开发应用程序的重要性尽人皆知,需求如果不明确或者有误,必然会导致后续的开发工作难以高效的进行,甚至会造成应用程序根本无法满足真实需求的风险。与此同时,应用程序不仅仅只有业务上的需求,还会有其他各种非功能性的需求,而安全性需求就是其中之一。因此,在正式开发应用程序之前,非常有必要把安全需求明确出来,这有助于识别出整个项目所面临的安全风险,尽早知晓尽早制定应对措施。
应当从下面这几个方面入手分析和建立安全需求:
- 需要承担什么安全义务?
应用程序需要遵守哪些法律规定?例如个人隐私保护相关的法律,知识产权保护相关的法律等等。需要符合哪些行业安全规范?例如PCI DSS、SOX等。是否有企业内部安全策略需要遵守?
- 需要保护哪些重要资产?
识别出哪些是值得保护的重要资产,可以让防御变得更加的有针对性。一些典型的重要资产是:业务数据、用户个人隐私数据、核心业务算法、知识产权、企业声誉等。
- 重大安全事故可能造成的后果是什么?
尽管我们不愿意看到安全事故的发生,但是在建立安全需求的时候,主动考虑最坏的情况依然是非常值得的。可以首先假设发生了重大安全事故,然后分析可能造成哪些方面的影响,并给予此建立相应的防御措施和应急预案。
- 可能的对手是谁?
知己知彼百战不殆,为了更全面的建立安全需求,达到更好的防御和保护效果,有必要弄清楚可能的对手是谁。一般而言,攻击的发起者可能是商业上的恶意竞争对手、黑客犯罪团伙、内部员工或合作伙伴等等。