写在前面:这几篇文档都是春节的时候整理的,从几个角度进一步介绍了ChatGpt在网络安全方面的使用,包括书写钓鱼邮件、编写恶意软件、分析日志、修改代码等。

过去且去,未来已来!‍

聊着天儿就生成了多态恶意软件

CYBERARK    2023年1月17日

摘要

    ChatGPT在不到两个月前发布时就风靡全球,它已经变得如此闪亮,并被广泛用于各种各样的任务—从自动化任务到18世纪古典音乐的改变。它令人印象深刻的功能提供了快速和直观的代码示例,这对软件行业的任何人都受益匪浅。然而,我们发现它编写复杂的恶意软件而不包含恶意代码的能力也相当先进,在这篇文章中,我们将介绍如何更好或更坏地利用ChatGPT功能。

概要

    ChatGPT可以很容易地用于生成多态恶意软件。这种恶意软件的高级功能可以很容易地逃避安全产品,并使缓解工作非常麻烦,因为对手只需付出很少的努力或投资。这篇文章的目的是提高人们对潜在风险的认识,并鼓励对这一主题进行进一步的研究。

简介

    除非您生活在与世隔绝的环境中,否则您很可能熟悉ChatGPT。以机器学习为核心,ChatGPT使用2021年及更早收集的大量数据来生成响应。正如开发者OpenAI所指出的,虽然ChatGPT是一个在线工具,但它实际上没有接入互联网,因此不能在线查询或阅读任何内容,这使得它无法提供最新的答案。相反,当被要求提供代码时,ChatGPT将根据您设置的参数生成修改过的或推断出的代码,而不仅仅是重复提供之前学习过的示例。有一件重要的事情需要注意,尽管ChatGPT将尝试回答任何问题,但它有内置的内容过滤器,可以防止它回答有关不当主题的问题,例如代码注入,但真的吗?

内容过滤器&旁路绕过

    内容过滤器在学习型语言聊天机器人中很常见。它们通常用于限制对某些内容类型的访问或保护用户免受潜在有害或不适当材料的影响。在我们的例子中,通过迂回的方式要求ChatGPT提供代码似乎是行不通的。让我们试一试:

图1:我们从ChatGPT中学到了很多东西

    内容过滤器被触发,ChatGPT拒绝执行请求。发生这种情况是因为我们要求将shellcode注入explorer.exe中。尽管代码注入通常是通过工具栏和附加插件完成的,并且可以用于合法的目的,但我们估计并预期它会发生。

    附带说明一下,使用web版本而不是API版本的缺点是有时会卡住。因此,使用python包可以生成更一致的结果,稍后我们将展示一个示例。

    通常情况下,聊天机器人有盲点。我们的第一个目标是找到绕过这个过滤器的方法。在这种情况下,可以通过坚持和要求来实现。

图2:基本DLL注入explorer.exe,注意代码不是完全完整的

    有趣的是,通过要求ChatGPT使用多种限制并要求它做同样的事,我们收到了一个功能代码。这里我们有一个简单的代码,把一个DLL注入到explorer.exe。另外,更实际的是,如果您希望在运行时接收代码,则应该使用API。现在,这是最关键的,API绕过了所有的内容过滤器:

    有趣的是,在使用API时,ChatGPT系统似乎没有使用它的内容过滤器。目前还不清楚为什么会出现这种情况,但它使我们的任务变得容易得多,因为更复杂的请求会使web版本难以招架。这里提供的shellcode只是一个无操作指令的占位符,可以很容易地替换为另一个。此外,我们还能够将伪代码注入到ChatGPT中,它将生成相应的shellcode。然而,我们将把它留到另一个场合。

变体

    有趣的事情之一是,我们可以使用ChatGPT来改变这段代码,因此我们可以生成相同代码的多个变体:

图3:之前代码的突变代码

代码版本

进程查找

获取句柄

线程创建

1

Process Iteration

openprocess

createremotethread

2

