“伪基站”即假基站,设备一般由主机和笔记本电脑或手机组成,通过短信群发器、短信发信机等相关设备能够搜取以其为中心、一定半径范围内的手机卡信息,利用2G移动通信的缺陷,通过伪装成运营商的基站,冒用他人手机号码强行向用户手机发送诈骗、广告推销等短信息。近两年BAT3在国内搭建了强大的伪基站监控系统,在打击犯罪上贡献不少。

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

IMSI-catcher

近期泄漏数据和公开请求记录显示,美国政府在巴尔的摩、密尔沃基、纽约、塔科马、阿纳海姆、图森等多个城市的执法行动中使用过黄貂鱼,放在机动车或者飞机上来识别和定位嫌疑犯。这类强大的监控装置长期处于司法监督空白区域,为了提高透明度和问责制度,我们应该关心谁使用了、用了多久、何时使用等信息。SeaGlass是由华盛顿大学的安全研究人员设计的系统,用于观测城市中的伪基站、黄貂鱼的活动情况。SeaGlass硬件以上为背景介绍,下边我们来看SeaGlass的硬件部分,主要是传感器。传感器收集所有基站信号数据并上传至服务器,它利用算法去识别可能存在的黄貂鱼信号。

传感器部件

  • 1.Raspberry Pi电脑
  • 2.蜂窝调制解调器扫描细胞频谱
  • 3.全球定位系统
  • 4.诱饵手机
  • 5.移动热点上传数据

传感器部件

SeaGlass传感器采用现成的零件,装在箱子里,并安装到车子的后备箱。当车子在城市行驶时,传感器会不断收集和上传发射塔信号数据到云端。

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

全市收集

我们在西雅图、密尔沃基两个城市内进行尝试,在两个月内收集了数百万次观测。

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

西雅图(图像放大到市中心)

密尔沃基(图像放大到市中心)

每个基站都有不同位置的数百或数千个测量结果,这让我们可以准确地对潜在基站进行建模。在西雅图共找到了超过1400个不同的基站,在密尔沃基找到了600多个。

西雅图Lake Union地区某个基站在两个月内周围信号的变动如下所示:

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

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

算法

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

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

欺骗信号

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

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

异常频道

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

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

异常信号属性

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

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

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

时间变化

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

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

结果验证

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

技术细节

关于SeaGlass传感器的详细信息,传感器、数据采集系统、检测算法和结果,大家可以在研究团队发布的论文中看到。

相关代码放在Github上。

【参考】https://seaglass.cs.washington.edu/

SeaGlass:手工搭建伪基站监控系统的更多相关文章

  1. 使用monit搭建一个监控系统

    上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情.当然了主要是监控异常,因为我们的产品属于服务器类型,很多进程都daemon,要不停的运行.我们搭建监控目的不过是出现问题能够及时的知 ...

  2. 搭建前端监控系统(四)Js截图上报篇

    ===================================================================== 前端监控系统: DEMO地址  GIT代码仓库地址 ==== ...

  3. 搭建前端监控系统(三)NodeJs服务器部署篇

    ===================================================================== 监控系统预览地址: DEMO地址    GIT代码仓库地址 ...

  4. 搭建前端监控系统(二)JS错误监控篇

    ===================================================================== 前端性能监控系统: DEMO地址    GIT代码仓库地址 ...

  5. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql

  6. 从零开始搭建前端监控系统(三)——实现控制iframe前进后退

    前言 本系列文章旨在讲解如何从零开始搭建前端监控系统. 项目已经开源 项目地址: https://github.com/bombayjs/bombayjs (web sdk) https://gith ...

  7. 搭建前端监控系统(六)JS截屏和录屏篇

    怎样定位前端线上问题,一直以来,都是很头疼的问题,因为它发生于用户的一系列操作之后.错误的原因可能源于机型,网络环境,接口请求,复杂的操作行为等等,在我们想要去解决的时候很难复现出来,自然也就无法解决 ...

  8. 搭建前端监控系统(五)Nodejs怎么搭建消息队列

    怎样定位前端线上问题,一直以来,都是很头疼的问题,因为它发生于用户的一系列操作之后.错误的原因可能源于机型,网络环境,接口请求,复杂的操作行为等等,在我们想要去解决的时候很难复现出来,自然也就无法解决 ...

  9. 搭建zabbix监控系统详解

    搭建zabbix监控系统详解 文:warren   博文大纲:一.前言 二.zabbix监控架构三.搭建Zabbix监控服务器四.搭建过程中遇到有些服务无法正常启动的解决办法 一.前言 : 要想实时的 ...

随机推荐

  1. 位(bit)、字节(byte)、字

    1.位(bit)来自英文bit,音译为“比特”,表示二进制位.位是计算机内部数据储存的最小单位,11010100是一个8位二进制数.一个二进制位只可以表示0和1两种状态(21):两个二进制位可以表示0 ...

  2. css--字体和文本样式

    文字样式属性 字体:font-family 文字大小:font-size 文字颜色:font-color 文字粗细:font-weight 文字样式:font-style font-family字体属 ...

  3. freemarker特殊字符输出

    期望输出: #{fefefefwewrerwerwrrrre}${fffqqqwwwwwwwwwwwwwwww} 但是以上解析ftl时候会报错!!!!!!!!!!!! 解决办法: 方法1:使用${r& ...

  4. sqlserver生成脚本

    1.只生成数据 2.只生成架构 3.生成数据和架构

  5. image的resizeMode属性

    Image组件必须在样式中声明图片的宽和高.如果没有声明,则图片将不会被呈现在界面上.    我们一般将Image定义的宽和高乘以当前运行环境的像素密度称为Image的实际宽高. 当Image的实际宽 ...

  6. 剑指Offer整理笔记

    说在前面,本篇的目的是为了学习剑指offer,以及博客园的排版功能,并将文章排版得整洁得体. 梵蒂冈梵蒂冈地方官方

  7. markdown pad激活

    <iframe src="></iframe> ---恢复内容开始--- 注册码 Soar360@live.com GBPduHjWfJU1mZqcPM3BikjYK ...

  8. js event loop事件循环

    浏览器环境 以下两段代码是等价的.req对事件的回调设置,实际上就是当前主线程任务队列的任务. var req = new XMLHttpRequest(); req.open('GET', url) ...

  9. Servlet+JSP教程之:第一个Web程序

    我们知道当浏览器发送请求给服务器后,服务器会调用并执行对应的逻辑代码进行请求处理.逻辑代 码是由程序员自己编写然后放进服务器进行运行,其实就是Servlet程序. 第一个Web程序: 开发工具: My ...

  10. 安装完Centos 7后的一些处理

    1.安装dkms:dkms-2.2.0.3-31.1.noarch.rpm 2.安装显卡驱动:amdgpu-pro-18.10-572953 3.启动图形界面使用init 5 不能使用startx