基于生成式AI的访问控制, 迁移传统安全策略到基于LLM的风险分类器

  1. 基于规则的风险分类

风险分类是网络安全系统的核心能力之一,它将访问请求和命令映射到其风险级别/类别:高(High)、中(Medium)、低(Low)。目前,即便是在大规模环境中,风险分类器仍主要采用基于规则的系统实现。基于规则的分类器易于以符合人类直觉的方式定义------这也使得它们具备较好的可解释性。

在其最简单的形式下[1],基于规则的分类器可以被视为if-then-else规则,明确规定哪些访问请求应被阻止(黑名单)或允许(白名单)。在规则的编写语法中,正则表达式被广泛使用,以便单条规则可以适用于多个请求/命令。这些规则被存储在规则数据库(rules DB)中。而输入请求的执行历史及其确定的风险级别会被汇总存储在日志数据库(logs DB)中,以供离线审查/审计。此类基于规则的分类器的参考架构如图1所示。

                                            图1:基于规则的风险分类架构(作者绘制)

这些规则通常由领域专家(SMEs)基于他们对底层系统的专业知识和经验定义。他们还会定期审查执行历史,以确保规则的正确性,并据此在规则数据库中添加/更新规则。由于这一点,基于规则的分类器的覆盖范围和有效性取决于个人的经验/历史,这可能会与真正的风险级别存在偏差。

此外,基于规则的分类器需要定期维护和手动修订,以适应不断演变的系统环境、新的访问控制策略和命令。而正则表达式也无法有效处理复杂(或冗长的)策略、命令和程序。

从基于规则的方法转换为基于机器学习(ML)的方法[2],能够减少对SME的依赖,同时具备自学习能力,能够扩展到新的流程和规则。近些年来,大型语言模型(LLMs)在这一方面展现出极大的潜力。我们将介绍一种方法,利用现有规则来提升分类准确性,并迁移到基于Transformer的安全风险分类器。

  1. 企业级大型语言模型(LLMs)

LLMs属于基础模型(充当解码器)的一类,需要进行微调,以完成诸如以下任务:

• 问答(QA)------例如聊天机器人

• 文本抽取

• 摘要生成

• 自动更正

• 翻译

例如,ChatGPT背后的LLMs训练自公开数据集,如Wikipedia。如今,已经出现了针对特定领域的LLMs,例如微软研究院的BioGPT,它专门针对生物医学文本的生成和挖掘进行了微调。

LLM的应用范围广泛,我们预计它们将以不同的形式进入企业环境。因此,第一步是识别并概述当前生成式AI的架构模式。

2.1 黑盒LLM API

这是典型的ChatGPT场景,用户可以通过黑盒API/UI访问LLM。

在这种模式下,提示词(Prompt) 是主要的交互方式,涵盖用户的查询和任务。提示词的作用是调整用户输入,提供正确的上下文和指导,以最大化获得"正确"响应的可能性。

这也催生了提示词工程(Prompt Engineering) 这一职业领域,提示词工程师会系统地进行试验,记录他们的发现,最终优化出"最佳"提示词,以获得最优答案。

                                    图2:LLM API架构(作者绘制)

关于企业级提示词存储、提示词冲突问题及其模板化整合的详细讨论,可参考我之前的文章。

2.2 嵌入式LLM应用

本节讨论的是嵌入在企业平台(如Salesforce、SAP、ServiceNow)中的LLMs,或由LLM提供商(如Google、OpenAI)在应用商店上发布的即用型企业应用。

企业级LLM应用有望加速LLM的企业化应用,但在使用之前,企业应谨慎考虑与第三方ML模型类似的问题,例如:

• LLM训练数据的所有权

• 知识产权(IP)问题

• 责任条款

数据所有权问题:数据对于监督式AI/ML系统至关重要,尤其是对于LLMs而言。LLMs通常基于公共数据集训练,而这些数据的AI/ML训练使用权并未被清晰定义,甚至可能随着时间推移发生变化。例如,Reddit曾宣布,将对基于其庞大用户数据进行AI/ML训练的企业收费。

因此,关于训练数据、输入数据、输出数据以及所有生成数据的所有权问题,企业需要进行谈判。此外,企业还应了解/评估应用提供商如何使用其用户交互所产生的数据。

                                        图3:嵌入企业应用/平台的LLM应用架构(作者绘制)

2.3 LLM微调/领域特定SLMs

LLMs本质上是通用的。为了充分发挥LLMs在企业环境中的潜力,需要用企业知识(如文档、维基、业务流程等)对其进行上下文化。这种上下文化通常通过微调LLM,创建领域特定的小型语言模型(SLM) 来实现。

                                              图4:企业LLM上下文化策略(作者绘制)

微调(Fine-tuning)是指对预训练LLM进行再训练,使用较小规模的企业数据,使其更符合企业需求。

从技术角度来看,这意味着更新神经网络训练好的最后几层的权重,使其适应企业数据和任务。然而,微调需要访问底层模型的权重,对于封闭模型(如ChatGPT)来说,这通常是不可能的。这时,开源预训练LLM成为了一种解决方案,例如Meta的LLaMA模型系列。

斯坦福Alpaca项目 证明,只需花费600美元即可对LLaMA模型进行微调,使其性能接近ChatGPT。因此,微调LLM并不一定复杂或昂贵。

                                图5:使用企业数据微调LLM(作者绘制)

2.4 检索增强生成(RAG)

微调是一个计算密集型的过程,而RAG(检索增强生成)提供了一种可行的替代方案。它通过为提示词提供额外的上下文,使检索和响应更符合特定场景。

