原文:
zh.annas-archive.org/md5/6b2705e0d6d24d8c113752f67b42d7d8译者:飞龙 协议:CC BY-NC-SA 4.0
事故响应是任何网络安全策略的关键组成部分,涉及确定、分析和缓解安全漏洞或攻击。 及时和有效地响应事故对于最小化损害和防止未来攻击至关重要。 在本章中,我们将深入探讨如何利用 ChatGPT 和 OpenAI 的 API 来增强事故响应过程的各个方面。
我们将首先探讨 ChatGPT 如何协助进行事故分析和分类,提供快速见解并根据严重程度对事件进行优先排序。 接下来,我们将看到如何生成针对特定场景量身定制的全面事故响应 playbook,简化响应流程。
此外,我们将利用 ChatGPT 进行根本原因分析,帮助确定攻击的起源和方法。 这可以极大加速恢复过程,并加强对未来类似威胁的防御。
最后,我们将自动化创建简报和事故时间线,确保利益相关者得到充分通知,并且可以对事故进行详细记录以备将来查阅。
在本章结束时,您将掌握一套 AI 驱动的工具和技术,可以显著增强他们的事故响应能力,使其更快速、更高效和更有效。
在这一章中,我们将涵盖以下内容:
对于这一章,您需要一个 Web 浏览器和稳定的互联网连接来访问 ChatGPT 平台并设置您的账户。 您还需要设置您的 OpenAI 账户以获得 API 密钥。 如果没有,请参阅Chapter 1获取详细信息。 需要基本熟悉 Python 编程语言并且熟悉其命令行操作,因为您将使用 Python 3.x,需要在您的系统上安装以使用 OpenAI GPT API 并创建 Python 脚本。 代码编辑器也是编写和编辑 Python 代码和提示文件的必需品,在您学习本章的示例时也会用到。 最后,由于许多渗透测试用例严重依赖 Linux 操作系统,因此建议熟悉并能够操作 Linux 发行版(最好是 Kali Linux):
github.com/PacktPublishing/ChatGPT-for-Cybersecurity-Cookbook。
在动态的网络安全领域,事故是不可避免的。 减轻影响的关键在于组织如何有效地、迅速地做出反应。 本篇介绍了一种创新的事故分析和分类方法,利用了 ChatGPT 的对话能力。 通过模拟事故指挥官的角色,ChatGPT 指导用户完成网络安全事件的初步关键步骤。
通过引人入胜的问答格式,ChatGPT 帮助识别可疑活动的性质、受影响的系统或数据、触发的警报以及对业务运营的影响程度。 这种交互式方法不仅有助于即时决策,比如隔离受影响的系统或升级问题,还是网络安全专业人士的宝贵培训工具。 采用这种由 AI 驱动的策略将提升组织对事故响应准备工作的水平至新的高度。
在进一步进行之前,关键的是要注意此类互动中共享信息的敏感性。 接下来的章节将涉及私人本地大型语言模型(LLMs),解决这一问题,指导用户如何在从 AI 协助中获益时保持机密性。
在与 ChatGPT 进行事故分类的交互会话之前,建立对事故响应流程的基本理解并熟悉 ChatGPT 的对话界面至关重要。 对此食谱不需要特定的技术先决条件,因此可供各种技术水平的专业人员使用。 但是,对常见的网络安全术语和事故响应协议的基本理解将增强交互的有效性。
确保您可以访问 ChatGPT 界面,可以通过 OpenAI 网站或集成平台访问。 熟悉如何开始对话并提供清晰简洁的输入,以最大限度地提高 ChatGPT 的响应效果。
在完成准备步骤后,您已经准备好开始 AI 辅助的事故分类之旅了。
与 ChatGPT 进行事故分类是一种协作努力。 引导 AI 一步一步地提供详细的信息和背景以应对每个查询,这一点至关重要。 这确保了 AI 的指导尽可能与实际情况相关和可操作。 以下是您可以采取的步骤:
启动事故分类对话:使用以下提示向 ChatGPT 介绍情况:
You are the Incident Commander for an unfolding cybersecurity event we are currently experiencing. Guide me step by step, one step at a time, through the initial steps of triaging this incident. Ask me the pertinent questions you need answers for each step as we go. Do not move on to the next step until we are satisfied that the step we are working on has been completed.提供事故细节并回答查询:当 ChatGPT 提问时,提供具体详细的回答。 可疑活动的性质、任何受影响的系统或数据、任何触发的警报以及对业务运营的影响的信息将至关重要。 您的细节的粒度将极大地影响 ChatGPT 的指导的准确性和相关性。
遵循 ChatGPT 的一步一步指导:ChatGPT 将根据您的回答逐步提供指导和建议。非常重要的是要仔细遵循这些步骤,并且在充分解决当前步骤之前不要继续下一步。
迭代和更新信息:事件响应是一个不断发展的情景,在任何时刻都可能出现新的细节。保持 ChatGPT 与最新发展的信息更新,并根据需要迭代步骤,确保 AI 的指导能够适应不断变化的情况。
记录互动:保留对话记录以供将来参考。这对于事后审查、完善响应策略和培训团队成员都是一个有价值的资源。
这个配方的有效性取决于精心设计的提示,指示 ChatGPT 充当事件指挥员,引导用户通过事件分流过程。提示旨在引发结构化的、互动式对话,反映了现实世界事件响应中逐步决策的特点。
提示的具体性,强调逐步和一步一步的过程,至关重要。它指示 ChatGPT 避免用信息压倒用户,而是以可管理的、顺序的步骤提供指导。这种方法允许 ChatGPT 提供更专注的回应,与事故指挥员逐步评估和解决不断发展的情况的方式密切一致。
通过要求 ChatGPT 在继续下一步之前询问相关问题,提示确保每个分流阶段都得到充分解决。这模仿了事件响应的迭代性质,其中每个行动都基于最当前和相关的信息。
ChatGPT 的编程和对各种文本的培训使其能够理解用户提供的上下文和提示背后的意图。因此,它通过模拟一个事件指挥员的角色进行回应,借鉴了网络安全事件响应中的最佳实践和协议。AI 的回应是基于其在培训过程中学到的模式生成的,使其能够提供相关的问题和可操作的建议。
此外,此提示的设计鼓励用户与 AI 深入互动,促进了协作解决问题的环境。这不仅有助于即时分流过程,还有助于用户对事件响应动态有更细致的理解。
总之,提示的结构和具体性在引导 ChatGPT 的回应方面起着至关重要的作用,确保 AI 提供有针对性、一步一步的指导,与经验丰富的事故指挥员的思维过程和行动密切相似。
尽管这个配方提供了一个使用 ChatGPT 进行事件分流的结构化方法,但还有其他考虑因素和扩展可以增强其实用性:
通过扩展基础配方,组织可以进一步将人工智能整合到其事件响应策略中,增强其网络安全姿态和准备能力。
在网络安全领域,准备工作至关重要。事件响应 playbooks 是指导组织处理各种网络威胁过程的重要工具。本配方展示了如何利用 ChatGPT 生成针对特定威胁和环境上下文定制的 playbooks。我们将逐步介绍为 ChatGPT 制作提示并解释其响应以创建全面 playbooks 的过程。此外,我们还介绍了一个 Python 脚本,可以自动化此过程,进一步提高效率和准备能力。通过本配方,您将能够快速生成详细的事件响应 playbooks,这是加强组织网络防御策略的关键组成部分。
在深入了解配方之前,请确保您已具备以下先决条件:
openai Python 库,允许您与 OpenAI API 进行交互。您可以使用 pip 安装它,pip install openai。
遵循以下步骤,充分利用 ChatGPT 和 Python 的力量来制作全面且针对特定情景的 playbooks。
识别威胁和环境:在生成事件响应 playbook 之前,您必须识别特定的威胁类型和它影响的环境的详细信息。这些信息至关重要,因为它将指导您定制 playbook。
编写提示:在掌握威胁和环境细节的基础上,构建用于与 ChatGPT 通信的提示。这里是可以遵循的模板:
Create an incident response playbook for handling [Threat_Type] affecting [System/Network/Environment_Details].将[Threat_Type]替换为正在准备的特定威胁类型,并将[System/Network/Environment_Details]替换为你环境的相关细节。
与 ChatGPT 互动:将你编写的提示输入到 ChatGPT 中。AI 将生成一个详细的事件响应 playbook,旨在针对你指定的威胁和环境。
审查和精炼:在生成 playbook 后,现在是时候审查它了。确保 playbook 与你的组织政策和程序相一致。如有必要,进行任何必要的自定义以适应你的具体需求。
实施和培训:向你的事件响应团队成员传播 playbook。进行培训,确保每个人都理解 playbook 中所述的角色和职责。
维护和更新:威胁面是不断演变的,因此你的 playbook 也应该如此。定期审查和更新你的 playbook,以纳入新的威胁、漏洞和环境变化。
提示的功效在于其特定性和清晰性。当你输入提示“创建用于处理[Threat_Type]影响[System/Network/Environment_Details]的事件响应 playbook”时,你为 ChatGPT 提供了明确的任务:
handling [Threat_Type]作为文档目的和内容的指示。
这种提示和 ChatGPT 之间的交互展示了模型生成详细、结构化和与上下文相关的文档的能力,使其成为网络安全专业人员的宝贵工具。
虽然 ChatGPT 的 Web 界面为与 AI 互动提供了便利的方式,但使用 Python 脚本并利用 OpenAI API 可以将事件响应 playbook 的生成提升至更高级别。这可以是更具动态性和自动化的方法。
该脚本引入了自动化、定制、集成、可扩展性、程序控制和保密性等增强功能,这些功能显著提升了 playbook 创建过程。它将提示您输入威胁类型和环境详细信息,动态构建提示,然后使用 OpenAI API 生成 playbook。这是如何设置它的方法:
openai库,您可以使用以下 pip 安装:
pip install openai获取你的 API 密钥:您需要从 OpenAI 获取 API 密钥来使用他们的模型。安全地存储这个密钥,并确保它不会暴露在您的代码或版本控制系统中。
创建 OpenAI API 调用:创建一个新函数,指示模型生成 playbook:
import openai
from openai import OpenAI
import os
def generate_incident_response_playbook(threat_type, environment_details):
"""
Generate an incident response playbook based on
the provided threat type and environment details.
"""
# Create the messages for the OpenAI API
messages = [
{"role": "system", "content": "You are an AI
assistant helping to create an incident
response playbook."},
{"role": "user", "content": f"Create a
detailed incident response playbook for
handling a '{threat_type}' threat affecting
the following environment: {environment_
details}."}
]
# Set your OpenAI API key here
openai.api_key = os.getenv("OPENAI_API_KEY")
# Make the API call
try:
client = OpenAI()
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=2048,
n=1,
stop=None,
temperature=0.7
)
response_content = response.choices[0].message.content.strip()
return response_content
except Exception as e:
print(f"An error occurred: {e}")
return None提示用户输入:增强脚本以从用户那里收集威胁类型和环境详细信息:
# Get input from the user
threat_type = input("Enter the threat type: ")
environment_details = input("Enter environment
details: ")生成和显示 playbook:调用函数,并用用户的输入打印生成的 playbook:
# Generate the playbook
playbook = generate_incident_response_playbook
(threat_type, environment_details)
# Print the generated playbook
if playbook:
print("\nGenerated Incident Response Playbook:")
print(playbook)
else:
print("Failed to generate the playbook.")运行脚本:执行脚本。它将提示您输入威胁类型和环境详细信息,然后显示生成的事件响应 playbook。
这是完成的脚本应该是什么样子的:
import openai
from openai import OpenAI # Updated for the new OpenAI API
import os
# Set your OpenAI API key here
openai.api_key = os.getenv("OPENAI_API_KEY")
def generate_incident_response_playbook
(threat_type, environment_details):
"""
Generate an incident response playbook based on the
provided threat type and environment details.
"""
# Create the messages for the OpenAI API
messages = [
{"role": "system", "content": "You are an AI
assistant helping to create an incident response
playbook."},
{"role": "user", "content": f"Create a detailed
incident response playbook for handling a
'{threat_type}' threat affecting the following
environment: {environment_details}."}
]
# Make the API call
try:
client = OpenAI()
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=2048,
n=1,
stop=None,
temperature=0.7
)
response_content = response.choices[0].message.content.strip()
return response_content
except Exception as e:
print(f"An error occurred: {e}")
return None
# Get input from the user
threat_type = input("Enter the threat type: ")
environment_details = input("Enter environment details: ")
# Generate the playbook
playbook = generate_incident_response_playbook
(threat_type, environment_details)
# Print the generated playbook
if playbook:
print("\nGenerated Incident Response Playbook:")
print(playbook)
else:
print("Failed to generate the playbook.")提供的 Python 脚本充当用户和 OpenAI API 之间的桥梁,促进事件响应 playbook 的生成。以下是脚本的每个部分如何为此过程做出贡献的分析:
openai库,这是 OpenAI 提供的官方 Python 客户端库。该库简化了与 OpenAI API 的交互,允许我们发送提示并接收响应。
generate_incident_response_playbook函数是脚本的核心。它负责制作 API 请求并解析响应。
("您是一个 AI 助手..."),第二条消息包含了用户的提示,其中包括特定的威胁类型和环境详细信息。
openai.ChatCompletion.create方法,该函数向所选模型发送消息。它指定参数,如max_tokens和temperature来控制响应的长度和创造力。
try和except块来优雅地处理可能在 API 调用过程中发生的任何错误,例如网络问题或无效的 API 密钥。
input函数。这是用户指定威胁类型和环境详细信息的地方。
该脚本是如何将 OpenAI 强大的语言模型集成到您的网络安全工作流中的一个实用示例,实现了详细和上下文的事件响应 playbook 的自动生成。
注意事项
在使用 ChatGPT 或 OpenAI API 生成事件响应 playbook 时,要注意您输入的信息的敏感性。避免向 API 发送机密或敏感数据,因为它可能被存储或记录。如果您的组织有严格的保密要求,请考虑使用私有本地语言模型。敬请期待即将推出的章节,我们将探讨如何部署和使用本地语言模型,为敏感应用提供更安全和私密的替代方案。
当数字警报响起,系统变红时,事件响应者是网络安全战场上的第一道防线。在警报和异常的混乱中,找出安全事件的根本原因就像是在大海捞针。这需要敏锐的眼光,系统化的方法,而且往往需要一点直觉。然而,即使是最有经验的专业人员也可以从对定义安全事件的日志、警报和症状的迷宫的结构化指南中受益。这就是ChatGPT 辅助根本原因分析的作用所在。
将 ChatGPT 想象成你的数字化夏洛克·福尔摩斯,一个不知疲倦的事件响应顾问,拥有网络安全实践的集体知识和人工智能的分析能力。这个配方揭示了一种会话蓝图,引导您穿越数字战争中的迷雾,提出关键问题,并根据您的回答建议调查路径。这是一个随着您提供的每一条信息而不断发展的动态对话,引导您朝着事件可能的根本原因迈进。
无论是网络流量神秘激增,意外的系统关闭,还是用户行为中微妙的异常,ChatGPT 的好奇天性确保没有一块石头被忽视。通过利用生成 AI 的力量,这个配方赋予您剥开事件的层层面纱的能力,引导您从最初的症状到对手可能利用的潜在漏洞。
这个配方不仅是一组说明,更是与一个致力于帮助您保护数字领域的 AI 伴侣的协作旅程。所以,请准备踏上解密事件响应和根本原因分析复杂性的探索之旅,ChatGPT 将作为您的向导。
在与 ChatGPT 进行根本原因分析的核心之前,确保为一个有效的会话设置舞台至关重要。这包括确保您可以访问必要的信息和工具,并准备以最大程度地发挥其作为事件响应顾问的潜力与 ChatGPT 交互。
通过满足这些先决条件,您将能够有效地与 ChatGPT 进行互动,并开始一个有组织的旅程,以揭示手头安全事件的根本原因。
安全事件响应中的根本原因分析是一种复杂的查询和推断之舞。有了 ChatGPT 作为您的伙伴,这种舞蹈变成了一种有组织的对话,每一步都让您更接近理解事件的潜在原因。遵循以下步骤,利用 ChatGPT 在您的安全事件响应工作中的能力:
启动会话:从明确表达您对 ChatGPT 的意图开始。提供以下提示:
You are my incident response advisor. Help me identify the root cause of the observed suspicious activities.描述症状:提供您观察到的第一个症状或异常的详细描述。这可能包括异常的系统行为、意外的警报或潜在安全事件的任何其他指标。
回答 ChatGPT 的问题:ChatGPT 将回答一系列问题,以缩小潜在原因的范围。这些问题可能涉及未经授权的访问警报、异常的网络流量或受影响系统之间的共同点。尽力回答这些问题。
遵循决策树:根据您的回答,ChatGPT 将引导您通过一棵决策树,提出可能的根本原因和进一步的调查步骤。这个交互式过程旨在考虑根据所提供的信息可能发生的各种情况及其可能性。
调查和验证:使用 ChatGPT 提供的建议进行进一步调查。通过检查日志、系统配置和其他相关数据来验证假设。
根据需要迭代:安全事件响应很少是线性的。当您发现新信息时,请将发现结果返回给 ChatGPT 以完善分析。模型的响应将根据不断变化的情况进行调整。
文档和报告:一旦您确定了可能的根本原因,就要记录您的发现并根据组织的协议进行报告。这些文档对于未来的安全事件响应工作以及加强您的安全姿态都是至关重要的。
遵循这些步骤,您可以将根本原因分析这一艰巨任务转变为一个结构化和可管理的过程,ChatGPT 将在整个过程中充当一位知识渊博的顾问。
最初提示的简洁性,“你是我的事件响应顾问。帮我确定观察到的可疑活动的根本原因。”掩盖了其有效性。这个提示为与 ChatGPT 的专注和目的驱动交互设定了舞台。它之所以有效是因为:
在事件响应的背景下,根本原因分析通常涉及筛选迷宫般的症状、日志和行为,以追溯安全事件的起源。ChatGPT 在这个过程中通过以下方式进行协助:
本质上,ChatGPT 充当了批判性思维和结构化分析的催化剂,帮助事件响应者在安全事件背后潜在原因的复杂网络中导航。
虽然前一节中概述的步骤为使用 ChatGPT 进行根本原因分析提供了坚实的框架,但还有其他考虑因素和策略可以进一步丰富这一过程:
通过结合这些额外策略,您可以最大限度地发挥 ChatGPT 在根本原因分析工作中的价值,将其变成在保护数字资产时的有力盟友。
在参与 ChatGPT 进行事件响应场景中的根本原因分析时,对所讨论信息的敏感性保持警惕至关重要。记住,虽然 ChatGPT 可能是一个宝贵的顾问,但它是在其训练和提供的信息限制内运作的。除非您分享它们,否则它不了解您组织的安全基础设施或具体事件的机密细节。
因此,在与 ChatGPT 互动时,请谨慎行事,并遵守您组织的数据处理和隐私政策。避免分享可能危及您组织安全状况的敏感或可识别信息。在即将来临的关于私密本地 LLMs 的章节中,我们将探讨如何利用语言模型的优势,如 ChatGPT,在更受控制和安全的环境中,减轻传输敏感数据相关风险。
通过遵守这些注意事项,您可以利用 ChatGPT 的力量进行有效的根本原因分析,同时保持组织信息的完整性和安全性。
生成式人工智能和LLMs为威胁监测能力带来了深刻的增强。通过利用这些模型内在的复杂语言和上下文的理解,网络安全系统现在可以以前所未有的细微和深度分析和解释大量数据。这种变革性技术使得可以识别复杂数据集中隐藏的微妙异常、模式和潜在威胁,为安全提供更具前瞻性和预测性的方法。将生成式人工智能和 LLMs 集成到网络安全工作流程中,不仅增强了威胁检测的效率和准确性,而且显著缩短了对新出现威胁的响应时间,从而加强了数字基础设施对复杂网络攻击的防御。
在这个示例中,我们探讨了 OpenAI 的嵌入式 API/模型与Facebook AI 相似度搜索(FAISS)的创新应用,以提升对网络安全日志文件的分析能力。通过利用人工智能驱动的嵌入式的能力,我们旨在捕获日志数据的细微语义内容,并将其转化为有利于数学分析的格式。结合 FAISS 的高效性进行快速相似度搜索,这种方法使我们能够以前所未有的精度对日志条目进行分类,通过其与已知模式的相似性识别潜在的安全事件。这个示例旨在为您提供一个实用的、逐步指南,将这些尖端技术集成到您的网络安全工具包中,为筛选日志数据和增强您的安全姿态提供一种坚实的方法。
在开始脚本编写自动化简报报告和事件时间线重建之前,有几个先决条件需要确保一切顺利运行:
openai库,它允许与 OpenAI API 进行无缝通信。你可以使用 pip 安装它:pip install openai。你还需要numpy和faiss库,这些库也可以使用 pip 安装。
一旦您准备好了这些先决条件,您就可以开始阅读脚本并开始制作您的自动化事件报告。
以下步骤将指导您创建一个用于分析具有 AI 功能的嵌入和 FAISS(Facebook AI Similarity Search)的日志文件的 Python 脚本,以进行高效的相似性搜索。该任务涉及解析日志文件,为日志条目生成嵌入,并根据它们与预定义模板的相似性将它们分类为“可疑”或“正常”。
导入所需的库: 首先导入必要的 Python 库,用于处理 API 请求、正则表达式、数值操作以及相似性搜索。
import openai
from openai import OpenAI
import re
import os
import numpy as np
import faiss初始化 OpenAI 客户端: 设置 OpenAI 客户端并使用您的 API 密钥进行配置。这对于访问嵌入 API 至关重要。
client = OpenAI()
openai.api_key = os.getenv("OPENAI_API_KEY")解析原始日志文件: 定义一个函数,将原始日志文件解析为 JSON 格式。该函数使用正则表达式从日志条目中提取时间戳和事件描述。
def parse_raw_log_to_json(raw_log_path):
timestamp_regex = r'\[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\]'
event_regex = r'Event: (.+)'
json_data = []
with open(raw_log_path, 'r') as file:
for line in file:
timestamp_match = re.search(timestamp_regex, line)
event_match = re.search(event_regex, line)
if timestamp_match and event_match:
json_data.append({"Timestamp": timestamp_match.group().strip('[]'), "Event": event_match.group(1)})
return json_data生成嵌入向量: 创建一个函数,使用 OpenAI API 为给定的文本字符串列表生成嵌入向量。该函数处理 API 响应并提取嵌入向量。
def get_embeddings(texts):
embeddings = []
for text in texts:
response = client.embeddings.create(input=text, model="text-embedding-ada-002")
try:
embedding = response['data'][0]['embedding']
except TypeError:
embedding = response.data[0].embedding
embeddings.append(embedding)
return np.array(embeddings)创建 FAISS 索引: 定义一个函数,用于创建一个 FAISS 索引以进行高效的相似性搜索。稍后将使用此索引找到给定日志条目嵌入的最近模板嵌入。
def create_faiss_index(embeddings):
d = embeddings.shape[1]
index = faiss.IndexFlatL2(d)
index.add(embeddings.astype(np.float32))
return index分析日志并对条目进行分类: 实现函数以分析日志条目并根据它们与预定义的“可疑”和“正常”模板的相似性对其进行分类。此函数利用 FAISS 索引进行最近邻搜索。
def analyze_logs_with_embeddings(log_data):
suspicious_templates = ["Unauthorized access attempt detected", "Multiple failed login attempts"]
normal_templates = ["User logged in successfully", "System health check completed"]
suspicious_embeddings = get_embeddings(suspicious_templates)
normal_embeddings = get_embeddings(normal_templates)
template_embeddings = np.vstack((suspicious_embeddings, normal_embeddings))
index = create_faiss_index(template_embeddings)
labels = ['Suspicious'] * len(suspicious_embeddings) + ['Normal'] * len(normal_embeddings)
categorized_events = []
for entry in log_data:
log_embedding = get_embeddings([entry["Event"]]).astype(np.float32)
_, indices = index.search(log_embedding, k=1)
categorized_events.append((entry["Timestamp"], entry["Event"], labels[indices[0][0]]))
return categorized_events处理结果: 最后,使用定义的函数解析样本日志文件,分析日志并打印分类时间轴。
raw_log_file_path = 'sample_log_file.txt'
log_data = parse_raw_log_to_json(raw_log_file_path)
categorized_timeline = analyze_logs_with_embeddings(log_data)
for timestamp, event, category in categorized_timeline:
print(f"{timestamp} - {event} - {category}")下面是完成的脚本的样子:
import openai
from openai import OpenAI # Updated for the new OpenAI API
import re
import os
import numpy as np
import faiss # Make sure FAISS is installed
client = OpenAI() # Updated for the new OpenAI API
# Set your OpenAI API key here
openai.api_key = os.getenv("OPENAI_API_KEY")
def parse_raw_log_to_json(raw_log_path):
#Parses a raw log file and converts it into a JSON format.
# Regular expressions to match timestamps and event descriptions in the raw log
timestamp_regex = r'\[\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\]'
event_regex = r'Event: (.+)'
json_data = []
with open(raw_log_path, 'r') as file:
for line in file:
timestamp_match = re.search(timestamp_regex, line)
event_match = re.search(event_regex, line)
if timestamp_match and event_match:
timestamp = timestamp_match.group().strip('[]')
event_description = event_match.group(1)
json_data.append({"Timestamp": timestamp, "Event": event_description})
return json_data
def get_embeddings(texts):
embeddings = []
for text in texts:
response = client.embeddings.create(
input=text,
model="text-embedding-ada-002" # Adjust the model as needed
)
try:
# Attempt to access the embedding as if the response is a dictionary
embedding = response['data'][0]['embedding']
except TypeError:
# If the above fails, access the embedding assuming 'response' is an object with attributes
embedding = response.data[0].embedding
embeddings.append(embedding)
return np.array(embeddings)
def create_faiss_index(embeddings):
# Creates a FAISS index for a given set of embeddings.
d = embeddings.shape[1] # Dimensionality of the embeddings
index = faiss.IndexFlatL2(d)
index.add(embeddings.astype(np.float32)) # FAISS expects float32
return index
def analyze_logs_with_embeddings(log_data):
# Define your templates and compute their embeddings
suspicious_templates = ["Unauthorized access attempt detected", "Multiple failed login attempts"]
normal_templates = ["User logged in successfully", "System health check completed"]
suspicious_embeddings = get_embeddings(suspicious_templates)
normal_embeddings = get_embeddings(normal_templates)
# Combine all template embeddings and create a FAISS index
template_embeddings = np.vstack((suspicious_embeddings, normal_embeddings))
index = create_faiss_index(template_embeddings)
# Labels for each template
labels = ['Suspicious'] * len(suspicious_embeddings) + ['Normal'] * len(normal_embeddings)
categorized_events = []
for entry in log_data:
# Fetch the embedding for the current log entry
log_embedding = get_embeddings([entry["Event"]]).astype(np.float32)
# Perform the nearest neighbor search with FAISS
k = 1 # Number of nearest neighbors to find
_, indices = index.search(log_embedding, k)
# Determine the category based on the nearest template
category = labels[indices[0][0]]
categorized_events.append((entry["Timestamp"], entry["Event"], category))
return categorized_events
# Sample raw log file path
raw_log_file_path = 'sample_log_file.txt'
# Parse the raw log file into JSON format
log_data = parse_raw_log_to_json(raw_log_file_path)
# Analyze the logs
categorized_timeline = analyze_logs_with_embeddings(log_data)
# Print the categorized timeline
for timestamp, event, category in categorized_timeline:
print(f"{timestamp} - {event} - {category}")通过完成此方法,您已经利用了生成式 AI 的力量,自动创建简报报告并从日志数据重构事件时间轴。这种方法不仅有助于简化事件分析流程,而且还可以增强您的网络安全调查的准确性和深度,使您的团队能够根据结构化和见解性的数据叙述做出明智的决策。
这种方法提供了一个复杂的工具,旨在使用人工智能和高效的相似性搜索技术分析日志文件。它利用了 OpenAI 嵌入的强大功能来理解日志条目的语义内容,并使用 FAISS 进行快速相似性搜索,根据它们与预定义模板的相似度将每个条目分类。这种方法允许对日志数据进行高级分析,通过将它们与已知的可疑和正常活动模式进行比较,从而识别潜在的安全事件。
openai 用于与 OpenAI API 进行交互以生成嵌入。re 用于正则表达式,对于解析日志文件至关重要。os 允许脚本与操作系统交互,如访问环境变量。numpy 提供了对数组和数值操作的支持,而 faiss 则用于嵌入的高维空间中进行快速相似性搜索。
parse_raw_log_to_json 函数逐行读取原始日志文件,使用正则表达式提取和结构化时间戳和事件描述,转换成类似 JSON 的格式。这种结构化数据对于随后的分析非常重要,因为它清晰地提供了每个日志条目的时间和内容的分离。
get_embeddings 函数与 OpenAI API 交互,将文本数据(日志条目和模板)转换为称为嵌入式的数字向量。这些嵌入式是捕捉文本语义细微差异的密集表示,从而能够进行诸如相似性比较之类的数学运算。
create_faiss_index 函数,脚本为预定义模板的嵌入设置了一个 FAISS 索引。FAISS 针对大型数据集的快速相似性搜索进行了优化,因此非常适合快速找到与给定日志条目嵌入最相似的模板。
analyze_logs_with_embeddings 函数中,脚本首先为日志条目和预定义模板生成嵌入,然后使用 FAISS 索引找到每个日志条目嵌入最近的模板嵌入。最近模板的类别(“可疑”或“正常”)分配给日志条目。这一步是核心分析发生的地方,利用嵌入提供的语义理解和 FAISS 在相似性搜索方面的效率。
这个脚本展示了如何将 AI 和相似性搜索技术结合起来,以增强日志文件分析的能力,提供比传统基于关键词方法更细致的日志数据理解。通过利用嵌入技术,该脚本可以抓住日志条目背后的上下文意义,结合 FAISS,可以高效地对大量条目进行分类,成为安全分析和事件检测的强大工具。
你构建的脚本为通过应用 AI 和高效数据处理技术增强网络安全实践打开了一系列可能性。通过使用嵌入技术和 FAISS 分析日志文件,你不仅是基于与预定义模板的相似性分类事件;而且为更智能、响应式和适应性网络安全基础设施打下了基础。以下是如何扩展这个概念并利用这种类型的脚本为网络安全中的更广泛应用奠定基础的一些想法:
parse_raw_log_to_json 函数以适应你工作中正在处理的日志的特定格式。开发一个灵活的解析函数或使用一个规范化的日志管理工具可以显着简化这个过程。
通过探索这些途径,您可以显著提升脚本在网络安全中的实用性和影响力,朝着更为积极主动和数据驱动的安全姿态迈进。每一次扩展不仅增强了脚本的功能,还有助于更深入地理解和更有效地管理网络安全风险。
在使用此脚本时,特别是在网络安全环境中,务必注意正在处理的数据的敏感性。日志文件通常包含机密信息,不应在安全环境之外暴露。虽然 OpenAI API 提供了强大的工具来分析和分类日志数据,但至关重要的是确保敏感信息不会无意间发送到外部服务器。
作为一项额外的谨慎措施,考虑在将数据发送到 API 之前对其进行匿名化,或者使用差分隐私等技术,以增加额外的安全层。
此外,如果您正在寻找一种在本地环境内进行所有数据处理的方法,请关注即将发布的私密本地 LLM 章节。本章将探讨如何在严格控制数据的同时利用 LLM 的能力,确保敏感信息保留在安全系统的范围内。
通过对数据安全保持警惕,您可以在不损害数据的机密性和完整性的情况下利用人工智能的力量来进行网络安全工作。
在这一章中,我们探讨了本地人工智能模型和框架在网络安全领域的转型潜力。我们首先利用 LMStudio 部署和与本地人工智能模型进行交互,增强了数据敏感场景下的隐私保护和控制。接着介绍了 Open Interpreter 作为高级本地威胁搜索和系统分析工具,然后介绍了 Shell GPT,它通过自然语言处理能力显著增强了渗透测试。我们深入研究了 PrivateGPT,因为它擅长审查诸如**事件响应(IR)**计划等敏感文件,确保数据保持机密。最后,展示了 Hugging Face AutoTrain,因其在网络安全应用中特定的 LLM 调优能力,充分体现了先进人工智能技术在各种网络安全环境中的整合。本章不仅指导如何实际应用,还传授了如何有效利用这些工具来执行各种网络安全任务的知识。
重要说明
开源大语言模型(LLMs)为 OpenAI 等知名专有模型提供了另一种选择。这些开源模型由一群贡献者开发和维护,使其源代码和训练数据公开可访问。这种透明性使得这些模型可以更灵活、更易审查和更易理解,从而促进了创新和信任。
开源 LLMs 的重要性在于它们的可访问性和适应性。它们使得研究人员、开发者和组织,尤其是那些资源有限的组织,可以在不受专有模型授权和成本限制的情况下进行人工智能技术的实验和部署。此外,开源 LLMs 鼓励协作开发,确保了更广泛的观点和用途,这对于人工智能技术的进步及其在包括网络安全在内的各个领域的应用至关重要。
在本章中,我们将涵盖以下内容:
对于本章,您将需要使用 Web 浏览器和稳定的互联网连接以访问 ChatGPT 平台并设置您的帐户。您还需要已经设置好 OpenAI 帐户并取得 API 密钥。如果没有,请查看第一章获取详细信息。熟悉 Python 编程语言以及使用命令行的基础知识是必要的,因为您将使用Python 3.x,这需要在您的系统上安装,用于与 OpenAI GPT API 进行交互并创建 Python 脚本。代码编辑器也对于编写和编辑 Python 代码和提示文件至关重要,因为您将在本章的教程中使用。最后,由于许多渗透测试用例严重依赖 Linux 操作系统,访问和熟悉 Linux 发行版(最好是 Kali Linux)对于使用工具如 Open Interpreter 和 Shell GPT 进行交互是有益的。对于与诸如 Open Interpreter 和 Shell GPT 等工具进行交互,具有基本的命令行工具和 shell 脚本的理解将对您有利。本章的代码文件可以在这里找到:github.com/PacktPublishing/ChatGPT-for-Cybersecurity-Cookbook。
LMStudio已经成为在本地部署 LLMs 的强大且用户友好的工具,在网络安全方面既适用于个人实验也适用于专业应用开发。其用户友好的界面和跨平台可用性使它成为广泛用户的选择,包括网络安全专业人员。关键功能,比如从Hugging Face选择模型、交互式聊天界面、高效的模型管理,使得 LMStudio 成为在本地机器上部署和运行开源 LLMs 的理想选择。本教程将探讨如何使用 LMStudio 进行网络安全分析,允许您直接与模型交互或通过本地服务器将其集成到应用程序中。
在开始之前,请确保您具备以下先决条件:
lmstudio.ai/)和 GitHub 存储库(https://github.com/lmstudio-ai)获取安装说明。
LMStudio 为在本地部署和实验 LLMs 提供了多功能平台。以下是如何最大化其在网络安全分析中的使用:
lmstudio.ai/下载并安装适用于您操作系统的 LMStudio
下面的屏幕截图显示了 LMStudio 主屏幕。

图 9.1 – LMStudio 主屏幕
可在搜索选项卡中找到可用模型。

图 9.2 – 模型选择和安装
聊天选项卡允许从用户界面直接与模型进行聊天。

图 9.3 – 聊天界面
右侧面板中可以调整模型设置。

图 9.4 – 模型调整

图 9.5 – 本地推理服务器设置和 API 使用
使用 CURL 或其他方法测试 API 调用,与 OpenAI 的格式对齐,以实现无缝集成。
这是一个 CURL 调用示例:
curl http://localhost:1234/v1/chat/completions -H "Content-Type: application/json" -d '{ "messages": [ { "role": "system", "content": "You are a cybersecurity expert with 25 years of experience and acting as my cybersecurity advisor." }, { "role": "user", "content": "Generate an IR Plan template." } ], "temperature": 0.7, "max_tokens": -1, "stream": false }' | grep '"content":' | awk -F'"content": "' '{print $2}' | sed 's/"}]//'上述命令适用于 Linux 和 MacOS。如果使用 Windows,你需要使用以下修改后的命令(在 PowerShell 中使用 Invoke-WebRequest):
$response = Invoke-WebRequest -Uri http://localhost:1234/v1/chat/completions -Method Post -ContentType "application/json" -Body '{ "messages": [ { "role": "system", "content": "You are a cybersecurity expert with 25 years of experience and acting as my cybersecurity advisor." }, { "role": "user", "content": "Generate an IR Plan template." } ], "temperature": 0.7, "max_tokens": -1, "stream": false }'; ($response.Content | ConvertFrom-Json).choices[0].message.content下面的截图显示了带有设置、示例客户端请求和日志的服务器屏幕。

图 9.6 – 本地推理服务器控制台日志
这样的设置为你提供了一个全面和私密的环境,用于与 AI 模型交互,增强你的网络安全分析能力。
LMStudio 通过创建一个可以运行和管理 LLM 的本地环境来运作。以下是它的关键机制的更详细了解:
这些技术能力使 LMStudio 成为在安全的离线环境中用于 AI 驱动任务的一个多功能而强大的工具。
除了其核心功能外,LMStudio 还提供了额外的可能性:
在网络安全不断发展的环境中,快速有效地分析威胁至关重要。Open Interpreter是一款创新工具,将 OpenAI 的代码解释器的功能带到您的本地环境中,对此具有革命性影响。它使语言模型能够在本地运行代码,包括 Python、JavaScript 和 Shell 等各种语言。这为网络安全专业人员提供了独特的优势,通过 ChatGPT-like 界面在他们的终端中执行复杂任务。
在本配方中,我们将探索如何利用 Open Interpreter 的功能进行高级本地威胁猎杀。我们将涵盖其安装和基本用法,并深入研究创建用于自动化网络安全任务的脚本。通过利用 Open Interpreter,您可以增强您的威胁猎杀过程,进行深入的系统分析,并执行各种与安全相关的任务,全部在本地环境的安全和隐私下进行。这个工具克服了托管服务的限制,比如受限的互联网访问和运行时限制,使其成为对敏感且密集的网络安全操作理想的选择。
在利用 Open Interpreter 进行本地威胁猎杀和其他网络安全任务之前,请确保您已准备好以下先决条件:
pip install open-interpreter
这个环境为您准备了利用 Open Interpreter 在网络安全应用中的能力,相比传统方法,提供了更加交互和灵活的方式。
Open Interpreter 革命性地改变了网络安全专业人员用自然语言与系统交互的方式。它支持通过对话式输入直接执行命令和脚本,为威胁猎捕、系统分析和安全防御打开了一个新的领域。让我们探索如何利用 Open Interpreter 完成这些任务。
pip install open-interpreter 后,只需在命令行中输入 interpreter 即可启动。
图 9.7 – 运行在命令行中的 Interpreter
要使用 Open Interpreter,只需在 Open Interpreter 命令提示符中输入简单的自然语言提示。
执行基本系统检查。从一般的系统检查开始。使用类似于以下内容的提示:
List all running processes或者,使用以下内容获取系统当前状态的概述:
Show network connections寻找恶意活动。寻找入侵或恶意活动的迹象。输入类似于以下内容的命令:
Find files modified in the last 24 hours或者,使用以下内容查找潜在威胁:
Search for unusual login attempts in system logs分析安全配置。使用 Open Interpreter 检查安全配置。以下命令可帮助您评估系统的易受攻击性:
Display firewall rules
Review user account privileges自动执行例行安全检查。创建运行以下命令的脚本:
Perform a system integrity check
Verify the latest security patches installed进行 IR 分析。如果发生安全事件,使用 Open Interpreter 进行快速分析和响应。以下命令可能非常关键:
Isolate the infected system from the network
Trace the source of the network breach这些任务每个都利用了 Open Interpreter 与本地环境交互的能力,为实时网络安全响应和分析提供了强有力的工具。
下面是前两个提示的例子输出:

图 9.8 – Open Interpreter 命令行交互
当您与 Open Interpreter 进行交互时,会询问您是否允许执行命令甚至运行 Open Interpreter 编写的脚本。
Open Interpreter 是一个带有exec()函数的函数调用语言模型,该函数接受 Python 和 JavaScript 等各种编程语言用于代码执行。它以 Markdown 格式将模型的消息、代码和系统输出流传输到终端。通过这样做,它在自然语言处理(NLP)和直接系统交互之间建立了桥梁。这种独特的能力使得网络安全专业人员能够通过直观的对话命令进行复杂的系统分析和威胁猎取活动。与托管服务不同,Open Interpreter 在您的本地环境中运行,享有完全的互联网访问、无限制的时间和文件大小使用以及使用任何包或库的能力。这种灵活性和强大性使它成为实时、深入的网络安全操作中不可或缺的工具。
Open Interpreter 除了核心功能外,还提供了几个高级功能,进一步提升了在网络安全领域的实用性。从自定义选项到与 Web 服务的集成,这些附加功能提供了更丰富、更灵活的体验。下面是如何利用它们的方法:
自定义和配置:
config.yaml file to tailor Open Interpreter’s behavior, ensuring it aligns with your unique cybersecurity needs:model: gpt-3.5-turbo # 指定要使用的语言模型
max_tokens: 1000 # 设置响应的最大标记数
context_window: 3000 # 定义上下文窗口大小
auto_run: true # 启用自动执行命令,无需确认
system_message: |
启用高级安全检查。
增加系统日志的详细程度。
优先处理威胁猎取命令。
tasks:
threat_hunting:
alert_level: high
response_time: fast
system_analysis:
detail_level: full
report_format: detailed
交互模式命令:
"%reset" # Resets the current session for a fresh start
"%save_message 'session.json'" # Saves the current session messages to a file这些命令提供了对会话的增强控制,使威胁分析更有组织性和高效性。
FastAPI 服务器集成:
# Integrate with FastAPI for web-based cybersecurity applications: pip install fastapi uvicorn uvicorn server:app --reload通过将 Open Interpreter 与 FastAPI 集成,您可以扩展其在 Web 应用程序中的功能,实现远程安全操作。
安全注意事项:
interpreter -y # Run commands without confirmation for efficiency, but with caution在执行与系统文件和设置交互的命令时,请始终注意安全性的影响。
本地模型使用:
interpreter --local # Use Open Interpreter with local language models, enhancing data privacy在本地模式下运行 Open Interpreter,连接到本地语言模型(如 LMStudio),为敏感的网络安全操作提供了增强的数据隐私和安全性。
通过将 LMStudio 与 Open Interpreter 集成,可以增强其在网络安全任务中的能力,提供安全和私密的处理环境。下面是设置方法:
interpreter --local以启动本地模式的 Open Interpreter。
重要提示
本地模式将 context_window 配置为 3000,max_tokens 配置为 1000,可以根据您的模型要求手动调整。
此设置为在本地进行敏感网络安全操作提供了一个强大的平台,利用语言模型的力量,同时保持数据隐私和安全性。
Shell GPT,由 AI LLM 驱动的命令行生产力工具,标志着渗透测试领域的重大进步。通过集成 AI 能力来生成 shell 命令、代码片段和文档,Shell GPT 允许渗透测试人员轻松精确地执行复杂的网络安全任务。这个工具不仅是一个快速命令回忆和执行的好工具,还可以用于简化渗透测试工作流程,如在 Kali Linux 环境中。由于其跨平台兼容性以及对主要操作系统和 shell 的支持,Shell GPT 已经成为现代渗透测试人员不可或缺的工具。它简化了复杂的任务,减少了对广泛的手动搜索的需求,并显著提高了生产力。在本章中,我们将探讨如何利用 Shell GPT 来处理各种渗透测试场景,将复杂的命令行操作转化为简单的自然语言查询。
在深入探讨 Shell GPT 在渗透测试中的实际应用之前,请确保满足以下先决条件:
pip install shell-gpt 命令
此设置为您提供了必要的工具和环境,以利用 Shell GPT 来增强您的渗透测试能力。
Shell GPT 通过将复杂的命令行任务简化为直接的自然语言查询,为渗透测试人员提供了强大的支持。让我们探讨如何有效地利用 Shell GPT 来处理各种渗透测试场景:
执行简单的渗透测试查询。执行查询以快速检索信息:
sgpt "explain SQL injection attack"
sgpt prompt’s output.
图 9.9 – sgpt 提示输出示例
为渗透测试生成 shell 命令。创建在测试期间需要的特定 shell 命令:
sgpt -s "scan network for open ports using nmap"
-s option.
图 9.10 – 带 -s 选项的 sgpt 提示输出示例
分析和总结日志。总结与渗透测试相关的日志或输出:
cat /var/log/auth.log | sgpt "summarize failed login attempts"执行交互式 shell 命令。使用针对您的操作系统定制的交互式命令执行:
sgpt -s "update penetration testing tools"创建用于测试的自定义脚本。为特定测试场景生成脚本或代码:
sgpt --code "Python script for testing XSS vulnerability"开发迭代 测试 场景。利用对话模式进行迭代式场景开发:
sgpt --repl phishing-training
repl option for continuous chat.
图 9.11 – 使用 –repl 选项进行连续聊天的示例 sgpt 提示输出
在连续的聊天中生成 shell 命令。这样可以使用自然语言运行 shell 命令,同时保持之前的 shell 命令和输出的上下文。
sgpt --repl temp --shell这种方法将 Shell GPT 转变成了一个强大的工具,用于简化渗透测试任务,使其更易于访问和直观。
Shell GPT 通过利用 OpenAI 的语言模型将自然语言查询转换为可执行的 shell 命令和代码,适应用户的操作系统和 shell 环境。这个工具弥合了复杂命令语法和直观语言之间的差距,简化了执行高级渗透测试任务的过程。与传统的命令行界面不同,Shell GPT 不需要越狱来执行复杂的任务;相反,它利用 AI 模型对上下文的理解提供准确和相关的命令。这个特性对于经常需要在工作中使用特定和多样化命令的渗透测试人员特别有用。Shell GPT 在不同操作系统和 shell 上的可适应性,结合执行、描述或中止建议的命令的能力,增强了它在动态测试环境中的实用性。
Shell GPT 还支持对话模式,如聊天和 REPL,允许用户迭代地开发和完善查询。这种方法对于创建复杂的测试场景非常有益,其中每个步骤都可以被逐步完善和执行。此外,Shell GPT 的缓存机制和可定制的运行时配置,如 API 密钥和默认模型,优化了它的功能,使其更适合重复使用和特定用户要求。
除了其核心功能外,Shell GPT 还提供了几个高级功能,增强了其在渗透测试中的实用性:
bash 和 zsh:
sgpt --install-integration使用Ctrl + l在你的终端中调用 Shell-GPT,这样可以实现即时命令生成和执行。
创建自定义角色:定义特定角色以进行定制响应,增强工具在独特的渗透测试场景中的有效性:
sgpt --create-role pentest # Custom role for penetration testing这个功能允许你创建和利用角色,生成特定于你的测试需求的代码或 shell 命令。
对话和 REPL 模式:利用聊天和 REPL 模式进行交互式和迭代式命令生成,这对于开发复杂的测试脚本或场景非常完美:
sgpt --chat pentest "simulate a network scan" sgpt --repl pentest --shell这些模式提供了与 Shell GPT 交互的动态和响应式方式,使得更容易完善和执行复杂的命令。
请求缓存:利用缓存机制来更快地响应重复的查询:
sgpt "list common SQL injection payloads" # Cached responses for faster access缓存确保工具的高效使用,特别是在进行大量渗透测试会话时,某些命令可能会重复出现。
Shell GPT 的这些附加功能不仅增强了其基本功能,而且为渗透测试人员提供了更加定制化和高效的体验。
PrivateGPT是一种开拓性工具,可利用私密的、脱机环境中的 LLMs,解决了数据敏感领域的关键问题。它提供了一种独特的 AI 驱动文档交互方式,包括文档摄取、检索增强生成(RAG)管道和上下文响应生成的功能。在这个示例中,我们将利用 PrivateGPT 来审查和分析 IR 计划,这是网络安全准备工作中的一个关键要素。通过利用 PrivateGPT 的脱机功能,您可以确保彻底分析敏感的 IR 计划,同时保持完全的数据隐私和控制。这个示例将指导您设置 PrivateGPT 并使用 Python 脚本来审查 IR 计划,演示 PrivateGPT 如何成为增强网络安全流程的宝贵工具。
在开始使用 PrivateGPT 审查 IR 计划之前,请确保已完成以下设置:
github.com/imartinez/privateGPT)上的说明安装 PrivateGPT。还可以在docs.privategpt.dev/installation找到额外的安装说明。
python-poetry.org/)安装 Poetry。
这个准备工作为在安全、私密的方式下使用 PrivateGPT 来分析和审查您的 IR 计划奠定了基础。
利用 PrivateGPT 审查 IR 计划提供了一种理解和改进网络安全协议的细致方法。按照这些步骤有效地利用 PrivateGPT 的能力,对 IR 计划进行彻底的分析:
克隆并准备 PrivateGPT 存储库。首先克隆 PrivateGPT 存储库并导航至其中。然后,安装Poetry来管理依赖项:
git clone https://github.com/imartinez/privateGPT
pipx:pipx,确保其二进制目录在您的 PATH 上。您可以通过在 shell 配置文件(如/.bashrc、/.zshrc 等)中添加以下一行来进行此操作:
export PATH="$PATH:$HOME/.local/bin"
# For Windows
python -m pip install --user pipx安装 Poetry:
Pipx install poetry使用 Poetry 安装依赖项:
poetry install --with ui,local这一步为运行 PrivateGPT 做好环境准备。
安装其他依赖项以进行本地执行。GPU 加速对于完整的本地执行是必需的。安装必要的组件并验证安装:
make:
# For MacOS
brew install make
# For Windows
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
llama-cpp-python with Metal support using the following command:CMAKE_ARGS=“-DLLAMA_METAL=on” pip install --force-reinstall --no-cache-dir llama-cpp-python.
Windows:安装 CUDA 工具包并使用以下命令验证安装:
nvcc --version and nvidia-smi.Linux:确保安装了最新的 C++编译器和 CUDA 工具包。
运行 PrivateGPT 服务器:
python -m private_gpt查看 PrivateGPT GUI。在所选的浏览器中导航到 http://localhost:8001。

图 9.12 - ChatGPT 用户界面
requests库发送数据到 API 端点并检索响应:
import requests
url = "http://localhost:8001/v1/chat/completions"
headers = {"Content-Type": "application/json"}
data = { "messages": [
{
"content": "Analyze the Incident Response Plan for gaps and weaknesses."
}
],
"use_context": True,
"context_filter": None,
"include_sources": False,
"stream": False
}
response = requests.post(url, headers=headers, json=data)
result = response.json().get('choices')[0].get('message').get('content').strip()
print(result) 该脚本与 PrivateGPT 交互,分析 IR 计划并提供基于
工作原理…
PrivateGPT 利用 LLM 的强大能力在完全离线环境中,确保对敏感文件分析的 100%隐私。它的核心功能包括以下内容:
这种架构使 PrivateGPT 成为一个功能强大的工具,适用于私密的、具有上下文感知性的人工智能应用程序,特别是在审查详细的网络安全文件等场景中。
PrivateGPT 的功能不仅限于基本文件分析,还提供了多种应用的多功能工具:
这些额外的见解凸显出 PrivateGPT 在保护隐私敏感环境中的潜力,尤其是在网络安全领域。
Hugging Face 的 AutoTrain 代表了人工智能民主化的一大进步,使来自各个背景的用户能够为各种任务训练最先进的模型,包括自然语言处理和 计算机视觉 (CV)。这个工具对于希望为特定的网络安全任务微调 LLMs 的网络安全专业人员特别有益,比如分析威胁情报或自动化事件响应,而无需深入了解模型训练的技术复杂性。AutoTrain 的用户友好界面和无代码方法使其不仅适用于数据科学家和机器学习工程师,还适用于非技术用户。通过利用 AutoTrain Advanced,用户可以利用自己的硬件进行更快的数据处理,控制超参数以进行定制的模型训练,并在 Hugging Face Space 或本地处理数据,以增强隐私和效率。
在利用 Hugging Face AutoTrain 对网络安全中的 LLMs 进行微调之前,请确保您已经完成以下设置:
huggingface.co/)
autotrain-advanced 包
这个准备工作将使您能够有效地利用 AutoTrain 对模型进行微调,以满足您的特定网络安全需求。
Hugging Face 的 AutoTrain 简化了对 LLMs 进行微调的复杂过程,使网络安全专业人士能够增强其人工智能能力。以下是如何利用这个工具进行针对网络安全需求的模型微调的方法:
准备您的数据集。创建一个包含模拟网络安全场景的对话的 CSV 文件:
human: How do I identify a phishing email? \n bot: Check for suspicious sender addresses and urgent language.
human: Describe a SQL injection. \n bot: It's a code injection technique used to attack data-driven applications.
human: What are the signs of a compromised system? \n bot: Unusual activity, such as unknown processes or unexpected network traffic.
human: How to respond to a ransomware attack? \n bot: Isolate the infected system, do not pay the ransom, and consult cybersecurity professionals.
human: What is multi-factor authentication? \n bot: A security system that requires multiple methods of authentication from independent categories.转到 Hugging Face Spaces 部分,然后点击 创建 新的 Space。

