当今竞争激烈的商业环境要求企业快速行动并保持创新 。因此 , 80%或更多的企业采用了敏捷开发方法 。不幸的是 , 这种更高的开发速度为网络犯罪分子带来了几个利用的机会 , 特别是在软件生命周期过程不安全的情况下 。
文章插图
那么 , 企业如何使敏捷开发实践更具安全性呢?以下是信息安全论坛推荐的10条原则:
定义角色和职责负责指导敏捷项目的高级领导必须明确定义安全活动的角色和责任,这包括建立正式和非正式的报告渠道,以及项目管理行动,如上报协议、强制性会议和向安保团队报告项目状态 。这将有助于将安全嵌入到灵活的应用程序开发中 , 同时促进承诺、责任以及业务IT和安全代表之间的建设性关系 。
投资于技能和培训安全是一项团队职责,每个开发人员都需要在确保代码没有安全漏洞方面发挥自己的作用 。开发人员通常缺乏对安全问题的知识和理解,他们倾向于将软件交付置于安全问题之上 。为了增强开发人员的能力,企业必须在指导和提高技能方面投入资源,这包括安全培训和认知课程、高级开发人员的指导、专门的敏捷安全培训活动 , 以及访问免费可用的资源,如OWASP、CWE、BSIMM(构建成熟模型中的安全)、SAFECode和CERT 。
应用信息风险管理流程从一开始就确保安全措施成本更低 , 效率更高,而不是事后事项 。领导层必须建立有助于在整个开发生命周期中管理信息风险的流程 。
这包括从安全角度商定高级别应用程序架构、确定“安全关键”应用程序和功能的列表、执行业务影响评估、在早期阶段进行信息风险和脆弱性评估,以及报告新确定的风险的流程 。领导层应该就谁拥有信息风险提供指导,定义审查风险的流程,并确定如何做出风险管理决策 。
使用开发人员的格式指定安全要求使用开发人员的格式(用户故事、软件需求规范、故事映射、线框、角色和用例)来阐明安全需求,以便开发人员能够更好地理解、定义和实现安全规范 。
这使得安全需求可以被视为产品待办事项中的功能需求,并将其转换为任务(也称为分解),将它们合并到需求管理工具中,并将它们包括在项目的生产力度量中 。
进行威胁建模定期进行威胁建模练习,以了解应用程序的安全环境,发现设计中不安全的方面,识别、分析威胁并确定威胁的优先顺序 , 发现用于攻击应用程序的最常见技术和方法(欺骗、篡改、拒绝服务、权限提升),确定哪些威胁需要额外的安全测试 , 最重要的是,制定策略和解决方案以主动缓解每个威胁 。
采用安全编程技术【敏捷开发中确保网络安全的十条原则】要求开发人员利用已建立的安全编程技术,例如重构、持续改进/持续开发(CI/CD)、同行评审、安全迭代和测试驱动开发 。
这改进了应用程序代码的非功能质量,并有助于消除允许利用安全漏洞的编程缺陷 。安全编程技术还有助于指导在安全方法方面缺乏经验的开发人员 , 使用AI或低代码/无代码等新技术,开发复杂应用程序的一个方面,集成第三方应用程序,或满足合规性要求 。
执行独立的安全审查让独立的审查者执行静态代码分析(审阅源代码,以分析应用程序代码中的错误、错误和漏洞)和动态分析(检查执行期间的应用程序行为 , 以确定异常或意外行为) 。这为利益相关者提供了应用程序满足安全要求且不包含任何安全漏洞的保证 。
自动执行安全测试对于安全团队来说,手动测试和评估每个敏捷迭代通常是不可行的,这就是有必要采用某种类型的自动化来持续检查应用程序代码的安全性以发现缺陷和漏洞的原因 , 确保安全相关任务一致且有条不紊地完成 , 分析安全事件,并减轻安全团队和开发人员的负担 。然而,一切都不可能是自动化的,自动化也不能完全取代人工测试,例如 , 一个人需要手动检查以确定逻辑缺陷 。
在验收标准中包括安全性创建、沟通和维护一套标准的安全验收标准,以确认已经执行了对应用程序代码的独立审查,已经完成了安全测试,合并到应用程序中的代码部分是可维护的、可跟踪的,并且来自经过验证的、信誉良好的来源,已经成功地满足了迭代积压的要求,已经解决了所有缺陷,包括安全漏洞,并且已经识别和批准了任何可能影响安全性的设计变更 。
推荐阅读
- 为什么在 C++14 中删除了 get 函数?
- 最长“拼假”17天!中秋国庆假期长线游升温,出境游产品天数拉长至12-13天
- 中国警车为何有的喷印“警察”,有的喷印“公安”?二者有何区别
- 蔡国庆被确诊,躺又躺不平,卷又卷不起!《披哥3》中的不老男神
- 外国人盗版的中国古代美食
- 42岁谢娜晒瑜伽照,空中一字马又美又飒,纤瘦身材不像三娃辣妈
- 羽生结弦成中国女婿?日媒曝其妻子父母或来自中国,母亲受访回应
- 凉风中最诱人的煲仔饭
- 雷蒙多访华时埋下伏笔,中美下个贸易战场已定,中国已经先发制人!
- 日常生活中的绿色食谱