潜伏的敌人

潜伏的敌人

类别:数码科技 版次:GB14 版名:地球周刊 科技 稿源:南方都市报 2010-05-23

根据在黑客论坛获得的线索,Conficker的作者可能是东欧人。他们可能受雇于某个犯罪集团,为了非法商业目的创造了这种蠕虫。

一种新蠕虫感染了数百万台电脑,它的创造者使用了最先进的加密技术,难住了世界最优秀的网络安全专家。没有人知道病毒的主人想让它干什么,也没有人知道该如何阻止它。

18个月前,菲利普·波拉斯第一次发现那种蠕虫,最令人惊讶之处是它生长的速度。

他于20081120日发现了这种病毒。世界各地的电脑专家们很快也注意到它的存在。波拉斯是一个高级极客社区的成员,他们守卫电脑系统,维护蜜罐honeypot),监督互联网的健康。蜜罐是一台计算机或大型计算机中的虚拟计算机,目的是用于诱捕恶意软件。蜜罐组成的网络就叫蜜网(honeynet)。蠕虫是电脑代码写成的小数据包,为悄悄潜入电脑而设计,最擅长自我复制。

一些恶意程序为破坏电脑而设计,一旦被感染,很快就会被发现。更复杂的电脑病毒,就像最成功的生物病毒是隐形的。只有最专业最警惕的电脑操作者才会注意到它们。

蠕虫进入一台电脑后盘踞下来,开始自扫描新的入侵目标,它的传播速度成倍增加。它利用微软视窗———尤其是Window2000Windows XPWindows Server 2003———的漏洞,很容易找到新的宿主。如果典型的病毒入侵就像普通水管流出的水,那么这种新病毒就像是高压消防龙头喷射出的。它来自世界各地的电脑地址。很快,波拉斯听说,其他安全专家也发现了同样的事情。由于互联网即时、无方向的特点,没有人知道病毒的起源。一夜之间,它已经无处不在。

不同的实验室给这种蠕虫取了不同的名字,DownadupKido等等。在它试图和假安全网站trafficonverter.biz联系后,微软安全程序员调换字母位置,得到了Conficker这个名字。这个名字最后保留下来。与此同时,Conficker悄悄地进入了世界各地的个人电脑———第一个月大约就感染了50万台。为什么?它的目的是什么?它准备让这些电脑干什么?

把您的电脑想象成一艘巨大的太空飞船。这艘船是如此复杂,连最有经验的船长对每个零件也只有初略的了解。他可以命令它起飞、盘旋、降落,但无法了解其所有内部运作。这艘船包含许多复杂、相互关联的系统,各自有不同的作用和历史———比如负责导航、动力、通信、温度控制、武器、防御等等。每个系统都有自己的操作员,进行常规维护,交换信息,调试,保持正常运行。当飞船闲置时,基本上无需船长命令自动运行。接到命令并完成后,它又进入潜伏状态,忙着干自己的事情,等待下一个指令。

再想想一个聪明的入侵者,他了解飞船的内部结构,知道哪里能找到一个锁坏掉的入口———比如微软操作平台上的一个漏洞。没有人注意到他的潜入。他没有触动警报,然后为了防止其他聪明的闯入者利用同样的漏洞,他修好了坏掉的锁,封闭了那个入口,并改进了飞船的防御。进入内部之后,他悄悄扮演起船长的角色,让船上的不同功能为他所用,并小心避免触动警报。真正的船长并不知道,飞船内隐藏了一个竞争对手。飞船依然正常工作,与此同时,闯入者开始秘密和自己遥远的主人联系,报告自己准备就绪,等待命令。

再想象一支庞大的舰队,上面描述的飞船只是数百万艘飞船之一。所有飞船都被敌人渗透,他们暗地控制了飞船,等待主人的命令。在现实世界里,被渗透的舰队叫做僵尸网络(botnet),指被感染的僵尸电脑组成的网络。Conficker之类蠕虫的第一项工作是感染并连接尽量多的电脑。世界上有成千上万个僵尸网络,大多数很小,由几千或几万台被感染电脑组成。全球有超过10亿台电脑,有人估计其中1/4已经秘密连接上了僵尸网络。但是很少有僵尸网络的规模能和Conficker的创造相比,它悄悄地连接了600万至700万台被感染电脑。