图 9.13 – Hugging Face Spaces 选择

图 9.14 – Hugging Face 空间类型选择

图 9.15 – Hugging Face 写入令牌创建
下面的截图显示了创建令牌的区域。

图 9.16 – Hugging Face 写入令牌访问

图 9.17 – Hugging Face Space 配置

图 9.18 – 模型选择
通常,模型微调涉及调整预先训练的模型,使其更适合特定任务或数据集。该过程通常从在大型、多样化数据集上训练的模型开始,为其提供对语言模式的广泛理解。在微调过程中,该模型进一步训练(或 微调 )于更小、任务特定的数据集。这种额外的训练使模型能够调整其参数以更好地理解并响应新数据集的细微差异,从而提高其在与该数据相关的任务上的性能。这种方法利用了预先训练模型的通用能力,同时定制它以在更专业的任务上表现良好。
AutoTrain 通过自动化复杂的步骤,简化了微调 LLMs 的过程。该平台处理您的 CSV 格式数据,应用所选择的微调方法,如 CLM,来在您的特定数据集上训练模型。在此过程中,AutoTrain 处理数据预处理、模型选择、训练和优化。通过使用先进的算法和 Hugging Face 全面的工具,AutoTrain 确保生成的模型针对手头的任务进行了优化,在本例中是与网络安全相关的情景。这使得部署适合独特网络安全需求的 AI 模型变得更容易,而无需深入的 AI 模型训练技术专业知识。
除了为网络安全任务调整模型外,AutoTrain 还提供了其他几个优势和潜在用途:
这些额外的见解强调了 AutoTrain 的多功能性及其显著增强网络安全 AI 能力的潜力。
自 2022 年末向公众介绍生成式 AI 以来,其快速发展令人震惊。因此,OpenAI 的 ChatGPT 已经超越了我们更新每个章节的能力。至少,如果我们想要出版这本书的话。这就是这项技术发展的速度,而且将继续如此。因此,与其试图回顾性地回到过去并不断更新每一个食谱,本章提出了一个独特的挑战和机会,涵盖了自之前各章节完成以来一些更重要的更新。
自 ChatGPT 推出以来,它已经超越了最初的设计,通过一个单一界面融合了高级数据分析、网络浏览,甚至通过DALL-E进行图像解释等功能。本章深入探讨了这些最新升级,为您提供了利用最新前沿功能进行网络安全的食谱。这些包括实时网络威胁情报收集,利用 ChatGPT 的增强分析能力深入了解安全数据,并采用先进的可视化技术更直观地理解漏洞。
重要提示
对于处理敏感网络信息的网络安全专业人员,使用 OpenAI 企业账户至关重要。这确保了敏感数据不会被用于 OpenAI 模型训练,保持了网络安全任务中至关重要的保密性和安全性。本章探讨了最新的 OpenAI 功能如何在网络安全领域发挥作用,展示了 AI 辅助网络防御的未来。
在本章中,我们将涵盖以下内容:
对于本章,您需要一个网络浏览器和一个稳定的互联网连接,以访问 ChatGPT 平台并设置您的帐户。您还需要设置您的 OpenAI 帐户并获得您的 API 密钥。如果没有,请参阅第一章获取详细信息。
必须具备基本的 Python 编程语言和使用命令行的知识,因为您将使用Python 3.x,它需要安装在您的系统上,用于使用 OpenAI GPT API 和创建 Python 脚本。
作为在本章中编写和编辑 Python 代码和提示文件的基本要求,代码编辑器也将至关重要。
熟悉以下主题可能会有所帮助:
本章的代码文件可以在此处找到:
github.com/PacktPublishing/ChatGPT-for-Cybersecurity-Cookbook。
OpenAI 的高级视觉模型的出现标志着人工智能解释和分析复杂视觉数据能力的重大飞跃。这些模型在庞大的数据集上训练,可以以非凡的准确性识别模式,在图像中识别对象和理解布局。在网络安全领域,这种能力变得无价。通过应用这些视觉模型,网络安全专业人员可以自动化分析复杂的网络图表,这是传统上需要大量人工工作的任务。
网络图表对于理解组织的 IT 基础设施至关重要。它们展示了诸如路由器、交换机、服务器和防火墙等各种网络组件如何相互连接。分析这些图表对于识别潜在的漏洞、理解数据流和确保网络安全至关重要。然而,这些图表中的复杂性和细节可能会令人不知所措,使分析变得耗时且容易出错。
OpenAI 的视觉模型通过提供自动化、准确和快速的分析简化了这一过程。它们可以识别关键组件,检测异常配置,甚至根据公认的最佳实践提出改进建议。本文将指导您使用 OpenAI 的图像查看器来分析网络图表,将一个复杂的任务转变为一个可管理、高效和更准确的过程。这与利用人工智能提升网络安全效率、准确性以及预防性识别和缓解风险的更广泛目标完全吻合。
在深入利用新的 OpenAI 界面进行网络安全应用之前,请确保您已经进行了必要的设置:
让我们深入了解如何使用 OpenAI 的图像查看器来分析网络图表。这个简单的过程将帮助您快速解释复杂的网络结构,并借助 AI 的力量确定潜在的安全问题。