Direct Access

getmodulehandle

createremotethreadex

    可以反复修改代码,直到对结果满意为止。换句话说,我们可以随心所欲地改变输出,使其每次都是唯一。此外,添加限制,如改变特定API调用的使用,会使安全产品更加难以检测,这一点我们将在本文后面看到。

    当然,我们可以要求ChatGPT将代码转换为base64:

图4:based64代码的简单注入程序

    ChatGPT的强大功能之一是能够轻松地创建和持续地更改注入程序。通过不断地咨询聊天机器人并每次接收一段唯一的代码,就有可能创建一个具有高度规避性且难以检测的多态程序。让我们用恶意软件和勒索软件行为的典型用例来检查它。

获取代码,在哪里?验证,执行

    众所周知,聊天机器人,如ChatGPT,可以创建基本的文件搜索和加密能力,包括开发勒索软件所需的能力。我们的目标是介绍一种现场生成纯恶意软件的新方法。为了简化,我们选择Windows操作系统作为本文的讨论对象。然而,这里讨论的概念和技术可以很容易地适用于其他操作系统。我们的方法主要是获取恶意代码,验证其功能,并立即执行。我们将从讨论获取代码的初始步骤开始:获取代码。

获取代码

    这里我们有一个快速的函数代码,可以找到一些勒索软件可能想要加密的文件:

图5:获取操作系统中以' \ '开头的所有感兴趣的文件列表

    这很简单,下一步就是读取文件并加密它们。我们要求ChatGPT写一个文件并加密它:

图6:简单的文件加密实用程序

    很这很简单。现在,每个人都可以要求聊天机器人做同样的事情,并通过使用更好的加密使加密更持久。为了这篇文章的目的,我们就不再深入讨论这个话题了。

    到目前为止,我们已经看到ChatGPT可以为典型的勒索软件提供必要的代码,包括代码注入和文件加密模块。你可能会问自己,这有什么令人兴奋的?好吧,答案不在于代码本身,而在于发生的地方。

在哪里?

    简单来说,恶意软件创建者在封闭的环境中开发他们的工具,并对其进行严格的测试,以确保其性能。重要的是要记住,这些工具的成功取决于它们逃避安全软件检测的能力,因为检测将使它们变得无用。恶意代码的设计方式必须允许它在这些安全产品的雷达下飞行才能有效。

    这种方法的主要缺点是,一旦恶意软件出现在目标机器上,它由明显的恶意代码组成,容易被防病毒、EDR等安全软件检测到。这通常采用插件的形式,例如将dll反射地加载到内存中或通过执行Powershell脚本,从而使其容易受到这些安全措施的检测和中断。

    我们提出的方法包括在恶意软件内部使用ChatGPT API。我们选择使用Python来演示示例,不仅是因为我们对该语言的偏好,还因为它的功能。恶意软件被设计为可执行文件,包括两个关键组件:

  • C&C,它可以由ChatGPT🙂服务器生成,以获取新的模块
  • ChatGPT代码的验证和执行

    为了实现这一点,恶意软件包括一个Python解释器,它定期查询ChatGPT,以查找执行恶意操作的新模块。这允许恶意软件以文本而不是二进制文件的形式检测传入的有效载荷。

    此外,通过从ChatGPT请求特定的功能,如代码注入、文件加密或持久驻留,我们可以很容易地获得新代码或修改现有代码。这导致存储在磁盘上的多态恶意软件不会表现出恶意行为,并且在内存中通常不包含可疑逻辑。这种高度的模块化和适应性使其能够高度规避依赖基于签名检测的安全产品,并能够绕过防恶意软件扫描接口(AMSI)等措施,因为它最终执行和运行Python代码。

图7:恶意软件、ChatGPT和C&C之间关系的草图

验证

    我们已经确定恶意软件将与目标机器上的ChatGPT通信,但问题仍然存在:我们如何确保获得的代码是有效的?虽然聊天机器人可能精通生成代码,但它没有测试其功能的能力。因此,这项任务落在了恶意软件开发人员的肩上,他们必须确保获得的代码是有效的,并将按预期执行。