僵尸网络是犯罪组织的有用工具。它们可以被用来散布恶意软件、个人信息、协助、发起阻断服务攻击———用潮水般的要求让目标电脑瘫痪。一个有效僵尸网络的创造者还可以把它出售或租借给他人。

除了协助犯罪之外,僵尸网络还是危险的武器。如果下达适当的指令,让网络内的所有电脑协调工作,凭借强大的运算能力,可以破解任何密码,洗劫世界上任何数据库,破坏任何电脑网络,包括国家重要基础设施的组成部分———控制银行、电话、能源、空中交通、医疗信息、甚至互联网本身的系统。

关键词是可能,因为,迄今为止,Conficker还没有干上述任何事情。它只被启动了一次,用来发送垃圾邮件。这足以说明其不良企图。没有人知道谁创造了它。没有人知道它的工作原理。没有人知道如何阻止或杀死它。没有人知道,它到底为什么存在。

如果你的电脑也被感染了,你的电脑表面上不会有任何异常,你不会知道它已经成了庞大僵尸军队的一部分。隐藏在你的机器内的蠕虫并没有闲着。它在悄悄运行,自我维护,定期与远程控制中心联系。Conficker在我们的数字世界里占据了很大一片领地,迄今为止,多数人甚至还未注意到它。

对付这种可怕蠕虫的斗争就像网络安全世界的一场国际象棋比赛。对阵双方是世界上最聪明的攻击者(坏蛋)和最聪明捍卫者(好人,也有人叫他们Conficker社团)。它促成了第一次以杀死一种电脑病毒为目的的真正的国际联合行动。最先进的解密技术被动用。但是较量1年半之后,蠕虫依然领先。

数字侦探

20年前,电脑经常遭到黑客袭击。他们是精明的歹徒,利用对操作系统的深刻知识搞入侵、和破坏,有时候只是为了显示他们的技能。黑客成了一代年轻人的英雄。他们有各种各样的动机,但最明显的特征是自我炫耀。

一些黑客居心叵测。克利夫·斯托在他的畅销书《杜鹃蛋》里描述了他如何靠一人的力量抓住了一名德国黑客。这名黑客用斯托在劳伦斯伯克莱国家实验室的电脑作为入口,闯入美国国防部的电脑。对于许多人,斯托的书是黑客世界的入门读物。斯托的黑客并没有闯入国家安全网络最秘密的角落,也没有构成真正威胁。今天,单独行动的黑客已经演变成了一种有组织的威胁。

安德鲁·迪米诺是一名电脑侦探,也是世界上屈指可数的僵尸网络权威。10年前的一个星期一,他发现周末时有人闯入了他管理的一家新泽西小公司的网络系统。他白天在新泽西伯根县执法部门担任计算机取证专家。另一个身份是僵尸网络猎人

再说当年发现管理网络被黑客入侵后,迪米诺最初以为是前雇员所为,但分析流入数据的IP地址后,他发现闯入自己的小电脑网络的人远在土耳其或乌克兰。半个星球之外的人想要新泽西一家小公司的电脑系统做什么?根据找到的证据,入侵者似乎是卖盗版软件、影片和音乐光盘的,需要大量数字存储空间隐藏他的赃物。他似乎在互联网上搜索了一圈,专门寻找有大量空闲硬盘空间的脆弱系统。迪米诺的系统正好符合条件,于是罪犯把一大堆数据丢进了他的电脑硬盘里。他清除了这些数据,锁上了被闯入的漏洞。对于那家公司而言,问题已经解决。没有造成任何伤害,无需通知警察进行进一步调查。

但是迪米诺的好奇心被调动起来,他查看了一周前的服务器日志,发现那次成功入侵只是多次入侵尝试之一。其他袭击者只是敲了敲他管理的网络的门,寻找薄弱之处。如果有坏蛋整天在琢磨如何利用全世界电脑的弱点,设计复杂程序发动袭击……又有谁来阻止他们?

迪米诺开始自学相关知识,最终和别人一起成立了影子服务器基金会,一个专门对付恶意程序的极客组织。迪米诺正式成为数字世界的侦探。

这一场网络战争的双方都变得越来越强大,动用了最尖端的编程理论和加密技术。由于恶意软件已经自动化,好人们通常只能猜测他们较量的对象。

木马、病毒和蠕虫

