ARTICLE · 1191307
你刷到的一条广告,可能正在给手机装间谍软件
你刷到的一条广告,可能正在给手机装间谍软件2024年到2025年间,国际新闻网络Al Jazeera(半岛电视台)内部至少45台设备遭到了一系列零点击攻击。所谓零点击,意思是受害者什么都不用做,不需要点链接,不需要打开附件,甚至不需要醒着,设备就被入侵了。 安全研究人员通过分析网络日志和恶意样本,把这些攻击追溯到了一家名为Candiru(后更名Integrity Labs)的以色列雇佣兵间谍软件公司,以及一个此前从未公开的中间商Discover-Tech。 攻击的入口不是邮件,不是漏洞钓鱼,而是一条在普通网站和App里展示的定向广告。研究团队把这种技术命名为AdFection,也就是广告感染。这是全球首次有技术证据公开证明,雇佣兵级别的间谍软件是通过定向广告分发出去的。 研究团队向13家公司发出了评论请求。Google、IAB Europe、Beeswax、Vungle(Liftoff)和Eskimi在收到通知后陆续切断了Discover-Tech的广告生态接入。Discover-Tech、Candiru、Bindecy、Intelos、Xandr、Sunteng、IAB Europe和Affle在限期内未予回应。 当你打开一个免费App或者新闻网站,屏幕上弹出一条广告,这背后通常不到一秒钟。在这不到一秒里,你的设备已经向一群公司发送了你的设备标识、大致位置、IP地址等信息,各家广告平台在实时竞价,价高者赢得把广告推到你屏幕上的机会。这套系统叫Real-Time Bidding(实时竞价,简称RTB),每天发生数千亿次。 整个链条上有几个关键角色。Advertiser(广告主)想买广告,DSP(Demand-Side Platform,需求方平台)帮广告主出价,Ad Exchange(广告交易市场)撮合买卖,SSP(Supply-Side Platform,供给方平台)帮网站和App卖广告位,最后Publisher(发布者)把广告塞进页面或App里展示给你。 相关阅读:关于广告相关威胁的文章汇总 
在线广告生态系统的基本架构。绿色线是用户数据流,红色线是第三方追踪代码 
本次调查中各角色的实际对应公司:广告主一侧是Discover-Tech、Candiru、Bindecy、Intelos等,DSP是MyDSP、Beeswax、Eskimi,交易所是Google、Yandex、Vungle、Sunteng 大多数人以为广告就是一张图或者一段视频,但实际上广告还可以携带代码。这些代码在你的浏览器或App里运行,用来追踪你、记录广告展示和点击。广告主、DSP、SSP以及其他第三方都可以往广告里塞代码,通常被称作tag、pixel或者SDK。 这套系统天然有两个容易被滥用的地方。第一,它收集大量个人数据,设备标识、精确位置、IP地址、App使用习惯,全部在竞价过程中暴露给数千家第三方,系统设计的初衷就是支持针对单个用户的定向投放。第二,它允许各种第三方在你的设备上运行代码。如果有人故意把恶意代码藏进广告里,理论上就能精准送到特定目标的设备上。 黑鸟认为,一个能接触到竞价数据的公司,可以在用户毫不知情的情况下追踪他在物理空间中的移动,观察同一个广告标识如何在蜂窝网络、Wi-Fi和VPN之间切换IP地址。监控行业已经在售卖所谓ADINT(Advertising Intelligence,广告情报)平台的访问权限,客户包括国防、情报和执法机构。@blackorbird Discover-Tech是一家2020年在以色列注册的公司,表面上做数字广告,运营一个叫MyDSP的需求方平台,对接Google、Yandex、Vungle(Liftoff旗下)、Sunteng(舜飞)等广告交易所。但研究发现,它的核心业务实际上是帮雇佣兵间谍软件厂商在全球范围内追踪和入侵设备。 这家公司的CEO是Dekel Boni,董事会里曾经坐着Eric Banoun,一位被以色列国土报称为“以色列进攻性网络先驱之一”的人物。Banoun联合创办了网络间谍公司Circles(NSO Group的密切关联方)和Senpai Technologies(Intellexa集团的一部分)。2020年到2026年3月间,公司股东里还出现过一家与Sara Hamou有关联的公司,而Hamou管理过间谍软件集团Intellexa的企业网络。Banoun于2025年1月退出董事会。 
Discover-Tech充当雇佣兵间谍软件行业与在线广告生态系统之间的桥梁 Discover-Tech投放广告有两条路径。一条是通过自家MyDSP对接Google、Yandex、Vungle和Sunteng。另一条是通过Eskimi和Comcast旗下的Beeswax(FreeWheel)直接购买广告。大量广告里嵌着一个script标签,指向公司内部所谓的“NOAS server”(也叫getAd server)。 这个NOAS服务器是整个攻击链的关键。广告渲染时,你的设备会连接NOAS服务器,提交你的广告标识(cookie ID或者移动广告ID),然后服务器根据来源IP和广告标识判断你是不是被选中的目标。如果是,返回一段JavaScript代码让你执行;如果不是,返回0字节的空响应。这种设计让Discover-Tech不需要和投放广告的平台共享任何恶意代码,广告平台看到的只是一个普通的script标签。 从2020年到2026年,Discover-Tech一直名列Google的“Ad Manager Certified External Vendors”(认证外部供应商)名单,也是IAB Europe(欧洲互动广告局)TCF(Transparency and Consent Framework,透明度与同意框架)全球供应商列表上的注册厂商。它还通过了GDPR(General Data Protection Regulation,通用数据保护条例)的同意框架校验,在欧洲合法地处理用户“同意”信号。 Discover-Tech给客户提供一个叫Controlium的平台,界面长得像普通的广告投放后台。管理员可以给客户开通权限、设置IP白名单、限制每天投放的campaign数量,甚至做“白标”贴牌。客户登录后可以按照Mobile Advertising ID(移动广告标识,简称MAID)、cookie ID或者IP地址来选定要感染或画像的目标。 相关阅读:关于竞价广告 
Controlium的管理后台界面,功能看起来和普通广告平台没什么两样 Controlium前端的全部源码都直接放在登录页面上。研究人员保存了前端代码,去掉了和外部服务器的通信,把所有隐藏的界面都显示出来后在浏览器里打开。平台部署在四个域名上:controlium[.]net、powerium[.]net、adv45.volasim[.]com和adv50.volasim[.]com,全部CNAME到同一个AWS Application Load Balancer,名字直接叫discovertech-alb-100966113。代码里还写着“controlium-discover-tech”和“https://discovertech.us.auth0.com”。访问/jsConfig端点时返回的消息是“ONLY DEKEL IS ALLOWED!!!”,被认为是在指CEO Dekel Boni。 管理员后台可以配置的限制包括:客户允许竞拍哪些User ID和IP地址组合、能访问哪些URL Type、是否开启OpSec(操作安全)限制、每天或每月能跑多少个campaign、Domains Whitelist(域名白名单)和Apps Whitelist(App白名单)、以及按国家的允许/禁止列表。这套限制机制和攻击平台的授权模式一模一样。 
管理员给单个客户配置的CAMPAIGNS权限与CREATIVE UPLOAD表单:左侧勾选允许的Campaign Type和URL Type(Script、User Agent、De-anon、Monitor、Pixel),右侧选择DSP为Beeswax,并开启NOAS、Cookie、UserAgent、Infinite FIFO、Detect IPv6、Detect ZUID等开关 
投放限额与白名单设置:限制每天/每月campaign数量,可上传域名白名单和App白名单CSV,按国家设置WL(允许)或BL(禁止),还能选择是否纳入代理IP、是否忽略使用代理的用户 
Bid OpSec操作安全限制面板:可按Auction ID、Bid Time、IPv4、IPv6限制出价,OpSec Bid Timer默认30秒,Bid Time Offset默认10秒,IPv4/IPv6最少匹配3个网段 客户侧的功能更丰富。Tag Generator模块组合广告图片、落地页、NOAS URL和曝光/点击追踪URL。OP Creative Upload模块上传广告创意并推送到DSP。可选的DSP包括MyDSP WW、MyDSP Yandex RU、MyDSP Google(Palm 3)、Beeswax(Palm 3)等,还能勾选“Infinite FIFO”、“Detect Zuid”、“User Agent”等附加功能。 
Tag Generator标签生成器:选择DSP(BeesWax、MyDSP、ESKIMI)、广告类型(Image或Youtube Video),填写Image URL、Landing Page、NOAS URL、Click Log URL和Impression URL,生成后保存 
Exchange交易所下拉选项:General、GoogleAdx、Yandex RU,以及三套Palm 3(General、GoogleAds、Yandex RU) 
OP Creative Upload创意上传界面:选择Standard或Custom Tag,配置DSP、Advertiser、OS、NOAS、Cookie和Add-ons,填写Prefix/Suffix/Domain参数与Landing Page、NOAS、Impression、Click Log四个URL,创意列表可导出CSV并Submit to DSP直接推送 Campaigns模块把“Ad URL”关联到受控广告里。URL Type下拉菜单里有Ad URL、Test URL、Script、User Agent、Monitor、Pixel和De-anon。研究团队判断Ad URL类型会让NOAS服务器返回一段JavaScript,往页面里插入一个指向指定URL的1像素iframe,而Script类型可能就是用来执行任意JavaScript的。 
New Campaign新建任务表单:填写Name,逐行粘贴User IDs或IP Addresses,选择URL Type(Ad URL)和Type(User ID),可填User Agent并勾选Mandatory,选择IP Bid OpSec Override 
Campaigns列表与Create New Campaign弹窗:列表按USER ID、AD URL、CREATION DATE/TIME管理,支持Search、Exclude Records和Export to CSV,弹窗里只需填入User ID和AD URL即可保存 Targeting和cTargeting模块允许上传目标的数字标识列表,包括Android和iOS的移动广告ID、Beeswax用户ID、MyDSP用户ID和IP地址,上传后挂到一个segment(人群包)里。Ads Impressions模块可以查看某个目标标识或IP在最近30分钟内的广告曝光数据,Bid Requests模块可以查看最近的竞价请求,包含用户ID、访问的网站或App、设备IP等属性。User Info、User API Info和User Sync Info三个模块则根据输入的标识返回键值对信息,可选的User ID Type包括EYield、TYield、VYield、SYield、Sync_User、Sync_Domain、Sync_App、AH_User,这些明显是跨供应商ID同步的标识。 
Ads Impressions曝光监控面板:可按Last 30 Minutes时间窗,用App/Web Id或IPv4 Address检索某个目标的近期广告曝光 
Bid Requests竞价请求面板:按Hour Range(默认Last Hour)筛选,可按User ID、App Bundle、IPv4、IPv6、URL过滤,列表展示REQUEST_TIME、USER_ID、USER_ID_HASHED、DOMAIN、APP_BUNDLE、APP_NAME、DEVICE_IP、DEVICE_BROWSER,支持Export to CSV Controlium名义上用授权令牌保护客户数据,但实际上认证逻辑有严重缺陷。它使用Okta的Auth0产品做认证,Auth0返回一个经过数字签名的JWT(JSON Web Token),后端应该校验这个令牌。但Controlium忽略了JWT,转而把一个未经认证的user对象(只包含姓名和邮箱等元数据)用前端公开的密钥加密后当成令牌传给后端。讽刺的是,正确使用JWT的代码在平台里存在,但被注释掉了,换成了有漏洞的实现。研究团队没有利用这个漏洞,因为那构成未授权访问。 
平台前端源码片段:上方正确的getToken/getAccessTokenSilently() JWT逻辑被整段注释,下方取而代之的是用CryptoJS.AES加密未经认证的user对象后写入localStorage 另一个问题是未授权API端点。源码里提到一个/csv-download端点,接受开始和结束日期参数。研究团队直接用HTTP GET请求访问这个端点,不需要密码、不需要特殊头、不需要令牌,就导出了128天的登录日志,识别出120个不同用户名在controlium[.]net和powerium[.]net上的登录记录。 研究团队通过测试Dummy User ID从NOAS服务器拿到了返回代码。访问https://pqv2.mtrtb[.]com/getAd?idfa=test2,服务器返回了一段JavaScript,创建一个1像素iframe指向https://logger.powerium.net/register_event,并把user_id等参数带过去。 另一个叫“Mini Platform C”的应用发布在events-ui.myweb3id[.]io上,研究团队在表单里输入User ID“test123”和AD URL“https://example.com/”,然后访问https://events.platc-tester[.]com/cplatform/getAd?idfa=test123,第一次访问返回了插入example.com的iframe代码,后续访问什么都不返回。这说明NOAS服务器对每个目标只投递一次代码,之后静默。 
Candiru通过Discover-Tech广告实施感染的完整时间线 整个过程从0秒开始。广告在目标设备上渲染,触发JavaScript加载,设备连接Discover-Tech的基础设施,包括cloud-images.s3.eu-west-1.amazonaws[.]com和noas.mtrtb[.]com来加载图片和脚本。如果目标被选中,NOAS服务器返回一段JavaScript,往页面里插入一个1像素iframe,指向Candiru的validator服务器(keyadapter[.]com或sharethere[.]net),设备加载这个iframe。同时设备还会向dtech.adtimizer[.]com发送标准曝光统计。 5到10秒内,设备通过Candiru的validator校验,validator把设备重定向到漏洞利用服务器brainsolitary[.]com。一旦漏洞被成功利用,设备在1到3分钟内与Candiru的C&C(Command and Control,命令与控制)服务器建立连接,包括fearevolve[.]com、insightenterprisells[.]com、jobmarcher[.]com、plasticbells[.]com、rebookings[.]net、freshmeditate[.]com、dustclimate[.]com等。 研究团队为Candiru的validator服务器开发了一套指纹(Fingerprint V1),在Censys上扫描到305个不同域名分布在319个IP地址上,时间跨度从2022年8月到2026年7月。这些域名包括Sekoia和Recorded Future之前公开归因于Candiru的那些。另外为C&C服务器单独开发了Fingerprint C1,匹配fearevolve[.]com、insightenterprisells[.]com、jobmarcher[.]com、plasticbells[.]com四台服务器。 半岛电视台从一台被入侵设备上隔离出一个Windows DLL文件,样本SHA256为255869de85e2a171993fc5eb8a556d873a1b8966e040f6f55926f2fa2d595cc8,已上传VirusTotal。样本硬编码了fearevolve[.]com和jobmarcher[.]com两个C&C服务器。 和研究团队2021年捕获的Candiru攻击链相比,这个新版本有几个关键共性:都使用COM劫持实现持久化(但用了不同的DLL);都用48字节重复XOR密钥混淆字符串(但密钥不同),而且混淆字符串里都有一个“dummy”空终止符,这个字符不解密,唯一作用是确保分配正确大小的内存来存放XOR解密输出;配置里都硬编码了相同的网络连通性检测地址列表http://www.google.com和http://www.microsoft.com。这些特征组合在一起,高置信度确认这是同一攻击链的新版本。 Discover-Tech还运营了一个叫myipinfo[.]io的网站,上面放着一个“AES-256-CBC Multi-Decryptor”工具。页面说明写着“Decrypt Base64(IV[16] || AES-CBC(cipher))”,可以选择V1或V2密钥。 
Discover-Tech的AES-256解密工具,输入加密参数即可还原目标IP等信息 研究团队发现2024到2025年间多个Candiru感染链接指向至少6个匹配Fingerprint V1的域名,URL里带一个?q=参数,值是16字节的Base64编码数据。这些参数全部能用myipinfo[.]io上公布的V1 AES-256密钥正确解密。 其中一个在VirusTotal上公开的Candiru感染链接,?q=参数解密后得到一个IP地址,注册地指向沙特阿拉伯外交部,暗示该组织是Candiru间谍软件通过Discover-Tech广告锁定的潜在目标。这种加密被Discover-Tech内部称为Ad URL OpSec,攻击者把目标IP加密后附在链接里,收到请求时解密比对,确保来访问的不是被安全研究人员截获的设备。 
Ad URL OpSec配置面板:Ad URL Type可选Regular或Hashed,Frequency Cap可开关,Ad URL OpSec可选Off、IP Only、V2、V3、V4,并可填入Ad URL OpSec Key,另有Disrupt OpSec V2/V3 Values选项 2025年3月18日两小时内注册的两个域名outdooutcome[.]com和suggestutterly[.]com匹配C&C指纹,SOA记录里都留着info@rockhoster[.]com。同一天注册的第三个域名sincereaccertain[.]com没有匹配指纹,但从2025年4月起,指向它的URL通过Discover-Tech广告分发。URL格式为https://sincereaccertain[.]com/?qq=[...],qq参数解密后格式为|||。2025年5月起,d1fcoizt7mje85.cloudfront[.]net上出现相同格式的URL,两者通过同一个Infinite FIFO ID(编号778)关联。这套部署在2025年12月停止。研究团队估计有数十万到数百万用户通过这些广告被引导到这些域名。 2026年1月起,系统升级到新的NOAS地址ppv2[.]mtrtb[.]com。研究团队从该服务器的未授权端点收集了五个月的统计数据,期间共计3,637,213个“eligible users”(被认定为应该收到Infinite FIFO代码的用户)。2026年晚些时候又演进到V3 OpSec,允许自定义参数名(观察到“impid”)和每用户密钥,但解码器没有同步更新,所以无法解密。 
Candiru更名Integrity Labs后的官网首页,只有一句“Exquisite capability. Access by trusted referral only”(精良能力,仅靠可信引荐获得),不公开对外销售 从未授权API端点导出的登录日志里,研究团队识别出两个从以色列IP登录的用户,归属到Candiru/Integrity Labs。第一个用户INTEGRITYPRESALE1,在LinkedIn上的名字对应一个在“Cyber Security Company”做“Head of Presale”(售前负责人)的人。这个LinkedIn页面名义上属于一家雅加达公司,但页面推荐栏前三名分别是Integrity Labs、NSO Group和Integrity Lab(Integrity Labs的拼写错误版)。第二个用户INTEGRITYPRESALE2,用户名包含名字,结尾是“_pap_pres”,推测“_pres”是presale。 
这两个账户从阿塞拜疆、捷克、以色列、意大利、墨西哥、黑山、阿联酋和美国登录。另外还有一个包含“pap”字符串的用户集群,全部从内网IP 10.0.0.52登录,用户名为Aurora_api、Barbara、Chameleon、CS、Fox、Heron、Journey、MobyDick、Oris、papdev2、papplayg、Presale、Scorpion、spare2,被认为是Candiru关联用户。 登录日志里两个用户maya和mayaqa从多个IP登录,其中一个以色列IP 62.90.129.xxx管理着多个网站,这些网站的自签证书由“cupid-ca”颁发。Censys上共找到7张由cupid-ca签发的证书,涉及beachvibesnow[.]com、enjoymultiplecats[.]com、icecreamtester[.]com、pickarest[.]com、infoanalytics[.]live等域名。这些域名指向的IP在8443端口(无TLS)返回一个特征鲜明的speedtest页面。 匹配这个指纹的一个IP 52.174.65.77同时被域名archer.westeurope.cloudapp.azure[.]com和bd-mainserver.herokuapp[.]com指向。研究团队从合作伙伴处了解到,Bindecy有两个产品叫“Archer”和“Cupid”,“bd”在“bd-mainserver”里很可能就是Bindecy的缩写。部分域名登记在以色列软件公司Moveo Group名下。研究团队还识别出Bindecy运维人员分布在比利时、德国、挪威、葡萄牙、瑞典、新加坡和西班牙,以及一个在墨西哥和哥伦比亚使用Bindecy间谍软件的客户。 多个从globaldatapoints[.]com证书IP登录的Controlium用户被关联到Intelos。被动DNS数据显示该域名的一个子域名CNAME到AWS ELB,ELB名称里包含“intelos”字符串。另一个子域名短暂返回过名为“AD/HOC”的应用登录页,这被报道为Intelos的产品名。研究团队识别出至少15个与Intelos关联的Controlium用户,包括bear(比利时、以色列、新加坡、波兰登录)、JonG(比利时、捷克、希腊、法国、以色列、意大利、塞尔维亚登录)等。Intelos股东正是Eric Banoun,他同时也是Discover-Tech前董事。 
被动DNS证据:app-prod1-new.globaldatapoints.com通过CNAME指向AWS ELB,内部主机名internal-k8s-commonintelosprod中直接包含intelos字样 
该子域名返回的AD/HOC应用HTML源码,noscript提示“We're sorry but AD/HOC doesn't work properly without JavaScript enabled”,对应Intelos的AD/HOC产品 调查还牵出一个被研究团队称为DARK CARTOGRAPHER的威胁行为者。这个实体利用Discover-Tech的基础设施,在30多个国家的移动运营商网络中挖掘漏洞,把设备的广告ID和MSISDN(Mobile Station ISDN Number,也就是手机号)关联起来,实现大规模去匿名化。 手段之一是利用WebRTC IP Leak问题,暴露VPN和代理用户的真实IP。另一个手段是利用“零点击登录”技术中的HTTP header enrichment(HTTP请求头增强)。移动运营商会给经过网关的明文HTTP请求加上X-MSISDN等请求头,把用户手机号直接告诉网站。如果白名单匹配逻辑有bug,或者第三方增强服务有安全问题,任何加载了这些请求的网站都能拿到访客手机号。研究团队把问题归为五类,攻击者在北美、南美、欧洲、非洲和亚洲的30多个国家移动运营商中利用了这些问题,正在向相关公司披露。 更罕见的是,这个基础设施同时指向一家雇佣兵广告技术供应商和一家美国政府承包商。研究团队评估这个攻击者至少从2019年起就在利用MSISDN泄露问题,背后是多个雇佣兵广告技术公司。 
研究人员在CBC网站、Yahoo和Android数独App上实际看到的Discover-Tech广告 
被广泛使用的AliExpress/UGREEN “SALE”广告创意 研究人员在日常浏览中也被投了这些广告。在CBC网站上看到过“FREE GAMES”的横幅广告,在雅虎上看到过“Free Motion Shoes”的运动鞋广告,在Android的数独App底部看到过“MY IP INFO”的黑色横幅,还有一个霓虹灯管风格的“SALE”广告,画面里摆着UGREEN的扩展坞、无线耳机、手机壳和充电宝。 这些“SALE”广告打着AliExpress的旗号,落地页是一个联盟营销链接https://s.click.aliexpress[.]com/e/_c3U5aNwL。但数据库里所有广告主的花费记录几乎都是零,没有任何转化数据,大部分广告主直接指向Discover-Tech自己的域名或者关联实体。研究团队判断这些AliExpress广告很可能不是AliExpress买的,而是被借来当幌子。 Discover-Tech在mtrtb[.]com上跑了两个公开可读的Apache Druid数据库,druid.mtrtb[.]com存MyDSP平台的竞价数据,cn.druid.mtrtb[.]com存Sunteng相关的竞价数据。研究团队分析了2026年3月到6月间的数据,总计约37.7亿次竞价,赢得约4.42亿次展示,中标率11.7%。其中约76.7%的竞价发生在移动App里,23.3%在网页浏览器中。 按上游交易所分,Yandex占了67.4%,Google Ad Manager占24.74%,Vungle占7.24%,Google Retargeting占0.05%,Sunteng占0.03%。数据库里只有三个广告主,但有九种广告主域名组合。discover-tech绑定akedo.gg占37.31%,AliExpress绑定www.aliexpress.com占34.70%,MyIpInfo占12.65%,discover-tech绑定www.remindmewhere.app占9.61%,其余是discover-tech绑定aliexpress.com、myipinfo.io、s.taobao.com、king.com等。MyDSP在这四个月里只花了约109,091美元,而且advertiser_revenue、dsp_profit、margin和conversion字段几乎全部为零。 至少7.19亿次竞价(约19%)投的是带有NOAS script标签的广告。研究团队通过广告名称中是否包含“infi”(Infinite FIFO)、“NOAS”、“ppv2”、“pqv2”来识别这类广告,其中pqv2被推测用于测试/QA环境,ppv2用于生产。这些NOAS广告被投放到161个国家的IP地址。 按原始竞价量排名前十的国家是:也门4.57亿、巴基斯坦1.39亿、黑山9760万、巴西7610万、墨西哥3270万、我国3007万、白俄罗斯2512万、亚美尼亚2319万、捷克1910万、以色列1848万。按人均竞价次数排名前十的是:黑山156.68次、也门13.99次、亚美尼亚7.49次、拉脱维亚3.14次、塞舌尔3.13次、白俄罗斯2.77次、以色列1.80次、捷克1.75次、丹麦0.99次、阿塞拜疆0.97次。 展示这些带攻击者script标签广告的App多达75,373个(Android和iOS合计),网站120,768个。Android端展示量超过100万的包括MX Player和Lark Player,Viber超过70万,Snap VPN、Truecaller、VivaCut约50万。广告还出现在Yahoo Mail、Opera Mini、德国天气App Wetter Online、Duolingo、宗教App WeMuslim、健康App Period Calendar Period Tracker、游戏Bubble Shooter和Ludo STAR,以及家庭追踪App Location Share和约会App Badoo、Grindr里。iOS端总量较少,Viber在iOS上约20万次展示。 网站端展示量超过100万的有亚美尼亚新闻站mamul.am和塞尔维亚新闻站kurir.rs,超过10万的有黑山dan.co.me和vijesti.me、也门adngad.net、巴基斯坦whatmobile.com.pk。Weather.com约40万次。更大体量的广告还出现在yahoo.com、AccuWeather.com、tripadvisor.com、yandex.ru,以及丹麦bt.dk、波黑slobodna-bosna.ba、埃及almasryalyoum.com、哈萨克斯坦vesti.kz等新闻站。长尾网站从9gag.com、foxnews.com到bbc.com、cbc.ca、haaretz.co.il、nytimes.com无所不包。 最令人警觉的不是广告覆盖了多少普通人的设备,而是这些广告被展示在了哪些网络里。研究团队在NATO和联合国的网络中都发现了广告展示记录。 在欧洲,欧洲议会、欧盟委员会和欧盟理事会总秘书处的网络里都有记录。北欧集群尤其密集:挪威议会(Stortinget)、挪威数字局、挪威通信管理局、国家IT网络Statens IT、挪威警察局、严重犯罪调查部门Kripos,以及挪威北部靠近军事基地的多个市县网络(Alta、Harstad、Nordland)。瑞典方面则有武装部队、国家电网Svenska Kraftnat、国有电力公司Vattenfall、国家互联网交换中心Netnod、国防承包商Saab、沃尔沃集团、查尔姆斯理工大学、国家研究资助机构Verket for Innovationssystem、瑞典气象水文研究所。丹麦方面有国家铁路Banedanmark、国家邮政Post Danmark、国家研究教育网Forskningsnettet、数字基础设施公司KMD A/S、风电企业Vestas和Ørsted(沃旭能源)、Grundfos、丹麦银行和哥本哈根机场。 澳大利亚发现了电网、电力公司、大学和核研究机构网络中的展示记录,包括澳大利亚同步辐射中心和澳大利亚核科学技术组织。其他国家政府网络包括:亚美尼亚(中央选举委员会、中央银行、总理办公室)、捷克(财政部、外交部、内政部、国家网络安全局、捷克央行等)、以色列(卫生部、外交部、国防部、警察局、以色列银行、机场管理局)、意大利(意大利银行、议会众议院、国防部)。此外还在阿塞拜疆、不丹、巴西、印度尼西亚、科索沃、利比亚、马来西亚、墨西哥、黑山、巴基斯坦、俄罗斯、索马里、泰国、阿联酋、美属萨摩亚、乌拉圭的政府运营网络中发现了展示记录。亚美尼亚、印度尼西亚和墨西哥的选举监督机构网络中也有。 半导体行业的覆盖尤其密集,Intel网络中的展示量最大,其次是Nvidia、Sandisk、Texas Instruments、Broadcom、Micron、ARM,还有研究机构IMEC,以及Apple、Microsoft、Motorola。国防科技企业Raytheon(雷神)和Elbit Systems(埃尔比特系统),核电领域的Westinghouse(西屋电气)也在其中。Confiant的独立调查还发现这些广告出现在美国国防部、荷兰经济部、爱沙尼亚信息系统管理局(RIA)、西班牙数字转型部、亚美尼亚总理办公室、国际原子能机构(IAEA)和国际刑事法院的网络中。 除了移动App,Discover-Tech还通过网站浏览器部署追踪代码。研究团队发现两个版本的“Banner Tester”应用,分别发布在bt.myweb3id[.]io和bt.platc-tester[.]com上,用来生成和预览横幅广告标签。生成的标签包含广告创意、链接,以及一组指向不同URL的请求,包括NOAS地址、曝光追踪和点击追踪。 urlscan上的存档记录显示了实际部署案例:2025年5月访问俄罗斯文学网站livelib[.]ru时,Discover-Tech通过MyDSP和Yandex投递了Akedo广告,请求了noas.mtrtb[.]com和dtech.adtimizer[.]co;2025年8月访问nbcnews[.]com时,通过MyDSP和Google投递了Akedo广告,请求了tracker.mtrtb[.]com;2025年7月访问一个西班牙语星座网站时,通过Beeswax DSP和Google投递了MyIPInfo广告,请求了infinoas.mtrtb[.]com。 Discover-Tech还与Beeswax、Yandex和Microsoft的Xandr进行ID同步(cookie同步)。web浏览器不允许网站访问通用设备标识,ID同步就是各家广告平台不断交换用户标识,存在浏览器里,下次访问嵌入第三方追踪代码的网站时再取出来。myweb3id[.]io用于和Yandex同步,URL里的“an.yandex.ru/mapuid/discovertechis”表明双方有业务关系。tracookiepixel[.]xyz用于和Beeswax同步,The Guardian网站上的请求链包含“bee_sync_partners=dtech”参数。 另外还有一个tracking pixel代码,加载在myipinfo[.]io、cookiesurfer[.]com和discover-tech[.]io上,从js.tracookiepixel.xyz/myipinfo/c_tracking_pixel_gdpr.js和js.tracookiepixel.xyz/dt/c_tracking_pixel_gdpr_enhanced.js加载。这个pixel在Discover-Tech、Beeswax、Xandr和Yandex之间存储、检索和同步用户标识。当代码检测到访客在GDPR适用区域(基于IP地理定位),它会使用IAB Europe的TCF框架来处理三个供应商(Discover-Tech Ltd、Xandr Inc、BeeswaxIO Corporation)的“同意”信号。代码里还把ZUID映射为Xandr的用户标识,Controlium的附加功能里正好有“Detect Zuid”选项。 MyDSP和mtrtb[.]com域名在2020年由Discover-Tech Ltd取得。历史whois显示mydsp[.]io重定向到一个叫“Market Group”的公司,该公司在2015年推出了MyDSP。Discover-Tech 2020年3月成立后接管了这些域名。广告安全公司Confiant发现discover-tech[.]io和tekma-dmp[.]ai共用同一个Wix用户账户,tekma网站联系信息里提到“Chaia Services”(即Discover-Tech的那家BVI股东)和香港办公室。 Adtimizer Ltd是一家以色列公司,Discover-Tech使用dtech.adtimizer[.]co作为曝光和点击追踪URL。研究团队在一个讨论Beeswax的公开论坛帖子里发现了Oren Baranes用Discover-Tech邮箱发帖的记录,Baranes的LinkedIn profile自称移动广告专家。Controlium源码里也出现了Baranes的名字。 Akedo是一个移动游戏平台,管理层包括Discover-Tech的关键高管和股东Dekel Boni和Yaniv Basil。MyIPInfo网站hosting着Controlium相关代码,也是广告投放的主要落地页,网站上主要展示Akedo广告。Volasim公司提供RemindMeWhere等App,adv45和adv50.volasim[.]com上部署着Controlium平台。Volasim在回复中称Discover-Tech只是它的“外部广告供应商”之一,公司从未参与间谍软件活动。 Google主导美国和欧洲的数字广告生态,运营Ad Manager、AdSense、AdMob(卖方)和Google Ads、DV360(买方),其Authorized Buyers项目允许第三方广告商参与Google广告交易所的竞价。Yandex主导俄罗斯市场。Beeswax是Comcast旗下FreeWheel拥有的DSP,主打“bidder-as-a-service”,客户可以接入未经过滤的RTB数据流,使用自定义竞价算法,集成36个供应伙伴。 Eskimi是一家立陶宛的白标DSP,号称可以定向15亿用户、覆盖60个交易所,数据管理平台号称存储20亿个profile。Eskimi与位置数据经纪公司Redmob关系密切,两者共用同一个CEO,Redmob号称覆盖150个国家10亿人。之前美国参议员Ron Wyden收到Datastream Group的报告称Eskimi是36亿条位置数据记录的来源。Vungle(Liftoff旗下)的SDK嵌入15万个App,覆盖10亿用户,Vungle Exchange的规则写明禁止分发“malware, spyware”,但没有说明如何监控执行。Sunteng(舜飞科技/BiddingX/Bidex)号称每天处理500亿次竞价请求,覆盖1万个App。Xandr(原AppNexus,Microsoft Advertising)在2020年AT&T旗下时运营着一个连接50亿个标识的身份图谱。 所有这些平台都给Discover-Tech开了绿灯。Google从2020年到2026年把它列在Ad Manager Certified External Vendors、Ad Technology Partners和Ads Personalization Providers名单里。IAB Europe把它列在TCF全球供应商列表里。直到研究团队把发现通知各家公司后,2026年10月初Google才终止了Discover-Tech的广告交易所访问权限并部署Safe Browsing保护,IAB Europe把它从供应商列表移除,Beeswax从Buyer Cloud中删除,Vungle暂停其访问,Eskimi封停了账户和域名。Eskimi在回复中解释,Discover-Tech的标签“根据观看者的设备、IP和位置加载不同代码”,通过了第三方验证扫描,直到Eskimi自己的监控发现异常,其在Eskimi的花费仅几百美元,最后一次campaign在2026年8月6日停止。 AdFection最值得注意的不是某家公司做了恶,而是整条产业链的“合规”外衣。一家被Google认证、被IAB欧洲注册、在GDPR框架下合法处理用户同意的广告公司,同时在帮Candiru、Bindecy、Intelos这些雇佣兵间谍软件厂商把恶意代码精准投放到半岛电视台、NATO网络和各国政府机构里。 现有的广告行业审核机制依赖第三方审计和KYC(Know Your Customer,了解你的客户),但Discover-Tech的广告标签根据观看者身份返回不同代码,自动扫描根本发现不了。Eskimi事后也承认,这些标签“根据设备、IP和位置加载不同代码”,所以通过了验证。在线广告的RTB竞价系统天然把设备标识、位置和IP暴露给数千家第三方,而这些第三方的安全能力参差不齐。当一条定向广告可以成为零点击间谍软件的投递通道时,“我就看个新闻能有什么事”这个前提已经不成立了。 这次调查最值得注意的一点不是某家公司做了恶,而是整条产业链的“合规”外衣。一家被Google认证、被IAB欧洲注册、在GDPR框架下合法处理用户同意的广告公司,同时在帮Candiru、Bindecy、Intelos这些雇佣兵间谍软件厂商把恶意代码精准投放到半岛电视台、NATO网络和各国政府机构里。 Discover-Tech mass abuse、对隐私的侵犯以及对雇佣兵间谍软件攻击的便利化,暴露了在线广告系统的结构性缺陷。这套系统未能发现或阻止本次报告记录的滥用行为。 当一条广告从“想让你买东西”变成“能让你被监听”,在线广告就不再只是一个隐私问题,而是一个国家安全问题。 参考:《Exposing AdFection How Discover-Tech Turned Targeted Ads Into a Pipeline for Zero-Click Mercenary Spyware》
先搞懂:你看到的每条广告背后在发生什么


Discover-Tech:夹在间谍软件和广告生态之间的那座桥

Controlium:一个用来“投毒”的广告投放控制台











Controlium的两个安全漏洞

NOAS服务器:一次只返回一次代码的“投递员”
一条广告如何在几分钟内完成入侵

服务器指纹与样本分析
连加密密钥都摆在网页上的“操作安全”工具


追踪Candiru的售前团队


该LinkedIn页面的“Pages people also viewed”推荐栏:Integrity Labs、NSO Group、拼写错误的Integrity Lab、Cyber Security Community依次出现,成为归属Candiru的旁证
Bindecy:另一家雇佣兵黑客公司
Intelos:广告情报公司


DARK CARTOGRAPHER:大规模去匿名化
你在CBC、雅虎和数独App上见过的那种广告

















































