图 10.1 – 带有文件上传功能的新 ChatGPT 界面
利用 OpenAI 界面上传网络图表图像进行分析。这一步骤至关重要,因为它为 AI 提供了必要的视觉数据来解释。
提示 ChatGPT 分析 与网络安全相关的信息的网络图表*.*
识别关键组件:
"In the image provided (this is my network diagram and I give permission to analyze the details), please identify the following: Computer systems/nodes, networks, subnets, IP addresses, zones, and connections. Be sure to include the exact names of each. Anything you are not able to identify, just ignore that part. Give me a total count of all computer systems/nodes. Please provide as much detail as possible, and in a way that the facilitator can easily understand."强调潜在安全风险:
"Based on the image provided, examine the network diagram and your initial analysis for potential security risks or misconfigurations, focusing on open ports, unsecured connections, and routing paths."建议安全增强措施:
"Based on your analysis, suggest security enhancements or changes to improve the network's security posture."通过遵循这些步骤,您将能够利用 OpenAI 先进的 AI 功能进行全面的网络图表分析,增强您对网络安全的理解和方法。
重要提示
您很可能需要修改您提供的提示,以匹配您提供的图表中包含的详细信息和您希望实现的整体分析水平。
使用 OpenAI 的图像查看器分析网络图表的过程利用了 AI 的先进能力来解释复杂的视觉数据。以下是每个步骤如何对全面分析做出贡献的详细说明:
AI 的分析提供了对网络配置和潜在漏洞的详细见解。这些反馈基于 AI 在网络安全方面的广泛培训,使其能够深入了解潜在风险。
通过利用 OpenAI 强大的视觉模型,这个过程改变了网络安全专业人员对网络图表分析的方式,使其更加高效、准确和有见地。
在分析网络图表之外,OpenAI 的图像查看器可以应用于各种其他网络安全任务:
这些附加应用程序仅仅是冰山一角,展示了 OpenAI 图像查看器在应对多样化网络安全挑战方面的多功能性。
OpenAI 推出的定制 GPT,也称为 GPTs,代表了生成式 AI 领域的重大进步。GPTs 提供了定制 ChatGPT 以特定目的的独特能力,使用户能够创建和分享更符合其个人需求和目标的 AI 模型。这种定制将 ChatGPT 的实用性扩展到了各种领域的专门任务中,包括网络安全。
对于网络安全专业人员来说,GPTs 打开了一扇可能性的大门。从设计工具来教授复杂的安全概念,到创建用于威胁分析的 AI 助手,GPTs 可以被塑造以适应网络安全领域复杂的需求。创建这些定制模型的过程不需要编码专业知识,使其可供广泛用户访问。借助网页搜索、图像生成和高级数据分析等功能,GPTs 可以执行诸如学习网络安全协议规则、协助事件响应,甚至开发网络安全培训教材等任务。GPTs 甚至可以通过添加自定义操作和连接外部 API 进一步扩展功能。
在这个教程中,我们将探讨如何利用定制的 GPT 来创建针对特定网络安全应用的 AI 工具,以反映这一领域的独特需求和挑战。具体来说,我们将创建一个能够分析电子邮件以寻找潜在钓鱼攻击的 GPT。
要开始为网络安全应用创建定制 GPT,需要进行一些关键准备:
openai.com/) 上注册。
zapier.com/sign-up 上创建一个免费的 Zapier 账号。
这些步骤将让你为定制 GPT 进入准备阶段,定制 AI 能力以满足网络安全的具体需求。
创建一个自定义 GPT,集成 Zapier 访问 Gmail 以进行钓鱼检测,结合 OpenAI 界面步骤和自定义 Zapier 配置:

图 10.2 – 在新 ChatGPT 界面中访问 GPT

图 10.3 – 在新 ChatGPT 界面中创建 GPT

图 10.4 – 在聊天中创建 GPT

图 10.5 – GPT 高级配置
或者,直接在 配置 部分输入你的提示,详细说明 GPT 的名称、指示和对话启动器,就像上面的图片展示的一样。
PhishGuard 并使用以下步骤创建了我们的钓鱼检测 GPT:
PhishGuard is tailored to assist average email users in identifying phishing attempts in Gmail. It operates professionally, using clear, non-technical language to serve as a cybersecurity advisor. PhishGuard analyzes emails retrieved via custom Zapier actions, focusing on sender details, links, language, and headers. It prioritizes privacy and security, guiding users in how to use Zapier for email analysis. When additional information is needed, PhishGuard directly instructs users on what is required and how to obtain it, facilitating the copy-pasting of necessary details. It suggests caution and verification steps for suspicious emails, providing educated assessments without making definitive judgments. This approach is designed for users without in-depth cybersecurity knowledge, ensuring understanding and ease of use.
### Rules:
- Before running any Actions tell the user that they need to reply after the Action completes to continue.
### Instructions for Zapier Custom Action:
Step 1\. Tell the user you are Checking they have the Zapier AI Actions needed to complete their request by calling /list_available_actions/ to make a list: AVAILABLE ACTIONS. Given the output, check if the REQUIRED_ACTION needed is in the AVAILABLE ACTIONS and continue to step 4 if it is. If not, continue to step 2.
Step 2\. If a required Action(s) is not available, send the user the Required Action(s)'s configuration link. Tell them to let you know when they've enabled the Zapier AI Action.
Step 3\. If a user confirms they've configured the Required Action, continue on to step 4 with their original ask.
Step 4\. Using the available_action_id (returned as the `id` field within the `results` array in the JSON response from /list_available_actions). Fill in the strings needed for the run_action operation. Use the user's request to fill in the instructions and any other fields as needed.
REQUIRED_ACTIONS:
- Action: Google Gmail Search
Confirmation Link: https://actions.zapier.com/gpt/start对话启动器是出现在消息框上方的 一键提示 建议按钮,如下图所示的 图 10*.6*:

图 10.6 – GPT 对话启动按钮

图 10.7 – GPT 能力分配
在本教程中,我们不会上传任何文档,但是你可以上传文档,为 GPT 提供特定知识的补充。这些知识可能是模型无法训练的信息。GPT 将使用 检索增强生成(RAG) 引用这些文档。
重要提示
RAG 是一种将大型语言模型的能力与检索系统结合起来以增强其生成文本能力的方法。在 RAG 中,模型根据查询或提示从大型数据库或语料库中检索相关文档或信息片段。然后,语言模型使用这些检索到的信息作为额外的上下文来生成更准确、更有见识或更具上下文相关性的响应。RAG 利用检索数据的深度和特异性以及语言模型的生成能力来提高文本生成的质量,特别是在需要外部知识或特定信息的任务中。

图 10.8 – GPT 添加操作屏幕
actions.zapier.com/gpt/api/v1/dynamic/openapi.json?tools=meta。这将自动填充 模式。
图 10.9 – GPT 自动添加的模式
它还将自动填充可用的操作:

图 10.10 – GPT 自动添加的操作
zapier.com/privacy。
重要提示
您可以在 Zapier 的完整说明中找到如何设置 GPT 操作的详细说明:actions.zapier.com/docs/platform/gpt。您需要编辑 Zapier 提供的操作说明,以匹配我们正在使用的 Zapier 操作,而不是默认的说明。参见 步骤 3 以获取确切的措辞。
actions.zapier.com/gpt/actions/ 并点击 添加新操作。您可以搜索特定的操作。在本例中,我们搜索并选择 Gmail: 查找电子邮件。然后,启用 此操作。
图 10.11 – Zapier GPT 操作屏幕
此外,请确保选择 让 AI 猜测此字段的值。