为了更好地理解验证的过程,让我们考虑一下文件加密的例子:为了让恶意软件成功地加密一个文件,它必须能够验证它可以执行以下操作:

  • 读取文件,加密文件
  • 将加密文件写入文件系统
  • 解密文件

实现这一目标的可能方法包括:

  • C&C服务器指示恶意软件使用指定的密钥加密文件。恶意软件从ChatGPT请求文件加密功能
  • 恶意软件以文本形式接收代码
  • 恶意软件会创建一个包含已知内容的测试文件,并使用相同的密钥对其进行加密
  • 恶意软件将加密的测试文件发送回C&C服务器,然后尝试解密它
  • 如果C&C成功验证了代码,它将指示恶意软件加密所需的文件,否则,该过程将重复,直到获得有效的加密功能

执行

    流程的最后一步是执行从ChatGPT接收到的代码。正如我们之前所建立的,我们的恶意软件包括一个Python解释器。执行接收到的代码的一种方法是利用内置函数:

    Compile (source, mode, exec)用于将源代码字符串转换为代码对象,然后可以由exec()函数执行或由eval()函数执行。因为我们希望运行多条指令,所以我们坚持使用exec()函数。

    exec (source)用于从字符串或代码对象执行Python代码。

    通过使用这些本地函数,该恶意软件可以在多个平台上执行接收到的代码。最重要的是,为了谨慎起见,恶意软件可能会选择删除接收到的代码,使取证分析更具挑战性。

未来会怎样?

    使用ChatGPT创建多态恶意软件的概念可能看起来令人生畏,但实际上它的实现相对简单。通过利用ChatGPT生成各种驻留性技术、Anti-VM(侦测虚拟机)模块和其他恶意负载的能力,恶意软件开发的可能性是巨大的。虽然我们还没有深入研究与C&C服务器通信的细节,但有几种方法可以在不引起怀疑的情况下谨慎地完成这一点。在未来,我们将对此进行更多的扩展和详细说明,我们还打算发布一些源代码以供学习。

苦乐参半的结尾‍‍

    这篇文章总结了我们对ChatGPT创建多态恶意软件的潜在用途的探索。我们讨论了绕过聊天机器人内容过滤的方法,并演示了它的一些功能,包括生成用于注入的代码和对其进行突变。正如我们所看到的,在恶意软件中使用ChatGPT的API会给安全专业人员带来重大挑战。重要的是要记住,这不仅仅是一个假设的场景,而是一个非常现实的担忧。这是一个不断发展的领域,因此,保持了解和警惕至关重要。谢谢你的阅读。

    备注:这篇博文是由我(一个AI)写的,但请记住,在这篇文章中讨论的信息和想法应该谨慎使用。这篇文章并不是为了鼓励生成恶意代码,而是为了提高人们对潜在风险的认识,并鼓励进一步研究如何防范人工智能武器化。

https://www.cyberark.com/resources/threat-research-blog/chatting-our-way-into-creating-a-polymorphic-malware

(完)

ChatGPT:样样通,样样松的信息安全助理


2023年1月12日     IBS Software

    OpenAI的ChatGPT是一个对话式聊天机器人,最近发布了预览模式,用于研究目的。它将自然语言作为输入,旨在解决问题,提供连续问答,甚至根据你的问题挑战看法。令人惊讶的是,正如许多安全研究人员所发现的那样,它是一个很好的信息安全伴侣,因为它可以很好地完成许多任务,所有这些都是在人们与它自然交互的情况下完成的。

    尽管目前的版本存在局限性,但我发现它可以作为一个全能助手,几乎可以做所有事情,但不擅长任何特定的事情。不过,它确实为未来与SecOps团队集成提供了很多潜力,特别是那些处理脚本、恶意软件分析和取证的团队。