罗德尼·乔非是Conficker社团的头头。他是南非出生的美国人,是通信技术公司Neustar的副总裁。乔非阻止Coficker的决心不仅源于正义。Neustar管理着一个庞大的本地号码数据库。在北美,几乎每个电话都要经过Newustar的引导。在电话公司垄断的时代,电信行业相对简单,只需要看拨出号码就能知道被拨打电话所在的大楼。今天,有众多相互竞争的电话公司,电话号码不一定与地理位置相联系。在这个复杂的世界里,必须有人追踪每个电话号码,把它们转接到正确的地方。Neustar为电话提供这种引导服务,是众多监督高级互联网域名的注册管理机构之一。用乔非的话说,它是一张地图

Conficker这样的僵尸网络理论上可以被用来关闭Neustar系统。因此乔非帮助成立了Conficker社团。2009年末,有报道说,未来3年里,奥巴马的国土安全部计划招募1000名电脑安全专家,立刻遭到乔非的嘲笑,在这个世界上真正懂这些东西的人不超过几百人。

我们多数人用病毒来形容所有恶意程序。但是在极客的语言里,它代表更具体的东西。恶意软件分3类:木马、病毒和蠕虫。木马是一种功能类似特洛伊木马的软件,伪装进入电脑,然后发动袭击。病毒通过操作系统漏洞进入,然后对宿主电脑发动袭击,它需要电脑操作者犯愚蠢的错误———比如打开可疑的邮件附件———才能启动。蠕虫像病毒一样利用操作系统缺陷,但它闯入后并不发动攻击。它并没有携带恶意负载。像生物界最复杂的病毒一样,它不会杀死或弄残宿主,主要目的是传播。启动Conficker之类蠕虫工作的指令不在它的代码内;它们稍后通过遥控中心发出。

过去,当电脑被感染就会变得缓慢,因为你的命令需要和入侵病毒的命令竞争。由于电脑速度变慢,你很快就会觉得不对劲。然后,电脑屏幕上不断跳出对话框,建议你下载修复软件。程序被冻结。从某方面说,老的恶意程序就像埃博拉病毒,杀死每个被感染者。随着宿主的死亡,它也失去了寄生的机体,所以效率很低。

今天的恶意病毒不会产生弹出窗口,不会造成速度减慢。蠕虫尤其安静,最初它只是不停地复制传播。Conficker除了定期联系接收指令外,只是静静等待。

波拉斯他们发现,Conficker本身只包含几百行代码,不超过35k,比一篇2000单词的文章还小。而目前的家用电脑平均有40200G的存储空间。除非蓄意寻找,除非你知道如何寻找,否则永远不会发现它。Conficker就像一粒漂浮的尘埃。

它利用微软操作系统的漏洞端口445”进入。几周前,微软还试图修补这个漏洞。端口是系统中的倾听点,用于接收和传输特种数据。因为操作系统包含一层又一层的功能,所以端口也多,有超过6.5万个。防火墙是守卫端口的安全程序,控制数据的进出。一些端口———比如处理电子邮件的———交通繁忙。其他则很清闲,只负责接收和某些小功能相关的指令和更新,根本不会引起电脑用户的注意。只有某些特殊的数据能够通过端口,而且必须采用恰当的代码。Windows打开445端口执行某些任务,比如发出打印共享或文件共享的指令。2008年夏,微软得知,即使安装有防火墙的系统,在打印共享和文件共享的状态下,445端口也很脆弱。换句话说,受到严密保护的电脑也有漏洞。20081023日,微软发布罕见的重要安全公告MS08-067)和修补漏洞补丁。公告警告说,特别设计的远端处理呼叫能让这个端口被远程控制者利用,攻击者可以用这个弱点运行任意代码。微软提供的补丁理论上关闭了Conficker之类蠕虫入侵的门户。只是在理论上。

事实上,可能正是这则安全公报诱使人创造了Conficker.世界各地的许多电脑用户经常忘记进行安全升级。补丁只对经过验证的软件发布;几百万台电脑使用的是从未经过验证的盗版操作系统。微软每个月的第二个星期二发布更新,世界上每个极客都知道这一点;这一天又叫补丁星期二。微软雇佣了世界上一些最优秀的程序员,以求永远领先坏蛋一步。如果每个人都及时安装新补丁,Windows将是坚不可摧的。但由于很多人没有及时安装补丁,因为很多电脑用的是盗版操作系统,补丁星期二也成了微软的一大问题。微软指出自己的弱点,就像守卫堡垒的将军公开声明说———“西南角的后门坏了;要这样来修理。安全公报不仅诱使人发动攻击,还为敌人提供了地图。MS08-067公报发布28天后,Confkicer开始涌入未打补丁的电脑。

