移动安全 安全管理 应用案例 网络威胁 系统安全应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 应用安全 >

APP检测GSM伪基站方案摸索

时间:2013-12-30 10:56来源:TuZhiJiaMi企业信息安全专家 点击:
GSM伪基站假定用于垂钓,风险就会很大年夜。所以我就有一个设法,希看在APP层面检测伪基站。因为伪基站埋没且等闲勾当,假定不在手机端检测伪基站就不克不及及时发现异常。 当然APP与伪
Tags应用安全(1006)APP(19)伪基站(4)GSM(1)  

  GSM伪基站假定用于垂钓,风险就会很大年夜。所以我就有一个设法,希看在APP层面检测伪基站。因为伪基站埋没且等闲勾当,假定不在手机端检测伪基站就不克不及及时发现异常。

  当然APP与伪基站匹敌不在一个层级,但必然可以在APP层找到马脚——事实,伪基站要做到100%摹拟正常基站难度也是很大年夜的。好比经由过程OpenBTS、GNURadio和USRP实现的伪基站,默许都有良多多少独有特点。

  这就有点近似在利用层检测系统的rootkit,当然坚苦,但也并不是完全不成能。我记得有一个简略单纯的检测编制,本地看系统开放了哪些端口,然后长途扫描开放端口,两个数据不一致,那就是有rootkit了。

  可见,100%的虚拟实际是很是坚苦的。那么回到这个场景,伪基站的马脚在哪里?

  测验测验

  第一步很等闲想到从OS层面能拿到的基站信息进手,看看获得的信息可否有效甄别假基站。

  Android SDK里面供给了类android.telephony.gsm.GsmCellLocation来获得基站信息,可以获得Cid、Lac、Psc、hashCode,不外这些信息都很等闲随便捏造,看来得换个思路。

  接下来我们又想到,在伪基站里德律风和短信是不通的。当然伪基站可以实现劫持,可是我今朝见过的网上公开案例来看,伪基站都没有做这个事。拨打德律风这个把持太重,我们就在APP层发短信。假定收集信息改变后,短信不克不及正常发出就申明可能存在伪基站。

  发短信会触及到费用,感触感染不是很靠谱。不外我们想到给运营商号码发是免费的,好比移动就给10086,联通就给10001,电信的2G不是GSM,就先不管了。

  因而,我们假想的编制是一旦发现基站信息产生改变,APP就发送一条短信给运营商,运营商收到后会答复,我们就看一按时候内是不是有固定的答复内容,如无就觉得当前接进的是伪基站。

  不外后来考虑到收发短信权限太敏感,同时Android4.4及今后版本对APP的短信权限做了更严格地节制,所以这个方案我们也抛却了。

  最后我们聚焦到收集上。APP一旦发现基站信息产生改变,就调用GPRS获得IP,假定得不到IP,就觉得是伪基站——当然伪基站也能够弄个DHCP分派IP,假定产生匹敌,我们还可以继续从IP的范围、网关IP等信息再来深进匹敌。

  demo演示

  老端方,在Android上实现了一个demo,以下是测试结果图。后面这个demo会放到腾讯安然应急响应中间官网“尝试室”栏目,欢迎大年夜家存眷。

  一些设法

  这个别例还没有考虑周全。好比漫游到境外的环境;还有,今朝见到的伪基站都是发了短信后敏捷将用户踢出收集,用户则会从头回到正常收集,全部过程只有短短几分钟,所以实际检测结果还待测试。

  假定有安装量大年夜的手机终端软件,倒可以把手机周围的基站信息都上报到云端,假定伪基站呈现,或许便可和时发现。

  跋文

  仍然感激其他小火伴popey、HuangJacky和riusksk的工作。

  最后,一个成心思的设法是,假定这个“实际”世界是在一个“虚拟机”里运行的,你能从“利用层”找到马脚吗?

------分隔线----------------------------

推荐内容