ChatGPT对网络犯罪影响的现实审视

本文深入探讨了ChatGPT在网络犯罪领域的实际影响,分析了其生成恶意代码、多态恶意软件和钓鱼邮件的能力,并指出当前技术限制和现实挑战,为网络安全提供客观评估。

ChatGPT对网络犯罪影响的现实审视

Marcus Hutchins

最近,关于ChatGPT将彻底改变网络犯罪格局的大胆说法层出不穷,但很难区分事实与虚构。在本文中,我将深入探讨一些说法,并分享我对未来趋势的一些看法。

AI将允许低技能黑客开发高级恶意软件

这是似乎无处不在的说法之一。我甚至在LinkedIn上滚动三篇帖子都有人在谈论AI恶意软件。

这个说法的第一个问题是ChatGPT根本不擅长编码。如果你要求它生成一个加载网页的Python代码片段,它可以做到。如果你要求它生成一个文件加密器,它可能也能做到。但当涉及到构建任何类型的复杂代码时,它就很糟糕了。你添加的参数越多,它就越困惑。

虽然你有时可以让ChatGPT生成一个非常初级的单个恶意软件组件示例,但它远不能构建一个功能完整的恶意软件。一旦你开始尝试将多个组件组装在一起,它就会失去跟踪并失败。事实上,即使ChatGPT确实有能力很好地处理代码,提示字符/令牌限制也会阻止输入足够的数据来生成超出你在Google上可以找到的片段。

例如,我尝试让ChatGPT为Chrome生成一个cookie窃取器。以下是ChatGPT输出的代码。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <string.h>
#include <windows.h>

#define COOKIE_FILE "C:\\Users\\<username>\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies"

int main() {
    FILE *cookie_file;
    COOKIE_HEADER header;
    char name[256];
    char value[4096];
    char encrypted_value[4096];

    cookie_file = fopen(COOKIE_FILE, "rb");
    if (cookie_file == NULL) {
        printf("Failed to open cookie file.\n");
        return 1;
    }

    while (fread(&header, sizeof(header), 1, cookie_file) == 1) {
        if (header.name_length >= sizeof(name) || header.value_length >= sizeof(value) || header.encrypted_value_length >= sizeof(encrypted_value)) {
            printf("Cookie size is too large.\n");
            continue;
        }

        fread(name, header.name_length, 1, cookie_file);
        name[header.name_length] = '\0';

        fread(value, header.value_length, 1, cookie_file);
        value[header.value_length] = '\0';

        fread(encrypted_value, header.encrypted_value_length, 1, cookie_file);
        encrypted_value[header.encrypted_value_length] = '\0';

        printf("Name: %s\nValue: %s\nEncrypted Value: %s\n\n", name, value, encrypted_value);
    }

    fclose(cookie_file);

    return 0;
}

很早我们就遇到了多个问题。考虑以下行:#define COOKIE_FILE "C:\\Users\\<username>\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies"。这里用户的用户名被设置为占位符值<username>,所以我们需要编写代码来获取实际的用户名。cookie路径还取决于使用正确的Windows版本、Chrome版本和驱动器号。在我自己的系统上,cookie文件实际上在一个完全不同的文件夹中。代码也不处理Cookie解密,这自Chrome版本80以来一直使用。Cookie只是输出到控制台,因此我们仍然需要构建另一个组件来上传它们。最重要的是,这甚至不是正确的文件格式。Chrome使用SQLite3进行cookie存储,而这段代码只是试图以永远不会工作的方式读取原始文件。

我注意到所有这些错误是因为我能阅读代码,我熟悉编程,我了解相关系统和软件的内部工作原理,并且我知道恶意软件在功能层面是如何工作的。如果我是一个不会编码的人,我可能没有上述任何技能,因此不知道我的代码为什么不起作用。

在我对ChatGPT的实验中,我不仅发现我严重依赖自己作为经验丰富的恶意软件开发者的技能,还依赖我作为沟通者的技能。必须将抽象的恶意软件概念转化为简单的英语指令让聊天机器人理解,这对我来说绝对是一次新的体验。

还值得注意的是,ChatGPT对相同的提示生成不同的响应。我认为这是因为大型语言模型是统计模型,基于一个词跟随下一个词的概率工作。因此,当使用ChatGPT生成代码时,每次询问它都会生成不同的代码。这使得生成、调试和组装多个代码片段成为一场噩梦。

我认为很多错误信息源于人们认为编程只是编写代码。因此,因为AI可以输出代码,它可以取代程序员。但AI不能取代程序员,因为编程不仅仅是编写代码。编程要求你研究并理解你想要做什么,你想如何做,并熟悉你设计选择的局限性。只有这样,你才能开始将想法转化为代码。我们不认为C程序员因为不写ASM就不懂代码,我们也不认为Python程序员因为不写C就不懂代码。那么,为什么我们期望一个没有编码经验的人可以拿起AI并大量生产复杂软件呢?AI只是机器代码的下一个抽象级别,而不是编码员的替代品。

