新闻详细
CSA发布 | 通过实现高性能计算安全增强研究完整性
  • 2025.01.02
  • 2544

随着高性能计算(HPC)的持续发展,安全问题已经不容忽视。复杂的基础设施、远程访问的广泛使用和敏感数据的存储给HPC系统带来了多重安全挑战。正是这些挑战使它们成为网络攻击的主要目标,导致研究成果丧失、数据损毁、研究进程中断以及潜在的法律后果。机构应该以前瞻性安全措施来抑制这些风险,其中包括风险评价、漏洞管理、补丁管理、访问控制、监测和事件响应。机构可以通过采用这样的策略来保护HPC系统和确保其研究结果始终完整如一。

 

CSA大中华区发布《通过实现高性能计算安全增强研究完整性》报告,目的是帮助参与使用、管理和保护HPC系统的各种利益相关人在确保HPC系统安全的问题上达成共识并建立共同的目标。本报告旨在证明,HPC环境的安全性是能够以促进(而非阻碍)HPC研究人员取得预期科研成果的方式实现的

 

 

报告指出,利用高性能计算(HPC)取得更好研究成果需要精心的规划、强大的基础设施对安全的高度关注这三点的紧密结合。报告的这次探索表明,提高HPC系统和应用程序的安全性,具有提升各领域(包括金融、医疗和科学研究)研究质量和研究完整性的巨大潜力。

 

从定义来看,高性能计算(High-Performance Computing, HPC)系统是指把计算资源聚合在一起,使其性能超过任何单个工作站、服务器或计算机;这种系统如今已成为研究人员不可或缺的工具,涵盖了从科学探索到工程设计创新的广泛领域。这些复杂计算平台提供的计算力量可令传统计算架构解决不了的复杂问题迎刃而解。然而,市场对性能需求的不断增加,给HPC系统带来了一大严峻挑战:究竟应该怎样在速度与安全之间权衡取舍,取得适当平衡呢?

 

 

HPC面临的安全挑战

 

面临的挑战

复杂的基础设施

HPC系统往往由数千个相互连接的节点组成,从而增加了保护和管理HPC系统的难度。这种复杂性给识别和修补漏洞、监测可疑活动以及为整个系统部署安全更新增加了许多困难。

 

独有的软件和信息库

HPC系统往往使用着一些在HPC环境之外不常使用的软件库,例如消息传递接口(MPI)、OpenMP、科学建模软件等。这些软件不仅为HPC环境带来独有的安全挑战和受攻击面,而且对于这些挑战,现有的安全工具可能并不具有现成的解决方案。

供应链问题

科研社区开发并共享了许多将会被拿到HPC系统上运行的应用程序,或者将被会整合进HPC应用程序的信息库,从而增加了供应链风险和攻击的可能性。

远程访问

研究人员和科学家会经常远程访问HPC系统,从而可能引入安全风险。未经授权者可能会通过入侵远程访问渠道接触敏感数据、安装恶意软件或干扰研究活动。

敏感数据

HPC系统往往存储着敏感数据,例如科研成果和知识产权。这些敏感数据容易招致网络攻击,以达到攻击者窃取、破坏或删除数据的目的。这些数据如果丢失或被人篡改,可能会给科研社区及数据拥有机构带来严重后果。

 

高级威胁

HPC系统正逐渐成为吸引可能涉及拒绝服务(DoS)等复杂技术的高级网络攻击的目标。运行HPC系统的机构必须对这些新兴威胁有充分有认识并主动采取防御措施。

 

造成的后果

研究结果

失窃

安全措施不力可能会遭致未经授权者访问并窃取敏感的研究数据,例如科学发现、算法和模拟结果。这种情况有可能给科研社区造成毁灭性影响,因为它有可能导致知识产权丧失、研究工作重复进行以及研究成果无法发布或分享。

研究结果遭破坏

恶意软件有可能感染高性能计算(HPC)系统,从而破坏或删除有价值的研究数据。这有可能造成花费数月乃至数年心血的研究成果损失殆尽,研究人员不得不重复实验或模拟。

研究工作流程被干扰

拒绝服务(DoS)攻击可能会使HPC系统陷于瘫痪,阻止研究人员访问开展工作所需要的资源。这将延误研究项目的持续进行,给研究机构造成经济损失并损害机构的声誉。

研究完整性

相关法规要求研究机构保持研究数据的完整性。如果违反这些法规,可能会让人怀疑研究结果的有效性并损害机构的声誉。

数据泄露

