想了解更多安全资讯
请扫码关注中科天齐软件安全中心微信公众号
2022
12-01
静态应用程序安全测试(SAST)
数据显示,2022年截止到目前发现了大约 20,175 个新漏洞,高于前一年的 18,341 个。网络攻击者正不断扫描网络中所有可能被利用的漏洞,从而发起网络攻击。美国国家标准与技术局(NIST)、国家漏洞数据库(NVD)数据显示,90%以上的网络安全问题是由软件自身的安全漏洞被利用导致。目前,静态应用程序安全测试在软件开发生命周期当中使用频率越来越高。静态应用程序安全测试在软件开发期间检测源代码中存在的编码问题及安全缺陷,有助于及时修复缺陷提高软件安全性。什么是静态应用程序安全测试(SAST)?静态应用程序安全测试(SAST)是一种白盒测试,通过直接分析源代码、字节码和二进制文件,以识别可利用的漏洞和编码问题。静态应用程序安全测试通过建立一种程序状态模型,通过字符串匹配、数据流分析、控制流分析、抽象语法树的语义分析等手段进行路径遍历,完成对状态空间所有路径的近似分析,以发现代码中存在的潜在缺陷以及安全漏洞,并提供一定的修复建议。静态应用程序安全测试在DevSecOps 中的作用众所周知,DevSecOps 通过在软件开发生命周期 (SDLC) 的每个阶段添加合适的安全测试方法来扩展 DevOps 和敏捷的方法,从而创建一个动态和持续的测试过程。测试过程最先涉及的就是静态应用程序安全测试,检测开发人员编写的代码安全性并定位有问题的代码所在,协助开发人员高效修复代码缺陷,有助于快速安全地交付软件。静态应用程序安全测试的好处①可在开发早期阶段检出缺陷,修复成本低;②可精确定位源代码中的潜在错误,便于修改;③代码覆盖率完整;④易于使用,通用性高。哪些行业使用静态应用程序安全测试?随着网络安全法规和标准在全球范围内不断展开,越来越多的组织正在扩展网络安全计划,并在交付软件之前进行安全测试。整个行业,尤其在金融、政府等行业,都涉及对应用软件或系统进行安全测试的需求。最佳实践进行安全测试(包括静态应用程序安全测试)的有效方法是持续进行。这意味着将静态应用程序安全测试直接集成到 CI/CD 管道中。这样做可以创建快速的反馈周期,以便开发人员可以在代码发布之前修复安全漏洞。静态应用程序安全测试发现的常见安全漏洞包括:缓冲区溢出跨站点脚本SQL注入等 除了检测安全漏洞外,静态应用程序安全测试还能检测语义缺陷/运行时缺陷及安全编码标准/规范。
2022
11-25
中科天齐成功入库2022年"科技型中小企业"名单
近日,北京中科天齐信息技术有限公司(简称中科天齐)在经北京市科学技术委员会、中关村科技园区管理委员会对企业科技人员、研发投入、科技成果等多项评定后,成功入库北京市2022年第十批科技型中小企业名单。科技型中小企业是企业创新能力得到“认证”的重要标志,科技型中小企业是指依托一定数量的科技人员从事科学技术研究开发活动,取得自主知识产权并将其转化为高新技术产品或服务,从而实现可持续发展的中小企业。是我国中小企业中的核心力量,在国民经济中具有无法替代的功能和作用。科技型中小企业评选活动要求严格,对企业的现有规模、创新能力、经济和社会效益都有明确的评分标准。其中,最重要的指标是企业科技创新能力,包括科技研发条件、创新平台、人才队伍、专利和成果等。此次入库北京市科技型中小企业名单,标志着中科天齐在研发实力、技术创新能力和拥有核心知识产权等方面均得到各级政府及行业的充分肯定与认可,研发成果取得了良好的经济效益和社会效益,得到官方来自技术层面和社会经济层面的双重认可。科技型中小企业是经济发展的新动能,是最具市场活力和发展动力的创新主体。未来,中科天齐将继续以技术自主创新为导向,不断加大科研成果转化,充分结合自身优势提高企业核心竞争力,推动企业的高质量发展。北京中科天齐信息技术有限公司由中科院研究员李炼博士创立,以自主研究成果中科天齐软件源代码安全缺陷检测平台(WuKong)为主打产品,团队凭借多年在程序分析领域的技术积累,致力打造安全漏洞治理领域新生态的高新技术企业。目前,中科天齐相关产品及服务为政府、金融、科技、软件研发、工业互联网等多个行业领域提供全方面的数字化转型支撑与安全保障,并满足国产化项目要求。中科天齐软件源代码安全缺陷检测平台(WuKong) 中科天齐软件源代码安全缺陷检测平台(WuKong)是一款B/S 架构的国产信创静态软件安全测试工具,采用自主专利技术的程序分析引擎,多种创新性的静态分析技术,结合深度学习和人工智能等多种方法,能够对软件代码进行全方位的安全扫描和安全分析,可检测运行时缺陷、安全漏洞及编码标准规范。目前,WuKong已获得国家信息安全漏洞库CNNVD兼容性认证及CWE国际兼容性认证。
2022
11-23
用于安全测试的SAST与DAST有何不同?
应用程序安全测试(AST)通过各种工具、流程扫描应用程序以发现潜在安全问题。静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)是常用的安全测试方法,它们遵循不同的方法,在软件开发生命周期的不同阶段扫描应用程序代码及软件。SAST遵循白盒测试方法来分析源代码、字节码和二进制文件,以识别可利用的漏洞和编码问题。DAST是一种黑盒测试方法,通过在应用程序前端解析模拟的攻击有效负载,发现可利用潜在漏洞,不会暴露有关应用程序内部结构的信息。DAST 和 SAST用于识别应用程序漏洞的测试机制静态应用程序安全测试(SAST)工具对代码开发过程中引入的软件缺陷提供即时反馈。测试是在软件模型上使用预定义的规则执行,分析程序是如何在这些状态之间转换的,通过字符串匹配、数据流分析、控制流分析、抽象语法树的语义分析等手段进行路径遍历,完成对状态空间所有路径的近似分析,以发现代码中存在的潜在缺陷以及安全漏洞,并提供修复建议。由于测试方法从软件开发生命周期的早期阶段开始实施,因此SAST有助于在编译软件之前识别编码缺陷。SAST 是一种首选的测试方法,并支持基于 DevSecOps 的左移方法来管理安全性。除了安全性,SAST还有助于确定代码质量、可重用性和可维护性。静态应用程序安全测试发现的常见安全漏洞包括:缓冲区溢出跨站点脚本SQL注入等SAST 测试的优势包括:早期漏洞检测:静态代码分析在开发过程开始时执行,测试有助于在编译应用程序代码之前检测应用程序代码中的错误。通过确保安全缺陷不会出现在生产环境中,SAST工具有助于实施主动保护和减少安全缺陷。实时反馈:SAST扫描器执行快速扫描,可以在较短的时间内分析应用程序的整个代码库。除了对未发现的缺陷提供即时反馈之外,SAST工具还与各种开发管道工具无缝集成,而不影响核心功能。准确性:SAST工具根据预定义的安全规则自动执行安全测试。这些工具比手动测试方法更快、更准确地识别出关键漏洞。虽然 SAST 有助于安全编码实践,但分析静态代码的好处范围有限,因为它无法识别更多的运行时漏洞,并且报告存在一定的误报。动态应用程序安全测试通过模拟恶意用户的操作来协调攻击,使用由外而内的方法评估应用程序。DAST 扫描通过输入可疑的用户输入并观察应用程序的响应来评估运行时漏洞。测试机制持续扫描部署在生产环境中的 Web 应用程序,帮助模拟应用程序的实际行为并识别影响典型用户体验的问题。由于DAST测试是在运行时环境中执行的,因此可以在新漏洞出现和发展时检测和识别它们。动态分析应用程序代码发现的应用程序漏洞包括:跨站点请求伪造文件包含漏洞Cookie操作路径泄露漏洞等DAST 测试的优势包括:不受语言要求限制:DAST 测试不需要用于开发应用程序的编程语言知识。无论使用何种框架,DAST 工具都会根据输入和输出评估应用程序的行为,使其成为一种强大的测试方法。低误报率:DAST工具对应用程序环境执行端到端扫描,使安全研究人员能够检测和识别威胁应用程序安全和功能的安全漏洞。不需要访问源代码——由于DAST扫描是通过应用程序前端发送恶意有效负载来执行的,企业可以利用第三方安全服务来执行测试,而不暴露应用程序代码。虽然DAST工具评估应用程序代码中的各种漏洞,但它们无法定位代码库中安全问题的确切位置。DAST 扫描也无法嗅探应用程序堆栈中未执行的部分中的漏洞。何时使用 SAST?SAST有助于在关键漏洞进入生产环境之前检测和解决它们,建议开发人员使用 SAST 工具来帮助他们在编写软件时识别和检测编码错误。SAST 也适用于根本原因分析,这有助于在其他漏洞扫描检测到缺陷后确定代码行中问题的确切位置。如何结合使用SAST和DAST? 由于DAST和SAST优势各不相同,DAST和SAST相互补充,可以一起使用来实现更健壮的测试方法。在代码开发阶段早期采用SAST工具,支持对应用程序使用的所有功能和包进行全面的安全分析。后续执行DAST测试,以评估攻击者如何利用生产中的漏洞。
2022
11-22
供应链威胁不断 静态代码检测提高软件安全性
什么是供应链攻击?供应链攻击是通过第三方供应商或供应商的集成组件向供应链系统注入恶意有效载荷来策划的。由于现代云原生应用程序的松散耦合特性,以及公众对网络威胁的认识不足,近年来,具有高度影响力的供应链攻击有所增加。供应链攻击也被称为价值链或第三方攻击,针对的是含有已知漏洞的商业、现成解决方案和开源组件。它的影响范围从无害的漏洞利用到供应链的完全破坏。供应链攻击通常分为:基于硬件:不安全的硬件配置用于托管应用程序并将其连接到用户。其中可能包括预装恶意软件的设备以及可公开访问的网络设备等。这些攻击旨在在部署阶段的初始阶段感染小工具,并进一步利用这些小工具进进行更深层次的、全网络范围的攻击。基于软件:这些攻击会在源代码、操作系统、库以及应用程序中使用的几乎所有其他软件中增加缺陷。这些软件组件内部的固有漏洞会被进一步滥用,注入恶意软件和恶意代码,从而中断整个供应链。基于固件:这些供应链攻击是通过将恶意代码注入设备的启动代码来发起的。尽管固件供应链攻击执行速度快且难以检测,但基于固件的攻击是网络犯罪分子针对供应链系统最广泛滥用的技术之一。供应链攻击案例太阳风供应链攻击SolarWinds黑客攻击是针对SolarWindsOrion软件访问联邦政府机构和私营公司网络的全球供应链攻击。这次攻击是通过劫持Orion的应用程序编译过程来策划的,目的是在有效的,数字签名的Orion更新中放置一个后门。这些格式错误的更新作为木马安装包发送到客户端计算机几个月,但未被检测到。SolarWinds黑客攻击被认为是最近最具影响力的供应链攻击之一,它提高了组织对安全风险的认识,并引发了各个实体之间的合作,以应对不断上升的网络犯罪。Kaseya VSA供应链勒索软件攻击2021年7月,Kaseya发现其VSA管理的服务程序受到了活跃的勒索软件攻击。VSA是Kaseya的云服务套件,它可以促进更新和安全补丁。此次攻击是由REvil实施的该组织利用一个已知的0 day漏洞进入了Kaseya系统,该组织仍在试图修复该漏洞。这次攻击导致60个直接客户数据泄露,1500家企业受到影响,黑客要求支付7000万美元的赎金才能解锁受影响的设备。虽然几家受影响的公司能够使用备份恢复他们的系统,但其他公司提出支付个人赎金,金额在4万至22万美元之间。攻击发生一周后,Kaseya声称已经获得了进一步提供给受影响客户的主解密密钥。Target数据泄露2013年7月,Target 遭遇数据泄露,攻击者访问了近7000万用户账户和4000万条支付卡记录。这次攻击是通过第三方供应商泄露的证书恶意渗透Target 公司的网络发起的。这些凭证进一步被用来利用Target基础设施中的其他漏洞访问用户数据库,并安装恶意软件,暴露客户记录,包括用户的姓名、联系方式、卡号、验证码和其他敏感信息。Target花了大约两周的时间来检测和识别漏洞。这次攻击对Target百货公司造成了巨大的经济影响,这家零售巨头向受影响的用户支付了1850万美元。Target还遭受了收入损失,在袭击发生后的几个月里销售额下降了46%。在这次攻击之后,该公司声称提高了反击网络攻击的能力,并发行了安全的芯片-pin卡,以降低卡被利用的可能性。供应链攻击用户泄漏的影响在现代应用程序交付中,软件组件的可重用性扩展了可以在攻击序列中重复利用的攻击面。因为利用一个组件的缺陷就打开了滥用整个供应链的大门。供应链攻击的影响包括:恶意软件感染:攻击者依靠第三方软件漏洞向应用程序开发管道中注入恶意代码和程序。攻击的效果最终取决于恶意软件的复杂程度和目标系统承载的数据。数据泄露和受损:恶意行为者依靠供应链漏洞将数据泄露工具安装到软件开发管道中。通过渗透工具传递的任何信息(包括用户和系统级数据)都将发送到攻击者控制的主机。财务损失:针对电子商务系统、支付卡供应商和零售店的供应链攻击通常会导致身份欺诈造成的直接财务损失。由于供应链攻击而遭受数据泄露的组织也会受到监管机构的巨额处罚,并最终导致声誉受损。管理供应链风险和脆弱性由于第三方供应商系统的供应链漏洞,它们通常难以控制。根据易受攻击的工作负载类型及其直接集成的组件,减轻基于此类漏洞的攻击有不同组合的解决方法。识别供应链漏洞的方法尽管不同的情况需要专门的方法来适应其部署框架,但这里有两种常用的方法来识别供应链漏洞:持续漏洞扫描开发人员和安全团队需要协作实施自动化、持续的安全漏洞扫描,如静态代码安全检测、动态测试及软件组件分析等,以检测整个供应链中的潜在缺陷。持续的扫描过程有助于识别存在漏洞利用风险的组件,包括源代码、进程和服务。高级供应链漏洞评估应生成部署中使用的所有组件的记录,包括组件级威胁,以及所有第三方软件的漏洞评级。渗透测试在识别第三方安全风险之后,开发人员和QA团队应该测试每个漏洞,以模拟恶意行为者可能执行的最可能的攻击序列。团队还应为道德黑客和渗透测试建立一个虚拟数据和功能的蜜罐。这些蜜罐可以进一步与端点检测解决方案相结合,以确保可观察性和易受攻击端点的检测。全面渗透测试有助于模拟攻击模式,同时提供关于恶意行为者如何利用供应链风险成功利用的有效信息。
2022
11-17
静态应用程序安全测试如何发现网络中看不见的缺陷
随着当前网络攻击的频繁化和复杂化,网络安全需要从防守攻击转向主动防御,从发生攻击后再进行处理转向更加严谨地保护组织的数据和基础设施。在没有采用适当的预防措施时,网络攻击者可以轻而易举地利用公司Web应用程序、移动应用程序及API等中的漏洞。静态应用程序安全测试通常由自动化工具进行测试,随着安全左移及DevsecOps理念在企业中盛行,静态应用程序安全测试工具通常集成到CI/CD 管道中,根据组织需求确定检测时间和频率。静态应用程序安全测试的目标是什么?静态应用程序安全测试(SAST)是一种直接面向应用软件源代码,在不需要执行程序的情况下,获得程序编译时信息,并根据这些信息对特定的漏洞模式进行检测,从而完成软件的安全分析。静态分析考虑了程序所有可能的运行情况,稳妥的分析策略使得分析结果具备可靠性。在安全方面,开发人员希望编写无误的代码,符合编码标准规范,并且尽可能少的存在缺陷或安全漏洞。静态应用程序安全测试可以检测语义缺陷/运行时缺陷,安全漏洞安全编码规范/标准,包括一些标准规范及OWASP TOP10 和CWE 25等缺陷漏洞。开发人员可以进行编码、测试、修改和再次测试,以确保最终的应用程序没有缺陷按预期运行。静态应用程序安全测试SAST的优点是什么?①在开发早期阶段检出缺陷,修复成本低;②精确定位源代码中的潜在错误;③代码覆盖率完整;④易于使用,通用性高。 无论开发人员如何遵循最新的安全编码规范,也不可能保证代码中一定没有安全问题。通过静态应用程序安全测试能及时发现由编码问题引起的缺陷及漏洞,从而在更早的时间里进行修复,不必等到即将上线或开始运行时发现安全问题,而耗费大量的时间精力。网络安全每天都在变化并且变得更加复杂,面对未知的威胁组织需要随时做好准备。
2022
11-11
国产化适配进程再进一步 中科天齐WuKong与申威完成兼容性认证
近日,中科天齐静态软件安全测试工具WuKong与申威完成兼容性适配,整体运行稳定、产品体验良好。此次完成认证,标志着中科天齐WuKong在国产化适配进程中再进一步,在支持信息安全、促进软件开发安全方面有了更广阔的应用空间。中科天齐将继续发挥自主创新能力,在推进信息安全和软件安全道路上贡献力量。申威处理器是在国家"核高基"重大专项支持下,由我国自主研制的全国产处理器。处理器采用申威64自主指令集以及自主处理器微架构,涵盖从超算处理器到服务器处理器,桌面处理器以及嵌入式处理器等产品系列。 申威系列产品多次应用于国家重大科技工程项目中,并在党政机关、关键领域、商业市场上开展了产业化推广,为国家信息安全战略和信息产业升级发展作出积极贡献。北京中科天齐信息技术有限公司由中科院研究员李炼博士创立,以自主研究成果WuKong静态软件安全测试工具为主打产品,团队凭借多年在程序分析领域的技术积累,致力打造安全漏洞治理领域新生态的高新技术企业。 WuKong静态软件安全测试工具是一款B/S 架构的国产信创静态软件安全测试工具,采用自主专利技术的程序分析引擎,多种创新性的静态分析技术,结合深度学习和人工智能等多种方法,能够对软件代码进行全方位的安全扫描和安全分析,可检测运行时缺陷、安全漏洞及编码标准规范。
2022
11-10
如何提高CI/CD管道安全性?
数字化进程加速使得产品的开发和迭代节奏变快,在加速产品发布的同时,CI/CD也容易受到网络安全问题的影响,如代码损坏、安全错误配置和机密管理不当。在CI/CD管道通过安全实践可以确保代码质量、管理风险并保持完整性。CI/CD 安全性《软件供应链状况报告》报告发现,旨在积极渗透开源软件供应链的下一代网络攻击激增了430%。它还发现,51%的组织需要超过一周的时间来修复新的0 day漏洞。在这种背景下,CI/CD对DevOps的影响是强大的:它可以帮助开发人员将代码发布速度提高 83%,从而腾出时间专注于更多的测试,包括安全性。CI/CD安全性是关于在软件交付管道中识别和减少安全风险,从而生产出可靠和无风险的高质量产品。每个组织或产品都有一个基于其关键过程和工具的独特CI/CD管道。但是加强CI/CD安全性的基本思想是避免数据泄露和应用程序中断。CI/CD管道的核心包括关键的开发组件,如源代码、应用程序代码存储库、容器和构建服务器,这使它成为攻击者的主要目标。即使单个组件被破坏,也可能为攻击者提供可利用资源。在没有CI/CD安全的情况下,攻击者可以利用其漏洞进行重大攻击。管道安全漏洞可能造成的一些安全风险包括:不安全的代码:缺乏代码扫描程序会引入恶意代码和漏洞,网络攻击者可以利用这些漏洞造成严重破坏。供应链攻击:严重依赖开源和第三方代码库是数据泄露事件的主要原因之一,因为它们可能带来严重威胁。秘密的暴露:不适当的安全管理允许在管道中使用的多个工具来利用敏感数据,如凭据。不安全的系统配置:未能准确配置基础架构、网络或应用程序可能会使系统受到网络攻击。缺少访问控制:不实施基于管道的访问控制会使恶意行为者能够访问关键资源和资产。CI/CD的作用CI/CD 管道是 DevOps 实践的核心原则,专注于开发和运营之间的精简协作。在安全“左移”方法中,软件开发过程的每个阶段都会集成安全性,来构建以安全为核心的应用程序,而不是在应用程序交付后再考虑安全问题。在 CI/CD 管道中添加安全性至关重要。根据Ponemon的网络安全状况报告,大约66%的组织在过去12个月中经历过网络攻击。它进一步披露,45%的攻击受害者将攻击归咎于安全措施不足。除此之外,IBM还发现,企业平均需要197天才能发现数据泄露,而处理数据泄露则需要额外69天。与网络攻击造成的财务和声誉损失相比,在CI/CD管带实施安全加固措施十分明智。CI/CD安全加固的6个步骤1. 始终识别 CI 管道配置错误错误配置是网络攻击的主要原因之一,因为不法分子积极地寻求它们侵入系统。最近的一份报告发现,截至2021年,63%的第三方代码模板包含不安全的配置。通过持续检测和修正错误配置,可以显著减少针对应用程序的恶意尝试。使用强大的编码、开发策略和自动化工具来阻止引入管道的风险并确保每个工作负载的完整性,可以发现管道弱点。2. 监测可疑编码模式通过在开发周期的早期阶段检测代码中的bug,可以显著增强应用程序的安全性。通过在管道中建立一个健壮的代码评审实践可以实现,并能提高代码质量。通过遵循安全编码原则可以避免出现软件缺陷,同时攻击者可能利用漏洞来执行恶意代码,因此需要监视、定位和标记可疑编码模式。通过模式匹配或使用自动代码安全工具识别正则表达式或字符序列等策略来实现这一点。通过在存储库中使用带有配置的代码扫描机制的拉请求检查,可以识别拉请求中的缺陷,检查突出显示的代码段,并启动修复。3. 自动化与人工审核相结合自动化已成为现代应用程序开发领域的必需品。它有助于加快产品开发速度,从而为组织提供竞争优势。这同样适用于安全管理。通过实施自动化,可以显著改善管道安全状况。IaC(基础结构即代码)和 PaC(策略即代码)是两种广泛使用的 DevOps 实践。4. 团队合作主动利用现有的工具和框架DevOps 在很大程度上依赖于自动化来加速开发、配置、测试和部署,从而更快地发布产品。如此快速的速度是通过使用多种工具和框架来实现的,这些工具和框架不仅可以加快流程,还可以快速识别和解决错误、漏洞和缺陷。它们还自动执行监控、测试和基础设施管理等关键流程,减少不准确的范围。可以使用多种类型的 CI/CD 工具来增强管道,例如:CI 工具:持续集成工具能够将代码集成到共享存储库中,以自动执行生成、测试和报告。它们有助于多个代码集成并自动执行验证过程,以审查和识别代码问题。CD 工具:持续部署和交付工具可在将软件推送到生产阶段之前实现自动化测试和手动审查。使用 CD 工具可以加快软件发布速度,并提高产品的质量和可靠性。配置管理工具:这些工具可以有序地跟踪和管理更改。5. 在管道中构建持续测试传统上,开发人员会把测试留到软件开发的最后阶段。但这种方法会使得每发现缺陷都要回到原点从根源上解决问题。实现持续测试策略是加强CI/CD管道安全性的一种更有效的方法。它意味着在开发周期的每个阶段注入软件测试。可以采用的一些测试实践包括:SAST:SAST(静态应用程序安全测试)可集成到软件开发生命周期中,具有对应用程序源代码和二进制代码的扫描访问权限。直接面对源码进行分析,可以查找代码缺陷问题,安全漏洞及一些运行时缺陷。通过SAST可以提供对代码的实时审查,快速改善安全问题。DAST: DAST(动态应用程序安全测试)可以扫描应用程序及其相关结构,而不需要看到源代码、技术或框架。因此,它也被称为“黑盒测试”。它突出了SQL注入和跨站点脚本等安全风险。渗透测试:渗透测试是一种测试练习,通过模拟虚假网络攻击以了解后门或端点漏洞等应用程序弱点。它突出显示了授权问题、业务逻辑漏洞和工作流差距等威胁。6. 自动化数据安全除了自动执行安全管理之外,还应自动执行安全过程,包括数据安全性。这主要是因为产品版本与新数据库、数据模型或新数据集相关联。从生产环境中提取数据以运行测试和验证功能时,必须保护敏感数据。CI/CD可以说是关键的DevOps实践,它形成了整个软件开发过程的焦,并且包含关键的应用程序组件,如源代码、存储库和容器框架,因此可以理解,为什么攻击者将CI/CD视为攻击应用程序的热门目标。
2022
11-02
软件供应链安全如何受到黑客的威胁
当我们谈论软件供应链攻击时,实际上是两次连续的攻击:一种是针对供应商,另一种针对供应链中的一个或多个下游用户。什么是供应链?现如今,无论是开源库、开发人员工具、内部部署或基于云的部署和交付系统,还是软件即服务(SaaS)服务,这些构建块在现代软件开发中都已变得必不可少。每一块“积木”本身都是漫长供应链的产物,这使得软件供应链成为一个包含IT的方方面面的概念:从硬件,到开发人员编写的源代码,到第三方工具和平台,还包括数据存储和所有用于开发、测试和分发软件的基础设施。供应链是一个分层结构,允许公司实现高度灵活的软件开发,这是数字化转型的引擎。开源组件和库的大规模重用极大地加快了开发周期,并能够根据客户的期望交付功能。但与这一令人印象深刻的进步相对应的,是对进入公司产品的代码来源的控制缺失。这一依赖链将组织及其客户暴露在由其直接控制之外的变更引入的漏洞中。这显然是一个主要的网络安全问题,而且随着供应链年复一年变得越来越复杂,这个问题只会越来越严重。因此,最近大规模的网络攻击得以利用这一点也就不足为奇了。薄弱环节的风险对黑客来说,软件供应链是一个有意思的针对目标。首先,由于其复杂的特性,其攻击面非常大;其次,由于应用程序安全性历来侧重于保护应用程序,而内部构建服务器和CI/CD管道缺少一定的安全可见性;最后,通过利用供应链,黑客找到了最大化攻击影响的方法,从而最大限度地提高了攻击的收益。供应链攻击的兴起2020 年 3 月至 6 月期间的 SolarWinds 攻击中,大约 18,000 名 Orion 平台客户(包括一些美国政府机构)下载了注入恶意代码的更新。该代码允许黑客未经授权后门访问近 100 个实体的系统和专用网络。SolarWinds 直到 2020 年 12 月才发现该漏洞。2021 年 1 月,由于构建过程中出现错误,攻击者获得了用于创建涉及 Codecov 软件的 Docker 映像的凭据。这些凭据允许攻击者劫持Codecov,一种用于测试开发人员代码覆盖率的软件,并将其变成真正的特洛伊木马:由于该软件用于持续集成(CI)环境,因此它可以访问构建过程的秘密凭据。因此,攻击者能够从Codecov用户那里窃取数百个凭据,从而允许他访问尽可能多的安全系统。2021 年 7 月 2 日,一个复杂的勒索软件组织利用了 Kaseya 虚拟系统管理员 (VSA) 服务器中的一个漏洞,影响了大约 1500 家小型企业。Kaseya 是托管服务提供商 (MSP) 和其他 IT 承包商使用的网络、系统和基础设施管理软件的开发商。尽管勒索软件攻击控制了客户的系统,但几天后攻击就被遏制并被击败。2021年12月,对软件供应链最简单但最广泛的攻击发生了。在最初的概念验证(POC)被披露后,攻击者开始大规模利用影响Apache Log4j的漏洞,这是Java生态系统中非常流行的开源日志库。尽管存在严重性,但这种漏洞远非孤立的案例:2020 年至 2021 年间,使用开源生态系统作为传播媒介到达供应链的攻击数量增加了 650%。欧洲网络安全局(ENISA)预测,到2022年,供应链攻击将增加四倍。所有这些攻击和漏洞都凸显了缺乏有效保护供应链的可见性和工具,无论是用于清点使用开源组件的系统、验证其完整性的系统,还是防止敏感信息泄漏的系统。供应链的关键:秘密获得未加密的凭据是黑客从供应商向客户的供应链转移的“钥匙”:有了有效的凭据,攻击者以授权用户的身份操作,入侵后检测变得更加困难。从防御的角度来看,硬编码机密是一种独特的漏洞类型。源代码是一种非常容易泄露的资产,因为它本质上是为了频繁地克隆和分布在多台机器上。事实上,源代码中的秘密与它一起传播。但更成问题的是,代码也有“记忆”。今天,任何代码存储库都是通过版本控制系统(VCS)管理的,通常是Git,它保留了对代码库中文件所做的所有更改的时间表,有时是几十年。问题在于,仍然有效的机密可以隐藏在该时间线上的任何位置。然而,大多数安全扫描仅限于检查应用程序源代码的当前、已部署或即将部署的状态。换句话说,当涉及到隐藏在旧提交甚至从未部署的分支中的秘密时,传统工具存在困难。将安全性纳入开发周期:DevSecOps软件供应链有许多传统安全方法无法解决的灰色地带。组织已经意识到需要将安全性引入到开发生命周期中。DevSecOps将安全性插入到DevOps实践中。DevOps将流程和技术结合在一起,使开发人员能够更有效地与运营团队合作。对于安全经理来说,挑战在于保持DevOps的速度,同时加强改进的安全态势:包括开发周期最早阶段(规划、设计)的安全规则,传播最佳实践,并通过更早地捕获更多“良性”缺陷来缩短平均修复时间(MTTR)。依靠现代工具是一种途径。开发人员采用与他们的工作环境完美集成的直观工具:命令行、API、IDE(集成开发环境)等。自动化测试工具也是创建有效安全系统的关键。在开发周期中使用静态应用安全测试、动态应用安全测试等工具,可以有效保障应用程序的安全性。共担责任和左移新的安全模型意味着在项目涉及的所有成员之间分担责任,安全问题不再只是安全团队的工作。 “左移”提出在更早时期开始关注安全,以便更早地进行安全操作并节省检测和修复费用。在过去,人们更关注对于完成的应用程序安全性的检测,现如今,组织更多的是在整个周期中完成安全测试,并及时进行安全修复。
2022
10-25
为什么开发人员需要了解的缺陷不仅仅是OWASP前10名
我们生活在一个几乎所有业务应用程序和基础设施都直接或间接通过网络公开的时代。无论实施多么高的安全性防御,一旦没有从内部保护应用程序和基础设施,就有被泄露的风险。OWASP Top 10是进行安全性防御的基础,但这还不够。尽管应用程序是最常受到攻击的资产之一,但对保护这些资产的关注还不够。安全要从开发人员开始。为什么开发人员需要编写更安全的代码应用程序安全性可以通过在构建应用程序时实施安全实践。开发人员通常首先专注于解决问题以及实现功能,然后再考虑安全性。这种方法不是很有效,尤其当我们转向持续集成和持续部署时。因此,对于开发人员来说,编写安全代码非常重要。开发人员不是安全专家。编写安全代码并不意味着之后并不需要安全专家和安全测试。但开发人员有必要了解常见的编码实践,并在开发早期阶段来实行。安全专家仍需要审查应用程序,静态代码检测等提高代码安全性及软件安全性的安全测试仍需要进行。OWASP前10名都有哪些?开放 Web 应用程序安全项目 (OWASP) 发布了 Web 应用程序中的漏洞列表以及如何防止这些漏洞,称为OWASP Top 10。此列表列出了 Web 应用程序面临的 10 大安全漏洞,并考虑了严重性、频率和潜在影响。最新列表包括:访问控制中断加密故障注入不安全的设计安全配置错误易受攻击和过时的组件识别和身份验证失败软件和数据完整性故障安全日志记录和监视失败服务器端请求伪造此列表是经过世界各国安全专家的一致同意后制定的。因此,如果刚刚开始学习web应用程序安全,这是一个很好的起点。为什么开发人员需要了解更多?尽管OWASP前10解决了最常见的问题,但它并没有涵盖所有的问题。缓冲区溢出、跨站点伪造请求等是前10个漏洞中未涉及的缺陷,但仍然会造成巨大的危害。攻击者并不只是坚持OWASP的前10名。它们会尝试除前10种方法外的其他方法来执行成功的攻击。因此,除了OWASP前10名,其他安全缺陷也需要了解。构建OWASP Top 10下一步是什么?安全设计通过在设计体系结构时牢记安全性,可以增强组织的整体安全性。甚至在编写第一行代码之前,安全设计就已经成为了基础。使用最小特权和安全信任模型等实践将使攻击者难以侵入系统。威胁建模对理解威胁和安全需求有很大帮助。安全的设计将有助于减少攻击面。DevSecOps将安全活动集成到SDLC中可以加强应用程序的核心。使用DevSecOps,可以在开发的早期阶段识别漏洞,从而可以更快地解决安全问题。静态代码检测、动态测试等可以发现代码缺陷漏洞及应用运行时漏洞,有助于更快地解决问题。左移会影响查找和修复安全问题的成本以及花费的时间。随着开发的进行,越向右,修复漏洞成本会更高。安全CloudOps安全的CloudOps对于解决云基础设施的外部和内部威胁非常重要。大多数云提供商都有基本的安全级别。但不应该满足于此。组织需要一个对其来说更安全的配置。在云扩展、主动安全、备份和恢复方面还有很大的改进空间。由于大多数安全云提供商会负责基本的安全方面,例如定期修补,因此可以专注于特定于组织更重要方面。安全软件供应链Solarwinds和log4j是我们最近看到的两种严重的攻击。这两个都是第三方组件。使用现有的解决方案并将其集成到系统/应用程序中比从头开始构建更明智。然而,如果这些依赖关系存在安全问题,也会使系统变得脆弱。评估所用依赖项的安全性非常重要。部署后进行持续测试和监控威胁。自动化工具在这里将有很大的帮助。一些高级 SAST 和 DAST 工具可以在开发和测试产品时检测修复漏洞。合规合规性很重要,主要有两个原因:有助于增强安全性避免罚款大多数组织需要遵守某些法规。对于开发人员来说,在开发阶段考虑合规性有很多鼓励。当开发人员牢记合规性时,它会使整个合规性流程更加高效,从而避免重大更改。它还降低成本,创建了合规性一致性,并改善了跨职能团队内部的协作。随着对安全性的更高需求,开发人员也开始在某种程度上成为安全专家。关键词:安全开发 软件安全 静态测试 动态测试 安全测试