研究软件在现代生活中扮演着被严重低估的角色。作为科学进步的基础,研究软件生态系统推动了创新,提高了我们的生活质量,深化了我们对宇宙的理解,并维护了繁荣与和平[1], [2], [3], [4], [5]。计算技术对科学和工程的每个阶段都产生了深远的影响,正如Cerf所指出的:“我们已经进入了一个计算成为现代社会主要驱动力之一的时代”[6]。Dongarra则强调了持续的资金支持如何促成“持久的发现引擎”,并将计算技术视为与理论和实验并列的科学探索的第三支柱[7]。鉴于研究软件的重要性,尤其是在开源生态系统背景下,它需要质量保证,因为社区软件工具和库在长时间内是相互依赖且被广泛使用的[8], [9], [10]。
自从“研究软件工程师”(RSE)这一术语被提出以来的十五年里,RSE在推动软件开发实践和提高科学计算领域软件质量方面发挥了重要作用[12]。这些研究软件专业人士与领域专家并肩工作,而后者历史上很少或完全没有接受过正规的软件开发培训[13], [14], [15],他们致力于提高研究软件开发的效率和可持续性[16], [17], [18]。展望未来,关于研究软件的需求以及RSE需要发展哪些知识和技能来满足这些需求,还有许多未解之谜[19], [20], [21], [22], [23]。Goth等人的研究表明,研究软件开发的多样化需求将要求RSE朝不同的专业化方向发展(如数据管理、性能优化或人工智能)[23]。因此,我们应该探索RSE学科的多种发展途径。
在这项研究中,我们关注了一个相对较少受到重视但实际上在当前生态系统中日益重要的领域:软件安全。正如我们所确定的,研究软件(1)现在在塑造社会未来方面发挥着不可或缺的作用;(2)其开发过程高度协作化、分布式且相互依赖——这两点都使研究软件成为恶意行为者的目标。正如Milewicz等人警告的那样,攻击(如数据泄露和/或勒索、破坏计算资源,甚至引入错误以篡改结果)最终可能削弱人们对研究软件的信任以及研究人员自由合作的能力[24]。虽然过去研究社区可能认为他们的软件项目过于小众或价值不高,不足以引起恶意行为者的关注,但鉴于生成式人工智能的兴起,实施有针对性的复杂攻击的成本正在急剧下降[25], [26]。因此,现在迫切需要保护研究软件的供应链,社区必须积极应对这一问题。
鉴于RSE在研究开发中的影响力,我们认为他们可以成为提高研究软件安全性的有效力量。虽然我们不期望RSE取代经过培训的安全专家,但他们完全有能力担任安全倡导者的角色。作为开发过程中的安全倡导者,这些团队成员通常也是开发人员,他们充当开发团队与安全专家之间的联络人[27]。具备基本的软件安全知识后,安全倡导者必须能够识别安全问题,并与开发人员和安全专家沟通,制定可行的安全解决方案,最重要的是,他们必须具备安全意识[28];
提高RSE的安全意识可以增强他们的信心和安全性,为RSE安全倡导者创造机会,最终提升研究软件的安全性[29]。我们的工作旨在开发并尝试一种针对研究软件工程师的安全教育干预措施,以提高他们的安全信心。最初,我们通过开发者安全基础(DSE)[30]研讨会和《安全开发手册》[31]找到了安全教育的内容,这些资源侧重于提高安全意识,包括威胁评估、收益分析和沟通等简单活动。尽管这些材料最初是为一般的软件工程利益相关者设计的,但我们修改了研讨会的议程、交付方式和数据收集流程,使其更具简洁性,便于分享和复制,并能够衡量参与者在安全活动方面的信心变化。通过举办名为“RSE安全基础”的研讨会,我们希望回答以下研究问题:
- •
问题1:研讨会能否提高RSE进行威胁评估的信心?
- •
问题2:研讨会能否提高RSE进行收益分析的信心?
- •
问题3:研讨会能否提高RSE在安全沟通方面的信心?
据我们所知,我们的这项工作是首个针对RSE进行安全意识教育的尝试。通过回答这些问题,我们证明了RSE可以成为安全倡导者,而且这种基于研讨会的方法可以有效提高他们的安全意识、行为和知识。