RAG的实现方式通常是先通过索引文档或向量搜索检索一组相关文档,然后将这些文档作为上下文提供给LLM,以限制生成的响应范围。如今,大多数LLM平台都支持较长的提示词,因此可以将企业上下文嵌入到提示词中。

给定一个用户查询,RAG流水线主要包括以下三个阶段:

• 检索(Retrieve): 将用户查询转换为嵌入(向量格式),然后计算它与其他内容的相似度分数(搜索)。

• 增强(Augment): 使用从向量存储中检索到的搜索结果/上下文,该存储保持最新,并与底层文档存储库同步。

• 生成(Generate): 将检索到的内容片段嵌入到提示词模板中,为LLM提供额外的上下文,以更好地回答查询。

                                            图6:检索增强生成(RAGs)(作者绘制)
  1. 基于LLM的安全风险分类器:训练与部署

本节将介绍一个基于LLM微调的安全风险分类器训练流水线。这与以往在安全相关任务中应用自然语言处理(NLP)技术的方法类似,例如恶意命令检测[3]、安全代码生成[4]等。

过去几年,NLP领域发生了巨大变革,主要由两种基于Transformer架构的大型深度学习模型推动:谷歌的BERT(双向编码表征) 和 OpenAI的GPT(生成式预训练模型)。

其中,BERT架构在分类任务上表现优于其他架构,例如GPT更适用于生成任务。BERT通过在NLP任务(如掩码词预测和下一句预测)上预训练Transformer深度神经网络,以学习单词间的语法和上下文关系。这种学习是自监督的,仅需要文本语料库,无需标注数据。在此基础上,微调BERT模型,使其适应具体的文本分类任务。

下图展示了一个利用现有基于规则系统的安全风险分类器的训练和部署流水线。

                                图7:基于Transformer的安全风险分类器架构,结合现有基于规则的系统(作者绘制)

3.1 预处理

在预处理阶段,输入字符串会通过分词(Tokenization)方法拆分成一系列标记(Tokens),例如字节对编码(BPE)。

不管是BPE还是基于空格的分词方法,目标都是识别出最优的标记集,使它们在语料库中出现得更频繁。BPE是一种无监督分词方法,它通过递归地将最常出现的字符对替换为语料库中不存在的字符,从而获得更短、更稳定的标记,特别是针对语料库中未见的词汇。

3.2 BERT训练

编码后的标记会被输入到双向Transformer架构的编码-解码器(Encoder-Decoder) 结构中。最后添加一个分类层,该层会接收Transformer的输出,并将其映射到输入字符串对应的风险类别(High、Medium、Low),同时输出相应的概率。

BERT训练阶段实际上包含两个步骤:

  1. BERT预训练(BERT Pre-training)

  2. BERT微调(Fine-tuning)

BERT的预训练通常采用两种无监督任务[5]:

• 掩码语言模型(Masked LM):随机掩盖一定比例的输入标记,并要求模型预测这些被掩盖的标记。这种方式避免了双向模型"看到自己",从而在多层上下文中轻松预测目标词。

• 下一句预测(NSP):用于理解句子之间的关系,这是许多NLP任务(如问答)所需的基础能力。BERT通过任何语言语料库都可以轻松生成这种任务数据,并在此基础上进行预训练。

接下来是微调阶段(Fine-tuning),即使用带有风险类别标签的数据集,以监督学习的方式训练预训练好的BERT模型。

这个训练/验证数据集 可以从现有的基于规则系统中获取,包含一系列真实的访问请求 及其由领域专家(SMEs)验证过的风险级别。

  1. 结论

访问控制策略是大多数企业的关键安全措施。由于它们的重要性,设计不良的策略可能会导致数据泄露、合规性问题和运营中断,进而给企业带来经济损失和声誉风险。

然而,访问控制策略的制定和维护极其消耗资源,随着企业应用的逻辑复杂度和用户数量增长,手动维护 这些策略在长期来看根本不可行。

此外,这一过程还受领域专家(SMEs) 经验的影响,难以避免个人主观偏见,导致策略的有效性受限。

为了解决这些问题,我们提出了一种方法论,用于迁移现有的访问控制规则 到基于Transformer 的安全风险分类器。这种方法能够自动化 访问控制策略的执行和更新,特别是对于传统企业应用(Legacy Apps),它有潜力彻底改变 企业安全领域的现状。

相关推荐
果冻人工智能1 个月前
人类讨厌AI的缺点,其实自己也有,是时候反思了。
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#神经网络·#ai
果冻人工智能1 个月前
您的公司需要小型语言模型
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#神经网络·#ai
果冻人工智能1 个月前
主动式AI(代理式)与生成式AI的关键差异与影响
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#chatgpt·#神经网络·#ai
果冻人工智能1 个月前
创建用于预测序列的人工智能模型,用Keras Tuner探索模型的超参数。
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#chatgpt·#神经网络·#ai
果冻人工智能1 个月前
创建用于预测序列的人工智能模型,调整模型的超参数。
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#chatgpt·#神经网络·#ai
果冻人工智能1 个月前
创建用于预测序列的人工智能模型,评估模型的能力。
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#chatgpt·#神经网络·#ai
果冻人工智能1 个月前
为什么 Llama 3.3 70B 比 GPT-4o 和 Claude 3.5 Sonnet 更优秀
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#chatgpt·#神经网络·#ai
果冻人工智能1 个月前
创建用于预测序列的人工智能模型,训练模型。
#人工智能·#ai代理·#ai应用·#ai员工·#cnn·#chatgpt·#神经网络·#ai
果冻人工智能1 个月前
创建用于预测序列的人工智能模型,设计数据集。
#人工智能·#ai代理·#ai应用·#ai员工·#神经网络·#ai