修复来自开源和遗留程序的旧的、不安全的代码的三种方法

发现自己的环境中存在旧的、易受攻击的代码的公司很可能缺乏修复这些代码的资源。大多数公司都会在某一时刻发现自己处于这种情况,无论是因为他们使用的是开源程序还是过时的程序,但公司有一些方法可以应对问题,包括确定优先顺序、自动化和缓解。

旧的、糟糕的代码中存在的问题在企业中随处可见。易受攻击的代码通常是一个问题,根据Veracode今年发布的一份报告,在去年扫描的应用程序中,74%至少有一个安全漏洞,19%有高度严重的漏洞。Veracode的首席研究官Chris Eng说,应用程序越旧,出现问题的可能性就越大。首次扫描新应用程序时,32%的应用程序存在安全漏洞。在五年的时间节点上,这一比例跃升至70%,到一个应用程序使用10年的时候,它有90%的可能性至少有一个安全漏洞。

问题增加的一个原因是应用程序中添加了新的代码,根据Veracode的数据,在前五年,应用程序平均每年增长40%,每一行新代码都增加了出错的可能性,更复杂的代码使发现和修复问题变得更加困难。

组件也是问题的一大部分,Eng告诉记者:“大多数开发人员,当他们下载一个开源组件并将其整合到他们的应用程序中时,永远不会回去更新它。”更准确地说,79%的时间里,旧的开源组件不会更新。随着时间的推移,即使从来没有添加新的代码行,也会不断发现新的漏洞,Eng说,“该应用程序的安全状况变得越来越糟糕。”

根据Synopsys在2月份发布的开源安全和风险分析,所有商业代码库中96%包含开源组件,89%包含过时四年以上的开源代码,这个问题对应用程序安全是很重要,以至于易受攻击的第三方库被OWASP列为Web应用程序安全风险前十名。

表面上看,解决方案似乎很简单:只需用最新版本替换组件即可。当代码库相对较新时,这很容易。Eng说:“如果明天发布补丁,那么做补丁就相当容易了。但如果我徘徊数年,得到多个版本,那么获取最新版本所需的工作量是巨大的。”

随着每一个新的更新,特别是主要的版本,有更多的可能性来改变行为,关键功能可能已弃用,这意味着如果组件更新到最新版本,应用程序作为一个整体可能会停止工作。“当你有几个主要版本之后,肯定会发生崩溃。”Eng说。

当公司发现自己处于这种情况时,最好的做法是首先专注于最关键的问题。

识别并确定构成最高风险的糟糕代码的优先顺序

不同的漏洞可能会对公司产生不同的影响。在某些情况下,特定函数中可能存在安全漏洞,但应用程序不使用该函数,因此使系统不太容易受到该特定漏洞的攻击。还有一个问题是,是否看到了攻击行为,以及正在观察到的攻击活动的类型。

背景也很重要。Synopsys Software Integrity Group的管理顾问亚当·布朗告诉记者:“如果你有一个过时的、非常旧的应用程序,但它部署在一个没有人能访问的安全网络上,那么它的影响就不会那么高了。即使它被归类为超高风险的关键漏洞,如果你花了很多钱来修复它,谁会受益?”

在受监管的行业中,也可能存在与修复代码相关的合规问题,因为任何更改都必须经过审查,这种情况往往发生在金融和卫生领域。对于一些旧的应用程序,更换可能比修复更有意义。布朗说:“有时候,建立一个新的模型,然后慢慢迁移到它上面,比试图修复旧的模型要容易得多。你可能会花时间修复一个严重的漏洞,但最终你应该做的是找出如何重新开发平台。”

Synopsys本月初发布了自己的软件漏洞报告,该报告基于过去三年运行的1.2万项测试,重点是网络和移动应用程序。根据这份报告,92%的应用程序存在漏洞,其中33%属于严重类别。

在确定优先顺序时,公司还需要注意不要被新闻头条所动摇。网络安全供应商Cymulate的董事兼网络安全架构师迈克·德纳波利表示:“公司之间有一种趋势,即根据当前媒体的关注水平来评估迫在眉睫的威胁,而不是实际的风险水平。”Cymulate在今年3月发布了一份跟踪网络安全有效性状况的报告,该报告还强调了公司中存在不安全代码。根据这份报告,与前一年相比,平均风险得分有所恶化。

