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

news/2025/2/4 9:01:52/文章来源:https://www.cnblogs.com/jellyai/p/18697963
  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),它有潜力彻底改变 企业安全领域的现状。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/878478.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

坐标系与向量

坐标系规定 一般使用左手坐标系,+x,+y,+z分别指向右方、上方、前方。 多坐标系 世界坐标系:协议某个点为原点,其他所有点都有具体不变的坐标,能够用世界坐标系描述其他坐标系的位置,而不能使用更大的、外部的坐标系来描述世界坐标系。 物体坐标系:和物体相关联的坐标…

Netty实战入门教程

概述 Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端 Netty 在 Java 网络应用框架中的地位就好比:Spring 框架在 JavaEE 开发中的地位 以下的框架都使用了 Netty,因为它们有网络通信需求!Cassandra - nosql 数据库 Spark…

FFT入门

这是一个题图前置知识 复数 也可以参考高中数学课本,这里只会介绍 fft 需要的(默认已经入门复数)。 多项式的相关概念。 点值表示法:假设 \(f(x)\) 是一个 \(n-1\) 次多项式,那么将 \(n\) 个 不同的 \(x\) 代入,可以得到 \(n\) 个 \(y\)。这 \(n\) 个点对 \((x,y)\) 唯一…

GPUStack:一个开源的GPU集群管理和自动化部署大模型的LLM服务平台

正如我们以前文章中说过,在过去近两年中,AI发展速度超过任何历史时期,基于大模型的各类应用已经渗透到了各行各业中,很多企业都在积极探索如何利用大模型提高公司运营管理的能效。 阿里云 CTO 周靖人也说过““当下企业应用大模型存在三种范式:一是对大模型开箱即用,二是…

Deskflow:一个能在多个设备之间共享鼠标键盘的工具

有多台设备的同学肯定都感受过切换鼠标和键盘的痛苦。比如家里有个台式机配了键盘和鼠标,工作有台笔记本,但是如果想用家里的键盘和鼠标操作笔记本那么除了插拔线(蓝牙也一样),好像没有其他特别的办法。 以为我个人为例,插拔切换鼠标键盘,最头疼的就是以下两个点: 线缆…

DeepSeek + Dify :零成本搭建企业级本地私有化知识库保姆级喂饭教程

最近,DeepSeek大火,想必大家都有所耳闻,各路媒体从各个方面报道了DeepSeek这家神秘的公司的各方面消息,这家低调的技术公司用一组硬核数据回应了所有关注: 千亿参数规模下实现0.5元/百万tokens的API调用成本,91.5%的中文基准测试得分,推理效率较传统架构提升5倍。 DeepS…

[Tools] Vite intro

Overview为什么选Vite: https://cn.vite.dev/guide/why.htmlesbuild, Rollup: https://cn.vite.dev/guide/why.html#why-bundle-for-production Quick start 1. Start a new project pnpm init 2. installl Vite, Typescript pnpm add vite typescript -D 3. create index.ht…

在做同城多活方案中如何实现机房之间的数据同步?

一、前言 现在是数据的时代,如何发挥数据的价值,让系统具备更多的数据处理能力。如何完善响应的数据架构。多机房建设是其中的解决策略。 二、背景 在业务初期,考虑到投入成本,很多公司通常只用一个机房提供服务。但随着业务发展,流量不断增加,我们对服务的响应速度和可用…

在 Ubuntu 22.04 上运行 Filebeat 7.10.2

环境 操作系统:阿里云 Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64) 软件版本:Filebeat 7.10.2 用户:root 运行下载从这里下载 filebeat 7.10.2。配置简单配置一下 filebeat.yml,从标准输入采集,写入到标准输出 : filebeat.inputs: - type: stdinoutput.con…

Dify AWS:0代码搭建「AI翻译中台」

0 前言 基于Dify现有能力,已能对不少业务场景提供帮助,但对一些特定诉求,还要借助其扩展机制,本文利用翻译场景举例详细说明。 1 翻译场景复杂性分析 翻译是从简单到复杂各级都存在的场景,比较简单的翻译可能一句简单 Prompt,但对复杂、效果要求较高翻译场景,可能需要一…

25.2.3小记

抽象(abstract) 1.抽象函数不需要大括号 2.抽象的函数只能包括在抽象的类中(或者说只要一个类里有一个抽象函数,那整个类就是抽象的,因为若非抽象则定义对应类的变量之后本应该可以调用name.work类似的函数,但抽象函数因为没有body所以无法调用)其中定义的变量可以管理任…