?

電力智能終端數據采集無線通信安全研究

2021-01-10 08:22王偉福韓力盧曉雄
網絡空間安全 2020年12期
關鍵詞:中間人電表基站

王偉福,韓力,盧曉雄

(國網浙江省電力有限公司杭州供電公司,浙江杭州310016)

1 引言

國家電網承載著千千萬萬家庭、各行各業電力輸送供應的重任,安全穩定的電網是人們生活、社會生產、國家發展的基礎保障。為了積極響應貫徹國家“沒有網絡安全就沒有國家安全”的網絡安全號召,國網浙江省電力有限公司杭州供電公司積極開展市區采集終端信道加密傳輸的安全性專項監測和研究,排除電網運營在信息化方面存在的安全隱患,為電力在信息化建設、運營上保駕護航。

本文針對市區電網終端數據在采集傳輸過程中的安全性問題,研究能否將智能終端采集的電力數據安全、完整、穩定地傳回數據采集系統,在數據的傳輸過程中能否抵御監聽、篡改、破壞等網絡攻擊行為,并證實遠程自動抄表智能終端將數據傳輸到電力信息采集系統的無線傳輸過程中存在信息安全風險。

開展相關研究內容并取得的成果:

(1)開展杭州市區電力采集終端數據傳輸安全性驗證并形成報告;

(2)開展杭州市區電力采集終端與用電信息采集系統平臺聯動安全性驗證并形成報告;

(3)開展杭州市區電力采集終端數據無線網絡傳輸的安全性研究和探討并形成報告。

2 電力數據采集系統

研究電力終端數據采集無線通信安全,了解電力終端數據采集系統的網絡架構、數據采集流程、數據采集方式方法是必備條件。

電力數據采集系統主要由智能電表、采集模塊、終端采集器、集中器、信息采集系統組成。

智能電表作為電力計量單位主要負責用戶用電量的計量。

采集模塊作為智能電表的一個終端硬件采集通訊功能模塊,集成在智能電表上面,負責采集智能電表的數據,然后通過電力線的載波或者RS-485通訊接口將采集到的數據傳輸給采集終端。

采集器的位置處于電表和集中器之間,即“電表-采集器-集中器”,承上啟下負責雙向數據交互,向下通過RS-485或者電力線連接能電表采集電表的數據,向上通過RS-485接口、載波或者短距離無線,將采集到的數據傳輸給集中器。

集中器作為集中抄表系統中的關鍵設備,能夠通過下行信道自動抄收,存儲各種具有載波通信功能的智能儀表、采集終端或采集模塊以及各類載波通信終端的電量數據,并能采集外部485表數據,其下行信道可以是低壓電力線載波及RS-485串行通信通道。同時,能通過上行信道與主站或手持設備進行數據交換,其上行信道采用公用通訊網,支持GPRS、CDMA 等通信方式,并且采用模塊化設計,可通過更換通信模塊直接改變通信方式。

信息采集系統集中化管理由各個集中器采集傳輸過來的采集信息,對接電力營銷系統,為基礎的數據提供數據支撐。

3 智能電表終端數據采集網絡架構

通常終端信息采集網絡架構分為二層架構和三層架構,具體如圖1所示。

圖 1 智能電表終端數據采集網絡架構

由于現實應用場景復雜,無法統一使用一種方式實現信息采集,不同的應用場景需要采用相應的采集方案。但是,無論數據采集實現的哪一種網絡架構,最終采集到的數據都需要通過集中器,或者數據采集終端通過GPRS,或者4G LTE無線通信模塊,將數據發送給電力信息采集系統保存。

二層架構:智能電表上面的采集模塊將采集到的數據通過RS-485或者電力線載波傳輸給集中器,然后直接由集中器通過自帶的GPRS或者4G LTE模塊將數據發送給電力信息采集系統。這是最為常見的架構模式。

