李秦
摘 要:隨著現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展與應(yīng)用,應(yīng)用軟件網(wǎng)絡(luò)化已成為軟件行業(yè)發(fā)展的必然趨勢。然而目前大多數(shù)網(wǎng)絡(luò)應(yīng)用軟件都或多或少存在數(shù)據(jù)安全隱患,這將嚴(yán)重影響用戶的隱私與財(cái)產(chǎn)安全。文章簡要分析了影響網(wǎng)絡(luò)應(yīng)用軟件的安全因素,并給出具體的安全防護(hù)策略。
關(guān)鍵詞:網(wǎng)絡(luò)應(yīng)用軟件;數(shù)據(jù)安全;數(shù)據(jù)解密;通信安全
1 引言
國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心發(fā)起成立的“國家信息安全漏洞共享平臺(CNVD)”共收集整理信息安全漏洞3447個(gè),其中高危漏洞649個(gè)(占18.8%)。CNVD2013年收集整理的漏洞中,應(yīng)用程序漏洞占62%,操作系統(tǒng)漏洞占 16%,WEB應(yīng)用漏洞占9%,分列前3位。因此,網(wǎng)絡(luò)數(shù)據(jù)安全最終目標(biāo)是要解決軟件安全,因?yàn)閼?yīng)用軟件是收發(fā)網(wǎng)絡(luò)數(shù)據(jù)的主體,如果軟件做到無懈可擊,那么黑客截獲到的網(wǎng)絡(luò)數(shù)據(jù)是一堆不可逆的亂碼,也就不會有網(wǎng)絡(luò)數(shù)據(jù)安全的顧慮。
2 網(wǎng)絡(luò)應(yīng)用軟件數(shù)據(jù)安全隱患分析
2.1 目前主流網(wǎng)絡(luò)應(yīng)用軟件數(shù)據(jù)的安全性
2.1.1 即時(shí)通訊類軟件,例如騰訊QQ、阿里旺旺、Skype等
目前大多數(shù)IM類軟件除了基本的文字聊天外,還會有視頻語音聊天以及傳輸文件等功能。一般文字聊天,因?yàn)榘l(fā)送的網(wǎng)絡(luò)數(shù)據(jù)量小,可以不需要關(guān)注加密算法性能,所以加密強(qiáng)度都比較高。對于頻語音聊天以及傳輸文件功能,由于發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)量大且頻率高,如果采用復(fù)雜的高強(qiáng)度加密算法,勢必會嚴(yán)重影響服務(wù)器的性能,因此很多IM類軟件會采用簡單的加密算法或者不加密。Skype的前身MSN其視頻語音數(shù)據(jù)就是不經(jīng)過加密的,因此黑客截獲到它的視頻語音數(shù)據(jù),只需要調(diào)用視頻編碼器進(jìn)行解碼即可還原其音視頻。雖然大部分IM類軟件會對視頻語音數(shù)據(jù)進(jìn)行簡單的加密,但是都使用可逆的對稱加密算法,黑客通過逆向客戶端程序,找出加密解密算法,再通過網(wǎng)絡(luò)截取對稱算法采用的密鑰Key和密文,即可進(jìn)行視頻語音數(shù)據(jù)還原。
2.1.2 VOIP類軟件
雖然即時(shí)通訊類軟件一般都集成有VOIP功能,但是只有VOIP類軟件可以撥打固定電話或者手機(jī)。目前一些主流VOIP類軟件收發(fā)數(shù)據(jù)都采用異或等非常簡單加密解密算法來處理數(shù)據(jù)流。目前VoIP技術(shù)最常用的話音建立和控制信令是H.323和會話初始協(xié)議(STP)。SIP協(xié)議是IETF定義多媒體數(shù)據(jù)和控制體系結(jié)構(gòu)中的重要組成部分。同時(shí),由于SIP只負(fù)責(zé)提供會話連接和會話管理,而與應(yīng)用無關(guān),因此SIP可以被用于多個(gè)領(lǐng)域。即使是協(xié)議本身也有潛在的安全問題:H.323和SIP總體上都是一套開放的協(xié)議體系。同時(shí),最為一種新興發(fā)展技術(shù)的傳輸協(xié)議,SIP并不完善,它采用類似于FTP、電子郵件或者HTTP服務(wù)器的形式來發(fā)起用戶之間的連接。利用這種連接技術(shù),黑客們同樣會對VOIP進(jìn)行攻擊。如果網(wǎng)關(guān)被黑客攻破,IP電話不用經(jīng)過認(rèn)證就可隨意撥打,未經(jīng)保護(hù)的語音通話有可能遭到攔截和竊聽,而且可以被隨時(shí)截?cái)唷:诳屠弥囟ㄏ蚬艨梢园颜Z音郵件地址替換成自己指定的特定IP地址,為自己打開秘密通道和后門。黑客們可以騙過SIP和IP地址的限制而竊取到整個(gè)談話過程。
2.2 網(wǎng)絡(luò)應(yīng)用軟件數(shù)據(jù)解密方法
要想把網(wǎng)絡(luò)截獲的數(shù)據(jù)還原,首先需要確定數(shù)據(jù)采用的協(xié)議和解密算法,軟件處理數(shù)據(jù)的算法自然需要去逆向分析。目前逆向分析大多使用動態(tài)調(diào)試器OllyDbg和靜態(tài)反匯編程序IDA相結(jié)合,進(jìn)行加密解密算法的分析。使用動態(tài)調(diào)試器對一般軟件的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送或接收的API下斷點(diǎn)都是可以截獲網(wǎng)絡(luò)數(shù)據(jù)的,常用斷點(diǎn)如下:WSASend、WSASendTo、WSARecv、WSARecvFrom、send、sendto、recv、recvfrom。而有些軟件采用自己實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)收發(fā)函數(shù)來代替上述API,因此輸入表中無法查詢到標(biāo)準(zhǔn)Windows網(wǎng)絡(luò)API,也無法對此類API下斷點(diǎn)調(diào)試分析。不過仍然可以使用動態(tài)或靜態(tài)反編譯程序手動定位函數(shù)并下斷點(diǎn)進(jìn)行逆向分析。對于有些軟件加強(qiáng)殼且無法脫殼的情況,可以直接在內(nèi)存中Dump程序,用靜態(tài)反編譯程序逆向分析。
2.3 網(wǎng)絡(luò)應(yīng)用軟件數(shù)據(jù)截取方式
以上所說的都是數(shù)據(jù)解密還原,下面簡要論述數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的截取方法。
(1)如果當(dāng)前計(jì)算機(jī)是在局域網(wǎng)環(huán)境中,而本局域網(wǎng)是用Hub(集線器)連接。我們可以用熟知的集線器的工作原理,將自己的計(jì)算機(jī)網(wǎng)卡工作模式設(shè)置成混雜模式,來監(jiān)聽局域網(wǎng)所有的PC發(fā)送的數(shù)據(jù)。
(2主機(jī)所處的網(wǎng)絡(luò)不是局域網(wǎng)(通過路由器連接),這種情況需要獲得路由器的用戶名和密碼。而目前大多數(shù)路由器的初始賬戶密碼是固定的,很多網(wǎng)絡(luò)管理員也忘記更改默認(rèn)賬戶信息,導(dǎo)致黑客很容易獲取路由器管理權(quán)限,并實(shí)現(xiàn)路由轉(zhuǎn)向功能。具體步驟是在路由器上創(chuàng)建新的路由表,將IP指向黑客自己的電腦,并用網(wǎng)卡配置命令I(lǐng)FCONFIG創(chuàng)建一個(gè)新的邏輯網(wǎng)卡,之后再在電腦上配置簡單的網(wǎng)絡(luò)地址轉(zhuǎn)換服務(wù)(NAT),并將數(shù)據(jù)通過這個(gè)鏈路重新路由過去。黑客通過以上處理步驟,即可用程序來監(jiān)聽所有流經(jīng)網(wǎng)卡的數(shù)據(jù)包了。
(3)如果我們能夠?qū)崿F(xiàn)入侵掛馬在一些路由PC服務(wù)器上面,就可以監(jiān)聽通過這個(gè)服務(wù)器的數(shù)據(jù),實(shí)現(xiàn)軟件數(shù)據(jù)截取。
(4)如果我們有網(wǎng)絡(luò)管理員權(quán)限,要監(jiān)聽計(jì)算機(jī)上網(wǎng)數(shù)據(jù),可以把網(wǎng)絡(luò)監(jiān)控程序直接放在網(wǎng)絡(luò)出口上面就可以進(jìn)行軟件數(shù)據(jù)的截獲。
3 網(wǎng)絡(luò)應(yīng)用軟件數(shù)據(jù)安全防護(hù)策略
根據(jù)上述網(wǎng)絡(luò)應(yīng)用軟件存在的數(shù)據(jù)安全隱患,以及分析、截獲數(shù)據(jù)的方法和方式,我們在軟件的編寫過程中,適當(dāng)?shù)馗淖償?shù)據(jù)安全防護(hù)策略,將有效避免網(wǎng)絡(luò)應(yīng)用軟件出現(xiàn)安全隱患。具體方案如下:
(1)軟件要有對自身的校驗(yàn)和檢測調(diào)試器的機(jī)制,防止被黑客修改和動態(tài)調(diào)試。
(2)軟件編譯完成后盡量加上殼,防止被IDA等靜態(tài)反匯編程序分析代碼。
(3)軟件通過網(wǎng)絡(luò)交換數(shù)據(jù)時(shí),采用可逆對稱算法處理速度很快,但是并不安全,其強(qiáng)度在于KEY的管理,所以并不適合單獨(dú)使用。而非對稱不可逆加密算法,安全性很高,但處理速度很慢,因此不適合大數(shù)據(jù)量的加密解密。假如我們結(jié)合兩者優(yōu)點(diǎn),用非對稱不可逆算法進(jìn)行交互來生成對稱算法所需要用到的KEY,那么KEY在網(wǎng)絡(luò)中就無法被解密,之后網(wǎng)絡(luò)數(shù)據(jù)還是使用可逆對稱算法處理,這樣既可大大提高網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩阅堋?/p>
(4)因?yàn)榫W(wǎng)絡(luò)數(shù)據(jù)流量實(shí)在太大,所以網(wǎng)絡(luò)監(jiān)聽都是有一定的過濾條件,因此只要能夠欺騙監(jiān)聽軟件即可實(shí)現(xiàn)反監(jiān)聽從而保護(hù)軟件的數(shù)據(jù)??梢圆捎靡韵聨讉€(gè)方案進(jìn)行處理:(a)程序設(shè)計(jì)時(shí),不采用自定義網(wǎng)絡(luò)端口,而采用80、443、21等端口。比如21端口是FTP協(xié)議采用的,程序可以將數(shù)據(jù)包投模擬成FTP協(xié)議來增加黑客判斷難度。(b)采用動態(tài)IP,軟件通過下載加密的服務(wù)器列表配置文件來獲得IP地址。(c)采用動態(tài)端口,與動態(tài)IP方式類似,通過服務(wù)器下載,并解密取得網(wǎng)絡(luò)通訊端口。(d)采用動態(tài)網(wǎng)絡(luò)數(shù)據(jù)包頭格式,即對收發(fā)的數(shù)據(jù)包頭一并進(jìn)行加密,這樣黑客通過數(shù)據(jù)包頭固定格式來分辨數(shù)據(jù)包作用的方式就行不通了。
4 結(jié)語
隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)環(huán)境下的應(yīng)用軟件面臨黑客攻擊、病毒感染等一系列威脅,如何保證軟件數(shù)據(jù)的保密性、完整性、可靠性和可用性是個(gè)復(fù)雜問題,但軟件增強(qiáng)自身的安全性仍舊是重中之重。如果軟件自身安全做的到位,黑客無法調(diào)試分析軟件網(wǎng)絡(luò)通信數(shù)據(jù)的加密解密算法,那么通過網(wǎng)絡(luò)截取到的數(shù)據(jù),也就無法從密文還原成明文,這樣軟件的數(shù)據(jù)安全也就得以保證。
[參考文獻(xiàn)]
[1]李軍義.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與應(yīng)用[M].北京:北方交通大學(xué)出版社,2006.
[2]蔡立軍.計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)[M].北京:中國水利水電出版社,2005.
[3]張嘉寧.網(wǎng)絡(luò)防火墻技術(shù)淺析[J].通信工程.2004(2):7-12.
[4]鄭成興.網(wǎng)絡(luò)入侵防范的理論與實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2006.
[5][美]Merike Kaeo著.網(wǎng)絡(luò)安全性設(shè)計(jì)[M].北京:人民郵電出版社,2005.