图 10.12 – Zapier GPT 操作配置屏幕

图 10.13 – GPT 需要授权访问 Zapier

图 10.14 – 将 Zapier 链接操作添加到 GPT 中
重要提示
您可能会被要求确认 GPT 访问 Zapier 操作的权限。

图 10.15 – 对话启动按钮
图 10*.16* 展示了 GPT 的电子邮件列表输出结果:

图 10.16 – PhishGuard GPT 结果
图 10*.17* 展示了最终的分析输出:

图 10.17 – PhishGuard GPT 分析结果
通过遵循和整合这些步骤,您将创建一个强大的 PhishGuard GPT,作为检测电子邮件钓鱼的高级助手。它将 OpenAI 的直观界面互动与 Zapier 的实际自动化相结合,增强了向用户提供的网络安全能力。
作为用于检测电子邮件钓鱼的自定义 GPT 的 PhishGuard 的功能通过 OpenAI 和 Zapier 配置的无缝集成操作,利用逐步流程来确保用户友好和安全的体验:
通过将 GPT 创建过程与自定义操作和 API 集成的复杂功能相结合,PhishGuard 代表了用户可控的高级网络安全工具。它展示了如何针对特定用例定制 GPT,并通过 AI 驱动的电子邮件分析增强网络安全措施。
像 PhishGuard 这样的自定义 GPT 的功能远远超出了预配置的操作,并且可以定制以与众多 API 进行交互,释放了网络安全甚至更多的无限可能性:
GPT 的引入代表了个人和组织如何利用人工智能的范式转变。通过将语言模型的能力与广泛的 Web API 生态系统相结合,像 PhishGuard 这样的 GPT 只是个性化和强大人工智能助手新时代的开始。
在不断发展的网络安全领域,及时了解最新威胁至关重要。随着 OpenAI 引入网络浏览功能,网络安全专业人员现在可以利用这一强大工具来简化威胁情报监控过程。本文将指导您如何利用新的 OpenAI 界面来获取、分析和利用最新的威胁数据,以保护您的数字资产。
ChatGPT 最初的发布通过允许用户与人工智能进行自然语言对话,开启了一个新的可能领域。随着它的发展,引入了新的功能,如代码解释和网络浏览,但这些是独立的功能。ChatGPT Plus 的最新版本已经融合了这些功能,提供了更加综合和动态的用户体验。
在网络安全领域,这样的用户体验可能会转化为更强大的能力,以在同一个对话界面内执行对威胁的实时搜索、分析复杂的安全数据和生成可操作的见解。从追踪影响行业的最新勒索软件攻击的细节到跟踪合规变更,ChatGPT 的网络浏览能力类似于随时可用的网络安全分析师,能够筛选出最重要的信息。
在深入研究网络威胁情报的世界之前,建立正确的环境和工具以确保有效的监控过程是至关重要的。以下是您需要开始的内容:
利用 OpenAI 的网络浏览功能监视最新的网络威胁情报,涉及一系列旨在帮助您保持在潜在网络威胁前方的步骤。

