静态应用程序安全测试
静态应用程序安全测试(SAST)用于通过查看软件的源代码来识别漏洞来源来保护软件。虽然是静态分析源代码只要计算机存在,该技术就已经存在,该技术在90年代后期传播到安全性,以及第一次公开讨论SQL注入1998年,当Web应用程序集成了新技术时JavaScript和闪光.
与众不同动态应用程序安全测试(dast)工具黑盒测试应用功能,SAST工具专注于应用程序的代码内容,白盒测试。SAST工具扫描了应用程序及其组件的源代码,以识别其软件和体系结构中的潜在安全漏洞。静态分析工具可以检测到现有安全漏洞的50%。[1]
在SDLC,在开发过程和代码级别以及所有代码和组件都在一致的测试环境中放置在一起时,SAST是在开发过程和代码级别上执行的。SAST还用于软件质量保证。[2]即使许多结果假阳性阻碍开发人员的采用[3]
SAST工具已集成到开发过程中,以帮助开发团队,因为它们主要着重于开发和交付尊重所需规范的软件。[4]SAST工具与其他安全工具一样,专注于降低应用程序停机的风险或存储在应用程序中的私人信息不会受到损害。
在2018年,隐私权交换所数据库[5]表明,黑客攻击了超过6.12亿张记录。
概述
应用程序的应用程序安全测试其版本:静态应用程序安全测试(SAST),动态应用程序安全测试(DAST)和交互式应用程序安全测试(IAST),两者的组合。[6]
静态分析工具从语法上检查了程序的文本。他们在源代码中寻找一组固定的模式或规则。从理论上讲,他们还可以检查软件的编译形式。这项技术依赖仪器在编制组件和源代码组件之间进行映射的代码以识别问题。静态分析可以手动进行代码审查或者审计用于不同目的的代码,包括安全性,但耗时。[7]
SAST工具的精度取决于其分析范围和用于识别漏洞的特定技术。不同级别的分析包括:
分析的范围决定了其使用上下文信息检测漏洞的准确性和能力。[8]
在功能层面上,一种常见的技术是建造抽象语法树控制功能中的数据流。[9]
自90年代后期以来,适应业务挑战的需求通过组件改变了软件开发。[10]通过流程和发展团队的组织执行[11]遵循应用程序或应用程序组的所有组件之间的数据流,允许验证对专用过程所需的调用的验证消毒并采取适当的措施来污染特定代码的数据。[12][13]
Web应用程序的兴起需要测试它们:2016年Verizon数据泄露报告,所有数据泄露中有40%使用Web应用程序漏洞。[14]除了外部安全验证外,还关注内部威胁。Clearswift Insider威胁指数(CITI)报告说,2015年的一项调查中有92%的受访者表示,他们在过去的12个月中经历了这种情况或安全事件,其中74%的违规行为是由内部人士发起的。[15]李·哈德灵顿(Lee Hadlington)将内部威胁分为三类:恶意,偶然和无意。移动应用程序的爆炸性增长意味着在开发过程中确保应用程序以减少恶意代码开发。[16]
萨斯特的优势
SDLC中固定较早的漏洞,修复的较便宜。开发成本比测试低10倍,比生产低100倍。[17]SAST工具会在代码级别或应用程序级别自动运行,并且不需要交互。当集成到CI/CD上下文中时,如果确定了关键的漏洞,则可以使用SAST工具自动停止集成过程。[18]
由于该工具扫描了整个源代码,因此可以覆盖100%的源代码,而动态应用程序安全测试涵盖其执行可能丢失了应用程序的一部分,[6]或配置文件中的不保证配置。
SAST工具可以提供扩展的功能,例如质量和建筑测试。质量和安全性之间存在直接相关性。不良质量的软件也是安全性不佳的软件。[19]
催化弱点
即使开发人员对SAST工具的使用有肯定,但开发人员采用SAST工具面临不同的挑战。[4]
随着软件开发中的敏捷流程,SAST的早期集成会生成许多错误,因为开发人员使用此框架首先关注功能和交付。[20]
使用SAST工具扫描许多代码可能会导致数百或数千个漏洞警告单个应用程序。它产生许多假阳性,增加调查时间并减少对此类工具的信任。当工具无法捕获漏洞的上下文时,尤其是这种情况[3]
也可以看看
参考
- ^Okun,V。;Guthrie,W。F。;Gaucher,H。;Black,P。E.(2007年10月)。“静态分析工具对软件安全的影响:初步调查”(PDF).2007年ACM保护质量研讨会论文集。 ACM:1-5。doi:10.1145/1314257.1314260.S2CID 6663970.
- ^Ayewah,n。;Hovemeyer,d。;Morgenthaler,J.D。;Penix,J。;Pugh,W。(2008年9月)。“使用静态分析查找错误”。IEEE软件。 IEEE。25(5):22–29。doi:10.1109/MS.2008.130.S2CID 20646690.
- ^一个b约翰逊,布列塔尼;歌曲,Yooki;默菲·希尔(Murphy-Hill),艾默生(Emerson);罗伯特·鲍迪奇(Bowdidge)(2013年5月)。“为什么软件开发人员不使用静态分析工具来查找错误”。ICSE '13 2013年国际软件工程会议论文集:672–681。ISBN 978-1-4673-3076-3.
- ^一个bOyetoyan,Tosin Daniel;Milosheska,Bisera;格里尼,马里(2018年5月)。“关于静态应用程序安全测试工具的神话和事实:Telenor Digital的行动研究”。国际敏捷软件开发会议。施普林格:86–103。
- ^“数据泄露|隐私权交换所”.privacyrights.org.
- ^一个bParizi,R.M。;Qian,K。;Shahriar,H。;吴,f。;Tao,L。(2018年7月)。“评估软件安全漏洞测试工具的基准要求”。IEEE 42年度计算机软件和应用会议(COMPSAC)。 IEEE:825–826。doi:10.1109/compsac.2018.00139.ISBN 978-1-5386-2666-5.S2CID 52055661.
- ^国际象棋,b。McGraw,G。(2004年12月)。“安全性静态分析”。IEEE安全与隐私。 IEEE。2(6):76–79。doi:10.1109/msp.2004.111.
- ^国际象棋,b。McGraw,G。(2004年10月)。“软件设计中的风险分析”。IEEE安全与隐私。 IEEE。2(4):76–84。doi:10.1109/msp.2004.55.
- ^Yamaguchi,Fabian;洛特曼(Lottmann),马库斯(Markus);康拉德·里克(Rieck)(2012年12月)。“使用抽象语法树的广义脆弱性外推”。第28届年度计算机安全应用会议论文集。 IEEE。2(4):359–368。doi:10.1145/2420950.2421003.S2CID 8970125.
- ^布希,格雷迪;Kozaczynski,Wojtek(1998年9月)。“基于组件的软件工程”。2006 IEEE安全与隐私研讨会(S&P'06)。 IEEE软件。15(5):34–36。doi:10.1109/MS.1998.714621.S2CID 33646593.
- ^梅佐(Mezo),彼得(Peter);Jain,Radhika(2006年12月)。“敏捷软件开发:自适应系统原理和最佳实践”。2006 IEEE安全与隐私研讨会(S&P'06)。信息系统管理。23(3):19–30。doi:10.1201/1078.10580530/46108.23.3.20060601/93704.3.S2CID 5087532.
- ^Livshits,V.B。;林,硕士(2006年5月)。“通过静态分析找到Java应用程序中的安全漏洞”。USENIX安全研讨会.14:18。
- ^Jovanovic,n。克鲁格尔,c。Kirda,E。(2006年5月)。“ Pixy:用于检测Web应用程序漏洞的静态分析工具”。2006 IEEE安全与隐私研讨会(S&P'06)。 IEEE:359–368。doi:10.1109/sp.2006.29.ISBN 0-7695-2574-1.S2CID 1042585.
- ^“ 2016年数据泄露调查报告”(PDF)。 2016。
- ^“ Clearswift Insider Wenter指数(Citi)”(PDF)。 2015。
- ^江,孟;Qian,kai;罗,丹;Bhattacharya,Prabir;吴,粉丝(2018年6月)。“在静态代码分析中使用漏洞检测器的安全移动软件开发”。2018年国际网络,计算机和通信研讨会(ISNCC):1-4。doi:10.1109/isncc.2018.8531071.ISBN 978-1-5386-3779-1.S2CID 53288239.
- ^霍桑(Shahadat)(2018年10月)。“对软件经济的重新工作和重用效果”.全球计算机科学技术杂志.
- ^Okun,V。;Guthrie,W。F。;Gaucher,H。;Black,P。E.(2007年10月)。“静态分析工具对软件安全的影响:初步调查”(PDF).2007年ACM保护质量研讨会论文集。 ACM:1-5。doi:10.1145/1314257.1314260.S2CID 6663970.
- ^Siavas,M。;Tsoukalas,d。;Janković,M。Kehagias,d。;chatzigeorgiou,a。;Tzovaras,d。;Aničić,n。;Gelenbe,E。(2019年8月)。“对技术债务与软件安全之间关系的经验评估”。在Z.Konjović;Zdravković,M。Trajanović,M。(编辑)。国际信息社会与技术会议2019会议记录(数据集)。卷。 1.第199–203页。doi:10.5281/Zenodo.3374712.
- ^ARREAZA,GUSTAVO JOSE NIEVES(2019年6月)。“用于在云中开发安全应用程序的方法。(MDSAC)为IEEECS会议开发”。2019年第六届IEEE网络安全与云计算国际会议(CSCLOUD)/ 2019年第五届IEEE边缘计算国际会议(EDGECOM)。 IEEE:102–106。doi:10.1109/cscloud/edgecom.2019.00-11.ISBN 978-1-7281-1661-7.