田 良 徐孟江
(中國(guó)聯(lián)通貴州省分公司,貴州 貴陽(yáng) 550001)
移動(dòng)設(shè)備給人們的生活帶來(lái)諸多便利與變革,但也面臨著不同程度的安全風(fēng)險(xiǎn),移動(dòng)設(shè)備作為人們與外界進(jìn)行絕大部分信息交流的重要工具,提供了更多被黑客利用的機(jī)會(huì),其中病毒木馬是最為普遍且有效的攻擊方式之一。隨著移動(dòng)支付的普及,移動(dòng)設(shè)備承載了幾乎所有的隱私信息,使得移動(dòng)設(shè)備成為黑客理想的攻擊對(duì)象以獲取利益。移動(dòng)智能終端的廣泛使用,惡意程序攻擊、用戶信息泄露、惡意吸費(fèi)、誘騙欺詐等安全問(wèn)題也日益凸顯,對(duì)國(guó)家和個(gè)人都帶來(lái)了威脅。目前手機(jī)病毒已突破千種,有關(guān)專家認(rèn)為,手機(jī)面臨的安全威脅很快將超越個(gè)人電腦,成為個(gè)人信息安全的第一大隱患。
對(duì)于國(guó)家監(jiān)管部門來(lái)說(shuō)來(lái)說(shuō),對(duì)各種互聯(lián)網(wǎng)安全事件的溯源變得十分重要,由于目前開放的IP 網(wǎng)絡(luò)缺乏足夠的溯源能力,導(dǎo)致針對(duì)網(wǎng)絡(luò)違法行為的法規(guī)缺乏有效的技術(shù)支撐。
電信運(yùn)營(yíng)商在移動(dòng)互聯(lián)網(wǎng)時(shí)代為了不淪為單純的通信管道,必須要做到以下三點(diǎn):一是將管道智能化;二是做平臺(tái)運(yùn)營(yíng)的主導(dǎo)者;三是做移動(dòng)信息化的引領(lǐng)者。所謂管道智能化,就是要做到用戶可識(shí)別、流量可引導(dǎo)、業(yè)務(wù)可感知。
深度包檢測(cè)技術(shù)(Deep Packet Inspection(DPI))是一種基于應(yīng)用層的流量檢測(cè)和控制技術(shù)。通過(guò)深入讀取IP 包承載的內(nèi)容來(lái)對(duì)OSI 七層協(xié)議中的應(yīng)用層信息進(jìn)行重組,從而得到整個(gè)應(yīng)用程序的通訊內(nèi)容,然后按照系統(tǒng)定義的策略對(duì)流量進(jìn)行監(jiān)測(cè)和管理。
2.1.1 大流量高性能DPI 體系架構(gòu)
2.1.1.1 DPI 分層架構(gòu)
該系統(tǒng)采用和OSI 類似的分層處理模型。整個(gè)系統(tǒng)從下往上分為七層,依次是報(bào)文捕獲/發(fā)送層、協(xié)議解碼層、流(Flow)管理層、傳輸層、應(yīng)用層、業(yè)務(wù)層和輸出層。
報(bào)文捕獲/發(fā)送層:主要是負(fù)責(zé)從網(wǎng)卡上收發(fā)原始報(bào)文,支持一些常用的開源收發(fā)包工具,如pfring,libpcap 等。
協(xié)議解碼層:主要負(fù)責(zé)傳輸層以下的協(xié)議解碼,如Ethernet,PPP, PPPoE, Raw, SLL, VLAN, MPLS, GRE, IPv4, IPv6, TCP,UDP, SCTP, ICMPv4, ICMPv6 等等。
流表管理層:流(Flow)就是對(duì)具有相同五元組(源IP、目的IP、源端口、目的端口、協(xié)議ID)的所有數(shù)據(jù)包的一種抽象。
傳輸層:該層的主要工作是TCP/UDP/SCTP 的協(xié)議重組和應(yīng)用層協(xié)議識(shí)別。
應(yīng)用層:最主要的工作是應(yīng)用協(xié)議解析,如HTTP、SMTP、POP3、IMAP、DNS、FTP、HTTPS、RTSP、SIP 等等。此外還有一些信令協(xié)議的解析,如GTP-C,radius、MIP、s1ap、diameter、ranap、m3ua等等。
業(yè)務(wù)處理層:業(yè)務(wù)處理層是綜合各層的分析處理結(jié)果,來(lái)實(shí)現(xiàn)指定的業(yè)務(wù)功能。比較常見的業(yè)務(wù)如文件還原、語(yǔ)音質(zhì)量計(jì)算、各種KPI 計(jì)算等等。
消息輸出層:就是我們對(duì)各種元數(shù)據(jù)、KPI 數(shù)據(jù)、樣本數(shù)據(jù)、網(wǎng)絡(luò)監(jiān)測(cè)時(shí)間等等信息的保存。針對(duì)各種數(shù)據(jù)和需求選擇保存方式。
2.1.1.2 DPI 線程模型
各類線程按照功能劃分可以分為報(bào)文捕獲和發(fā)送線程組、協(xié)議解碼和報(bào)文分派線程組、報(bào)文中心處理線程組、消息和日志輸出線程組,以及其它一些輔助線程組。
可以看出,我們并不是將每一層的處理放到一個(gè)單獨(dú)的線程中去,除了報(bào)文捕獲/發(fā)送層、消息輸出層、協(xié)議解碼層放在單獨(dú)的線程中處理外,剩下的其它層,也就是流表管理、傳輸層、應(yīng)用層和業(yè)務(wù)層,都放在中心處理線程組中進(jìn)行處理。
2.1.2 NZ-COPY 零拷貝系統(tǒng)
網(wǎng)絡(luò)設(shè)備主要是對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行抓取,沒有高效的捕包技術(shù)就沒有高性能的網(wǎng)絡(luò)設(shè)備,所以捕包技術(shù)是高性能網(wǎng)絡(luò)設(shè)備的基礎(chǔ),高性能的捕包技術(shù)需要做到低資源占用和長(zhǎng)期運(yùn)行不丟包。
目前使用最廣泛的的捕包技術(shù)有Libpcap、PF_RING 和DPDK。要實(shí)現(xiàn)一個(gè)高性能的捕包系統(tǒng)是一個(gè)整體工程,需要對(duì)網(wǎng)卡的工作原理/網(wǎng)卡驅(qū)動(dòng)/操作系統(tǒng)內(nèi)核/協(xié)議棧/內(nèi)核空間與用戶空間的數(shù)據(jù)傳輸/應(yīng)用程序編程等技術(shù)有很好的掌握。實(shí)際使用中也會(huì)遇到各種情況,如中斷調(diào)用、數(shù)據(jù)拷貝、內(nèi)核空間和用戶空間數(shù)據(jù)傳輸、頻繁的函數(shù)調(diào)用對(duì)性能的影響
NZ-COPY 零拷貝系統(tǒng)的設(shè)計(jì):
在設(shè)計(jì)零拷貝系統(tǒng)時(shí),我們必須對(duì)影響性能的因素進(jìn)行規(guī)避。要盡可能做到以下幾點(diǎn):
(1)主動(dòng)收包并關(guān)硬中斷,規(guī)避硬中斷的調(diào)用。
(2)DMA/共享內(nèi)存/內(nèi)存池等技術(shù)解決數(shù)據(jù)拷貝問(wèn)題。
(3)系統(tǒng)在LINUX 內(nèi)核空間除了硬件收包無(wú)額外開銷。
(4)共享內(nèi)存解決內(nèi)核空間/用戶空間的數(shù)據(jù)傳輸問(wèn)題。
(5)使用批量處理解決調(diào)用頻繁的問(wèn)題。
整個(gè)NZ-COPY 系統(tǒng)運(yùn)行過(guò)程:
(1)NZ-COPY 內(nèi)核申請(qǐng)一定數(shù)量的內(nèi)存用作收包緩沖。
(2)MMAP 把收包緩沖在內(nèi)核空間/用戶空間共享。
(3)對(duì)緩沖塊進(jìn)行編號(hào),全部緩沖塊組成緩沖內(nèi)存池。
(4)關(guān)硬中斷并使用收包緩沖替換原網(wǎng)卡緩沖。
(5)上層應(yīng)用部分觸發(fā)收包開始工作。
(6)NZ-COPY 應(yīng)用攜空閑緩沖觸發(fā)NZ-COPY 內(nèi)核開始收包。
(7)NZ-COPY 內(nèi)核交換已收數(shù)據(jù)緩沖和空閑數(shù)據(jù)緩沖。
(8)NZ-COPY 內(nèi)核獲取到全部已收包緩沖塊。
(9)NZ-COPY 應(yīng)用得到全部已收包緩沖塊。
(10)NZ-COPY 應(yīng)用處理已收緩沖塊并回收。
(11)轉(zhuǎn)到步驟(5)循環(huán)收包。
通過(guò)分析研究LINUX 操作系統(tǒng)標(biāo)準(zhǔn)收包過(guò)程,發(fā)現(xiàn)制約捕包性能的主要原因:硬中斷調(diào)用頻繁、數(shù)據(jù)拷貝、LINUX 協(xié)議棧處理、內(nèi)核/用戶空間數(shù)據(jù)傳輸、無(wú)批量收包和傳輸。深入分析研究了DMA 技術(shù)、中斷技術(shù)、共享內(nèi)存技術(shù)、內(nèi)存池技術(shù)、數(shù)據(jù)傳輸技術(shù),并設(shè)計(jì)和實(shí)現(xiàn)NZ-COPY 捕包系統(tǒng)。
通過(guò)深度包檢測(cè)技術(shù)(DPI),我們可以將用戶主動(dòng)下載或者不知情下載的APP 安裝包進(jìn)行完整的還原。
2.2.1 惡意軟件研判系統(tǒng)
惡意軟件APP 監(jiān)測(cè)研判系統(tǒng)包含樣本數(shù)據(jù)解析子系統(tǒng)、樣本綜合檢測(cè)子系統(tǒng)、特征庫(kù)管理子系統(tǒng)和數(shù)據(jù)支撐模塊。其中樣本綜合檢測(cè)子系統(tǒng)是整個(gè)系統(tǒng)的最核心部分,該子系統(tǒng)一共包含兩個(gè)研判引擎,即靜態(tài)綜合安檢引擎和動(dòng)態(tài)Android 沙箱。(圖1)