HPC系统可能存储着受《通用数据保护条例》(GDPR)、《加州消费者隐私法案》(CCPA)等数据隐私法规保护的敏感数据。违反这些法规可能会导致机构受罚和承担法律责任。

 

 

HPC的架构

 

为了使本报告有尽可能广泛的适用范围,我们围绕着NIST的高性能计算(HPC)参考架构描述文中讨论的控制和其他建议。以下是对NIST参考架构中各个区域的简要描述:

 

图1 HPC参考架构

 

高性能计算区:这个区域包含通过高速网络互连的计算节点,通常使用GPU等硬件加速器。这个区域的软件堆栈的安装和配置是被集中管理的。

数据存储区:这个区域安装着存储系统,其中包括并行文件系统(PFS)、节点本地存储器和归档文件系统。它存储着HPC应用程序的数据。

访问区:用户和管理员通过登录节点、数据传输节点和Web门户访问HPC系统。这些节点提供数据传输和作业提交等各种服务。

管理区:这个区域负责管理和维护HPC基础设施。这里包含用于配置管理、网络管理和服务管理等各种功能的服务器和交换机。

 

 

更强的安全保护带来更优质的科研成果

 

报告探讨了12个应用安全控制推动科研进步的例子,包括输入验证、错误处理、编码和转义、更新机制、信息库验证、内存安全控制和OpenMP、内存安全控制和OpenMP、零信任、HPC的网络安全、安全飞地、日志记录、漏洞管理。

以输入验证和编码和转义进行举例说明,详细内容请阅读报告原文。

 

1、输入验证

 

输入验证是一种编程技术,可确保只能给应用程序输入正确类型和格式的数据。输入验证是一项关键安全控制,可用于防止恶意输入进入应用程序。举例来说,输入验证是增强抵御某些类型攻击——例如跨站脚本(XSS)或SQL注入(SQLi)——的保护措施的一种潜在方法。输入验证例程可用来限制应用程序只接受哪些类型数据,从而使攻击者更难提供内含可执行内容的输入,比如在XSS攻击中输入“”,或者在SQLi攻击中输入“‘1’=‘1’”。在典型的商业化应用程序中,输入验证码被用来确保用户只给电话号码字段输入电话号码,或者只给电子邮件字段输入电子邮件地址,而在科研环境中,输入验证同样具有重要价值。

下面,让我们以几个用于检查输入是否为有效DNA序列的输入验证伪代码作为例子。

伪代码举例:

 

这个伪例程的设计是为了读取DNA序列并检查该序列是否只由与4个典型DNA碱基对应的字母A、T、C、G组成。该伪例程可以防止RNA或蛋白质序列被错误输入,从而帮助验证,应用程序只使用适当数据。

 

同样,对数字数据也可以进行类似的验证。例如,pH值被要求作为输入项,那么最好确保不要把25用作可接受值,因为pH值的范围仅为0到14。在某些情况下,这种控制可能会显得更为重要,例如当软件定义的模型只对某些输入范围有效时。5000 kg可能是一个完全有效的质量,但是如果软件模型在设计上不能处理超过100 g的质量,则5000 kg就不会是有效输入。重要的是我们必须认识到,输入验证控制不仅应该用于手动输入的字段,还应该用于被作为输入读取的文件或被从应用程序编程接口(API)或其他来源获取的数据。

 

“输入的是垃圾,输出的必然也是垃圾”一直是计算机科学的一个信条,而输入验证是确保减少错误输出的主要手段。输入验证通过消除输入错误可能导致的错误或无效结果,提高了科学应用程序生成结果的质量。应用程序的科学完整性和抵御攻击的能力都会因为输入验证而得到改善。

 

2、编码和转义

 

注入攻击始终是软件系统面临的一种持续威胁。这些攻击往往利用用户输入中存在的漏洞,操纵经过攻击者解释的代码,从而达到破坏系统完整性的目的。本节将深入探讨SQL注入的具体情况,强调由其带来的风险,介绍通过转义和编码实现的防御措施。所谓编码,是指把特殊字符转换成某种不同但等效的形式,而这种形式在目标解释器中将不再危险,例如,在以HTML格式显示的数据中用“>”取代“>”。转义则是指在值之前添加一个特殊字符,以避免产生误解,例如,在引证字符之前添加一个反斜杠“\”,以便将其解释为文本,而非一个字符串值的结束。为了让读者更好地了解这些控制的工作原理,我们列举了以下场景,其中一个Web应用程序通过嵌入在应用程序中的简单SQL查询收集用户凭证以进行身份验证:

伪代码举例:

 

对于像“some_user@email.com”和“R@ndomPwd”这样的合法用户输入,SQL查询直截了当:

SQL:

 

然而,攻击者可以通过注入诸如“admin'--”之类的恶意输入来利用这一点,绕过出具口令的要求。这时,SQL查询可能会变成:

SQL:

 

SQL中的“--”表示一条注释,使查询的其余部分变得无效。

SQL:

 

转义原本可以防止这种攻击,因为在SQL语句执行之前,如果将单引号转义,使其只被视为普通文本而非特殊字符,就可以防止它们被解释为一条注释的开始。

下面是另外一个复杂一些的攻击例子:

伪代码:

 

攻击者可以通过将口令输入为“' OR 1=1/*”来操纵这一点:

SQL:

 

这个巧妙的注入成功了,因为口令条件始终为真,而查询的其余部分都被注释掉了。通过转义引号,使其在执行SQL语句之前不再作为特殊字符,将再次防止攻击的成功执行。

 

3、防御策略:输入转义和编码

 

为了帮助抑制此类攻击,人们通常会按下文所述方式使用转义和编码。

 

输入转义:

  • 准备语句:使用准备语句或参数化查询,把用户输入用作参数,可防止恶意代码注入。
  • 存储规程:执行存储规程,在数据库内封装和验证输入,可以降低未经授权操纵的风险。

建议读者通过确保适当的类型转换、长度限制以及对特殊字符的检查,把上述策略与前文所述严格的输入验证结合使用。

 

输出编码:

  • HTML实体编码:将像“<”、“>”、“"”、“'”和“&”这样的字符转换成其HTML实体,可防止它们在HTML中被解释成代码。
  • JavaScript编码:在动态生成JavaScript时对用户输入进行编码,可防止在脚本元素内发生注入攻击。
  • URL编码:对用于URL的用户输入实施URL编码,可确保它们被正确解释而不产生歧义。

 

对于HPC环境来说,执行强健的输入转义和编码正变得越来越重要。这些技术增强了系统对抗注入攻击的能力,为保持关键数据的完整性和安全性提供了一个关键保护层。尽管网络威胁环境在不断演变,但主动处理输入的方式依然是构建富有弹性的安全软件系统的基石。在科学研究方面,这些控制也有助于促进产生更高质量的科研成果,因为它们可以帮助消除数据完整性问题。转义和编码可以确保文本字符串被正确解释,不会赋予它们以超出预期的特殊含义,而这有助于减少发生问题的潜在可能性,例如基因数据有时会由于字符解释错误而被误认为是日期。

 

报告结论

 

在HPC领域,考虑安全因素的重要性不容低估。随着数据泄露和网络威胁持续带来重大风险,采取强有力的安全措施以保护敏感研究数据和知识产权正变得越来越重要。当提高安全性与改进研究质量和研究完整性之间的联系日渐彰显时,这一点的价值不言而喻。通过提高安全性,可以取得更好的科研成果

 

拥抱HPC以提高研究水平需要有一种全面的方法把技术、数据管理和安全性全部涵盖其中。机构通过这样做,并把持续改进置于优先地位,可以有效抑制安全风险、提高研究完整性以及保持科研社区的可信性和声誉。通过合作、教育和创新,HPC社区将能在不断变化的威胁形势下自由徜徉,在日益互连和动态的计算环境中保证研究数据的完整性和保密性。

 

致  谢

 

 

北京江南天安科技有限公司专注于商用密码产品研发、创新和技术服务,是国家级高新技术企业、国家级专精特新“小巨人”企业。公司根植于密码技术研究和应用创新的深厚积淀之上,集密码产品和解决方案研发、生产、销售和服务于一体,是一家致力于为用户提供全面、可靠的密码产品和安全服务的“密码体系服务商”。公司在密码产品创新方面取得了显著成就,如参与国内首个商业银行国密改造项目,发布国内首款云服务器密码机、国内首块云服务密码卡、国内首台国密专线密码机、国内首台三级服务器密码机,以及支持国密协议的开源SSL开发套件。为国家的数字经济和用户的数据安全保驾护航。江南天安是CSA大中华区理事单位,支持该报告内容的翻译,但不影响CSA研究内容的开发权和编辑权。

 

 
本网站使用Cookies以使您获得最佳的体验。为了继续浏览本网站,您需同意我们对Cookies的使用。想要了解更多有关于Cookies的信息,或不希望当您使用网站时出现cookies,请阅读我们的Cookies声明隐私声明
全 部 接 受
拒 绝