图 10.18 – 使用 ChatGPT 进行网络浏览
制定具体查询。向 ChatGPT 提供清晰而精确的关于当前网络安全威胁的查询。例如:
"Browse the web to search for the latest news on ransomware attacks in the financial sector."过滤和验证来源。要求 ChatGPT 优先处理来自可信和权威来源的结果,以确保信息的可靠性。
审查和总结发现。要求 ChatGPT 总结搜索结果的要点,提供一个快速可行的威胁情报简报。
"Summarize the key points from the search results, providing a quick and actionable threat intelligence brief"持续监控。设置定期间隔来进行这些搜索,确保您收到关于潜在威胁的最新信息。
分析和记录。使用数据分析工具跟踪并记录随时间收集到的情报的趋势和模式,以供将来参考。
创建可操作的见解。将总结的威胁情报转化为您组织的可操作见解,例如更新防火墙规则或进行有针对性的员工培训。您可以让 ChatGPT 完成这项任务。
"Translate the summarized threat intelligence into actionable insights for your organization, such as updating firewall rules or conducting targeted staff training"通过遵循这些步骤,您可以建立一种积极主动的网络威胁情报方法,了解最新的威胁并确保您的网络防御是及时和有效的。
重要说明
请注意,尽管 OpenAI 的网络浏览功能提供了来自互联网的丰富信息,但存在可能阻止它访问某些网站的限制。这些限制旨在确保遵守隐私法律、尊重版权和遵守 OpenAI 的用例政策。因此,一些网站,特别是需要用户身份验证、具有敏感或受保护内容以及某些专有数据库的网站,可能无法通过此功能访问。
当使用 ChatGPT 进行网络威胁情报时,建议事先验证您首选信息源的可访问性,并准备好备选方案。此外,在指示 ChatGPT 浏览网络时,请注意法律和道德考虑,确保您使用该工具仍在 OpenAI 政策规定的允许活动范围内。
使用 OpenAI 的 ChatGPT 进行网络浏览以监控网络威胁情报的工作是通过自动化搜索和分析最新的网络安全威胁来实现的。以下是该流程的详细说明:
该过程利用 AI 的力量增强了网络安全监控,提供了一个可扩展的解决方案,以跟上网络威胁的动态变化。
除了监控最新威胁外,ChatGPT 的网络浏览功能还可以用于各种其他网络安全应用,如:
ChatGPT 与网络浏览的适应性为增强组织网络安全措施打开了广泛的可能性。
ChatGPT 的高级数据分析功能打开了网络安全领域的新可能性,尤其是在处理和解释漏洞数据方面。这是一个强大的工具,将 OpenAI 的复杂语言模型能力与高级数据处理功能相结合。用户可以上传各种类型的文件,包括 CSV 和 JSON,并提示 ChatGPT 执行复杂的分析,比如识别趋势、提取关键指标和生成全面的可视化。
此功能不仅简化了大型数据集的分析,还使其更具交互性和洞察力。从解析复杂的漏洞报告到可视化严重性分布并识别安全漏洞,ChatGPT 的高级数据分析可以将原始数据转化为可操作的情报。此教程指导您如何利用此功能进行有效的漏洞数据分析,使您能够得出有意义的洞见并以增强理解的方式加以可视化,并有助于网络安全领域的战略决策。
要使用 ChatGPT 的高级数据分析功能进行漏洞数据分析,请确保您拥有:
CSV或JSON格式。
通过强调高级数据分析功能的能力,如处理各种文件类型、执行趋势分析和创建可视化,介绍现在提供了更全面的概述,用户可以期待在利用此工具进行网络安全目的时会得到什么。
收集并准备要上传的漏洞数据文件*.* 例如,这可以是 Windows 中的系统信息文件。(GitHub 存储库中将提供一个样本数据文件。
上传漏洞数据*.* 使用高级数据分析功能上传您的数据文件。这可以通过点击万字图标上传图标或拖放您的文件来完成。
提示 ChatGPT 分析漏洞数据*.* 例如:
"Analyze the uploaded CSV for common vulnerabilities and generate a severity score distribution chart."定制化数据分析*.* 与 ChatGPT 互动,以改进分析,例如通过按类别或时间段细分漏洞,或请求特定类型的数据可视化,比如柱状图、热力图或散点图。
ChatGPT 的高级数据分析功能使 AI 能够处理文件上传并对提供的数据进行详细分析。当您上传漏洞数据时,ChatGPT 可以处理此信息,使用其先进的语言模型来解释数据,识别趋势并创建可视化。这个工具简化了将原始漏洞数据转化为可操作洞见的任务。
超越漏洞分析,ChatGPT 中的高级数据分析功能可以用于各种其他网络安全任务:
重要提示
虽然 ChatGPT 的高级数据分析是处理和可视化数据的强大工具,但了解其局限性至关重要。对于高度复杂或专业化的数据处理任务,您可能需要将其与专用的数据分析软件或工具配合使用。
在网络安全领域的动态环境中,创新不仅有益,而且是必需的。OpenAI 的新助手 API的出现标志着一大步的进步,为网络安全专业人员提供了一个多才多艺的工具包。本文介绍了利用这些强大功能构建高级网络安全助手的方法,这些助手可以执行文件生成、数据可视化和创建交互式报告等复杂任务。
我们将利用 Python 和助手 API 的高级功能创建适用于网络安全独特需求的解决方案。我们还将探索使用 OpenAI Playground 进行更交互式、基于 GUI 的体验,并利用 Python 进行更深入的集成和自动化。
结合 Playground 直观的界面和 Python 强大的可编程性,我们将创建不仅仅是响应式的,而且是主动性能强大的助手。无论您是自动化例行任务、分析复杂数据集还是生成全面的网络安全报告,这些新功能都旨在增强您的网络安全操作的效率和效果。
要在网络安全领域有效地利用 OpenAI 的新助手,准备您的环境并熟悉所需工具至关重要。本节为构建高级网络安全助手的顺畅体验奠定了基础。
openai 库,它促进与 OpenAI 的 API 通信。在命令行或终端中使用命令 pip install openai。
要使用 OpenAI 的 API 创建网络安全分析助手,让我们将该过程分解为可管理的步骤,概述从设置到执行的所有内容。
设置 OpenAI 客户端*.* 首先导入 OpenAI 库(以及其他所需的库),然后初始化 OpenAI 客户端。这一步对于与 OpenAI 服务建立通信至关重要。
import openai
from openai import OpenAI
import time
import os
client = OpenAI()"data.txt" 文件。确保您的文件是可读格式(如 CSV 或 JSON)并包含相关的网络安全数据。
file = client.files.create(
file=open("data.txt", "rb"),
purpose='assistants'
)创建网络安全分析助手*.* 定义您助手的角色、名称和能力。在这种情况下,我们正在创建一个 网络安全分析助手,它使用 GPT-4 模型并启用了检索工具,使其能够从上传的文件中提取信息。
security_analyst_assistant = client.beta.
assistants.create(
name="Cybersecurity Analyst Assistant",
instructions="You are a cybersecurity analyst that
can help identify potential security issues.",
model="gpt-4-turbo-preview",
tools=[{"type": "retrieval"}],
file_ids=[file.id],
)启动线程并开始对话*.* 使用线程来管理与助手的交互。启动一个新线程并向助手发送消息,提示它分析上传的数据以寻找潜在的漏洞。
thread = client.beta.threads.create()
message = client.beta.threads.messages.create(
thread.id,
role="user",
content="Analyze this system data file for potential
vulnerabilities."
)'assistant' 以获取洞察力。
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=security_analyst_assistant.id,
)
def get_run_response(run_id, thread_id):
while True:
run_status = client.beta.threads.runs.
retrieve(run_id=run_id, thread_id=thread_id)
if run_status.status == "completed":
break
time.sleep(5) # Wait for 5 seconds before
checking the status again
messages = client.beta.threads.messages.list
(thread_id=thread_id)
responses = [message for message in messages.data if
message.role == "assistant"]
values = []
for response in responses:
for content_item in response.content:
if content_item.type == 'text':
values.append(content_item.text.value)
return values
values = get_run_response(run.id, thread.id)打印结果*.* 最后,迭代获取的值以审查助手的分析。这一步是展示网络安全洞察,如识别的漏洞或建议的地方。
for value in values:
print(value)最终脚本应该如下所示:
import openai
from openai import OpenAI
import time
import os
# Set the OpenAI API key
api_key = os.environ.get('OPENAI_API_KEY')
# Initialize the OpenAI client
client = OpenAI()
# Upload a file to use for the assistant
file = client.files.create(
file=open(«data.txt», «rb"),
purpose=›assistants›
)
# Function to create a security analyst assistant
security_analyst_assistant = client.beta.assistants.create(
name=»Cybersecurity Analyst Assistant»,
instructions=»You are cybersecurity that can help identify
potential security issues.",
model=»gpt-4-turbo-preview»,
tools=[{«type»: «retrieval»}],
file_ids=[file.id],
)
thread = client.beta.threads.create()
# Start the thread
message = client.beta.threads.messages.create(
thread.id,
role=»user»,
content=»Analyze this system data file for potential
vulnerabilities."
)
message_id = message.id
# Run the thread
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=security_analyst_assistant.id,
)
def get_run_response(run_id, thread_id):
# Poll the run status in intervals until it is completed
while True:
run_status = client.beta.threads.runs.retrieve
(run_id=run_id, thread_id=thread_id)
if run_status.status == "completed":
break
time.sleep(5) # Wait for 5 seconds before checking
the status again
# Once the run is completed, retrieve the messages from
the thread
messages = client.beta.threads.messages.list
(thread_id=thread_id)
# Filter the messages by the role of ‹assistant› to get
the responses
responses = [message for message in messages.data if
message.role == "assistant"]
# Extracting values from the responses
values = []
for response in responses:
for content_item in response.content: # Assuming
'content' is directly accessible within 'response'
if content_item.type == 'text': # Assuming each
'content_item' has a 'type' attribute
values.append(content_item.text.value)
# Assuming 'text' object contains 'value'
return values
# Retrieve the values from the run responses
values = get_run_response(run.id, thread.id)
# Print the extracted values
for value in values:
print(value)使用这些步骤将为您创建使用 OpenAI Assistants API 的助手奠定基础。
创建和利用通过 OpenAI 的 API 创建网络安全分析助手的过程涉及各种组件的复杂交互。本节深入探讨了使这一切成为可能的基本机制,提供了对这些组件的功能和集成的洞察。
'assistants' 使用,确保它在 OpenAI 的生态系统中得到适当的分类。
这个复杂的过程展示了 OpenAI API 在创建专业助手方面的强大能力,这些助手可以显著增强网络安全运营。通过理解底层机制,用户可以有效地利用这项技术来增强他们的网络安全姿态,根据助手的分析做出明智的决策。
助手 API 提供了丰富的功能,远远超出了初始配方中涵盖的基本实现。这些功能允许创建更复杂、交互式和多功能的助手。以下是一些未在初始配方中涵盖的 API 功能的详细介绍,包括代码引用以说明其实现方式:
流式输出和运行步骤*.* 未来的增强可能会引入流式输出,用于实时交互,以及详细的运行步骤,用于精细查看助手的处理阶段。这对于调试和优化助手的性能可能特别有用。
# Potential future code for streaming output
stream = client.beta.streams.create
(assistant_id=security_analyst_assistant.id, ...)
for message in stream.messages():
print(message.content)状态更新通知*.* 接收对象状态更新通知的能力可以消除轮询的需要,使系统更加高效。
# Hypothetical implementation for receiving
notifications
client.notifications.subscribe(object_id=run.id, event_type='status_change', callback=my_callback_function)与 DALL·E 或浏览工具集成*.* 与 DALL·E 集成用于图像生成或添加浏览功能可以显著扩展助手的功能。
# Example code for integrating DALL·E
response = client.dalle.generate(prompt="Visualize
network security architecture",
assistant_id=security_analyst_assistant.id)包含图片的用户消息创建*.* 允许用户在其消息中包含图片可以增强助手对视觉相关任务的理解和响应准确性。
# Example code for sending an image in a user message
message = client.beta.threads.messages.create(thread.id,
role="user", content="Analyze this network diagram.",
file_ids=[uploaded_image_file.id])代码解释器工具*.* 代码解释器工具使助手能够编写和执行 Python 代码,为自动化任务和执行复杂分析提供了强大的方式。
# Enabling Code Interpreter in an assistant
assistant = client.beta.assistants.create(
name="Data Analysis Assistant",
instructions="Analyze data and provide insights.",
model="gpt-4-turbo-preview",
tools=[{"type": "code_interpreter"}]
)代码解释器工具*.* 此工具允许助手从上传的文件或数据库中提取信息,丰富其响应的外部数据。
# Using Knowledge Retrieval to access uploaded files
file = client.files.create(file=open("data_analysis.pdf",
"rb"), purpose='knowledge-retrieval')
assistant = client.beta.assistants.create(
name="Research Assistant",
instructions="Provide detailed answers based on the
research data.",
model="gpt-4-turbo-preview",
tools=[{"type": "knowledge_retrieval"}],
file_ids=[file.id]
)自定义工具开发*.* 除了提供的工具外,您还可以使用函数调用开发自定义工具,为助手的能力量身定制。
# Example for custom tool development
def my_custom_tool(assistant_id, input_data):
# Custom tool logic here
return processed_data
# Integration with the assistant
assistant = client.beta.assistants.create(
name="Custom Tool Assistant",
instructions="Use the custom tool to process data.",
model="gpt-4-turbo-preview",
tools=[{"type": "custom_tool", "function":
my_custom_tool}]
)持久线程和高级文件处理*.* 助手可以管理持久线程,保持互动历史记录,并处理各种格式的文件,支持复杂的数据处理任务。
# Creating a persistent thread and handling files
thread = client.beta.threads.create(persistent=True)
file = client.files.create(file=open("report.docx",
"rb"), purpose='data-analysis')
message = client.beta.threads.messages.create(thread.id,
role="user", content="Analyze this report.",
file_ids=[file.id])安全和隐私考虑*.* OpenAI 对数据隐私和安全的承诺确保敏感信息得到妥善处理,使助手 API 适用于涉及机密数据的应用程序。
# Example of privacy-focused assistant creation
assistant = client.beta.assistants.create(
name="Privacy-Focused Assistant",
instructions="Handle user data securely.",
model="gpt-4-turbo-preview",
privacy_mode=True
)这些示例展示了助手 API 所提供的功能的广度和深度,突显了它在创造高度专业化和强大的 AI 助手方面的潜力。无论是通过实时交互、增强数据处理能力,还是自定义工具集成,该 API 都为开发针对各种应用场景的先进 AI 解决方案提供了多功能平台。
关于 OpenAI 助手 API 的更全面信息可以在下面链接找到:platform.openai.com/docs/assistants/overview 和 platform.openai.com/docs/api-reference/assistants