圖1 惡意軟件檢測(cè)系統(tǒng)架構(gòu)圖
對(duì)于任何一個(gè)疑似樣本,通過(guò)hash 值比較或證書比較,先判斷其是否為已知的惡意軟件或者是否為已知的非惡意軟件,如果是則無(wú)須進(jìn)一步研判,否則,進(jìn)入樣本的研判流程。在樣本研判開始之前,先對(duì)樣本進(jìn)行預(yù)處理(如解壓縮、反編譯、反匯編等),然后進(jìn)行靜態(tài)分析。靜態(tài)綜合檢測(cè)引擎在整個(gè)研判過(guò)程中占有十分重要的地位,其檢測(cè)效率高、檢測(cè)精度大,能檢測(cè)出絕大部分的惡意軟件。但由于目前越來(lái)越多的APP 開始采用軟件加固技術(shù),很多惡意APP 也不例外,加固技術(shù)將使得對(duì)APP 的反編譯變得不可能,因此,動(dòng)態(tài)沙箱技術(shù)便應(yīng)運(yùn)而生。接下來(lái)我們將首先討論靜態(tài)檢測(cè)引擎,這里面主要包括APP 靜態(tài)行為檢測(cè)、廣譜特征檢測(cè)、仿冒應(yīng)用監(jiān)測(cè)、加固檢測(cè)、漏洞檢測(cè)等。
2.2.2 Android 沙箱技術(shù)
Android 動(dòng)態(tài)沙箱技術(shù)主要以Android 系統(tǒng)為主要模擬環(huán)境,通過(guò)結(jié)合Android 自身SDK 接口能夠自主開發(fā)沙箱的一些功能,由于Android 開放源碼,甚至可以編譯自己的系統(tǒng)內(nèi)核,加入一些能控制目標(biāo)行為的高級(jí)功能,在不影響目標(biāo)程序運(yùn)行的前提下,對(duì)目標(biāo)程序的運(yùn)行行為進(jìn)行跟蹤和記錄, 并結(jié)合自身總結(jié)的一些病毒特定惡意行為特征進(jìn)行綜合分析,從代碼、文件、網(wǎng)絡(luò)三方面進(jìn)行惡意行為總結(jié),最終實(shí)現(xiàn)病毒惡意行為的全功能研判。
J2ME 動(dòng)態(tài)沙箱技術(shù)主要建立在以Java 為核心的平臺(tái)之上,通過(guò)Java 自身的成熟模擬器環(huán)境和特定接口,結(jié)合自身總結(jié)的一些病毒特定惡意行為特征,主要監(jiān)控惡意程序的文件行為、網(wǎng)絡(luò)套接字行為、聯(lián)網(wǎng)行為、加密聯(lián)網(wǎng)行為和短信收發(fā)等行為。
2.2.3 加固APP 的脫殼技術(shù)
干氣密封二次密封氣和隔離氣采用0.6 MPa的低壓氮?dú)猓蛪旱獨(dú)饨?jīng)過(guò)濾后,再經(jīng)自力式控制閥控制壓力在0.4 MPa后分為兩路,一路作為二級(jí)密封氣再分為三路分別進(jìn)入低壓缸、中壓缸、高壓缸的干氣密封的二級(jí)密封腔中。其中大部分通過(guò)梳齒密封進(jìn)入主密封氣泄漏至火炬系統(tǒng),少部分二級(jí)密封氣通過(guò)二級(jí)密封的動(dòng)靜環(huán)之間的空隙進(jìn)入二級(jí)密封氣泄漏至大氣;另一路作為隔離氣分為三路進(jìn)入壓縮機(jī)低壓缸、中壓缸、高壓缸兩端的軸承與干氣密封之間的腔體中,部分隔離氣通過(guò)梳齒密封進(jìn)入二級(jí)密封氣泄漏至大氣,部分隔離氣通過(guò)梳齒密封進(jìn)入軸承箱中,通過(guò)呼吸閥排至大氣。
隨著各種開源技術(shù)的發(fā)展,越來(lái)越多的移動(dòng)APP 選擇了軟件加殼來(lái)保護(hù)自己,各種惡意軟件更是如此。目前安卓APP 保護(hù)技術(shù)目前分為以下四類:
(1)JAVA/C 代碼混淆。
(2)dex 文件加殼。
(3)so 文件加殼。
(4)反動(dòng)態(tài)調(diào)試技術(shù)。
混淆和加殼是為了防止對(duì)應(yīng)用的靜態(tài)分析;代碼混淆會(huì)增加攻擊者的時(shí)間成本,但并不能從根本上解決應(yīng)用被逆向的問(wèn)題;而加殼技術(shù)一旦被破解,其優(yōu)勢(shì)更是蕩然無(wú)存;反調(diào)試用來(lái)對(duì)抗對(duì)APP 的動(dòng)態(tài)分析,增加動(dòng)態(tài)調(diào)試的時(shí)間成本。
2.2.4 惡意程序封堵處置
在網(wǎng)絡(luò)側(cè)對(duì)傳播病毒的下載鏈接或者惡意軟件的控制端地址進(jìn)行封堵處置,是整個(gè)防病毒體系中非常重要的一環(huán)。通過(guò)網(wǎng)絡(luò)側(cè)封堵,能在第一時(shí)間很輕易的阻止惡意軟件的擴(kuò)散。傳統(tǒng)的并接封堵方式一般是通過(guò)向連接發(fā)起方和服務(wù)器方發(fā)送偽造的TCP Reset 方式來(lái)實(shí)現(xiàn),當(dāng)采集分析probe 收到用戶的惡意安裝包下載HTTP 請(qǐng)求后,在真正的服務(wù)器響應(yīng)之前,偽造服務(wù)器IP 向用戶發(fā)送tcp reset 報(bào)文,同時(shí),偽造用戶IP 向真正的服務(wù)器IP 發(fā)送tcp reset 報(bào)文,從而將用戶和服務(wù)器建立好的連接拆除。這種旁路的封堵方式能夠很有效的對(duì)所有tcp 連接進(jìn)行封堵,但卻無(wú)法對(duì)udp流量進(jìn)行封堵。
為了解決傳統(tǒng)并接tcp reset 封堵方式無(wú)法對(duì)udp 流量進(jìn)行封堵的缺陷,我們提出了基于串接阻斷、旁路分析相分離的智能管控方法和系統(tǒng)。其整體方案如上圖所示,整個(gè)系統(tǒng)分為三級(jí),分別是LB(智能光保護(hù)器)、eTM(流量控制器)和DPI 探針,其中LB 是任何時(shí)候都是完全串接進(jìn)網(wǎng)絡(luò)的,eTM 既可以工作在串接模式,也可以工作在旁路模式。LB 和eTM 是協(xié)同工作的,LB 本身沒有任何數(shù)據(jù)報(bào)文的處理,就像一個(gè)光開關(guān),能在極短的時(shí)間內(nèi)(小于5ms)將物理信號(hào)在原鏈路和eTM 之間切換。LB 能實(shí)時(shí)感知eTM 的工作狀態(tài),一旦出現(xiàn)異常,便能自動(dòng)的將原鏈路切回至直通狀態(tài),從而保持網(wǎng)絡(luò)不中斷。eTM 主要有2 個(gè)功能,一是將輸入的流量進(jìn)行復(fù)制,并能負(fù)載均衡到后端的Probe 設(shè)備上;二是接收Probe 發(fā)送過(guò)來(lái)的封堵指令,將指定的IP 或者IP 五元組過(guò)濾后再將過(guò)濾后的流量完整轉(zhuǎn)發(fā)至原始輸入鏈路,從而實(shí)現(xiàn)流量控制功能。
3.1 通過(guò)對(duì)移動(dòng)通信核心網(wǎng)架構(gòu)進(jìn)行研究,提出相應(yīng)的用戶身份識(shí)別方法,通過(guò)身份識(shí)別,即使用戶不安裝殺毒軟件,也能在管道側(cè)感知其終端安全狀況。
3.2 建立了一套針對(duì)運(yùn)營(yíng)商核心網(wǎng)大流量、高性能的DPI 分析系統(tǒng)。實(shí)現(xiàn)了正意義上的零拷貝收包技術(shù)和高性能無(wú)鎖FIFO隊(duì)列算法。
3.3 實(shí)現(xiàn)了惡意軟件的研判,通過(guò)對(duì)疑似樣本的靜態(tài)綜合分析和動(dòng)態(tài)沙箱研判,實(shí)現(xiàn)了較高的惡意軟件檢出率。
3.4 提出了一種基于串接阻斷、旁路分析相分離的智能管控方法和系統(tǒng),該系統(tǒng)解決了在運(yùn)營(yíng)商大流量網(wǎng)絡(luò)環(huán)境下進(jìn)行高效、可靠串接封堵的技術(shù)問(wèn)題,克服了傳統(tǒng)的旁路TCP reset 技術(shù)無(wú)法對(duì)UDP 流量進(jìn)行封堵的弊端。
基于以上技術(shù)方案和實(shí)現(xiàn)效果,可以及時(shí)對(duì)移動(dòng)網(wǎng)應(yīng)用程序進(jìn)行DPI 深度分析,通過(guò)載荷內(nèi)容抓取,分析出網(wǎng)絡(luò)中存在的風(fēng)險(xiǎn),技術(shù)對(duì)惡意程序進(jìn)行封堵,滿足國(guó)家監(jiān)管部門要求,減小運(yùn)營(yíng)壓力。