三層架構:集中器下發數據采集指令給采集器,采集器通過RS-485或者電力線載波,采集智能電表數據,將采集到的數據通過RS-485、電力線載波或者短距離無線傳輸給集中器,然后由集中器通過自帶的GPRS或者4G LTE模塊,將數據發送給電力信息采集系統。

4 GSM MITM中間人嗅探劫持攻擊

4.1 中間人攻擊

中間人(Man-in-the-middle attack,MITM)一般在正常的客戶端和服務端通信之間,利用各種手段進入一個具有雙重身份的攻擊者,這個攻擊者的身份就是中間人。對于客戶端,攻擊者偽裝成為正常的服務器;對于服務器,攻擊者偽裝成正常的客戶端,將正常的客戶端和服務器通信的流量劫持,然后轉發,客戶端和服務器整個過程的通信數據都經過中間人,所以中間人可以查看并修改客戶端和服務器的通信流量。

GPRS中間人嗅探劫持攻擊只是中間人攻擊的一個應用場景,中間人在各個通信領域都有應用。中間人在攻擊期間獲得的信息,可用于多種目的,例如身份信息盜取、敏感信息獲取、信息資料篡改等,如圖2所示。

圖2 中間人攻擊圖解

4.2 偽基站

偽基站就是假基站,是偽裝成運營商合法基站的非法通信設備。它利用通信網絡的一些技術漏洞,劫持正常用戶的手機通訊,騙取用戶信息,強行發送廣告、詐騙等信息,嗅探和劫持正常用戶的通信流量,以此達到非法目的,偽基站原型如圖3所示。

圖3 偽基站原型

4.3 GSM偽基站原理

由于全球移動通信系統(Global System for Mobile Communications,GSM)通信網絡設計的缺陷,GSM網絡是單向驗證,即基站驗證手機;手機不驗證基站,而且盲目相信基站廣播的信息。

手機(MS)在開機時會優先駐留(Camping)SIM卡允許的運營商網絡里的信號最強的基站,因此偽基站信號強是有意義的,但是用戶并不會經常開關機,所以即使信號不是最強也影響不大。

比開關機更經常發生的是位置更新(Location Update),偽基站主要靠Location Update流程來吸引MS駐留。

偽基站工作時通常偽裝成相鄰基站列表里的在當前位置信號最弱的基站以減少同頻干擾,但是LAC(Location Area Code)會設置成 跟正常網絡不沖突的數字范圍,還會改變Cell Reselection參數。

MS在Location Update時,偽基站會發出身份認證請求(Identity Request)給MS, 要求MS提交IMSI,國際移動用戶識別碼捕獲器(Stingray/IMSI Catcher)還會再次發出 Identity Request,要求MS提交IMEI。

為了少驚動目標,目的達到后,偽基站記錄該IMSI,然后盡可能快地把該MS彈回(Reject)原網絡。這會在MS再次提交 Location Updating Request時完成。為了能盡快地讓MS再次提交Location Updating Request,偽基站有兩個辦法,一是頻繁改變 LAC,二是廣播更短的位置更新周期,比如把T3212設為1分鐘。

4.4 GSM MITM攻擊原理

即在運營商基站和目標手機之間插入一臺偽基站和一部攻擊手機,誘導目標手機附著到偽基站,然后攻擊手機以目標手機身份在運營商網絡注冊,使得目標手機的所有進出通信都經過偽基站和攻擊手機中轉,以此能夠攔截、修改、仿冒各種通信內容。

4.5 GSM MITM攻擊流程

(1)取得目標的手機號碼(MSISDN);

(2)通過HLR Lookup查得目標的IMSI;

(3)通過Paging/HLR Lookup/社工確定目標所在的蜂窩小區(Cell ID);

(4)肉身到目標附近,50m~300m;

(5)打開偽基站,吸引周圍手機前來附著,Reject除目標IMSI外的所有手機;

(6)目標手機附著后,啟動攻擊手機進行身份劫持;

(7)攔截目標手機的短信和流量。

5 GPRS 通信中間人攻擊試驗