安全和风险公司HyperProof的IEEE高级成员兼现场CISO Kayne McGladrey表示,确定软件修复的优先顺序的最大问题是,安全控制和业务风险结果之间往往存在脱节,他表示,这加大了获得高管支持的难度,代码维护和依赖项管理不是什么吸引人的话题。McGladrey告诉记者,相反,高管的兴趣往往集中在“停工带来的财务或声誉影响”上。

“为了解决这个问题,公司应该记录并商定与第一方代码和第三方代码相关的业务风险,然后,他们需要确定他们愿意在声誉损害、财务损害或法律审查等领域承担多大风险。在管理层达成共识后,关键系统的企业主应该努力识别和实施控制措施,以降低这些风险。”

一旦一家公司确定了其最优先的问题,下一步就是解决这些问题。不幸的是,这并不总是可行的,公司需要寻找其他措施。

当唯一的答案是缓解

当涉及到旧系统时,可能没有任何人拥有修复代码所需的知识。根据技术服务公司Advanced去年11月发布的一项调查,在使用大型机的公司中,42%的公司表示他们最著名的遗留语言是COBOL,另有37%的公司仍在使用汇编语言。

“别管就业市场了,很难找到像COBOL这样拥有过时编程语言技能的人。”WithSecure的网络安全顾问Paul Brucciani说。

另一个问题是源代码何时丢失。Brucciani告诉记者:“你会惊讶于运行在古老软件上的[许多]公司因为丢失了源代码而无法更新。”

在某些情况下,这些应用程序太重要了,不能碰,因为破坏它们的风险太高,更换它们会造成太大的中断。“并不是所有的遗留代码和应用程序在被发现时都可以删除。在许多情况下,关键业务流程依赖于由遗留系统执行的功能和工作流,“Cymulate的DeNapoli说。

软件漏洞也可能因为时间或资源不足或合规性考虑而无法修复,但如果被利用仍会构成风险。在这些情况下,公司应该在易受攻击的系统周围采取缓解措施,公司将需要使用其他策略,如实施或加强薪酬控制。

零信任架构、网络分段和对身份验证的更多关注有助于降低易受攻击的应用程序被利用的风险。Veracode的Eng说:“把所有东西都放在认证层后面是一种广泛的趋势。不管代码有多旧,这种情况都会发生。”

其他缓解策略包括加密、防火墙、安全自动化和动态数据备份。

自动查找旧代码并创建更安全的代码

针对易受攻击的旧代码问题的最新解决方案涉及人工智能领域的新进展,我们已经有了可以编写新代码的生成性人工智能工具,但供应商也在致力于专门的人工智能,这些人工智能经过专门培训,专门修复漏洞。Eng说:“人工智能可以提出修复建议,然后开发人员可以对其进行一些调整。”

问题是,当公司使用大型、公开的大型语言模型时,这些模型会接受各种培训,包括不好的东西。“正如他们过去常说的,垃圾进了,垃圾出了。不可避免的是,由这些模型生成的代码也将包含漏洞。因此,代码的生成速度会更快,但仍会有错误。“Eng补充道。

Veracode正在基于自己经过审查的代码构建自己的人工智能。“我们生成易受攻击的代码和良好的代码,并针对每一个类别训练模型,”Eng说。“这样我们就可以肯定地知道,发布出来的东西不是随机从某个开发者的Github库中提取出来的。”

Veracode Fix于今年4月发布,据该公司称,该产品可以为Java代码中发现的72%的缺陷生成修复程序,这可以极大地加快公司的补救工作。

在某个时候,较大的企业可能会想要构建自己的、定制的人工智能工具。“他们想以他们使用的代码风格生成修复程序。”Eng说。

但这并不意味着企业应该坐等人工智能机构来解决所有问题,他说:“有了大多数公司的大量安全债务,即使你现在只应对最严重的事情,你也不会没有事情可做。”

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/148882.html<

(0)
运维的头像运维
上一篇2025-03-12 08:52
下一篇 2025-03-12 08:53

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注