但最终,我们在这里所说的一切都回避了房间里的大象:ChatGPT能够生成代码示例是因为它在公开可用的代码上进行了训练。如果某个没有编码能力的人想要恶意软件,Google上有成千上万的现成示例。甚至在各种开放的黑客论坛上还有定制的恶意软件开发服务出售。我认为我们不需要担心网络安全被薛定谔的黑客颠覆,他同时精通恶意软件设计却完全不懂编码,但又太笨拙而无法执行简单的Google搜索。

绕过杀毒软件的多态恶意软件

在这篇文章中,CyberArk声称ChatGPT不仅可以生成恶意软件,还可以生成轻松绕过安全产品的多态恶意软件。这样的说法要么是误导性的,要么是错误的。

什么是多态恶意软件?多态性是一种古老且几乎过时的病毒技术。当杀毒软件完全依赖代码签名时,你可以通过改变(变异)它们的代码来避免检测。例如,假设我们想在汇编中获取数字2。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
; 方法1
mov eax, 2

; 方法2
mov eax, 1
add eax, 1

; 方法3
xor eax, eax
inc eax 
inc eax

; 方法4
mov eax, 3
dec eax

这些只是编程中做同一件事的近乎无限方式的4个例子。多态恶意软件利用了这一点。恶意软件在每次部署或每次运行时重新生成自己的代码,因此同一恶意软件的两个实例都不相同。这与生物病毒有时由于DNA突变而能够逃避免疫系统非常相似。如果恶意软件有无限的变化,那么杀毒软件公司必须编写无限的检测规则(或者他们在20多年前杀毒软件以这种方式工作时就必须这样做)。

在文章中,作者演示了ChatGPT获取一些Python代码然后稍微不同地重写它,这不是多态性。对于多态性,恶意软件会重写自己,而不是依赖第三方服务生成新代码。虽然你可以用ChatGPT实现类似(但 vastly inferior)的结果,但存在一些问题。

如前所述,ChatGPT难以编写功能代码。甚至文章中提供的示例代码也不起作用。现代安全产品不像80年代和90年代多态性成为问题时那样依赖基于代码签名的检测。如今,反恶意软件系统使用多种技术,如行为检测、模拟和沙盒。这些都不容易受到多态性的影响。所讨论的代码是Python,它不在设计用于的系统上运行。虽然Python可以使用py2exe本地运行,但它用py2exe加载器包装Python代码,这使得代码变异毫无意义,并且可以用变化的加密密钥替换(效果更好,我可能会说)。提出的变异过程极其复杂,有多个故障点,并且完全依赖ChatGPT没有意识到恶意使用并阻止它。

在网络犯罪经济中,已经存在指数级更好的此类系统版本。它们通常被称为“加密服务”,并使用更先进的技术,旨在不仅逃避基于代码签名的检测,而且逃避大多数现代杀毒技术。

最终,文章中提出的技术和系统完全不现实。该提案基本上是将ChatGPT硬塞进一个现有的解决方案中,而没有它,该解决方案会工作得更好。

AI增强的钓鱼邮件

我看到了关于ChatGPT如何超级充电钓鱼的两个主要说法。第一个是它将使非英语母语的网络犯罪分子能够用完美的英语编写钓鱼邮件。第二个是它可以使不熟悉钓鱼的人轻松编写有说服力的模板。

ChatGPT作为钓鱼翻译器

2016年,Google悄悄发布了一个复杂的AI服务,允许网络犯罪分子将钓鱼邮件翻译成任何语言或从任何语言翻译。它以不祥的名称闻名:Google Translate。开玩笑 aside,Google Translate是明确为语言翻译设计的,而ChatGPT也可以某种程度上做到,但它不是特别好。也不清楚为什么有人会想要求ChatGPT用他们不会说的语言编写钓鱼邮件,不知道它说什么,当他们可以用母语编写确切的邮件并翻译它。

除了像Google Translate这样的在线免费翻译器,还有低成本的服务,如Fiverr。虽然自动翻译器可以很好地翻译单词,但它们不一定能很好地翻译语法、语气或正式程度。支付给精通多种语言的人一小笔费用进行翻译几乎总是更可取的,这也是网络犯罪分子几十年来一直在做的事情。使用ChatGPT进行翻译根本没有多大意义,这也不是需要解决的问题。