通用分組無線服務技術(General Packet Radio Service,GPRS)是GSM移動電話用戶可用的一種移動數據業務,屬于第二代移動通信中的數據傳輸技術,服務由國內的運營商提供。如果攻擊者想要進行GPRS中間人攻擊,就必須劫持手機終端與運營商基站之間的通信流量,再將流量進行轉發。如何才能在手機終端和運營商基站之間,偽裝成一個具有雙重身份的中間人劫持手機終端和運營商基站之間的通信流量?攻擊者會采用技術手段,自己搭建一套和運營商無線通信網絡一樣的通信網絡,俗稱偽基站。

5.1 試驗需要的硬件和軟件

硬件:

(1)BladeRF〔帶天線和電纜(USB 3)連接到PC〕;

(2)帶SIM卡功能的智能電表或II型集中器;

(3)SIM卡;

(4)筆記本電腦。

軟件:

(1)OpenBTS或者(YateBTS);

(2)SipauthServ;

(3)Smqueue (可選—如果你想發短信);

(4)Asterisk (可選—如果你想打電話);

(5)Ubuntu 12.04.5 LTS (Precise Pangolin)。

5.2 配置網絡環境及設備入網

使用以上的硬件和軟件,搭建好運行環境,開啟設備,運行軟件,設置網絡參數,復制和運營商網絡一樣的參數配置,就能模擬和運營相同的網絡環境,設備開機就能自動接入我們搭建的網絡,實現讓設備自動聯網。

圖4 使用BladeRF搭建測試平臺

5.2.1 啟動OpenBTS和組件

構建安裝軟硬件之后,就可以啟動OpenBTS了。為此,需要按以下順序執行以下命令(需要使用root權限在命令行窗口中執行):

● ./OpenBTS(啟動OpenBTS)

openbts@strcpy.info:~$ sudo su

root@strcpy.info:/home/openbts# cd OpenBTS-Nuand-bladeRF/OpenBTS-v5.0/openbts/apps

root@strcpy.info:/home/openbts/OpenBTSNuand-bladeRF/OpenBTS-v5.0/openbts/apps# ./OpenBTS

● ./smqueue(執行Smqueue,啟用短信服務)

openbts@strcpy.info:~$ sudo su

root@strcpy.info:/home/openbts# cd OpenBTS-Nuand-bladeRF/OpenBTS-v5.0/smqueue/smqueue

root@strcpy.info:/home/openbts/OpenBTSNuand-bladeRF/OpenBTS-v5.0/smqueue/smqueue# ./smqueue

ALERT 29938:29938 2018-11-30T16:22:07.0 smqueue.cpp:2798:main:

smqueue (re)starting

smqueue logs to syslogd facility LOCAL7, so there's not much to see here

● ./sipauthserve(執行Sipauthserve,啟用鑒權服務)

openbts@strcpy.info:~$ sudo su

root@strcpy.info:/home/openbts# cd OpenBTS-Nuand-bladeRF/OpenBTS-v5.0/subscriberRegistry/apps

root@strcpy.info:/home/openbts/OpenBTS-Nuand-bladeRF/OpenBTS-v5.0/subscriberRegistry/apps# ./sipauthserve

ALERT 29948:29948 2018-11-30T16:22:19.5 sipauthserve.cpp:328:main: ./sipauthserve (re)starting

● ./asterisk(配置asterisk)

openbts@strcpy.info:~$ sudo su

root@strcpy.info:/home/openbts# asterisk-vvv

● ./OpenBTSCLI(啟動OpenBTS終端控制臺)

openbts@strcpy.info:~$ sudo su

root@strcpy.info:/home/openbts# cd OpenBTS-Nuand-bladeRF/OpenBTS-v5.0/openbts/apps

root@strcpy.info:/home/openbts/OpenBTSNuand-bladeRF/OpenBTS-v5.0/openbts/apps# ./OpenBTSCLI

OpenBTS Command Line Interface (CLI)utility

Copyright 2012, 2013, 2014 Range Networks,Inc.

