网络攻击者通常通过利用软件中的潜在漏洞来入侵系统。因此,防御者必须迅速识别并修补这些漏洞。虽然基于机器学习的自动化方法已被证明很有用,但这些方法通常仅限于解包、伪装、模仿和执行二进制相似性分析(Mantovani, Aonzo, Fratantonio, & Balzarotti, 2022)。熟练的人工逆向工程师(REs)仍然对于理解软件漏洞至关重要。分析安全漏洞需要丰富的经验(Votipka, Stevens, Redmiles, Hu, & Mazurek, 2018)。如今的程序分析逆向工程使用了专门的工具,这些工具旨在实现最大灵活性,但代价是高认知负荷和专家级别的领域知识。不幸的是,人类的认知资源(如注意力)是有限的,具备足够经验的个体非常稀缺。培训可以帮助逆向工程师了解常见的漏洞类型和利用方法,但他们的大部分专业知识来自实际经验。培训新手逆向工程师的理想方法包括专家逆向工程师的广泛支持,包括提供工具使用指导、针对不同漏洞类型的分析技术指导,以及帮助培养对专家直觉和策略的依赖。这种类型的广泛实践培训既昂贵又难以扩大规模。因此,我们提出可以使用逆向工程师的认知模型来实时捕捉专家策略和决策过程,并根据他们的经验水平调整逆向工程工具,提供相应的专家建议。通过人类行为实验,我们使用名为CAVA(漏洞分析认知辅助)的原型系统展示了我们方法的应用性。
认知模型是受统一认知理论约束的人类心理过程的计算表示。认知模型被视为人类与机器之间的自然接口(Thomson, Lebiere, & Bennati, 2014)。由于它们的工作方式与人类相似,因此可以用自然且有意义的方式呈现人工智能代理的结果和解释。由于它们是计算性的,因此可以与机器代理进行交互,在其表示中进行内省,并以适合其算法的方式呈现人类输入和反馈。
计算认知模型已应用于教育领域。多年来,它们一直是智能辅导系统的基础(Anderson, Corbett, Koedinger, & Pelletier, 1995),在这些系统中,它们用于内部维护学生的个性化模型,以最佳方式传递内容。大多数这些人工导师明确地对学生的知识进行建模;然而,也可以对学生的心智测量特征进行建模,并根据个人吸收新材料的能力提供个性化内容。例如,赫德里克·范·莱因(Hedderik van Rijn)及其团队(MemoryLab1)使用的公式可以测量个人的具体遗忘速度,从而优化要学习和复习的事实的节奏和时间。通过从响应时间估计个人的遗忘速度,创建用户的数字孪生体,然后利用该信息来最佳安排学习材料和顺序。研究表明,遗忘速度是一个高度可靠的个体差异指标(Sense et al., 2016, Sense et al., 2021),并且个性化学习计划优于标准学习技术(如闪卡学习法,Sense, Maab, Gluck, & van Rijn 2019)。
认知模型最简单的用途是作为量化人机协作特定方面的通用指标。这些指标可以反映个人和团队的表现,如认知负荷或信任度。然而,无需中断任务让人类回答调查问卷,就可以直接从性能的认知模型中提取这些内省性指标。
心理负荷是一个多方面的概念,它与流行的工作负荷概念(即要求完成的工作量)相关,但也考虑了认知限制和约束。一些心理负荷理论认为,人类大脑是一个模块化结构,具有执行特定任务(如感知、记忆和决策)的子系统。这些理论(如多资源理论,例如Wickens, 2002)假设人们拥有多种认知资源,并且任务在不同时间点需要不同数量的每种资源。这种方法自然地映射到许多认知架构(如ACT-R)的模块化结构上。架构中的每个模块可以被视为在任务的不同阶段分别激活的独立资源。然后可以定义多维的认知负荷度量,即每个模块(或更具体地说,其相关缓冲区)在给定时间间隔内处于活跃状态的时间百分比(Lebiere, 2001)。这些度量可以通过实验数据(如NASA-TLX量表,Lebiere, 2005, Jo et al., 2012)进行验证。
相反,单通道工作负荷理论关注特定资源,如注意力(例如Broadbent, 1958, Kahneman, 1973)或工作记忆(例如Sweller, 2011)。工作记忆本身是一个复杂的概念,具有不同的定义(Miyake et al., 1999)。在ACT-R框架内,工作记忆可以定义为通过扩散激活机制在长期记忆中聚焦访问任务相关信息的能力(Lovett, Reder, & Lebiere, 1997)。这些工作记忆及其控制长期记忆访问能力的度量与复杂任务表现相关(Sohn & Doane, 2003)。从这个角度来看,可以定义一种基于记忆的认知负荷度量,量化在任何给定时间需要维持的任务相关信息量。该度量将反映信息量本身以及维持其可用性的难度,反映了记忆过程(如基于时间的衰减)。
在模拟的搜索和救援任务中,Lebiere, Pirolli, Johnson, Martin, & Morrison(2024)开发了一个认知模型,该模型没有执行整个任务,而是专注于记住关键信息,例如已发现但尚未救援的受害者的位置和状态。描述从记忆中检索信息的激活过程的方程指定了在给定时间点忘记每个记忆的概率。由于激活衰减,这个概率会随时间增加;但由于记忆复述导致激活增强,这个概率会降低。定义了一种认知负荷度量,该度量是对每个需要记住的记忆的遗忘概率的累积。这种认知负荷度量能够很好地预测相关错误的实际概率,例如忘记完全处理已发现的受害者,以及反映任务表现的总分。在机器代理提醒搜索者他们有忘记受害者的风险的情况下,认知负荷与表现(以及错误)之间的相关性消失了,这表明基于认知的指标在指导干预方面是有效的。
通过使用模型追踪技术(将认知模型与用户的动作对齐,例如智能导师使用的那种技术,Anderson et al., 1995)和内省技术(如估计认知负荷),认知模型可以在逆向工程师尝试识别漏洞时提供有用的个性化辅助。在接下来的部分中,我们将描述我们使用逆向工程师的个性化认知模型来定制系统并提供专家建议的方法。首先,我们概述了认知架构以及如何将认知模型个性化到个体。然后,我们描述了软件逆向工程任务环境。接下来,我们详细描述了认知模型以及设计用于评估使用认知模型驱动推荐系统的可行性的一系列初步实验结果。之后,我们展示了使用认知模型预测心理负荷度量的方法、结果和讨论。最后,我们讨论了这些结果的意义、潜在的限制以及未来研究的方向。