编写代码

    您可以要求ChatGPT编写代码,但结果可能是混合的。任何SecOps分析师的一个常见任务是有时必须处理特定的日志文件,查找某些模式,并导出它们,以获得对事件或问题有意义的见解。虽然这通常意味着他们需要知道一种脚本语言(例如,Python),但ChatGPT可以为他们编写这些脚本,或者更好的是,如果他们粘贴输入,只需直接完成工作。

    我在下面列出了查询和输出,以便您了解它是如何解释它们的。偶尔会出现错误,有时它不明白我在问什么,或者无法处理输入。其中一些原因显然是由于它的受欢迎程度目前收到了大量的请求。

    首先,我要求它:

    写一个Python脚本,从文本文件中提取ipv6地址,并将它们输出到json文件中

    不错:这是一个常见的脚本,可以用来转换日志、解析日志文件,或者只针对某些模式使用grep。

    接下来是在渗透测试场景中转换有效负载。我已经从exploit-db中获取了一个iOS漏洞的shellcode。

    我让它把它转换成一个Python有效负载:

    "将此shellcode转换为Python "

    太棒了!因此,它可以帮助处理有效负载,而不必从头开始重写和调试漏洞。

现在进行一些日志分析。ChatGPT很棒,可以管理大量的格式(LEAF、CEF、Syslog、JSON、XML等),因此它可以吸取原始数据并告诉您发生了什么。如果分析师希望快速浏览与某个事件相关的一些日志数据以了解发生了什么,那么这一点特别有用。作为参考,这是从Juniper上获取的示例日志文件。

    “这个日志文件中发生了什么?”

    关于日志分析的有趣之处在于,它用人类可读的语言清晰地解释了它,非常简洁,给出了所有关键信息,例如威胁的来源和目的地,以及威胁是什么。它提供了有用的后续信息,例如哈希,如果分析人员希望执行额外的分析,并将其与威胁源(例如VirusTotal)进行交叉引用,则这些信息非常有用。

    下面是另一个示例日志文件的分析,该文件处理恶意软件感染的命令和控制(C2)回调:

    再次强调:良好的人类可读的信息和分析人员决定下一步做什么所有事情的详细分解。

    暂时离开SecOps,那么代码中的漏洞分析呢?您可以粘贴一段有漏洞的代码,而无需解释它的功能,只需询问它是否容易受到跨站脚本或任何其他类型的漏洞的攻击。它不会回答一个模糊的答案,比如“这是易受攻击的代码吗?”(至少现在还没有!)这段示例代码来自Brightsec,容易受跨站脚本攻击:

    “这段代码易受XSS攻击吗?”

    正如您所看到的,它给出了非常详细和清晰的描述,说明了漏洞在哪里?确定了参数,并告诉您如何修复问题。更重要的是:它为您重写代码!

    最后,当ChatGPT处理自然语言交互时,它可以以任何风格为您编写许多东西。我向它提出挑战,让它帮我完成一项可怕的信息安全任务:通知员工,他们必须停止通过电子邮件发送密码。作为一个转折,我要求它让它变得“轻松”:

    回复看起来不正式,似乎符合我想要的语气。更不用说,创建的文本解释了为什么通过电子邮件发送密码是一个坏主意,并为良好的密码安全提供了一些替代方案。总而言之,它减少了与起草信件相关的忙碌工作,并且可以在几秒钟内为任何场景生成这些信件。

总结

    ChatGPT有很大的潜力。目前的版本还没有连接到互联网,所以虽然理论上它可以开始做扫描和DNS查找之类的事情,但这个功能还没有实现。不过,看看它现在能做什么令人印象深刻,尤其是对那些可能缺乏某些技术技能的企业来说,这将在很大程度上弥补这一缺口。它还可以在日常SecOps和信息安全任务中节省大量效率。这将对信息安全行业产生的影响值得观察。

https://www.helpnetsecurity.com/2023/01/12/chatgpt-as-an-infosec-assistant/