沙箱实验

Conficker复制的速度引起了每个人的注意。波拉斯、乔非和迪米诺等人开始拆解蠕虫。网络安全按社区分包括微软之类的软件制造商、赛门铁克之类卖杀毒软件的安全公司、NeustarVeriSign之类的大电信服务提供商、斯坦福研究所之类的非营利研究中心和影子服务器之类的僵尸网络猎人。除了维护蜜罐之外,这些安全专家创造了沙箱”———独立的电脑(或大型电脑内部的虚拟电脑),专门用来观察恶意程序。他们把程序放进沙箱,看它会如何行动,再比较各自的观察结果。几周后他们发现:

1.Conficker通过445端口后,将其关闭,确保这个漏洞不被其他蠕虫利用。这样做很聪明。因为其他黑客肯定也看到了公告MS08-067.

2.它试图阻止与安全供应商的联系(许多电脑用户使用商业安全软件,需要定期更新防毒软件)

3.当启动后,如果被感染电脑的IP地址是乌克兰的,蠕虫自动毁灭。进入袭击模式后,在搜索其他可感染电脑时,它会跳过所有乌克兰的IP地址。

4.它破坏了Windows系统还原点,这个有用的工具可以让用户将电脑恢复到感染病毒前的设置。是一种最容易的杀毒方法。

这些做法都很聪明。但是最让专家们好奇的是蠕虫和控制中心联系的方式。僵尸网络猎人经常通过解密控制中心域名然后将其封锁的方法消灭整个僵尸网络。在过去这样做很容易,因为恶意程序只指向少数几个IP地址,很容易通过网络服务提供商进行封锁。Conficker把游戏提高到了新的高度,它生成的域名涉及许多服务供应商和IP地址,只有通过联系互联网注册组织才能封锁。但是Conficker并不和一个固定的地址联系。

在被发现后,蠕虫开始了新行动:每天随机生成250个域名,覆盖5个顶级域名。然后,蠕虫根据域名清单,一个一个联系过去,直到连接上遥控者的服务器。Conficker的遥控者只需要花10美元注册一个地址,等待蠕虫的定期联系。这就像是犯罪组织的老板告诉他的手下每天翻开当天的《赛马新闻》的某页,上面有一串号码,他们拨打每个号码,直到老板接听为止。所以,调查人员无法知道蠕虫到底是在和哪里联系。

如果知道要查看《赛马新闻》的哪一页,还可以和出版商联系,抢先知道号码。要打败Conficker,极客们需要先一步知道随机域名,然后全部买下,或对每一个进行封闭,或者在蠕虫联系前诱使域名所有者与他们合作。

迈克尔·利是电脑安全公司iDefense的年轻研究者,也是参与破解Conficker的人之一。利之前见过各种随机域名生成的算法,多数和被感染电脑的时钟挂钩。如果必须每天或每隔几小时和遥控者联系,那么蠕虫需要知道什么时候联系。这需要参考被感染电脑的时钟。这为好人们提供了一种打败它的工具。他们只需把沙箱电脑上的时间往前拨,迫使蠕虫吐出能够生成的所有域名。一旦知道蠕虫要联系的所有地址,就可以将这些地方隔离。

Conficker也有应对方法。它并不使用被感染电脑的时钟,而是根据流行网站主页(比如雅虎或微软的msn.com)上的时间安排计划。

这非常有趣,利说,无论如何,我们无法把雅虎主页上的时钟往前拨。

所以无法事先预计域名名单。但是有一种方法。第一步是建立一个代理服务器,截获大公司网站上的时间更新信息,改变信息,然后再发给蠕虫。你可以告诉蠕虫时间是未来某天,蠕虫将吐出那一天的域名。这是一种枯燥的方式,一次只能取得一系列域名。于是利和其他研究者对蠕虫的算法进行反编译,抽出时间更新功能,将其镶嵌进一段他们能控制的代码,让这经过改造的代码提前生成未来域名名单。然后,他可以封闭这些地址,把所有蠕虫的通信引入污水池”———一个得不到回复的死角。Conficker的创造者认为不会有人费如此大力气封锁所有可能的控制中心。

