导语:基于海量移动终端用户,近两年BAT3在国内搭建了强大的伪基站监控系统,在打击犯罪上贡献不少。这篇文章中,作者将介绍一套可手工搭建的伪基站监控系统,跟着来做你也能做成。

编者按:伪基站是个很烦人的东西。基于海量移动终端用户,近两年BAT3在国内搭建了强大的伪基站监控系统,在打击犯罪上贡献不少。这篇文章中,作者将介绍一套可手工搭建的伪基站监控系统,跟着来做你也能做成。

最近数年来,随着伪基站、黄貂鱼(IMSI-catcher)技术的快速发展,大家的手机很容易被这类设备信号劫持。它们可以精确定位手机、窃听通信、发送垃圾信息甚至远程植入木马。

stingray.png

典型的黄貂鱼设备

近期泄漏数据和公开请求记录显示,美国政府在巴尔的摩、密尔沃基、纽约、塔科马、阿纳海姆、图森等多个城市的执法行动中使用过黄貂鱼,放在机动车或者飞机上来识别和定位嫌疑犯。

这类强大的监控装置长期处于司法监督空白区域,为了提高透明度和问责制度,我们应该关心谁使用了、用了多久、何时使用等信息。

基于此,华盛顿大学研究团队成立了SeaGlass项目,专门用于观测城市内伪基站、黄貂鱼的活动情况。

SeaGlass硬件

以上为背景介绍,下边我们来看SeaGlass的硬件部分,主要是传感器。传感器收集所有基站信号数据并上传至服务器,它利用算法去识别可能存在的黄貂鱼信号。

传感器部件:

Raspberry Pi
蜂窝网络Modem
GPS
测试手机
移动热点,用于上传数据

rig_labeled.png

SeaGlass传感器都是现成零件,装在箱子里,放到车子的后备箱。当车子在城市内行驶时,传感器会不断收集基站数据并上传到云端。

prius_annotated_scaled.png

传感器比手机更有优势,它有专门的蜂窝扫描组件和外部天线,能接收到更多信息。虽然手机上装个应用也可以看到当前连接基站的有限信息,但传感器一次可以观测数百个无线频道,接收数十个广播属性。

全市收集

我们在西雅图、密尔沃基两个城市内进行尝试。与有驾照的志愿者合作,在两个月里收集了数百万次观测。

西雅图和密尔沃基的测量范围如下图,热图颜色表示每平方公里的测量次数,动图显示两个月内扫描到的所有基站位置。

西雅图

seattle_coverage_heatmap_city_bounds_cropped.png

seattle_zoom_cleaned.gif

密尔沃基

milwaukee_coverage_heatmap_city_bounds_cropped.png

milwaukee_zoom_cleaned.gif

每个基站都有不同位置的数百上千个测量结果,这让我们可以准确对潜在基站进行建模。我们在西雅图找到了超过1400个不同的基站,在密尔沃基找到了600多个。以下图为例,记录了西雅图Lake Union地区某个基站在两个月内周围信号的变动。(图片较大,需要稍微等候下)

milwaukee_zoom_cleaned.gif

红色为较强信号,蓝色为弱信号

通过对每个基站的典型行为进行建模,SeaGlass能找出存在异常行为的基站。

算法

黄貂鱼的监控行为非常隐蔽,但如果你有足够密度的城市蜂窝网络分布图视图,便能够检测到相关的异常行为。

我们设计了检测方法,可以在项目收集的数据上自动标记异常点。SeaGlass项目对这几个异常特征进行检测:

欺骗信号

为了以正常蜂窝网络相同的频率进行信号广播,黄貂鱼可以模拟合法基站的可识别属性(MCC、MNC、基站ID等)。黄貂鱼通常会使用更强的信号广播来劫持手机,并远离模拟的真基站,以避免干扰到真基站的运作。

为每个基站建立模型,显示出基站信号的位置分布,可以很容易识别出与正常信号分布不符的信号。如图所示,在基站7843的信号分布图上,较暗的颜色代表更强的信号,较大尺寸代表统计观测到的异常结果,请注意底部的大圆点。

mimic_result_7843_cropped.png

异常频道

为避免干扰基础网络,黄貂鱼假冒附近基站时,会在不同频率/频道上广播信号。大多数基站只在一个或两个频道传输信号,如果某个基站总是不停地换频道,那么很可能是附近有人在用黄貂鱼。

如图显示了某个基站ID在6个频道上进行广播,位置是西雅图南部的地方单位公民和移民服务(USCIS)大楼附近。可以比较的是,本次数据中没有发现有任何其它基站在超过3个频道上传输的,96%以上的基站仅在单个频道上传输。图中不同颜色代表不同频道,尺寸代表接收信号强度。请注意USCIS大楼附近的异常颜色区域。

USCIS_animation_hi_res_2_darker.gif

异常信号属性

每个基站都会广播自身的配置属性,以便手机调整信号、通报基站支持的功能。这些属性是独特的,但同一城市、同一运营商下基站的大部分属性都相同。SeaGlass项目在收集两个城市不同运营商广播信号时,会统计相关属性分布。

黄貂鱼必须广播自己是某运营商网络的基站,除非窃听者将它配置为完全仿照模式(所有属性和该网络基站一致),否则它是可识别的。

继续看图,如图显示了西雅图塔科马国际机场附近某个基站ID的观测数据,在两个月内它被观测到2千多次,属性信息非常稳定,和该网络下其它基站一致。但有一次信号异常,属性信息远超出西雅图网络内所有基站的预期范围,即图中红点,出现四种异常的BCCH属性(MSTXPWR, RXACCMIN, CRH, T3212)。

airport_anomaly.png

时间变化

与正常基站不同,黄貂鱼通常被设计为便携、短时间使用、对感兴趣目标的长期监听。某些情况下,当有临时需求时会需要移动真实基站去支援,比如体育赛事,不过这种情况不多见。因此,任何短时间使用传输的基站都是可疑的,应该需要调查。

在统计数据中,我们找到一些临时基站,但进一步调查显示,它们大概率只是日常维护中关闭的基站。

结果验证

研究团队正尝试通过一些二手信息源来验证结果,比如公开请求记录。SeaGlass检测到了许多可疑的信号,由于没有独立验证,现在还不能肯定说这些可疑信号就是黄貂鱼造成的。

技术细节

关于SeaGlass项目的细节,传感器、数据采集系统、检测算法和结果,大家可以在研究团队发布的论文中看到,该论文已于2017年强化隐私技术研讨会(Privacy Enhancing Technology Symposium 2017)上发表。

相关代码放在Github上。

源链接

Hacking more

...