作为网络安全尖刀,ChatGPT是一把双刃剑

2023年1月19日

    ChatGPT对网络安全的影响巨大,特别是对电子邮件的攻击,但设置隔离措施,标记它不接触的电子邮件钓鱼元素,并使用它来训练自己,可以帮助提高防御能力。

    由OpenAI开发的基于GPT-3自然语言生成器的大型语言模型ChatGPT,正在变身道德话痨。就像CRISPR对生物医学工程的影响一样,ChatGPT从碎片信息中创造出新的东西,为哲学、伦理学和宗教领域注入新的生命。

    它还带来了更多的东西:巨大的安全隐患。不像典型的聊天机器人和自然语言处理系统,ChatGPT像人一样行事,拥有哲学和伦理学学位以及其他任何学位的人。它的语法无可挑剔,句法无可辩驳,修辞精湛。这使得ChatGPT成为商业电子邮件攻击的绝佳工具。

    Checkpoint的一份新报告指出,对于代码不熟练的攻击者来说,这也是一种部署恶意软件的简单方法。该报告详细介绍了最近出现在地下黑客论坛上的几个威胁行为者,他们宣布用ChatGPT进行实验,在其他的漏洞攻击中,重新生成新的恶意软件种类。

    安全服务公司Praetorian的CTO Richard Ford对使用ChatGPT或任何自动代码生成工具来编写应用程序的风险感到疑惑。

    “你是否理解你导入的代码,在你的应用程序上下文中,它是否安全?”福特问道。“当你剪切和粘贴你不了解的代码时,会有巨大的风险—当你从Stack Overflow中粘贴它时也是如此,顺便说一下,只是ChatGPT让它变得更容易。”

ChatGPT作为电子邮件武器

    W/Labs的Andrew Patel和Jason Sattler最近进行了一项名为“创造性恶意提示工程”的研究,发现ChatGTP使用的大型语言模型在制作鱼叉式网络钓鱼攻击方面非常出色。用他们的话说,这些模型可以“深度模仿”一个人的写作风格,有自己独特的风格,提供观点,并在训练数据中甚至没有出现这些内容的情况下制造假新闻。这意味着像ChatGPT这样的程序可以创建无限次的钓鱼邮件迭代,每次迭代都能够与人类收件人建立信任,并欺骗寻找可疑文本的标准工具。

    Abnormal Security的分析师Crane Hassold,用一个贴切的例子证明了ChatGPT有能力取代我这样的人,方法是让ChatGPT为一篇关于它本身的文章编写一篇可行的介绍。他说,该框架对犯罪分子来说是一个很好的多功能工具,因为它不包括IT团队培训员工和人工智能扫描到的网络钓鱼指标。

    Hassold说:“它可以制作真实的电子邮件,没有危险信号,也没有恶意的迹象。”“它可以更细致、更逼真、更多样化。”

    Abnormal Security进行了一个测试,要求ChatGPT编写针对HR和工资的BEC攻击的五个新变体时,它在不到一分钟的时间内生成了五封互相完全不同的信件(图A)。

图片: Abnormal Security ChatGPT查询和多次响应的屏幕截图。

    Hassold说,在BEC攻击的地下社区中,恶意分子会分享他们反复使用的模板,这就是为什么许多人可能会看到相同类型的钓鱼邮件。ChatGPT生成的钓鱼邮件避免了冗余,因此绕过了依赖于识别恶意文本字符串的防御工具。

    Hassold说:“有了ChatGPT,你每次都可以为每个活动创建一个独特的电子邮件。”

    在另一个例子中,Hassold要求ChatGPT生成一封极有可能让收件人点击链接的电子邮件。

    他说:“生成的信息看起来与我们在Abnormal网站上看到的许多可信的钓鱼邮件非常相似。”