Licensed under GPLv2.

Includes libreadline, GPLv2.

Connecting to 127.0.0.1:49300...

Remote Interface Ready.

Type:

"help" to see commands,

"version" for version information,

"notices" for licensing information,

"quit" to exit console interface.

OpenBTS>。

圖5 運行OpenBTS

5.2.2 查看GSM基站信息

通過手機查看運營商基站頻點信息,可以將搭建的偽基站配置成和運營商網絡一致的網絡,也可以對當前網絡已知的頻點進行監聽。

當手機連接到GSM基站時,可以通過某些方法找出基站信息和ARFCN。對于2G中的Android或者iPhone手機,可以在撥號鍵盤中鍵入以下命令:

Android:*#*#4636#*#* or *#0011#

iPhone(all):*3001#12345#*dial

以iPhone手機為例,查看GSM基站詳情,記錄下基站的網絡參數,接下來在配置我們模擬的運營商網絡環境的時候會用到。以下是網絡配置關鍵的參數以及名詞解釋:

MCC:Mobile Country Code,移動國家代碼(中國為460);

MNC:Mobile Network Code,移動網絡號碼(中國移動為0,中國聯通為1,中國電信為2);

LAC:Location Area Code,位置區域碼;

CID:Cell Identity,基站編號。

圖6 查看基站編號及信道信息

圖7 查看基站區域位置信息

5.2.3 配置OpenBTS參數

