天极按
现代行业报告显示,几十年前首次发现的缺陷如今仍是常见漏洞,恶意行为者经常利用这些漏洞入侵应用程序和系统:
约 70%的微软常见漏洞和暴露(CVE)是内存安全漏洞(基于2006-2018 年的CVE);
在谷歌 Chromium项目中发现的漏洞中,约70% 是内存安全漏洞;
在对 Mozilla漏洞的分析中,34个关键/高危漏洞中有32 个是内存安全漏洞;
根据谷歌零日项目团队的分析,2021年的零日漏洞中有 67%是内存安全漏洞。
在过去的几十年中,软件开发人员不断寻求通过以下缓解方法来解决软件开发生命周期(SDLC)中内存安全漏洞的普遍性和影响。尽管不断做出这些努力,内存安全仍然是软件产品中已披露漏洞的主要原因。尽管如此,这些缓解方法仍然很有价值,尤其是在结合使用时,可以保护尚未或无法过渡到MSL 的代码。
C 和C++等编程语言是内存不安全编程语言的典范,可能导致内存不安全代码,而且仍然是当今使用最广泛的语言之一。为了减少C 和 C++内存不安全代码的危险,许多软件制造商都投资于开发人员培训计划。其中许多培训计划都包括旨在减少由这些语言产生的内存不安全漏洞的策略。此外,各种组织和大学也提供培训,并颁发专业证书,以展示C 和 C++安全编码实践的知识。
虽然培训可以减少编码员可能引入的漏洞数量,但鉴于内存安全漏洞的普遍性,内存安全漏洞的出现几乎是不可避免的。即使是最有经验的开发人员编写的错误也会带来重大漏洞。
代码覆盖率是通过单元测试和集成测试尽可能多地覆盖代码库的过程。行业实践鼓励开发团队努力实现80%或更高的覆盖率,但由于时间和资源的限制,这并非总能实现。开发团队的目标是通过正面和负面测试用例覆盖应用程序的所有关键和安全敏感区域。团队可以轻松地将这些类型的测试添加到自动化管道或脚本中,以实现可重复性和回归测试。这样做的好处在于,可以确保以前已经测试过的功能不会增加新的漏洞,但这些功能可能在更新时无意中被更改,因此不在发布测试计划中。
各组织和行业已为大多数流行的编程语言制定了许多安全编码指南。这些指南概述了开发人员因特定语言陷阱(尤其是内存处理)而需要更加小心的领域。各组织已尝试确保开发团队不仅使用所选编程语言的安全编码指南,而且在团队发现新问题或对常见问题的处理方法进行标准化时积极更新指南。
模糊测试通过发送各种数据来测试软件,并在测试数据导致应用程序崩溃或代码断言失败时进行检测。模糊测试有助于发现漏洞,但任何工具都无法发现所有漏洞。由于模糊测试是在最初的编码错误发生后应用的一种非确定性策略,因此它的有效性是有限的。新的模糊测试方法不断涌现,可以发现以前未被发现的漏洞。软件制造商应确保其模糊测试策略不断更新。
开发人员使用静态应用安全测试(SAST)和动态应用安全测试(DAST)工具来发现各种软件漏洞,包括与内存相关的漏洞。SAST工具查看静态资源,特别是源代码或二进制文件,而DAST 工具则检查运行中的系统,以发现SAST工具难以发现的问题。许多组织同时使用这两种工具。一些规模较大的组织会使用不同供应商提供的一种以上SAST 或DAST 工具,以便使用更广泛的方法提供额外的覆盖范围。
根据代码库的不同,SAST工具(其次是 DAST工具)会产生大量误报,给软件开发人员造成负担。此外,任何SAST 或 DAST工具都无法捕获所有漏洞。
C++ 社区一直在考虑如何在向后兼容性、内存安全默认设置和基础语言的其他优先事项之间取得平衡。例如,苹果公司修改了iBoot 系统中使用的C 编译器工具链,以减少内存和类型安全问题。外部分析表明,这可能会带来非同小可的性能和内存使用成本。微软开发了"Checked C","在C 语言中增加了静态和动态检查,以检测或防止常见的编程错误,如缓冲区超限和越界内存访问。
大多数现代计算机体系结构都不包含独立的数据和代码内存,这就允许利用内存安全问题的恶意行为者将代码作为数据引入,然后胁迫处理器执行。早期试图缓解内存安全问题的方法是将某些内存段标记为不可执行。在这种情况下,中央处理器不会执行这些页面中包含的指令,因为它们只是用来存储数据,而不是代码。不幸的是,现在出现了更复杂的技术,例如面向返回的编程(ROP),它可以将程序中现有的代码段重新组合,在对手控制的数据上执行,从而颠覆程序的控制。
控制流完整性(CFI)技术可识别所有间接分支,并对每个分支进行检查。在运行时,程序会检测到无效分支,导致操作系统终止进程。尽管取得了一些成功,但仍发现了许多绕过CFI 的方法,其中包括在野外被利用的方法。
传统上,发现内存漏洞的恶意网络行为者会制作一个有效载荷来利用该漏洞,并试图找到执行其代码的方法。找到执行其代码的准确内存布局可能需要一些实验。但是,当找到漏洞时,利用漏洞的方法就会在应用程序的任何实例上生效。
ASLR是一种技术,每次程序运行时,运行时系统都会将堆栈和堆等各种组件移动到不同的虚拟地址。ASLR旨在确保恶意网络行为者不知道内存是如何组织的,从而大大增加了利用漏洞的难度。然而,绕过ASLR 的情况很常见,因为程序可以被哄骗泄漏内存地址,这意味着ASLR 并不能完全防止利用内存安全漏洞。
现代编译器包含各种针对利用内存安全问题的缓解措施。堆栈金丝雀和不可写堆栈等技术利用不同的方法来缓解某些内存安全问题。不过,行为者也发现了利用方绕过这些缓解措施的技术,如识别数据泄露和ROP。
开发团队可以使用沙箱技术隔离系统的不同部分,以限制任何潜在漏洞的范围。开发人员会将应用程序分成多个子系统,并限制它们可以使用的资源,包括内存、网络访问和进程控制。沙箱为多种类型的漏洞提供了一层保护,甚至可以追溯到chroot 以防止文件系统被穿越。
处理不可信数据(如网络通信或用户生成的内容)的子系统可能是使用沙箱与系统其他部分隔离的最佳候选。如果恶意行为者在一个子系统中发现了与内存相关的漏洞,他们就会面临突破沙箱的额外任务。迫使对手发现多个新缺陷会提高攻击成本。
尽管沙箱带来了价值,但开发人员在多大程度上推进这一模式还是有限制的。使用的沙箱越多,代码就越复杂。此外,系统能容忍的沙箱数量也有实际限制,尤其是在手机等受限设备上。此外,沙箱绕过(也称为沙箱逃逸)经常被发现,从而使安全保护失效。谷歌关于安卓操作系统沙箱的介绍说明了这种缓解策略的局限性。
与 ASLR和编译器缓解措施一样,加固分配器会增加利用漏洞的难度,但并不会消除内存安全漏洞。例如,苹果公司报告称,其名为"kalloc_type "的分配器"......使得利用大多数内存损坏漏洞本质上是不可靠的"。还有一些针对特定领域(如OT 设备)的商业内存安全分配器。
目前正在积极开发的一个前景广阔的领域是利用硬件支持内存保护。能力硬件增强RISC 指令(CHERI)31 项目是SRI国际公司和剑桥大学的联合研究项目,为现有芯片架构增加了新功能。英国政府的数字安全设计(DSBD)计划汇集了7000 万英镑的政府资金和1.17 亿英镑的行业共同投资,以进一步开发该技术。除了一系列学术和行业支持的研发活动外,该计划还使Arm 能够在2022 年 1月推出支持 CHERI的 Morello原型处理器、片上系统(SoC)和板卡。Arm和微软都记录了其 CHERI工作以及 DSBD支持的一系列其他活动。目前,开发人员社区正在开发工具和库,以实现该技术的广泛应用。
CHERI可以部署在 Arm以外的体系结构上;DSBD最近还宣布投资 120万英镑,用于一个使用RISC-V 体系结构的示范项目 ,目的是展示如何将该技术有益地部署在汽车系统中,因为汽车系统的安全性至关重要。
Arm公司在其部分 CPU产品线中引入了另一项名为"内存标记扩展"(MTE)的技术,用于检测空闲后使用和越界(也称为缓冲区溢出)类型的错误。分配内存时,系统会为其分配一个标签,所有对该内存的进一步访问都必须使用该标签。如果标签不匹配,CPU将引发错误。Arm公司估计,MTE的开销在1%-2%之间。英特尔也宣布在未来的芯片组中采用内存标签功能。
其他基于硬件的研究还包括FineIBT,它在英特尔基于硬件的控制流强制执行技术(CET)基础上支持控制流完整性(CFI)。例如,Rust程序员可以将某些代码标记为"不安全",从而受益于硬件控制。
虽然硬件中的内存保护功能尚未广泛应用,但一些行业观察家认为,在许多部署场景中,它们将很有帮助,因为迁移到MSL需要较长的时间。在这种情况下,硬件刷新周期可能很短,足以为客户提供重要的内存保护,直到其他保护措施可用为止。目前正在对这些硬件保护措施进行实验,包括测量这些新设计对实际性能的影响和内存消耗特性。在某些情况下,如果软件使用得当,硬件保护可能会提高性能。
尽管软件制造商投入了大量资源试图减少内存安全漏洞,但这些漏洞仍然普遍存在。客户必须花费大量资源,通过繁琐的补丁管理计划和事件响应活动来应对这些漏洞。
正如美国国家安全局之前在《软件内存安全网络安全信息表》和其他出版物中指出的,最有希望的缓解措施是软件制造商使用内存安全编程语言,因为这是一种不易受内存安全漏洞影响的编码语言。然而,不安全内存编程语言(如C 和C++)是最常见的编程语言之一。整个技术领域的互联网应用程序和设备都使用不安全内存编程语言。这些语言可运行操作系统、资源受限系统和要求高性能的应用程序。内存不安全语言的普遍存在意味着目前最关键的计算功能存在重大风险。
与此同时,编写机构也承认这样一个商业现实:向MSL 过渡将涉及大量投资和行政关注。此外,任何此类过渡都需要多年的精心规划。虽然将代码库迁移到MSL 会产生前期成本,但这些投资将提高产品的可靠性和质量,关键是客户的安全性。
软件制造商将从使用MSL 中获益,其客户也将从更安全的产品中获益。开发人员和客户可获得的好处包括:
提高可靠性。MSL创建的代码比内存不安全编程语言更可靠。例如,使用内存不安全编程语言的操作系统只有在检测到内存违规时才能使应用程序崩溃。如果应用程序是一个客户服务器进程,它可能会中断所有已连接用户的连接。此外,如果内存损坏发生在内核中,操作系统本身也可能崩溃。而MSL 则可以禁止内存违规行为的发生。
减少对开发人员的干扰。当有人报告内存安全漏洞时,开发人员就会进入反应模式,必须停止其他工作来诊断和缓解问题。减少内存安全缺陷可能意味着减少对漏洞发现的计划外和通常是紧急的响应。据开发团队报告,内存安全漏洞是最难诊断和正确处理的问题。因此,他们往往必须从其他重要工作中抽调最资深的开发人员来发现并正确修复这些缺陷。过渡到MSL将使开发人员能够专注于当前的优先工作,而不是对新发现的漏洞做出反应。
减少支持人员的紧急情况。更少的内存安全漏洞可能会导致更少的紧急发布,从而节省构建、质量保证、产品管理和支持等团队的时间。
为客户减少紧急情况(和漏洞)。通过过渡到MSL,消除产品中的内存安全类漏洞,从而不再需要发布内存问题安全版本。这将减少客户需要应对的紧急产品发布次数,从而节省时间并避免漏洞。
除了给软件制造商及其客户带来好处外,MSL还能减少产品的攻击面。攻击面的缩小将增加恶意行为者的成本,他们需要投入更多资源来发现其他可利用的漏洞。与任何缓解措施一样,过渡到MSL本身并不能阻止或遏制网络犯罪或间谍活动。恶意网络行为者的经济状况将决定他们在哪里寻找下一个入侵载体来完成任务。然而,鉴于目前内存安全漏洞和漏洞利用的普遍性,减少并最终消除这种攻击途径将大大提高攻击成本。
软件制造商在制定路线图时应考虑以下技术和非技术因素:
1.优先级指导。制造商应通过为开发和技术团队制定路线图和具体指导,考虑如何优先迁移到MSL。
2.选择适合用例的MSL。MSL种类繁多,每种 MSL在架构、工具、性能、受欢迎程度、成本和其他因素方面都有自己的权衡标准。没有一种MSL 适合所有编程需求。制造商应查看使用内存不安全语言的用例,并为每种用例选择最合适的MSL。在选择MSL 时,软件制造商应遵循标准的风险管理流程,因为MSL也可能存在其他严重性极高的潜在漏洞。作为风险管理计划的一部分,制造商应严格遵循国家标准与技术研究院(NIST)风险管理框架和安全软件开发框架(SSDF)中定义的供应链和安全开发生命周期实践。
3. 人员能力和资源配置。制造商应考虑如何对开发人员进行所选MSL 的培训,如何优先聘用具备相关技能的开发人员,以及支持所选语言可能需要哪些资源。
虽然没有一种方法可以确定向MSL过渡的优先顺序,但以下选项列表将帮助开发团队选择规模适当的迁移项目,为他们提供经验、紧密的反馈环路和可控的风险。
从较小的新项目开始。在MSL 中重写现有代码可能是一项巨大的挑战,尤其是当代码已经运行良好,而企业又不具备所选MSL 的专业知识时。可以考虑从风险较小的新项目开始,让团队有时间尝试新工具和新流程。
替换内存不安全组件。考虑采用用内存不安全编程语言编写的独立组件,并用您选择的MSL 重新编写。考虑如何将现有组件与新更新的MSL 组件并行运行,并比较结果。一旦更新后的MSL 组件能持续产生与旧组件相同的输出结果,就可以淘汰旧组件。
优先处理安全关键代码。从安全角度看,代码库中的部分代码可能比较敏感,或处于关键攻击路径上。例如,对用户生成的内容执行操作的代码,这是一个臭名昭著的滥用载体。其他例子包括处理密钥、打开网络连接、执行身份验证和授权或在固件等低级别上运行的代码。在确定优先级的过程中,审查加密组件的使用情况以及系统赖以建立的其他"信任根基"。
使用仪器。例如,Android操作系统中的GWP-ASan分配工具可以检测到模糊测试无法检测到的堆内存错误。
评估性能和复杂性。经常有理由重写组件或更大的系统,以纳入原始设计未曾预料到的新需求。系统的现有实现可能已经变得很脆弱,因此开发团队可能会发现很难支持满足新需求所需的演进。如果开发团队出于某种原因要重写系统,他们应该考虑将需求分解成更小的部分,并用组织选择的MSL编写部分或全部需求。
确定哪些模块受CPU限制。有些应用程序对CPU有限制,这意味着CPU速度会限制整个系统的性能。具体来说,就垃圾收集MSL而言,与受人类响应时间、网络延迟或磁盘I/O等因素限制的应用程序相比,受CPU限制的应用程序可能会经历更多的性能波动。
提升并行系统。如果开发团队将高度并行的应用程序移植到MSL,他们应将工作流程的一小部分导向新的代码库,并监控结果。一旦确信系统运行正常,开发团队就应逐步增加负载,直至完全淘汰旧系统。
封装应用程序。如果团队无法将现有的内存不安全应用程序更新为MSL,则应为MSL中的所有公共接口编写一个中间应用程序。封装应用程序需要确保所有输入不能超出子应用程序的内存范围。
编写机构建议软件制造商在将多种MSL纳入其工作程序之前对其进行评估。有关一些内存安全语言的概述,请参阅附录。
规划学习时间。确保团队能够获得可能需要的培训和学习材料。为团队提供专门的学习时间,既可以自学,也可以向资深团队成员学习。为新员工提供以前解决过的问题示例;在MSL中包括独立的编码练习和调试挑战。
规划整合时间。制定新员工融入现有团队的策略,并解决潜在的冲突,例如熟悉MSL的新团队成员与更熟悉现有语言的资深成员之间的冲突。
建立内部和外部社区。建立MSL内部支持者小组。除了在正常项目中为其分配迁移和开发任务外,工程领导层还应让他们有时间与其他团队合作,了解他们的努力、挑战和成功。这些支持者可以建立一个内部社区,并通过举办内部会议、培训课程和聊天室等方式,在各个项目间交叉传播信息。除了建立内部社区外,可以通过举办虚拟和面对面的会议,帮助组织与外部专家建立联系。
招聘和入职。对于企业来说,聘用已经是MSL专家的开发人员并不实用。
创建人员配置管道。企业应向大专院校和教育机构发出信号,表明其需要接受过安全和内存安全培训的开发人员。许多院校的计算机科学和软件工程课程都是根据学生的需求设置的,他们希望能收到雇主的录用通知。如果学生没有预期需要某种特定技能,教育机构就不会花费资源来提供这种技能。
软件制造商在制定并开始实施内存安全路线图时,需要注意以下几个挑战:
编写机构鼓励软件制造商在SDLC中提前考虑安全问题,这样可以提高产品部署时的安全性和可靠性。根据编程语言的不同,前期工作可能会有所增加。有些MSL要求开发团队以特定的方式访问内存,这可能需要更多的时间让团队熟练地创建成语正确的代码。虽然这些额外的工作看似繁重,但减少内存安全漏洞对开发团队和客户都有好处。
值得考虑的是,从代码大部分时间都能正确管理内存的环境迁移到编程语言能确保代码始终正确管理内存的环境的好处。
有些MSL将垃圾回收器作为内存管理的一部分。垃圾回收过程会带来不可预知的延迟,从而影响应用程序的整体性能特征,尽管有些语言可以使用额外的线程来清理和释放内存。垃圾回收器还会带来一些额外的CPU和内存开销。虽然垃圾回收对第五代语言和现代硬件的影响可以忽略不计,但这些性能特性仍会影响到受限设备,如嵌入式系统中的设备。开发人员需要注意这些性能特性,尤其是在要求实时性能和高可扩展性的环境中。
MSL无论是否使用垃圾回收模型,几乎肯定都需要依赖C 和C++ 等语言编写的库。尽管有人在努力重写MSL中广泛使用的库,但任何努力都无法在短期内重写所有库。
在可预见的未来,大多数开发人员将需要在安全和不安全编程语言的混合模式下工作。开始使用MSL 编写程序的开发人员将需要调用非内存安全的C 和C++库。同样,也会出现内存不安全的应用程序需要调用内存安全库的情况。
在调用内存不安全组件或应用程序时,调用应用程序需要明确了解--并限制传递到已定义内存边界的任何输入。当数据流越过这些边界时,MSL提供的内存安全性保证将受到限制。其他潜在的挑战包括数据调用、错误处理、并发性、调试和版本控制方面的差异。
这类挑战是常见的,也是经过充分研究的。管理语言间交互的工具和技术已经出现,这可能是未来创新和发展的一个领域。
值得注意的是,在某些MSL 中,内存保护保证也有可能被破坏。例如,用Rust 编写的软件可以包含"unsafe "关键字 。使用该关键字有几个重要原因,如直接与操作系统交互。不过,开发人员不应使用该关键字,以免引入内存安全漏洞。
许多(也许是大多数)计算机科学学位课程并没有向学生深入讲授内存不安全编程语言的危险以及由此带来的现实危害。造成这种情况的原因有很多。例如,许多软件制造商的招聘经理需要能在现有环境中工作的开发人员,其中许多包括大型C 和C++代码库。他们可能会在短期内对聘用精通他们主要使用的语言的学生感兴趣。然而,如果只满足软件制造商的短期需求,就很难为内存安全代码创造动力。
大学不重视MSL的另一个原因可能来自于决定教授如何花费时间的激励结构。掌握新的编程语言和更新课件的成本相当可观,很少有教授在履行其他义务之余还有闲暇时间进行这项投资。这一领域已经成熟,可以进行更多的研究和探索,为教授们提供开始教授MSL 的正确工具。
值得注意的是,C和C++等语言可以帮助学生理解计算机在较低层次上是如何工作的,当这些学生需要深入思考复杂系统的性能和可扩展性时,这是一项非常有用的技能。在语言选择和内存安全练习之间进行周到的平衡,可以培养出全面发展的毕业生。
在大学之外,人们可以通过多种方式学习如何编写软件。许多人通过阅读书籍、参加在线课程、阅读博客或观看视频来自学编程。有些人则从修改别人为自己喜爱的视频游戏或浏览器提供的扩展程序开始,然后学习编写自己的程序。业界的MSL倡导者应该考虑如何在这些人们开始编程的常见方式中偏向MSL。
尽管许多MSL可广泛应用于台式机、服务器和移动平台,但在内存、CPU和网络连接严重受限的受限系统中,它们的可用性却较低。OT系统通常会优先考虑可用性和可靠性,而不是许多其他因素,并且缺乏功能更强大的系统上的各种编程语言。要在OT 系统中过渡到MSL,就必须证明其性能、可靠性和实时性。此外,这种过渡还需要与限制较少的平台相同的工具,以便开发人员能够构建、测试和调试他们的系统。
编写机构强烈鼓励软件制造商编写和发布内存安全路线图。通过这样做,制造商将向客户发出信号,表明他们正在遵循以下关键的安全设计原则:(1)掌握安全成果的所有权,(2)采用完全透明的方法,(3)采用自上而下的方法开发安全产品。软件开发人员和支持人员应制定路线图,详细说明制造商将如何修改其SDLC,以大幅减少并最终消除产品中的内存不安全代码。为确保向客户提供充足的资源和行政级别的支持信号,编写机构强烈要求行政人员公开确定高级职员,以推动路线图的发布,并在必要时协助调整资源。
路线图应包括以下内容:
1.包含日期和成果的定义阶段。与所有软件开发工作一样,开发团队可将较大的工作分解为较小的项目,并明确成果,以衡量其进展情况。各阶段可包括:
a. MSL 评估。
b.试点测试在MSL 中编写新组件或将MSL 纳入现有组件。
c.威胁建模,找出最危险的内存不安全代码。
d.重构内存不安全代码。
2.新系统中的MSL 日期。公布公司仅使用MSL 编写新代码的日期。企业可以通过在MSL中编写新项目来限制潜在内存安全漏洞的数量。公开设定这一改变的日期将表明对客户安全的承诺。
3.内部开发人员培训和集成计划。任何MSL过渡都不是免费的,制造商需要预留时间让开发人员熟练掌握以下技能:
a.使用所选语言编写软件。
b.调试。
c.工具。
d.将MSL 集成到构建中。
e.整体质量控制流程。
4. 外部依赖性计划。路线图应记录处理对C 和 C++编写的库的依赖性的计划。大多数软件产品都基于大量开放源码软件(OSS) 库,其中很多都是用C 和 C++编写的。如果不包括开放源码软件,内存安全路线图将是不完整的,尤其是因为大多数现有产品都使用开放源码软件。
5.透明度计划。定期更新上述信息,例如每季度或每半年更新一次,可以进一步建立信心,让人相信组织正在认真对待内存安全漏洞。此外,发布对成功和挑战的详细分析,特别是SDLC 的改进,可以激励其他人开始他们的内存安全之旅。
6. CVE支持计划。业界需要详细、正确的公开数据,说明会给客户带来风险的漏洞类别。它需要提供有关编码错误的足够详细信息的漏洞描述,以区分C 和 C++内存安全缺陷和其他类型的缺陷。为此,企业应公开承诺及时提供100% 的 CVE的CWE,并提供任何其他背景信息,以帮助业界了解缺陷。目前,一些供应商在这方面做得很好,但也有一些知名企业没有做到这一点,从而限制了业界从漏洞数据中获得更多的启示。
最后,编写机构强烈鼓励使用成熟度模型的组织随着时间的推移不断发展和改进其SDLC,整合其内存安全工作,以展示更高水平的成熟度。
内存不安全代码是软件制造商及其客户面临的一个主要问题。以前为解决这一问题所做的尝试只取得了部分成果,如今,在报告的内存不安全编程语言漏洞中,有三分之二仍与内存问题有关。要消除内存安全漏洞,最有希望的途径是软件制造商找到内存安全编程语言的标准化方法,并将安全关键软件组件迁移到内存安全编程语言的现有代码库中。
编写机构敦促软件制造商的管理人员优先在其产品中使用MSL,并通过编写和发布内存安全路线图来证明这一承诺。编写机构鼓励软件制造商从高层带头,公开任命一名业务主管,亲自推动消除产品线中的内存安全漏洞。
通过发布内存安全路线图,软件制造商将向客户和行业发出信号,表明他们符合以下安全设计原则:
对客户的安全成果负责。鉴于内存安全漏洞在软件市场的普遍存在,消除这类漏洞将改善客户的安全状况。
彻底透明。路线图将是一项公开计划,详细说明制造商为消除产品线中的此类漏洞而计划采取的方法。在短期缓解措施以减少内存不安全编程语言的危险、MSL过渡和硬件研究之间的平衡,制造商之间会有很大差异。但是,无论采用哪种方法,目标都应该是一致的:制定一个具有明确里程碑的公开时间表,向客户证明他们正在为解决这一问题进行紧急投资。
高层领导。软件制造商公布其路线图并公开任命一位业务领导来支持这些工作,就表明他们是在高层领导,这些重要的举措并不是仅仅委托给下级员工的事后想法。
当软件制造商遇到障碍时,他们应阐明这些挑战,并提出潜在的解决方案,作为寻求解决这类编码错误的利益共同体的一部分。通过共同应对这些挑战,软件行业可以确定并推广任何一个组织都无法独立完成的解决方案。这是一个全行业的问题,解决这个问题需要全行业的共同努力。无论采用哪种方法,编写机构都敦促各组织立即行动起来,减少并最终消除其产品中的内存安全漏洞。
天极智库聚焦网络安全相关领域,聚集网络安全职能部门、行业主管部门、科研院所、相关企业和专家学者的力量,组织开展政策研判、事件分析、技术研究、学术交流,为国家网络安全工作提供支撑,增强国家网络空间安全防御能力,提升国家关键信息基础设施安全保障能力和水平。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...