导语:Citizenlab开发了新的互联网扫描技术,确定NSO集团Pegasus间谍软件运营商可能正在45个国家开展业务。
在上篇文章中我们对Pegasus间谍软件有所了解,本文我们将为大家介绍DNS缓存探测技术。
4. DNS缓存探测技术
本节介绍我们的DNS缓存探测技术。
DNS及缓存探测的背景知识
当用户(或计算机程序)指示计算机或移动设备与域名通信(例如,www.citizenlab.ca)时,设备首先向域名服务器(DNS)发送请求,以便获取域名对应的IP地址。默认情况下,设备与所连接的ISP或电信公司的DNS服务器通信。
DNS服务器临时缓存IP地址和域名之间的映射,通常持续时间由域名所有者指定(例如,300秒)。当设备查找不在服务器缓存中的域名时,服务器会联系其他DNS服务器以“递归”解析域名,然后将该记录存储在缓存中。当设备查找已在服务器缓存中的域名时,服务器将从缓存中返回记录以及生存时间(TTL),该值指示服务器中的记录何时到期。如果服务器返回的TTL值小于域名所有者设置的值,那么DNS服务器返回的记录存在于缓存中,因此被其他一些ISP用户查询。
还可以将查询发送到DNS服务器,并将Recursion Desired标志设置为0(称为非递归查询),向服务器指示它应该只在响应之前查询其缓存;如果记录不在缓存中,则服务器不应联系其他服务器以尝试解析域名,并且不应向其缓存添加任何内容。某些DNS服务器可能会选择忽略此标志。
为了观察不完整的TTL,向DNS服务器发送查询(无论是非递归的还是递归的)是一种称为DNS缓存探测或DNS缓存侦听的技术。2004年DNS缓存探测的原始演示文稿的作者认为它对安全性和隐私有害,并建议DNS服务器的运营商(如ISP)应阻止并非源自自己网络的DNS查询。实施这样的预防措施会使单个观察者更难直接探测DNS服务器的缓存。 2006年对僵尸网络C&C服务器的调查采用DNS缓存探测;在这种情况下,作者已经探测过对某些域名具有权威的DNS服务器,而不是DNS转发器。
即使在ISP阻止来自非ISP用户的DNS服务器请求的情况下,有时也可以通过ISP网络上的开放DNS转发器来探测DNS服务器的缓存。开放式DNS转发器是一种接受来自任何Internet用户的查询的服务,并且可以将未被调用的查询转发给ISP服务器,然后ISP服务器响应转发器,转发器又响应用户。从ISP的DNS服务器的角度来看,查询的提交者(转发器)在ISP的网络上。开放式DNS转发器可能在未正确配置的路由器或IoT设备上运行。
注意: DNS缓存探测中的规范
为了与网络测量研究中越来越重视道德规范保持一致,我们考虑了我们的技术活动对非研究目标的影响,并寻求最小化任何中断的可能性。值得注意的是,我们检查了用户成本,服务中断或其ISP发出的意外警告的可能性。我们认为,这项研究的开展方式可以减轻这些风险,并符合公众利益。
首先,我们考虑了用户可能因DNS缓存探测而导致成本或服务中断的可能性。鉴于活动期间提出的请求数量很少,我们认为这是一个非常不可能的结果。部署后,该技术每个IP地址每秒产生的请求少于一个,因此每秒小于1千字节。所以,总流量每天小于100兆字节。为了进一步减少探测域名的权威名称服务器上的负载,我们仅使用非递归查询。因此,我们预测不会导致用户产生成本或带宽下降。
我们确定,由于我们的DNS缓存探测,用户不太可能收到来自其ISP或其他机构的不受欢迎的查询。当然,开放式DNS转发器是主要的Internet安全风险,因为它们可能用于DNS放大DDoS攻击。这种大规模攻击可能会引起ISP或其他机构的注意,并触发ISP的查询或制裁。相比之下,DNS缓存探测是一种非常低容量的活动。如果一个开放的DNS运营商尚未收到其ISP的联系人,我们认为这种技术不太可能触发联系人,因为它看起来不像“类似攻击”。
在撰写本文时,我们并未发现恶意实际攻击中使用DNS缓存探测的任何证据。随着DNS缓存探测技术不断发展成为一种研究工具,确保以不会出现隐私和安全问题的方式继续使用它将非常重要。
寻找合适的DNS转发器
我们首先开发一个合适的DNS转发器列表。我们运行三个测试来回答以下问题:
1.转发器使用尊循非递归查询的解析器吗?我们为控制的域名的随机子域发送非递归查询,并检查是否得到响应。随机子域名解析为IP但不应位于任何缓存中。我们检查每个IP两次;如果我们得到正确的答案,那么IP不会遵循非递归查询。
2.转发器使用哪个解析器?我们为控制的域运行自定义名称服务器;名称服务器返回传入DNS查询的源IP作为响应中的答案之一。我们使用针对控制的域的随机子域的递归查询来查询每个IP 10次,并收集我们的名称服务器返回的IP集合。
3.转发器是否可以访问感兴趣的缓存?我们使用google.com的递归查询连续查询每个IP 10次。如果IP在Google自治系统(AS#15169)中至少返回一次带有IP的响应,则转发器可以访问感兴趣的缓存。
DNS转发器适用于以下情况:
· 它尊循非递归查询。
· 转发器只在单个自治系统(AS)中转发对解析器的请求。我们排除在多个AS中使用解析器的转发器,因为当这样的转发器显示DNS缓存命中时,我们不知道DNS缓存实际发生在哪个AS中。
· 转发器解析器的(单个)AS由CAIDA的AS分类数据集指定为“Transit / Access”。这有助于避免一些云提供商和共享DNS提供商,如Google,OpenDNS,Yandex,CloudFlare等。
· 转发器的解析器的AS不等于我们找到NSO Group服务器匹配的任何AS。
· 转发器本身不是解析者;换句话说,转发器IP不会出现在解析器中。
· 转发器有权访问感兴趣的缓存。
每次我们扫描时,我们的清单包括约38,000个合适的转发器,不包括中国的转发器。
了解DNS缓存探测误报
DNS缓存探测可能产生误报,即DNS缓存探测技术报告该域名在缓存中,当它实际上不在缓存中时,或者当我们使其在缓存中时。这会发生在以下三种情况:
1. DNS转发器不会始终遵循非递归查询;它可以将一些查询子集转发给不支持非递归查询的解析器。这可能导致我们的查询将域名添加到缓存。
2. DNS转发器可能会返回我们在(1)中添加到缓存中的条目。即使对于在100%的时间都遵守非递归查询的DNS转发器,也会发生这种情况。
3.自动化流程或好奇的研究人员可能会观察我们的DNS缓存探测并发送我们正在探测的域名的DNS查询;这可能会将域名添加到我们正在探测的缓存中。
我们进行了几项对比实验,以确定如何更好的排除误报。在我们的对比实验中,我们选择了50个具有通配符记录和至少300秒TTL的域名,然后生成一个随机字符串用作子域,并在所有解析器上连续查询所有50个域名(带子域)大约每300秒按固定顺序排列,确保每300秒至少查询一次每个域名。我们进行了24小时的实验。
我们在对照实验中收到的任何结果都被视为误报。我们开发了一套启发式方法,在这些实验中将误报率降低到0,并认为这些相同的启发式方法可以帮助我们从间谍软件域名的DNS缓存探测研究中消除许多误报。这些是我们用于消除结果误报的条件:
1.排除同一查询的重复观测值:对于每个DNS服务器响应,我们检查观测值是否重复。具体来说,如果给定域名的响应在n秒前针对同一域名的响应(来自任何DNS转发器)之前,并且先前响应的TTL与当前响应相差n(±2),那么我们排除了目前的响应。
2.即使时钟以不正确的速率运行,也要排除可能的重复观测值:对于每个ASN,如果其TTL小于或等于任何DNS转发器为同一ASN返回的该域名的前一记录,排除记录(或IP)。我们实现了这个条件,因为对于某些ASN,我们确定了单调非递减的TTL序列(对于具有大TTL的域名),这些序列与以不正确速率运行的时钟相对应,并且怀疑这些可能是误报。
3.使用不正确的TTL排除任何观察结果:我们排除TTL大于域名DNS服务器设置的TTL的所有观察结果,2个TTL内的所有观察结果,以及用流行的固定TTL值(0,1,9,10,11,30,60,80,100,300,1000,10000)进行的所有观察。
4.排除来自DNS转发器的所有响应,这些响应会返回错误答案:如果DNS转发器在响应中返回了错误的IP地址,我们也会排除所有响应。
5.排除来自托管域名同一国家/地区的缓存的所有响应:对于给定的域名,我们排除了来自托管域名的同一国家/地区的ASN的DNS转发器的所有DNS缓存响应。例如,如果域名指向意大利的IP地址,我们会将意大利的所有DNS缓存命中率排除在该域名之外,作为潜在的误报。
6.排除不常见的响应:除非给定ASN中的解析器返回至少四个未被排除的特定域名的响应,否则我们会从ASN中排除该域名的响应。
我们排除结果的条件非常宽松,可能导致漏报。请注意,当我们说我们排除了响应时,我们的意思是响应未包含在最终结果中。我们继续将被排除的响应视为排除其他响应的理由。
为什么域名在缓存中?
域名在缓存中的原因有很多(假设我们没有意外地将其放在那里)。我们只对可能由感染引起的缓存条目感兴趣。我们简要介绍了NSO的Pegasus间谍软件部署如何运作的工作模型,并得到了NSO集团基础设施分阶段关闭的证据支持。
我们部署Pegasus间谍软件的心智模型是,大多数运营商都有两台C&C服务器,大多数感染者都与这些服务器通联,其余的基础设施包含漏洞链接中使用的域名。在国际特赦组织和Citizen实验室于2018年8月1日发布有关使用Pegasus间谍软件的报告后,Pegasus基础设施分阶段进行关闭。起初,大部分前端域名被关闭,而少数最终域名(通常是两个)对每个运营商保持活跃状态。我们认为这些是C&C服务器,并且域名保持在线状态,以便受感染的设备有机会在新的C&C服务器上进行信号切换并接收指令,以便与之通信。
如果给定的运营商恰好有两个最终域名,我们假设这些是C&C服务器。如果运营商拥有两个以上的最终域名,我们假设大小为2的某个子集是C&C服务器。我们没有确定DNS缓存探测技术报告的任何运算符在最终域名的大小为2的不同子集上的命中。然后,我们过滤了对ASN的反应,这些反应在两个假设的C&C域名上都有命中,并认为这些是疑似感染。
实验
一旦我们开发了减少误报的技术,我们就为关联到NSO Group的基础设施的所有域名探测DNS缓存,这些域名是活动的并且匹配我们的指纹。我们在TTL期间至少查询过一次域名。由于存在大量域名和服务器,以及我们希望节省带宽,我们交替使用了正在探测的域名。每个域名在三天的周期至少被探测过。
可能的限制
诸如使用VPN和卫星互联网连接等因素可能会歪曲地理定位结果。因此,这只能作为进一步调查的指南,而不是监测的铁证。此外,DNS转发器的异常配置(例如使用一致性散列来咨询不同域名的不同解析器)可能会破坏我们的过滤技术并引入误报。
我们不确定我们的方法可以观察到所有DNS查询的百分比,并注意到不同国家和ISP的百分比可能差别很大。因此,我们的技术可能已经错过了大量的感染,并且可能无法完全衡量某些国家或ISP。重要的是,我们的结果中出现了在一个国家/地区的运营商实际上在多个国家/地区运营。我们没有在中国大陆进行任何DNS缓存探测。
5. 总结
本报告确定了45个国家存在疑似Pegasus间谍软件感染的运营商,其中至少有33个是NSO的客户。我们通过对从命令和控制(C&C)服务器中提取的域名执行DNS缓存探测来确定这一点,这些服务器匹配新设计的Pegasus指纹。我们将C&C服务器分组,每个组使用我们称之为Athena的技术代表单个Pegasus运营商(假设为NSO客户)。由此产生的NSO的Pegasus感染全球地图揭示了一些迫切需要关注的问题。
已知间谍软件的滥用者运营Pegasus
虽然一些NSO的客户正在使用Pegasus间谍软件作为“合法”刑事或国家安全调查的一部分,但至少有六个拥有重要Pegasus业务的国家有公开滥用间谍软件针对民间社会的历史。
尽管有充分的证据表明Citizen Lab和我们的合作伙伴在2017年发现了Pegasus针对墨西哥民间社会的大量证据,但墨西哥的三名Pegasus运营商似乎仍在运作。墨西哥有针对性的攻击引发了国际抗议和刑事调查。但是,没有导致该国所有Pegasus业务的终止。
2016年,Citizen Lab暴露Pegasus针对阿联酋人权捍卫者Ahmed Mansoor。尽管该披露引起公众的强烈抗议,但基于阿联酋的Pegasus部署仍在运作。最近,与沙特阿拉伯相关的行动仍在继续,尽管最近调查将其与国际特赦组织工作人员和沙特政治活动家联系起来。
巴林是另一个拥有Pegasus运营商的国家,它以滥用间谍软件针对民间社会而臭名昭著。值得注意的是,与巴林有关的运营商正在使用具有政治主题的域名,鉴于该国滥用监控技术的历史,这一点非常令人担忧。与多哥相关的运营商也在使用政治主题的域名。多哥也有独裁统治和侵犯人权的历史。
Pegasus的跨境监视
十个Pegasus运营商在多个国家进行监视。虽然我们观察过之前的跨境定位案例,但这项调查表明,跨境定位和/或监控是一种相对普遍的做法。此活动的范围表明,政府专属的间谍软件被广泛用于开展在目标所在国家可能违法的活动。例如,我们已经确定了几个与美国没有关联但可能在美国IP范围内感染的Pegasus客户。虽然其中一些感染可能反映了目标使用国外VPN或卫星互联网服务的情况,但有些国家可能会通过穿透美国境内的设备来积极违反美国法律。
忽于职守,对全球网络安全不负责
本报告中确定的案件严重怀疑NSO尽职调查的深度和严重性以及对人权保护的关注。他们还表示,该公司有大量客户在其他国家/地区维持活跃感染,可能违反了这些国家的法律。政府独家间谍软件的全球市场继续增长,随着更多政府和具有滥用历史的安全服务获得这种技术。像Pegasus这样不断扩大的间谍软件用户群将使越来越多的国家能够窥探自己公民的数字生活,同时也可以进入全球各地的手机和电脑。
与NSO组织的关联
2018年9月14日,Citizen Lab主任Ron Deibert致函两名NSO负责人Omri Lavrie先生和Shalev Hulio先生,通知他们这份报告的细节,并解释说我们与记者分享了一份限制副本,完整的发布他们希望在记录中传达的任何回复。
在2018年9月14日,Hulio先生通过电子邮件回复说:“我们过去曾多次建议与您和您的同事会面,但不幸的是,我们的请求被忽略了。”Citizen Lab主任和工作人员没有任何记录这样的外展。此外,Citizen Lab并不认为与研究人员举行私人会议对如此严重的公共利益问题进行负责任的公共沟通的适当替代。
Hulio先生还声称“与您所作的陈述相反,我们的产品被许可给政府和执法机构,其唯一目的是调查和预防犯罪和恐怖行为。我们的业务严格遵守适用的出口管制法律。”Citizen Lab的研究并未谈及NSO在营销、销售或出口方面的态度。然而,我们的研究继续展示了一些在实践中滥用NSO技术的现实例子。这些用途包括NSO集团的政府客户滥用Pegasus间谍软件针对民间社会团体、人权维护者、律师、政治家和记者。
2018年9月17日,我们接到了NSO的公开声明。该声明提到“NSO被指控经营的国家名单一点也不准确。NSO并未在所列的许多国家开展工作。“这一陈述是对我们调查的误解:我们报告中的清单是涉嫌NSO感染的地点,它不是可疑的NSO客户名单。正如在第3节中所描述的那样,我们观察到了来自33个不同运营商的DNS缓存命中率,其中一些运营商在多个国家/地区开展业务。因此,我们的45个国家名单必然包括不是NSO集团客户的国家。我们在第4节中描述了我们方法的其他限制,包括VPN和卫星连接等因素,这些因素可能导致目标出现在其他国家/地区。
NSO的声明还声称“NSO的商业道德委员会,包括来自不同学科的外部专家,包括法律和外交关系,审查和批准每项交易,并被授权拒绝协议或取消现有协议,如果有不当使用的情况。 “我们没有看到有关该委员会成员资格或审议的公开细节,但鼓励NSO集团披露这些细节。NSO关于商业道德委员会的声明回顾了Hacking Team“技术专家和法律顾问的外部小组……审查潜在销售额”的例子。这个“外部小组”是一家单一的律师事务所,其建议Hacking Team并不总是遵循。
向有人权跟踪记录有问题的国家继续提供服务以及高度公开滥用间谍软件的情况使人们对这种内部机制的有效性产生了严重怀疑,如果它存在的话。
更新
2018年9月18日,NSO通过电子邮件将以下内容附加到之前的公开声明:
Citizen Lab的最新报告存在多个问题。最重要的是,NSO出售产品或我们客户的国家名单一点都不准确。NSO不会在列出的许多国家销售其产品。该产品仅被许可在我们的商业道德框架批准的国家/地区运营,而不会在经批准的国家/地区之外运营。例如,该产品专门设计为不在美国运营。
除了我们在美国显示疑似感染的DNS缓存探测技术外,我们此前还观察到一名疑似墨西哥运营商的目标是美国的一名未成年子女,其中包括Pegasus企图冒充美国大使馆的信息。此外,作为2016年报告的一部分,我们使用发送给阿联酋活动家Ahmed Mansoor的Pegasus链接成功感染了测试手机(当时在美国)。