文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

火出圈的ChatGPT,如何让安全检测更智能

2024-11-30 16:45

关注

ChatGPT的算法基于Transformer架构,这是一种使用自注意力机制处理输入数据的深度神经网络。Transformer架构广泛应用于语言翻译、文本摘要、问答等自然语言处理任务。ChatGPT使用了GPT-3.5大规模语言模型(LLM Large Language Model),并在该模型的基础上,引入强化学习来微调预训练的语言模型。这里的强化学习采用的是RLHF(Reinforcement Learning from Human Feedback),即人工标注方式。目的是通过其奖励惩罚机制,让LLM模型学会理解各种自然语言处理任务,并学会从helpfulness、honest、harmless三个维度判断什么样的答案是优质的。

ChatGPT模型的主要训练流程如下:

安全检测怎么做

在安全检测领域,越来越多的企业组织开始使用人工智能技术,来帮助检测网络流量中的潜在威胁。人工智能的优势在于,它可以处理大量的数据,快速准确地识别并分类异常流量。通过训练神经网络模型,人工智能可以自动化检测识别网络攻击、漏洞利用和恶意软件等行为,减少人工干预和误报,提高检测的准确性与效率。

当前主流的网络攻击检测,核心是基于DPI技术,发展出的针对HTTP访问的检测(WAF),以及针对操作系统的入侵防御检测(IPS)。即部署在应用前,在用户请求到达服务端之前对其进行扫描和过滤,分析校验每个用户请求的网络包,确保每个请求的安全有效,对无效或有攻击行为的请求进行拦截或隔离。目前,常用的攻击检测方式如下:

1.签名检测技术

基于事先编写的特定规则或模式(正则表达式)检测网络流量中的威胁,如病毒、恶意软件、入侵行为等。但是由于攻击手段多样化,有经验的黑客可以通过一些语句变化绕过检测。正则表达式是由关键字发展而来的,虽然在一定程度上降低了误报率,但由于正则表达式是基于字符串的过滤,只能检测预定好的攻击行为;针对一些比较复杂的注入方法,同样存在漏报率高的问题。

2.流量分析技术

通过对同类流量的来源IP、协议类型比例、流量上下行趋势等基础元素的建模分析,得到一些异常事件的分析结论。但是流量分析需要对网络流量进行捕获分析,所以需要较高的计算资源和存储资源,会使得整个系统比较庞大。

3.行为分析技术

通过监视网络流量的行为,检测出异常活动。例如,检测出某Web应用服务器访问非业务数据库、突发大量数据流、频繁访问尝试等,进而发现潜在的网络威胁。在这一过程中,会误报一些合法活动(例如临时下载等),且成熟的行为分析模型需要较长时间来训练和学习,因此防护效率可能较低。

4.基于语义的规则匹配

将检测引擎设计成SQL语义解释器或命令行终端,尝试理解用户输入的内容,判断是否有可能构成攻击。目前主要针对SQL注入,使用场景有限。

基于DPI引擎的检测方式,除了有这些使用限制外,还存在多种绕过流量解析引擎进行入侵的方法。例如,利用DPI引擎可能存在的HTTP协议解析缺陷,只识别80端口为HTTP流量,而Web应用端口在8080上,其HTTP流量会被DPI引擎解析为非HTTP,从而绕过应用层攻击检测。

哪些环节可以应用ChatGTP

我们按照DPI引擎的解包流程,将原始流量解析出关键字段数据,进行规则匹配。如果能匹配到规则,则说明报文存在攻击行为;如果不能匹配,则说明报文风险较低。DPI引擎收到的流量如下图:

DPI引擎会按照会话对流量进行分组,在同一个组中的报文,一般为同一五元组的请求响应报文:

DPI引擎会将流量按照协议层级进行拆解,直到解析出所有的字段。

DPI引擎会提取其中应用层的明文请求,作为待检测内容:

ChatGPT作为一种大型自然语言处理模型,可以理解HTTP原始报文信息,这样无论攻击出现在URL、Cookies还是Referer中,都能顺利检测到。

ChatGPT流量检测实践

ChatGPT、New Bing等攻击判断模块,会调用OpenAI相关API接口,使用提问的方式让ChatGPT、New Bing等进行攻击判断,示意代码如下:

import openai
openai.api_key = "sk-Bew1dsFo3YXoY2***********81AkBHmY48ijxu" # api token 用来认证
def get_answer(prompt, max_tokens): # 定义一个获取答案的函数
try:
response = openai.Completion.create(
model = "text-davinci-003", # 模型名称
prompt = prompt, # 问题
temperature = 0.7,
max_tokens = max_tokens, # 返回内容的长度限制
stream = False, # False就是一次性返回, True 就是一个个打出来像打字机, 返回的是迭代器, 需要后面代码处理. 此处没有处理 所以用False
top_p = 1,
frequency_penalty = 0,
presence_penalty = 0
)
return 0, response['choices'][0]['text'].strip() # 获取返回值关键返回内容
except Exception as e: # 异常处理
return str(e), None

通过上述函数,就可以达到类似向ChatGPT提问的效果(使用模型为text-davinci-003),如下图:

ChatGPT会返回明确的是否存在攻击行为的结论以及行为描述,这样就完成了一次攻击判断。

如上图,可以将流量中大量需要判断的请求,分别存入不同的文件,由ChatGPT进行攻击判读,示例代码如下:

def main(read_dir = 'detect'):    # 定义main函数
args = [] # 缓存列表
global sign_req, all_req # 识别计数
for rf in walk_dir(read_dir, ['.txt']): # 遍历待检测目录
all_req += 1 # 总数据包数自增1
content = read_fileA(rf, 'str')[:2048] # 提取报文文件前2048个字符
key_content = content.split('\r\n\r\n\r\n')[0][:1024] # 提取http请求
if len(key_content) < 10: continue # 如果长度太小就不检测
err, sign, disc = judge_attack(key_content, rf_rst) # 调用ChatGPT接口进行攻击检测
if sign: sign_req += 1 # 如果检测到攻击, 攻击计数自增1

print('\r' + f' 已检测 {all_req: 4} 个报文, 识别到攻击 {sign_req} 个, 检出率: {sign_req/all_req:0.2%}', end='', flush=True) # 打印结论

如此就可以做到批量报文攻击检测。

攻击样本来自Nuclei对靶机的扫描和全PoC检测,因为有一些请求从单个报文中确实看不出来是否存在威胁。

上述情况可能需要更多上下文才能判断,此次已去除此类无法准确判断的请求例,尽量给一些人工条件下能够准确判断的样例,总体检测结果如下图:

可见ChatGPT对流量检测的准确率是非常高的,基本上相当于一个安全专家进行快速判断,其安全检测能力值得期待。

有兴趣的读者可以查看完整的项目源码,链接为:https://github.com/VitoYane/PcapSplit

未来展望

未来,ChatGPT在网络安全中将扮演什么角色、有什么影响,我们很难进行准确预测,这取决于它的使用方式和使用意图。来自人工智能的威胁并不是一个新问题,对网络安全从业者来说,重要的是及时意识到ChatGPT的潜在风险并采取适当的措施来应对。

安全专家预测,国家背景的黑客将率先在网络攻击中利用ChatGPT,而该技术最终会在更多的攻击组织中得到大规模的使用,防守方需要开始研发能够抵御此类攻击的系统。

从网络安全防护的角度来看,企业机构可以采取针对性的应对措施,对ChatGPT等类似模型进行培训,标记恶意活动和恶意代码,同时对其设置难以绕过的护栏。对于ChatGPT引发的威胁,可以向员工提供新型的网络意识培训,掌握识别社会工程攻击的知识,以便识别ChatGPT等人工智能工具创造的钓鱼攻击。

当然仅仅是这样还不够。ChatGPT等人工智能工具会以比人类罪犯更快的速度制造出新的威胁,传播威胁的速度也将超过网络安全人员的反应速度。企业机构跟上这一变化速度的唯一方法,是使用人工智能来应对人工智能。

总的来说:一方面,网络安全行业的研究人员、从业者、学术机构和企业组织可以利用ChatGPT的力量进行创新和协作,包括漏洞发现、事件响应和钓鱼检测;另一方面,随着ChatGPT等工具的发展,未来开发新的网络安全工具更加重要。安全厂商应更积极地开发和部署基于行为(而非规则)的AI安全工具,来检测人工智能生成的攻击。

来源:FreeBuf.COM内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