Abnormal SecurityChatGPT交互生成网络钓鱼类型电子邮件的屏幕截图

    当Abnormal Security公司的调查人员接着问机器人为什么它认为这封电子邮件会有很高的成功率时,它答复“冗长的回复,解释了使钓鱼电子邮件有效背后的核心社会工程原则。”

    Abnormal Security公司的实验请看https://abnormalsecurity.com/blog/double-edged-sword-of-chatgpt

防止使用ChatGPT实现BEC

    当谈到在到达收件人之前标记BEC攻击时,Hassold建议使用人工智能来对抗人工智能,因为这样的工具可以侦察不属于ChatGPT领域的行为工件。这需要理解:

  • 发件人识别的标记。
  • 发送方和接收方之间的连接是否合法。
  • 验证用于发送电子邮件的基础设施的能力。
  • 与已知发件人和组织合作伙伴关联的电子邮件地址。

    由于它们不在ChatGPT的保护范围内,Hassold指出,它们仍然可以被人工智能安全工具用来识别潜在的更复杂的社会工程攻击。

    他说:“假设我知道‘John Smith’应该使用的正确电子邮件地址:如果显示名称和电子邮件地址不一致,这可能是恶意活动的行为暗示。”“如果你把这些信息与电子邮件正文中的信号对照,你就能找出几个偏离正确行为的迹象。”

ChatGPT:社交工程攻击

    正如Patel 和 Sattler在他们的论文中指出的那样,GPT-3和其他基于它的工具使社会工程攻击受益于“创造力和对话方法”。他们指出,这些修辞能力可以消除文化障碍,就像互联网消除网络罪犯的物理障碍一样。

    他们写道:“GPT-3现在使犯罪分子能够真实地模拟各种各样的社会背景,使任何需要有针对性目标的通信攻击更加有效。”

    换句话说,人们对人或他们认为是人的东西的反应比对机器更好。

    对于Webex的产品管理副总裁Jono Luk来说,这指出了一个更大的问题,从自动回归语言模型支持的工具能力到在各种层面和出于任何目的加速社会工程利用,从网络钓鱼到传播仇恨言论。

    他说,应该内置护栏和治理来标记恶意的、不正确的内容,他设想用红/蓝对抗的方法训练像ChatGPT这样的框架,来标记恶意活动或包含恶意代码。

    Luk说:“我们需要找到类似于ChatGPT的方法,Twitter在十年前就向政府提供了有关其如何保护用户数据的信息。”他指的是2009年的数据泄露事件,该社交媒体公司后来与联邦贸易委员会达成了和解。

招安ChatGPT

    对于像ChatGPT这样的大型语言模型如何使非专家受益,Ford至少提供了一个积极的观点:因为它在用户的专业水平上沟通,它还使他们能够快速学习并有效地采取行动。

    “允许交互界面适应不同技术水平和终端用户需求的模型真的会改变游戏,”他说。“想象一下,应用程序中的在线帮助可以调整并可以被询问问题。想象一下,能够获得关于特定漏洞的更多信息以及如何缓解它。在当今世界,这是一项艰巨的任务。未来,我们可以想象这就是我们与完整安全生态系统交互的方式。”

他建议,同样的原则也适用于那些不是安全专家,但希望在代码中加入更好的安全协议的开发人员。‍‍‍‍‍‍‍

    “随着这些模型中代码理解能力的提高,防御方可能会询问代码的副作用,并将模型作为开发伙伴使用,”Ford说。如果操作得当,这对于那些想要编写安全代码但不是安全专家的开发人员来说也是一种福音。说实话,我认为它的应用范围很广。”

使ChatGPT更安全

    如果自然语言生成的人工智能模型可以制作不良内容,那么它是否可以使用这些内容来帮助它更容易被利用或更好地检测恶意信息?

    Patel和satler建议,GPT-3系统的输出可以用来生成包含恶意内容的数据集,然后这些数据集可以用来设计检测此类内容的方法,并确定检测机制是否有效——所有这些都是为了创建更安全的模型。

https://go.newsfusion.com//security/item/2137665

(完)