一种伪基站运动轨迹的识别方法
技术领域
本发明涉及一种伪基站运动轨迹的识别方法,属于信息技术领域。
背景技术
伪基站是指没有通过国家无线电发射设备型号核准,未取得进网许可的一种非法的无线电设备,不法分子用于冒充基站吸附周围基站移动台,获取IMSI、IMEI等信息后,向用户群发诈骗、骚扰类短消息。其存在的物理原因是,GSM协议通信采用单向鉴权,即仅基站对手机身份进行验证,但手机不会对基站的真伪进行验证。若伪基站设置大功率的无线信号发射以及更优的小区重选参数,这就使得当移动台进入伪基站覆盖区域时,很容易切换到伪基站小区。
由于伪基站设备经常被不法分子藏于车辆或背包中,在短时间内随车辆、人员的移动而移动,不会长时间停留于某地,因此在实际应用中,往往需要投放大量人力去跟踪伪基站的运动情况,且轨迹跟踪的准确度较低。
发明内容
有鉴于此,本发明的目的是提供一种伪基站运动轨迹的识别方法,能通过识别受伪基站设备影响而导致信令表现异常的基站,实现伪基站运动轨迹的准确跟踪。
为了达到上述目的,本发明提供了一种伪基站运动轨迹的识别方法,包括有:
步骤一、从数据库中提取一段时长内的所有切换事件信令,将切换事件信令按不同基站分组,计算每个基站在一定时间周期内的切换事件指标,所述切换事件指标包括但不限于:切出失败率、切入频次和切出频次,并据此识别出疑似受伪基站设备影响的异常基站,将识别出的异常基站信息保存在异常基站识别记录表中,同时,构建伪基站信息表,所述伪基站信息表用于保存已识别运动轨迹的疑似受伪基站设备影响的真实基站信息,伪基站信息表中记录的基站信息包括但不限于:流水号、位置区码、小区识别码、发现时间、经纬度、轨迹编号;
步骤二、分别计算异常基站识别记录表中每个异常基站和伪基站信息表中每个基站之间的位置距离和发现时间差,并据此获得异常基站识别记录表中每个异常基站的轨迹编号,然后将获得轨迹编号的异常基站信息写入伪基站信息表中;
步骤三、根据伪基站信息表中所有基站的位置、发现时间和轨迹编号,获得每个伪基站的运动轨迹。
与现有技术相比,本发明的有益效果是:本发明通过检测每个基站的切换事件信令是否发生异常来识别受伪基站设备影响的异常基站,然后计算每个异常基站的轨迹编号,最后根据基站的位置、发现时间和轨迹编号,获得每个伪基站的运动轨迹,可以用于对伪基站的行进路线进行定位和预测,避免了投放大量人力去跟踪伪基站的运动情况,同时提高了定位和追踪的精准性;本发明还可以进一步通过每个基站在不同时间点、或者多个基站在同一时间点的指标数据,来识别疑似受伪基站设备影响的异常基站,实际操作中可以根据情况选择其一、或融合两个方法来提高识别结果的置信度。
附图说明
图1是本发明一种伪基站运动轨迹的识别方法的流程图。
图2是基于每个基站在不同时间点的指标数据来识别出疑似受伪基站设备影响的异常基站的具体操作流程图。
图3是基于多个基站在同一时间点的指标数据来识别出疑似受伪基站设备影响的异常基站的具体操作流程图。
图4是图1步骤二的具体操作流程图。
图5是以轨迹判断矩阵GP的第a行元素为例,图4步骤26的具体操作流程图。
图6是图5步骤263中,将所有异常基站划分成多个异常基站社团的具体操作流程图。
图7是图5步骤263中,根据第a个异常基站所属异常基站社团的其他异常基站的轨迹编号,确定第a个异常基站的轨迹编号的具体操作流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
移动台连接到伪基站后,由于实际上伪基站并没有与电信核心网络通联,故伪基站事件会导致周围基站小区信令表现异常。切换事件信令中的异常主要体现为:伪基站开启至关闭期间,周围基站小区切入频次削减,而切出频次增加,然大量切出失败;伪基站关闭后至伪基站影响完全结束的该期间,切入频次增加,且该值远大于伪基站关闭前的切入频次。
如图1所示,本发明一种伪基站运动轨迹的识别方法,包括有:
步骤一、从数据库中提取一段时长内的所有切换事件信令,将切换事件信令按不同基站分组,计算每个基站在一定时间周期内的切换事件指标,所述切换事件指标可以包括但不限于:切出失败率、切入频次和切出频次,并据此识别出疑似受伪基站设备影响的异常基站,将识别出的异常基站信息保存在异常基站识别记录表中,同时,构建伪基站信息表,所述伪基站信息表用于保存已识别运动轨迹的疑似受伪基站设备影响的真实基站信息,伪基站信息表中记录的基站信息包括但不限于:流水号、位置区码、小区识别码、发现时间、运营商编号、经纬度、轨迹编号等;
步骤二、分别计算异常基站识别记录表中每个异常基站和伪基站信息表中每个基站之间的位置距离和发现时间差,并据此获得异常基站识别记录表中每个异常基站的轨迹编号,然后将获得轨迹编号的异常基站信息写入伪基站信息表中;
步骤三、根据伪基站信息表中所有基站的位置、发现时间和轨迹编号,获得每个伪基站的运动轨迹,从而对伪基站的行进路线进行定位和预测,避免了投放大量人力去跟踪伪基站的运动情况,同时提高了定位和追踪的精准性。
步骤一中,本申请可以通过每个基站在不同时间点、或者多个基站在同一时间点的指标数据,来识别疑似受伪基站设备影响的异常基站,从而定位伪基站的活动区域,实际操作中可以根据情况选择其一、或融合两个方法来提高识别结果的置信度。其中:
1、如图2所示,基于每个基站在不同时间点的指标数据来识别出疑似受伪基站设备影响的异常基站,进一步包括有:
步骤A1、选取检测时间点,从数据库中提取一段以检测时间点为结束点的时长内的所有切换事件信令,并对切换事件信令按不同基站分组,设定一定的时间周期T,将所提取时长划分成多个连续的历史时间周期,然后计算每个基站在检测时间点之前的每个连续的历史时间周期内的切换事件指标,从而构成每个基站的每个切换事件指标的第一时间序列:Xij={xij 1,xij 2,…,xij k},其中,Xij是第i个基站的第j个切换事件指标的第一时间序列,xij 1、xij 2、…、xij k分别是第i个基站在检测时间点之前的各个连续历史时间周期内的第j个切换事件指标,k是一个大于30的整数,其值可以根据实际业务需要而设定,k大于30时所抽取的样本符合中心极限定理;
步骤A2、将检测时间点前移24小时获得对比时间点,从数据库中提取一段以对比时间点为结束点、且与步骤A1相同时长内的所有切换事件信令,并对切换事件信令按不同基站分组,按照时间周期T,将所提取时长再划分成多个连续的历史时间周期,然后计算每个基站在对比时间点之前的每个连续的历史时间周期内的切换事件指标,从而构成每个基站的每个切换事件指标的第二时间序列:Yij={yij 1,yij 2,…,yij k},其中,Yij是第i个基站的第j个切换事件指标的第二时间序列,yij 1、yij 2、…、yij k分别是第i个基站在对比时间点之前的各个连续历史时间周期内的第j个切换事件指标;
步骤A3、根据每个基站的每个切换事件指标的第一时间序列、第二时间序列中的对应历史时间周期内的切换事件指标的差值,构建每个基站的每个切换事件指标的第三时间序列:Dij={dij 1,dij 2,…,dij k},其中,Dij是第i个基站的第j个切换事件指标的第三时间序列,dij z=xij z-yij z,z∈[1,k];
考虑到午休饭点、上下班等固定人流量变动事件可能使切换事件指标表现出一种随时间重复的周期性特征,为了消除这种波动,所以采用第一时间序列、第二时间序列中对应切换事件指标的差值来构造第三时间序列;
步骤A4、构建、并训练对切换事件指标的时序预测模型,所述时序预测模型的输入是每个基站的每个切换事件指标的第三时间序列,输出是每个基站的每个切换事件指标在检测时间点的预测值;
所述时序预测模型可以采用但不限于WMA模型等,当采用WMA模型时,其中,pij是WMA模型输出的第i个基站的第j个切换事件指标在检测时间点的预测值,wz是第i个基站的第j个切换事件指标的权重,
步骤A5、判断每个基站的所有切换事件指标在检测时间点的实际值是否均在其预测值的置信区间内?如果是,则表示基站是正常基站;如果否,则表示基站是疑似受伪基站设备影响的异常基站。
若某个基站的所有切换事件指标的时序均表现异常,则表示该基站为异常基站。当采用WMA模型时,可采取置信水平95%,预测值的置信区间为:[pij-1.96*SE,pij+1.96*SE],其中,标准误差标准差
2、如图3所示,基于多个基站在同一时间点的指标数据来识别出疑似受伪基站设备影响的异常基站,可以进一步包括有:
步骤B1、从数据库中提取一定时间周期内的切换事件信令,并对切换事件信令按不同基站分组,统计每个基站在一定时间周期内的切换事件指标;
步骤B2、构建、并训练第一次异常点检测模型,所述第一次异常点检测模型的输入是多个基站的所有切换事件指标,输出是每个基站的疑似异常概率,其中,第一次异常点检测模型可以采用Iforest模型(即孤立森林模型,Isolation Forest);
步骤B3、依次判断每个基站的疑似异常概率是否大于异常概率阈值,疑似异常概率大于异常概率阈值的基站即是疑似异常基站,将疑似异常基站写入第一次异常判别基站列表中;
步骤B4、逐一从第一次异常判别基站列表中提取每个疑似异常基站,确定每个疑似异常基站的邻近区域,然后挑选出处于每个疑似异常基站的邻近区域内的所有其他基站;
可以分别以每个疑似异常基站的经纬度为中心,找到各自的邻近区域,并找出处于邻近区域中的所有其他基站;
步骤B5、构建、并训练第二次异常点检测模型,第二次异常点检测模型的输入是第一次异常判别基站列表中的每个疑似异常基站和处于其邻近区域内的所有其他基站的切换事件指标,输出是疑似异常基站是异常基站的概率,并据此识别出疑似受伪基站设备影响的异常基站。所述第二次异常点检测模型可以采用适用于小样本的模型,例如一类支持向量机。
本发明先对全量基站进行第一次异常点判别,对于检测为疑似异常点的基站,再抽取其邻近基站,进行第二次判别,从而对一次判别结果进行修正。在第一次异常点判别时不对全量基站进行邻近基站比较的原因在于:假设本期全量基站有10万个,每个基站与其邻近基站构建异常点检测模型,需建模10万次,计算量大、浪费服务器资源且工程实现上存在困难,导致无法及时获得伪基站行为动态。在第二次异常点判别时与邻近基站相比原因在于:不同区域人口密度水平不同,移动台数量水平不同,乡村和城市(或者城郊和市中心)的移动台密度明显有差异,所以本发明可以分区域评估每个基站的指标数值水平。
如图4所示,步骤二还可以进一步包括有:
步骤21、判断异常基站识别记录表中是否有记录?如果是,则继续下一步;如果否,则本流程结束;
步骤22、判断本次执行是否是第一次执行?如果是,则将异常基站识别记录表中的第一条记录的轨迹编号设为1,然后将该条记录写入伪基站信息表中,同时将该条记录从异常基站识别记录表中删除,再转向步骤21;如果否,则继续下一步;
步骤23、构建伪基站轨迹跟踪表,将伪基站信息表中所有记录按轨迹编号进行分组,然后从每个分组中挑选一条发现时间最晚的记录写入伪基站轨迹跟踪表中,同时,从伪基站信息表的所有记录中挑选出轨迹编号的最大值,记为trail_id_max;
步骤24、计算异常基站识别记录表中每条记录对应的异常基站和伪基站轨迹跟踪表中每条记录对应的基站之间的发现时间差和位置距离,从而构建一个n*m维的轨迹跟踪矩阵G,其中,n是异常基站识别记录表中的所有记录数(即所有异常基站数),m是伪基站轨迹跟踪表中的所有记录数(即所有基站数),G中的每个元素均是一个三元组:gab=(tab,dab,streamnumb),其中gab是G的第a行第b列的元素,分别对应于异常基站识别记录表中第a条记录的异常基站(即第a个异常基站)和伪基站轨迹跟踪表中第b条记录的基站(即第b个基站),表示异常基站识别记录表中的第a个异常基站和伪基站轨迹跟踪表中的第b个基站的关联关系,tab是第a个异常基站和第b个基站的发现时间差值,dab是第a个异常基站和第b个基站的位置距离,streamnumb是伪基站轨迹跟踪表中第b条记录的流水号;
步骤25、根据轨迹跟踪矩阵G的每个元素的发现时间差值、位置距离,构建一个n*m维的轨迹判断矩阵GP,GP中的每个元素值是1或0;
步骤26、计算轨迹判断矩阵GP的每行元素中值为1的元素数,获取每行元素所对应的异常基站识别记录表中的异常基站,然后确定该对应异常基站的轨迹编号,最后将该对应异常基站信息写入伪基站信息表中,同时将该对应异常基站的记录从异常基站识别记录表中删除。
以轨迹判断矩阵GP的第a行第b列元素gpab为例,步骤25中,gpab的值的设置方法可以如下:
步骤251、从轨迹跟踪矩阵G中提取元素gab;
步骤252、计算元素gab的时差判定值:TQab=30-tab,单位:分钟;
步骤253、计算元素gab的距离差判定值:DQab=tab×V-dab,其中,V是装备伪基站的车辆车速均值,其值可以根据实际业务需要而设定,例如V=0.67千米/分钟;
步骤254、判断TQab和DQab是否均大于或等于0?如果是,则将轨迹判断矩阵GP中的第a行第b列元素gpab设为1;如果否,则将gpab设为0。
下面以轨迹判断矩阵GP的第a行元素为例,对步骤26进行详细说明,轨迹判断矩阵GP的第a行元素所对应的异常基站识别记录表中的异常基站是第a个异常基站,如图5所示,步骤26可以进一步包括有:
步骤261、判断GP的第a行元素中值为1的元素数是否是1?如果是,则获取值为1的元素所对应的伪基站轨迹跟踪表中的基站,然后将第a个异常基站的轨迹编号设为值为1的元素所对应的伪基站轨迹跟踪表中的基站的轨迹编号,本流程结束;如果否,则继续下一步;
步骤262、判断GP的第a行元素中值为1的元素数是否大于1?如果是,则获取第a行元素中所有值为1的元素所对应的伪基站轨迹跟踪表中的所有基站,按照第a个异常基站和所获取的每个基站之间的位置距离、发现时间差值和流水号升序的顺序,对所有获取的基站进行排序,然后将第a个异常基站的轨迹编号设为排在第一位置的基站的轨迹编号,本流程结束;如果否,则继续下一步;
步骤263、计算异常基站识别记录表中的不同异常基站之间的位置距离,并根据位置距离将所有异常基站划分成多个异常基站社团,然后根据第a个异常基站所属异常基站社团的其他异常基站的轨迹编号,确定第a个异常基站的轨迹编号。
如图6所示,步骤263中,将所有异常基站划分成多个异常基站社团,可以进一步包括有:
步骤C1、构建一个n*n维的异常基站距离矩阵YJ,其中,YJ的第a行第b列的元素yjab分别对应于异常基站识别记录表中第a、b条记录的异常基站(即第a、b个异常基站),其值是第a个异常基站和第b个异常基站之间的位置距离;
步骤C2、将b设为1;
步骤C3、判断b是否大于n?如果是,则本流程结束;如果否,则从YJ中读取第b列元素,然后继续下一步;
步骤C4、判断第b个异常基站是否有其归属的异常基站社团?如果是,则将b加1,然后转向步骤C3;如果否,则继续下一步;
步骤C5、判断第b列元素中是否存在有值小于或等于距离阈值的元素?如果是,则继续下一步;如果否,则新建一个异常基站社团,并将第b个异常基站加入到新建的异常基站社团中,将b加1,然后转向步骤C3;
步骤C6、判断该值小于或等于距离阈值的元素对应的异常基站是否有其归属的异常基站社团?如果是,则将第b个异常基站也加入到所述归属的异常基站社团中,将b加1,然后转向步骤C3;如果否,则新建一个异常基站社团,将第b个异常基站和值小于或等于距离阈值的元素对应的所有异常基站都加入到新建的异常基站社团中,将b加1,然后转向步骤C3。
如图7所示,步骤263中,根据第a个异常基站所属异常基站社团的其他异常基站的轨迹编号,确定第a个异常基站的轨迹编号,还可以进一步包括有:
步骤D1、判断第a个异常基站所属的异常基站社团的其他异常基站是否有轨迹编号?如果是,则继续下一步;如果否,则将第a个异常基站的轨迹编号设为trail_id_max+1,并将trail_id_max更新为trail_id_max+1,本流程结束;
步骤D2、判断第a个异常基站所属的异常基站社团中有轨迹编号的其他异常基站数是否大于1?如果是,则继续下一步;如果否,则将第a个异常基站的轨迹编号设为所属异常基站社团中的其他异常基站的轨迹编号,本流程结束;
步骤D3、按照第a个异常基站和有轨迹编号的其他异常基站之间的位置距离,对所有其他异常基站进行排序,将第a个异常基站的轨迹编号设为位置距离最小的其他异常基站的轨迹编号。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。