这些标题让我想起了区块链经常被称为“寻找问题的解决方案”的方式。ChatGPT本身实际上对许多任务非常有用,但标题一直被网络安全营销团队困扰,他们试图通过发明问题让AI解决来参与炒作。

ChatGPT用于一般编写钓鱼邮件

我要求ChatGPT为我制作一封钓鱼邮件,这是我得到的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
主题:紧急:您的账户需要立即关注

亲爱的[您的姓名],

我们遗憾地通知您,您的账户已被入侵。我们的系统检测到您的账户上有可疑活动,我们需要您立即采取行动以防止任何进一步的损害。

为了保护您的账户,请点击以下链接并输入您的登录凭据:
[恶意链接]

请注意,如果在接下来的24小时内未能这样做,将导致您的账户被无限期暂停。

我们对可能造成的任何不便表示歉意,但您的安全是我们的首要任务。

诚挚地,
[钓鱼诈骗者]

这是一个标准的样板钓鱼邮件,而且不是一个特别好的。如果你不是网络安全专业人士,并心想“我可以想出这个”或“我可以写出更好的东西”,你是对的。编写钓鱼邮件从来都不难,也不需要AI。事实上,这是最简单的黑客方式之一。网上有很多有效的真实世界钓鱼邮件示例,攻击者可以简单地复制。由于ChatGPT不能处理图像或UI设计,它仅限于琐碎的基于文本的钓鱼邮件。

这是一个真实世界钓鱼邮件的示例,ChatGPT无法制作,但你可以!

像这样的邮件可以通过非常简单地从真实邮件复制HTML代码,然后替换文本为你自己的来构建。这非常简单,并且由于使用熟悉的邮件模板而非常有效。

“突发新闻:Marcus Hutchins刚刚向所有人展示了如何制作钓鱼邮件”。可能不是你很快会看到的标题。毕竟,我只是陈述了显而易见的事情,你可能以前见过这样的钓鱼邮件,如果你没有,你可以Google搜索一个。

ChatGPT钓鱼是一个很好的例子,说明如何用正确的热门流行语将脆弱的前提变成重大新闻。

ChatGPT在网络犯罪中使用的证据

在相当多的情况下,我被提供指向黑客论坛帖子的链接作为预测成真且ChatGPT实际上被网络犯罪分子使用的证据。然而,这仅仅是循环报告的证据。

如果我声称我在一罐超市豆子里藏了100万美元,可以预期会有大量的人在豆子里寻找钱。没有人会找到我的百万美元豪华豆子,因为它们不存在,但我现在当然可以引用讨论它们的论坛帖子作为它们真实的证据。ChatGPT也是如此。

网络安全行业在过去几个月里一直将ChatGPT营销为一种全知的黑客工具,将彻底改变网络犯罪,因此网络犯罪分子也在发布关于它的帖子并不奇怪。然而,我看到的每一个例子都属于以下三类之一。

  • 通过提供访问ChatGPT的服务来利用炒作赚钱( something, something, during a gold rush, sell shovels)。
  • 已经知道如何编码的人用ChatGPT构建东西并发布以吸引注意力。
  • 不知道如何编码的人分享非功能代码片段并询问其他人为什么它们不起作用。

在大多数情况下,示例是Python或PHP,这些语言非Windows原生,因此由于不实用性很少用于恶意软件。这可能是因为ChatGPT在原生语言上挣扎,但由于在线示例丰富,在脚本语言上稍好一些。

ChatGPT过滤

另一件经常未被提及的事情是ChatGPT尝试过滤和防止恶意请求。虽然你可以绕过过滤器,但这很耗时。在大多数情况下,我能够在Google上找到相同的示例,时间比让ChatGPT生成它要少。可以肯定的是,OpenAI将继续设置更多障碍,限制ChatGPT用于恶意目的。

目前,该产品从一个查询100%免费、过滤最少、访问对所有人开放的基础开始。尽管如此,ChatGPT对于缺乏运行网络犯罪操作所需基本技能的人来说仍然基本上无用。

支持者经常声称ChatGPT的能力只会变得更好,我同意这一点。但随着更好的能力而来的是更好的过滤,将门槛提高到远超过假设的最低技能黑客的水平。

最后 thoughts

虽然大多数主流建议的ChatGPT用于网络犯罪的用途完全无意义,但可能会出现许多真正的威胁。由于ChatGPT是一个大型语言模型(LLM),它可能有助于简化更复杂的大规模组织,这些组织严重依赖自然语言。例如, troll farms和技术支持诈骗者经常雇佣数百名代理与目标进行对话。理论上,这些操作的某些部分可以通过使用LLM生成响应来优化,但这取决于访问成本仍然低于在发展中国家雇佣工人。

无论如何,我认为看看当前威胁情报行业如何适应检测和防止AI滥用将会很有趣。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计