微软公司定制开发软件周期的安全度掌握怎么做?

  一般而言,软件上市前,会经历几个开发的阶段,公司定制软件开发生命周期分为几个阶段,是一个周而复始的循环,这些开发阶段有:

  1、需求收集与分析:项目经理必须引导与了解客户需求,以及最终的使用者是谁,产品的目标与产品应具备哪些功能。此阶段要产出系统需求规格文件,客户应经过充分讨论与确认后,才可进行到下一阶段。

  2、系统设计:依照系统需求规格文件设计系统架构,说明前端、后端要使用什么技术,数据库设计等等,将各部分的沟通界面与规格定义清楚,以利工程师进行系统开发。

  3、系统开发:依照系统需求规格文件与系统设计文件进行开发。

  4、测试:在系统需求规格文件下对于开发的程序进行测试,改善系统设计与开发阶段产生的瑕疵与错误以达到客户要求。

  5、部署与验证:在场域内测试环境部署,并持续测试,直到取得客户的认可,系统才正式上线。

  6、维运:针对系统需求规格文件的规范进行维护。

微软公司定制开发软件周期的安全度掌握怎么做?-梦幻科技

  在这个循环的过程中,很多的瑕疵都是人为造成的,这个主题主要是微软分享如何用机器学习方法,在测试阶段来确保软件开发生命周期的安全。

  如何做呢?

  第一步:管理瑕疵

  开发过程中会产生很多软件的瑕疵,这些瑕疵可能是代码的问题,或是设计上的瑕疵,一般来说会使用bug tracking system来管理这些瑕疵,并追踪修复的状况。

  微软透过这些瑕疵的影响程度请专家做数据的标记,然后透过机器学习中监督式学习的方法训练出分类的模型,并先区分资安与非资安的瑕疵种类。

  第二步:区分风险等级

  再进一步针对资安类的瑕疵来区别高中低的风险影响程度。如下图所示:

  第三步:实际测试验证

  透过Github上大量的项目进行训练,再将模型导入到新的项目上进行测试。这个方式可以减少人力的验证判别,让工程师优先专注在高风险的议题,也能提高软件的质量。实验的结果也获得不错的数据,如下图所示。这个方法也在2019获得IEEE的conference接受发表。

微软公司定制开发软件周期的安全度掌握怎么做?-梦幻科技

  现在对于数据科学的应用越来越广,透过数据科学与各领域的协作,可以大量节省领域所需投入的人力或资源。相信在后继者陆续的投入研发,对于软件的测试涵盖率与效率能提供更好的质量,也能早期发现潜在的安全问题,提早因应与解决。

  安全的DevOps议题在今年RSA被广泛讨论,从大厂微软采用机器学习来改善软件开发流程,到资安新创公司也开始投入这块市场,这个需求上升的趋势,伴随开源观念的普及,跨团队开发、部署、错误修正、维运的难度大增,因此如何利用自动化、智能化的工具来辅助开发部署流程,让整体程序更节省人力、更安全的概念受到关注。

  未来机器学习应用的范围会更广泛,不仅我们的研发人员要关注机器学习的新趋势与技巧之外,开发应用的系统工程师也应具备基础的机器学习知识,提升整体研发与开发的质量与能量。


联系我们

13751415268

853408942

:853408942@qq.com

:9:30-22:30

QR code