但社团通过空前努力,确实设法将蠕虫隔离。到2008年末,Conficker已经感染了约150万台电脑,但它即将被全部控制。在这场伟大的国际象棋比赛中,好人们先胜一局。

高级加密法

20081229日,一种新版Conficker出现,更令人恐惧。

对于蠕虫的最初猜测认为,它可能来自某个电脑实验室。可能是被无意释放的,也可能是一群学生的恶作剧。这当然是人们愿意相信的乐观假设。新版蠕虫ConfickerB打破了意外恶作剧理论。显然它的创造者一直在观察好人们的一举一动,做出相应调节。他不在乎对手能够预测未来域名。只对蠕虫做了简单调整,让它一次生成的名单覆盖8个顶级域名,让封锁它们的工作困难很多。蠕虫联系名单上所有地址,如果没有收到命令就接着联系。ConfickerB可以继续这样几个月甚至几年。只要找到遥控者一次,就能接收到指令。

这是个大的数字,”Neustar的乔非说,警察每天踢开250扇门,还是没有找到坏人的影子,也会厌倦的。而坏蛋只需要在某一天呆在这其中某扇门背后。

蠕虫还有其他改进:除了关闭电脑安全系统,阻止它和安全网站联系,它还阻止电脑和微软联系更新。此外,它还改变了电脑的带宽设置,提高速度,让自己传播更迅速;它开始以不同方式传播,包括U盘。这意味着没有连接互联网的封闭电脑网络也可能被感染。在无法连接互联网的情况下,用户通常用U盘存储文件。如果某张U盘或CD插入被感染电脑,它可以将蠕虫带进封闭网络。

更加让研究者们不安的是,他们发现,ConfickerB定期和遥控者联系,接收指令。指令用代码写成,而且并非普通代码。

今天的电脑运算速度和运算量都很惊人,理论上,没有密码是无法破译的。一个简单的方法就是尝试所有可能的组合,直到秘密揭晓。游戏的宗旨是创造一种极其复杂的密码,要破解必须耗费巨大计算机资源,使得破解密码得不偿失。

现代高级密码的基础是19773位麻省理工学院研究者———里维斯特(主要作者)、沙米尔和阿德勒曼———发明的公钥加密方法。在30多年的时间里,几次被改进。美国国家标准与技术协会制定了政府机构必须采用的保护信息加密算法———联邦信息处理标准。为此世界顶尖密码学家参加了一次国际比赛,获胜者自动成为国际标准。目前的高级标准代号SHA-2.它和第一版SHA都是里维斯特方法的改版。下次比赛将在2013年举行,结果将成为新标准SHA-3.

2008年秋,Conficker出现一个月前,里维斯特上交了新标准MD-6的提议,并开始经过严格的同行审查———世界各地的顶尖密码专家开始测试它的缺陷。不用说,这一切都是保密的。所以当新版Conficker出现后,它的通信加密方法使用了MD-6———里维斯特的SHA-3提议———这让社团成员们大惊失色。

Conficker的创造者显然不是普通高中生或黑客,他们使用了一些最复杂最专业的技术。采用里维斯特的SHA-3提议需要的知识相当深奥。乔非说,我们还在蠕虫的代码中发现了三四个同等复杂的部分,位于不同地方。安全专家推测只有两种可能:他们对付的要么是一群老练的网络罪犯;要么是一个政府资助的团体。情况更加复杂化。这时,里维斯特的MD-6被发现有一个缺陷。

参加竞赛的密码学家中有一个成功破解了密码。2009年初,里维斯特悄悄撤销了他的提议,进行了修改,再次上交。这给了社团一个机会。如果里维斯特的原始提议是有缺陷的,ConfickerB的加密也有同样缺陷。如果他们能够蠕虫和遥控者的对话,也许能够猜出他(或他们)的身份。Conficker的创造者知道MD-6缺陷被发现的可能性有多大?

在较量中,好人们再次暂时领先。

大约6周后,另一种新版的蠕虫又出现了。

它采用了里维斯特修改后的MD-6.

将死

