蘆天亮,涂君奧,杜彥輝,劉穎卿
(1. 中國(guó)人民公安大學(xué) 警務(wù)信息工程與網(wǎng)絡(luò)安全學(xué)院,北京 100038;2. 中國(guó)移動(dòng)通信有限公司研究院,北京 100053)
電信網(wǎng)絡(luò)詐騙是造成用戶經(jīng)濟(jì)損失的主要犯罪形式之一,雖然公安部門將其作為偵破打擊的重點(diǎn),但是仍然呈現(xiàn)高發(fā)態(tài)勢(shì)。近些年,電信網(wǎng)絡(luò)詐騙手段不斷翻新,改號(hào)軟件及AI 語(yǔ)音合成[1]等技術(shù)大大提高了詐騙的成功率。電信網(wǎng)絡(luò)詐騙具有非接觸、跨地域、資金轉(zhuǎn)移快、犯罪鏈條分工明確等特點(diǎn)[2],這也加大了公安機(jī)關(guān)偵查取證及跨地域甚至跨境抓捕的難度,因此相比其他類型案件,電信網(wǎng)絡(luò)詐騙案件的破案成功率偏低。根據(jù)公安部 “凈網(wǎng)2019” 行動(dòng)通報(bào)數(shù)據(jù),截至2019 年10 月31 日,共偵破網(wǎng)絡(luò)詐騙類案件21 933起[3]。目前,全國(guó)多地出現(xiàn)利用新冠肺炎疫情實(shí)施電信網(wǎng)絡(luò)詐騙的案件,常見(jiàn)手段包括假借疫情募捐、售賣口罩、冒充醫(yī)療機(jī)構(gòu)及航空鐵路人員等,截至2020年4 月11 日,全國(guó)公安機(jī)關(guān)網(wǎng)安部門共抓獲利用疫情實(shí)施網(wǎng)絡(luò)詐騙嫌疑人6 329 名[4]。
公安機(jī)關(guān)掌握著龐大的數(shù)據(jù)資源,大數(shù)據(jù)技術(shù)能夠充分發(fā)揮數(shù)據(jù)的潛在價(jià)值[5-6]。美國(guó)早在2008 年便開(kāi)展了預(yù)測(cè)警務(wù)的探索,應(yīng)用大數(shù)據(jù)技術(shù)進(jìn)行犯罪情報(bào)分析,提高預(yù)測(cè)和防范犯罪的能力[7-8]。
2018 年,全國(guó)公安廳局長(zhǎng)會(huì)議指出,要大力實(shí)施公安大數(shù)據(jù)戰(zhàn)略,著力打造數(shù)據(jù)警務(wù)、建設(shè)智慧公安[9]。2019 年,全國(guó)公安工作會(huì)議指出要把大數(shù)據(jù)作為推動(dòng)公安工作創(chuàng)新發(fā)展的大引擎[10]。近年來(lái),全國(guó)各地公安機(jī)關(guān)在推進(jìn)大數(shù)據(jù)系統(tǒng)建設(shè)和應(yīng)用方面做了大量工作,利用數(shù)據(jù)驅(qū)動(dòng)的偵查模式,實(shí)現(xiàn)了對(duì)各類違法犯罪活動(dòng)的快速精準(zhǔn)打擊。
隨著大數(shù)據(jù)技術(shù)在公安工作中發(fā)揮越來(lái)越重要的作用,全國(guó)各地公安院校紛紛加強(qiáng)學(xué)生的大數(shù)據(jù)知識(shí)的學(xué)習(xí)和技能培養(yǎng),訓(xùn)練學(xué)生掌握大數(shù)據(jù)環(huán)境搭建、大數(shù)據(jù)分析和建模、數(shù)據(jù)爬取以及可視化等能力[11]。為了進(jìn)一步推動(dòng)公安院校大數(shù)據(jù)課程體系建設(shè),提升公安院校學(xué)生在大數(shù)據(jù)方向的技能和職業(yè)素養(yǎng),各類大數(shù)據(jù)培訓(xùn)和技能競(jìng)賽相繼開(kāi)展,2019 年10 月,首屆 “智警杯” 全國(guó)公安院校大學(xué)生大數(shù)據(jù)技能競(jìng)賽舉行,36 支隊(duì)伍參加了決賽。
公安院校通過(guò)開(kāi)設(shè)大數(shù)據(jù)相關(guān)課程,使學(xué)生掌握大數(shù)據(jù)基礎(chǔ)知識(shí)與核心技術(shù),尤其是通過(guò)實(shí)驗(yàn)實(shí)訓(xùn)等方式加強(qiáng)學(xué)生對(duì)案件數(shù)據(jù)分析的能力[12-13]。利用大數(shù)據(jù)技術(shù)對(duì)電信網(wǎng)絡(luò)詐騙案件進(jìn)行偵查和防控是當(dāng)前研究的熱點(diǎn)也是公安工作的重要內(nèi)容[14],因此,為了吸引學(xué)生興趣和貼近公安實(shí)戰(zhàn),本文選擇了對(duì)電信網(wǎng)絡(luò)詐騙案件數(shù)據(jù)進(jìn)行分析,主要使學(xué)生掌握大數(shù)據(jù)集群環(huán)境搭建和數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建的過(guò)程,以及對(duì)數(shù)據(jù)進(jìn)行處理分析和可視化展示的能力。
基于大數(shù)據(jù)的電信網(wǎng)絡(luò)詐騙案件分析流程如圖1所示。
圖1 實(shí)驗(yàn)總體流程
1)搭建大數(shù)據(jù)環(huán)境。
搭建包含1 個(gè)主節(jié)點(diǎn)和2 個(gè)從節(jié)點(diǎn)的大數(shù)據(jù)集群,完成關(guān)閉防火墻、免密登錄、時(shí)間同步等配置,安裝并開(kāi)啟Zookeeper、Hadoop、Spark 等服務(wù);搭建數(shù)據(jù)倉(cāng)庫(kù),包括安裝并配置MySQL、Hive 等。
2)數(shù)據(jù)導(dǎo)入和數(shù)據(jù)分析。
在Hive 中建立與電信網(wǎng)絡(luò)詐騙案件相對(duì)應(yīng)的表,將文件中的案件數(shù)據(jù)導(dǎo)入數(shù)據(jù)表中,然后對(duì)數(shù)據(jù)進(jìn)行分析。
3)數(shù)據(jù)可視化。
利用ECharts 對(duì)Hive 的數(shù)據(jù)分析結(jié)果進(jìn)行可視化展示,可以通過(guò)繪制的餅圖、折線圖、柱狀圖等直觀展示案件類別比例、案件損失程度頻次及破案率對(duì)比等信息。
搭建擁有3 個(gè)節(jié)點(diǎn)的大數(shù)據(jù)集群實(shí)驗(yàn)環(huán)境,如圖2所示。
圖2 大數(shù)據(jù)集群
主節(jié)點(diǎn) master:充當(dāng) NTP 服務(wù)器,Zookeeper的 follower 以 及 Hadoop 集 群 的 NameNode 、ResourceManager 和SecondaryNameNode。
從節(jié)點(diǎn)slave1:充當(dāng)NTP 客戶端,Zookeeper 的leader 以及Hadoop 集群的DataNode 和NodeManager。
從節(jié)點(diǎn) slave2:充當(dāng) NTP 客戶端,Zookeeper的 follower 以及 Hadoop 集群的 DataNode 和NodeManager。
首先,集群所用的節(jié)點(diǎn)都位于同一個(gè)局域網(wǎng)并關(guān)閉各個(gè)機(jī)器的防火墻;其次,配置host 文件,設(shè)置master、slave1 和slave2 的IP 地址;再次,為了保證數(shù)據(jù)的同時(shí)性和同步性,設(shè)定master 為NTP 服務(wù)器,slave1 和slave2 為NTP 客戶端,以此讓時(shí)間同步更為精確;最后,從節(jié)點(diǎn)上配置SSH 無(wú)密碼登錄。
然后,完成下面軟件的安裝與配置。
1)安裝JDK。
把JDK 解壓到/usr/lib/java 目錄,命令如下:
sudo tar -zxvf /opt/soft/jdk-8u171-linux-x64.tar.gz-C /usr/java
配置并生效JAVA_HOME 等環(huán)境變量。
2)安裝并啟動(dòng)Zookeeper。
把Zookeeper 解壓到/usr/zookeeper 目錄,命令如下:
sudo tar -zxvf /opt/soft/zookeeper-3.4.10.tar.gz -C/usr/zookeeper/
配置并生效ZOOKEEPER_HOME 等環(huán)境變量,修改zoo.cfg 和myid,其中zoo.cfg 配置如下:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdat alog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
3 個(gè)節(jié)點(diǎn)均啟動(dòng)Zookeeper,執(zhí)行如下命令:
bin/zkServer.sh start
3)安裝并啟動(dòng)Hadoop。
把Hadoop 解壓到/usr/hadoop 目錄,命令如下:
sudo tar -zxvf /opt/soft/ hadoop-2.7.3.tar.gz -C/usr/hadoop/
配置并生效HADOOP_HOME 等環(huán)境變量,修改core-site.xml、hadoop-env.sh、mapred-site.xml、hdfs-site.xml、yarn-site.xml 等文件[15],其中core-site.xml 配置如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
啟動(dòng)Hadoop 之前先進(jìn)行格式化,在master 上執(zhí)行格式化命令:
hadoop namenode -format
啟動(dòng)Hadoop,在master 上執(zhí)行命令:
/usr/hadoop/hadoop-2.7.3/sbin/start-all.sh
4)安裝Scala。
把Scala 解壓到/usr/scala 目錄,命令如下:
sudo tar -zxvf /opt/soft/scala-2.11.12.tgz -C /usr/scala/
配置并生效SCALA_HOME 等環(huán)境變量。
5)安裝并啟動(dòng)Spark。
把Spark 解壓到/usr/spark 目錄,命令如下:
sudo tar -zxvf /opt/soft/spark-2.4.0-bin.hadoop2.7.tgz -C /usr/spark
配置并生效SPARK_HOME 等環(huán)境變量,修改spark-env.sh 和slaves 文件,其中spark-env.sh 中添加內(nèi)容如下:
export SPARK_MASTER_IP=master
export SCALA_HOME=/usr/scala/scala-2.11.12
export SPARK_WORKER_MEMORY=8g
export JAVA_HOME=/usr/java/jdk-1.8.0_171
export
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-
2.7.3 /etc/Hadoop
主節(jié)點(diǎn)啟動(dòng)Spark,執(zhí)行如下命令:
/usr/spark/spark-2.4.0-bin/sbin/start-all.sh
1)安裝并啟動(dòng)MySQL。
安裝MySQL,執(zhí)行如下命令:
sudo apt-get install mysql-server
啟動(dòng)服務(wù):
systemctl start mysqld
完成MySQL 配置操作,包括:獲取初始密碼,為root 用戶設(shè)置密碼,配置允許遠(yuǎn)程連接,以及刷新權(quán)限。
2)安裝并啟動(dòng)Hive。
把Hive 解壓到/usr/hive 目錄,命令如下:
sudo tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz-C /usr/hive
配置并生效 HIVE_HOME 等環(huán)境變量,修改hive-site.xml 和hive-env.sh 等文件,其中hive-env.sh修改如下:
#Hadoop 路徑
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
#Hive 配置文件路徑
export HIVE_CONF_DIR=/usr/hive/apache-hive-2.1.1-bin/conf
解決版本沖突問(wèn)題與jar 包依賴問(wèn)題,最后啟動(dòng)Hive。
3)安裝Sqoop。
把Sqoop 解壓到/usr/sqoop 目錄,命令如下:
sudo tar -zxvf sqoop-1.4.7.bin.tar.gz -C /usr/sqoop
配置并生效SQOOP_HOME 等環(huán)境變量,然后拷貝 MySQL 驅(qū)動(dòng)到$SQOOP_HOME/lib 目錄,拷貝hive-site.xml 到$SQOOP_HOME/conf 目 錄 , 修 改sqoop-env.sh 中 的 HADOOP_COMMON_HOME 、HADOOP_MAPRED_HOME 、 HIVE_HOME 及ZOOCFGDIR 等參數(shù)。
實(shí)驗(yàn)采用模擬的有關(guān)網(wǎng)絡(luò)電信詐騙案件的數(shù)據(jù),共有1 萬(wàn)條。表1 中顯示了6 條案件的示例數(shù)據(jù),案件屬性包含:狀態(tài)、副類別、經(jīng)濟(jì)損失、損失程度、作案手法、案件來(lái)源、發(fā)案時(shí)間上限、發(fā)案時(shí)間下限、發(fā)案地點(diǎn)、受理單位、報(bào)案時(shí)間和警員等。
表1 電信網(wǎng)絡(luò)詐騙部分?jǐn)?shù)據(jù)
1)將電信網(wǎng)絡(luò)詐騙數(shù)據(jù)轉(zhuǎn)換成utf-8 編碼格式,轉(zhuǎn)碼后數(shù)據(jù)保存到文件data.txt 中。在Linux 命令行中,執(zhí)行命令如下。
iconv -f gb2312 -t utf8 test_data.txt -o data.txt 2)創(chuàng)建Hive 數(shù)據(jù)庫(kù),執(zhí)行命令如下。
create database hive;
use hive;
3)在Hive 中建立與數(shù)據(jù)相對(duì)應(yīng)的表,執(zhí)行命令如下。
create table final(id int, state string, class string,loss int, degree string, mode string, source string,uppertime timestamp, lowertime timestamp, place string,accept_unit string, take_time timestamp, police string)row format delimited fields terminated by ' ';
4)將本地?cái)?shù)據(jù)導(dǎo)入表中,執(zhí)行命令如下。
load data local inpath '/home/data.txt' overwrite into table final;
運(yùn)用Hive 對(duì)電信網(wǎng)絡(luò)詐騙數(shù)據(jù)進(jìn)行處理和分析并得出結(jié)果,本部分設(shè)計(jì)了3 個(gè)典型的題目。1)題目1:統(tǒng)計(jì)所有案件副類別發(fā)生頻次。執(zhí)行如下命令:
select class,count(*) from final group by class;
運(yùn)行結(jié)果如圖3 所示,電話詐騙類別發(fā)生991 次,短信詐騙類別發(fā)生563 次,網(wǎng)絡(luò)詐騙類別發(fā)生8 446 次。
圖3 案件類別發(fā)生頻次統(tǒng)計(jì)結(jié)果
2)題目2:統(tǒng)計(jì)2016 年各案件經(jīng)濟(jì)損失程度的頻次。
執(zhí)行如下命令:
select degree,count(*) as total from final where year(take_time)=2016 group by degree order by total;
運(yùn)行結(jié)果如圖4 所示,經(jīng)濟(jì)損失特別巨大類案件145 起,巨大類案件414 起,較大類案件1 461 起。
圖4 2016 年經(jīng)濟(jì)損失程度頻次統(tǒng)計(jì)結(jié)果
3)題目3:統(tǒng)計(jì)A 派出所2019 年案件受理情況。
執(zhí)行如下命令:
select state,count(*) as total from final where year(take_time)=2019 and accept_unit="A 派出所"group by state order by total;
運(yùn)行結(jié)果如圖5 所示,A 派出所受理案件200 起,其中立案狀態(tài)40 起,破案狀態(tài)160 起。
圖5 A 派出所2019 年案件受理情況
運(yùn)用ECharts 對(duì)數(shù)據(jù)分析結(jié)果進(jìn)行可視化
1)題目1:繪出所有案件副類別比例圖。要求:
(1)圖形類別為餅狀圖;
(2)標(biāo)題為 “案件副類別比例圖”;
(3)標(biāo)簽依次為:電話詐騙,短信詐騙,網(wǎng)絡(luò)詐騙。
繪圖代碼如下:
option={
title:{
text:'案件副類別比例圖',
x:'center'
},
legend:{
orient:'vertical',
data:['電話詐騙','短信詐騙','網(wǎng)絡(luò)詐騙'],
left:'78%',
y: '50%',
},
series:[
{
type:'pie',
name:'案件副類別',
data:[
{value:991,name:'電話詐騙'},
{value:563,name:'短信詐騙'},
{value:8446,name:'網(wǎng)絡(luò)詐騙'},
],
}]
};
使用ECharts 繪制出的餅狀圖,如圖6 所示。
圖6 所有案件副類別比例圖
2)題目2:繪出每年的案件經(jīng)濟(jì)損失程度頻次隨年份變化圖。要求:
(1)圖形類別為折線圖;
(2)標(biāo)題為 “每年的案件損失程度頻次圖”;
(3)標(biāo)簽依次為較大、巨大、特別巨大;
(4)橫坐標(biāo)順序依次為:2015—2019 年。
繪圖代碼如下:
option = {
tooltip: {
trigger: 'axis'
},
legend: {
data: ['較大', '巨大', '特別巨大']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['2015', '2016', '2017', '2018',
'2019'],
name:'年份',
nameLocation:'middle',
nameGap:30,
},
yAxis: {
type: 'value',
name:'頻次/件',
nameLocation:'middle',
nameGap:30,
},
series: [
{
name: '較大',
type: 'line',
data: [1616,1461,1563,1529,1037]
},
{
name: '巨大',
type: 'line',
data: [477,414,409,478,261]
},
{
name: '特別巨大',
type: 'line',
data: [182,145,153,168,107]
}]
};
使用ECharts 繪制出的折線圖,如圖7 所示。
圖7 案件經(jīng)濟(jì)損失程度頻次隨年份變化
3)題目3:繪出2017-2019 年A 派出所與B 派出所的破案率對(duì)比圖。要求:
(1)圖形類別為柱狀圖;
(2)標(biāo)題為 “2017-2019 年A 派出所與B 派出所的破案率對(duì)比圖”;
(3)標(biāo)簽依次為:A 派出所,B 派出所。
繪圖代碼如下:
option={
tooltip:{
trigger:'axis',
axisPointer:{
type:'shadow'
}
},
legend:{
data:['A 派出所','B 派出所'],
orient: 'vertical',
x: '70%',
y: '53%',
},
xAxis:{
type:'value',
boundaryGap:[0,0.01],
name:'破案率',
nameLocation:'middle',
nameGap:30,
},
yAxis:{
type:'category',
data:['2017','2018','2019'],
name:'年份',
nameLocation:'middle',
nameGap:30,
},
series:[
{
name:'A 派出所',
type:'bar',
data:[0.82,0.78,0.8]
},
{
name:'B 派出所',
type:'bar',
data:[0.67,0.70,0.78]
}]
使用ECharts 繪制出的柱狀圖,如圖8 所示。
圖8 A 派出所與B 派出所的破案率對(duì)比
公安院校大數(shù)據(jù)人才培養(yǎng)是落實(shí)公安大數(shù)據(jù)戰(zhàn)略的重要內(nèi)容。為了提高學(xué)生使用大數(shù)據(jù)技術(shù)分析案件的能力,激發(fā)學(xué)生的學(xué)習(xí)興趣,本實(shí)驗(yàn)選取了基于大數(shù)據(jù)的電信網(wǎng)絡(luò)詐騙案件分析的內(nèi)容。首先,使學(xué)生掌握搭建大數(shù)據(jù)集群和數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程,能夠熟練安裝和配置Zookeeper、Hadoop、Hive 等軟件;其次,使學(xué)生掌握在Hive 中創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)導(dǎo)入及數(shù)據(jù)分析的能力;最后,訓(xùn)練學(xué)生利用ECharts 對(duì)數(shù)據(jù)進(jìn)行可視化的能力。本文內(nèi)容與公安工作緊密結(jié)合,通過(guò)實(shí)驗(yàn)訓(xùn)練,學(xué)生能夠掌握大數(shù)據(jù)技術(shù)及應(yīng)用技能,為其走上公安崗位從事大數(shù)據(jù)相關(guān)案件分析工作打下堅(jiān)實(shí)基礎(chǔ)。