使用OpenBTS命令行界面(CLI)實用程序開始配置BTS。設置GSM網絡的參數和運營商基站網絡配置相同(//后面的注釋是解釋說明參數的含義)。

(1)設置GSM網絡參數

OpenBTS> config GSM.Radio.Band 900 //設置移動網絡頻率

OpenBTS> config GSM.Radio.C0 51 //設置基站編號

OpenBTS> config GSM.Radio.ARFCNs 1//設置基站信道

OpenBTS> config GSM.Identity.MCC 001//設置移動網絡國家編碼

OpenBTS> config GSM.Identity.MNC 01 //設置移動網絡運營商編碼

OpenBTS> config GSM.Identity.CI 10

//設置基站編號

OpenBTS> config GSM.Identity.LAC 1000//設置基站區域位置編碼

OpenBTS> config GSM.Radio.PowerManager.MaxAttenDB 35 //發射的最大功率

OpenBTS>config GSM.Radio.PowerManager.MinAttenDB 35 //發射的最小功率

(2)配置允許所有設備注冊到該網絡

OpenBTS> config Control.LUR.OpenRegistration。*

//允許所有設備注冊到該網絡

(3)設置網絡監聽

啟用GSM和GPRS網絡之后,啟用以下選項,可以通過GSMTAP捕獲 L1 / L2接口中的GSM(信令)和GPRS(信令和流量)。

OpenBTS> config Control.GSMTAP.GSM 1

OpenBTS> config Control.GSMTAP.GPRS 1

(4)設置GPRS上網功能

首先,配置IPTABLES,開啟數據轉發和網絡地址轉換。

注意:將eth0網絡接口替換為連接到Internet的環境網絡接口。

openbts@strcpy.info:~ $ sudo su

root@strcpy.info:/home/ openbts #sysctl -w net.ipv4.ip_forward = 1

root@strcpy.info:/home/openbt

#iptables -t nat -A POSTROUTING -o eth0-j MASQUERADE

(5)設置GPRS參數

OpenBTS> config GPRS.Enable 1

//開啟GPRS上網功能

OpenBTS> config GGSN.Firewall.Enable 0//關閉防火墻

OpenBTS> config GGSN.MS.IP.Base 192.168.1.20 //設置GGSN網關

OpenBTS> config GGSN.MS.IP.MaxCount 5//設置最大連接數(用戶數)

5.2.4 設備入網

配置好以上GSM的參數設置之后,搭建的測試網絡就完全是模擬了運營商真實網絡。插入SIM卡的設備開機即可自動注冊接入搭建的GSM網絡。

使用如下命令在OpenBTSCLI命令窗口中查看注冊到網絡上的設備:

OpenBTS> tmsis //查看注冊到該網絡的設備。

圖8 設備成功連接到測試平臺

5.3 篡改通信協議數據

一旦設備成功接入搭建的中間人測試平臺,就可以對經過的流量進行任意操作,例如修改數據內容和代理轉發。實驗以篡改終端發送到服務端的電能數據包為例:首先,找到要攻擊的目標數據包,為此應對截獲的協議報文進行解析和篩選,依據就是協議數據幀格式的控制碼和數據標識;然后,替換掉幀格式里的數據部分,需要注意的是,修改數據后,數據幀后面的校驗碼也要做相應的修改,否則服務端收到不正確的校驗碼會直接丟棄掉數據幀。這里可以對接收的數據包進行加工處理,最后轉發到服務端,篡改電表電能數據包示意圖,如圖9所示。

5.4 流量嗅探與分析

篡改完數據以后,使用Wireshark抓包分析。實施中間人攻擊后,數據流經過中間人的篡改,再轉發到數據的采集終端。終端發送的有功總電能數據項的值由原來的33333333變成44444444,意味著電表發往服務端的有功總電能遭受篡改。但是,從返回的數據包結果來看返回的有功電能沒有被篡改成功,意味著隨意篡改數據幀并沒有實際效果,如圖10所示。

圖9 篡改有功電能數據幀

圖10 Wireshark捕獲通信數據

5.5 采集終端數據報文解析

通過解讀Q/GDW 376.1主站與采集終端通信協議規約,了解了規約的數據格式和編碼方式,再通過編寫工具對通信數據報文進行解析,得到還原后的明文數據格式,既方便閱讀,也可以對數據進行修改,并且成功發送數據包,如圖11和圖12所示。

圖11 數據報文修改

圖12 數據報文修改后發送

6 結束語

通過終端數據采集通信中間人攻擊試驗,總結了終端數據采集通信存在的安全風險。

(1)數據在網絡傳輸層面是不安全的,網絡可以被劫持、干擾,接入非法的偽基站網絡,數據通信流量存在被嗅探、監聽,修改的風險。

(2)數據在終端采集發送到主站的過程中是明文傳輸的,不法分子如果偽造終端向主站發送偽造的數據,主站無法鑒別數據的真偽,從而通過此方法修改采集的電能數據,達到逃費、竊電的目的。

(3)只有數據在主站到數據采集系統的傳輸過程中,采用的是對稱加密算法進行加密傳輸。隨著攻擊技術的提升,如果日后對稱加密的密鑰一旦泄露,就可以通過數據的加密算法和密鑰還原加密的數據,安全措施將不復存在。

通過搭建測試網絡環境測試試驗,在數據流從電表傳輸到服務端的過程中,通過中間人攻擊的方式攔截流量,對數據包內容進行修改再轉發,然后模擬終端向主站直接發送數據,證明智能電表數據在終端采集發送到服務端的網絡通信過程中,數據傳輸是不夠安全的。但是,不能依賴網絡層面的安全防護,也不能完全將安全寄托于運營商,運營商只提供了一個網絡傳輸通道,管道里面傳輸的數據還需要靠自身提高安全防護能力。

綜上所述,雖然國網在網絡安全方面現已經有安全防護技術方案,但仍然還有很大的改進空間。在網絡安全防護能力提升方面,從細節入手,防微杜漸,堵住每一個細小的安全缺陷,為電網系統高效、穩定、安全的運行提供堅實的安全保障。

猜你喜歡
中間人電表基站
基于NETMAX的基站網絡優化
5G基站輻射對人體有害?
5G基站輻射對人體有害?
5G輻射比4G小
“蹦叭”跳動電表數
法國人抗議智能電表或監控隱私
跟楊絳學做“中間人”
停電那點事兒
MOOC“中間人”:從課堂到網絡
如何測電表的量程
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合