2009年初,ConfickerB已经感染了几百万台电脑。它入侵了英国国防部。当哥伦比亚广播公司的《60分钟时事杂志》正在准备一个关于Conficker的报道时,他们的电脑也被感染。安全专家们在企图清除蠕虫时,造成系统正常功能毁坏。Conficker引起了全世界的关注。20092月,Conficker社团变得更加正规,更名为“Conficker工作小组。微软悬赏25万美元,抓捕蠕虫作者。

新小组试图控制蠕虫。清除它是不可能的。被感染的几百万台电脑分布在世界各地,多数被感染者甚至一无所知。理论上,可以创造一种反蠕虫,让它潜入被感染电脑,干掉Conficker.但是自由国家的隐私法禁止入侵人们的个人电脑。即使所有政府联合起来,允许对Conficker展开大型攻击,新版蠕虫也有躲避威胁的新方法。

20093月,ConfickerC出现,在时髦的加密法之外,Conficker工作组还注意到,新蠕虫的代码把每天生成的随机域名增加到了5万个。新版将从41日愚人节开始产生这么多域名。与此同时,所有感染了旧版Conficker的电脑如果能联系上,旧版蠕虫将被升级成新版。

工作小组通过沙箱实验发现,升级后的域名产生算法将在41日启动。如果升级成功,游戏将被彻底改变。这是自Conficker出现以来,最戏剧化的时刻。显然,这个特别的工具就要发挥它的作用了。但是,到底是为什么?后果令人担忧。在电脑安全专家圈子之外,很少人知道Conficker到底是什么,更不知道41日可能到来的危险。但电脑末日即将到来的传闻终于开始流传开。电视、网络上都出现了一知半解的相关报道。

41日前,工作小组和互联网地址及域名分配机构合作,试图关闭所有可能的蠕虫控制中心。那是我们最辉煌的时刻,乔非说。

整个世界都在等待,看41日会发生什么。就像在影片中,坏蛋终于把英雄逼到墙角。他掏出一把巨大的,对准英雄的脑袋,扣动扳机……里伸出一面印有的旗子。

Conficker找到了一两个乔非他们漏掉的域名,这已经足够了。社团的努力成功减少了升级病毒的数量。成功升级的病毒开始传播一种为人所熟知的恶意病毒Waledac.它到处发送垃圾邮件,推销假的反间谍软件。Conficker传播了两周Waledac,之后就停止了。

更加重要的是。升级后的病毒将每天产生的随机域名数量增加到5万个,让社团对它束手无策。乔非说,“41日午夜,系统转换成新算法,ConfickerC.我们预料中的事情发生了。但互联网并没有被感染;只不过是一个软件的算法的改变。媒体理所当然地认为,‘Conficker被消灭了。’”

公众对蠕虫的关心冷却,问题却变得更加严重:新版Conficker引进了蠕虫和蠕虫之间的通信。这意味着它们不必再通过445端口或U盘侵入。被感染的电脑直接将蠕虫传给与之交流的每台机器。这也意味着,Conficker不再需要和指挥中心联系获取指令;它们直接发布电脑对电脑的指令。由于蠕虫不再和遥控者联系,根本无法知道到底有多少电脑被感染。

在和好人的博弈中,蠕虫宣布将死。

本文截稿时,也就是Conficker出现17个月后,它成功创造了一个庞大的僵尸网络。控制电脑数量在几十万台至1200万台之间。乔非估计,被4种版本(200948日又有一种新版出现)感染的计算机可能接近650万台。人们还没找到任何有效的杀死它的方法。

那么到底是谁创造了Conficker.根据在黑客论坛获得的线索,很可能是东欧人。最早的一个线索是只有乌克兰的电脑对这种蠕虫免疫。世界上大多数有攻击性的恶意病毒来自东欧。这可能和当地猖獗的犯罪集团和大量技术人才有关。VeriSign的安全专家马丁内兹认为,Conficker是一群非常高明的程序师的作品。他们可能受雇于某个犯罪集团,为了非法商业目的创造了这种蠕虫。

他们最终会被抓获吗?我不知道,马丁内兹说,也许不会。会才怪。以什么罪名逮捕他们?在很多国家入侵他人的电脑并不违法。事实上,在一些国家,除非你入侵的是他们的执法辖区或本国的电脑,否则都不算违法。那么谁会逮捕他们,即使我知道他们是谁?

你可能感兴趣的:(潜伏的敌人)