官术网_书友最值得收藏!

3.3 典型的攻擊方法

現(xiàn)在網(wǎng)上的攻擊方法多種多樣,如圖3.11所示為計(jì)算機(jī)病毒、木馬、蠕蟲(chóng)等各種攻擊。本節(jié)介紹一些典型的攻擊方法。

圖3.11 各種攻擊方法

3.3.1 口令攻擊

口令是網(wǎng)絡(luò)信息系統(tǒng)的第一道防線。當(dāng)前的網(wǎng)絡(luò)信息系統(tǒng)大多都是通過(guò)口令來(lái)驗(yàn)證用戶(hù)身份、實(shí)施訪問(wèn)控制的。當(dāng)然,也有類(lèi)似于現(xiàn)在手機(jī)上的短信認(rèn)證、圖形認(rèn)證等功能,但是畢竟這些都是少數(shù),大部分還是用口令認(rèn)證的。如圖3.12所示為登錄QQ軟件時(shí),軟件提示用戶(hù)輸入口令的截圖。

圖3.12 QQ軟件輸入口令

口令攻擊是指黑客以口令為攻擊目標(biāo),破解合法用戶(hù)的口令,或避開(kāi)口令驗(yàn)證過(guò)程,然后冒充合法用戶(hù)潛入目標(biāo)網(wǎng)絡(luò)系統(tǒng),奪取目標(biāo)系統(tǒng)控制權(quán)的過(guò)程。如果口令攻擊成功,黑客進(jìn)入了目標(biāo)網(wǎng)絡(luò)系統(tǒng),便能隨心所欲地竊取、破壞和篡改被侵入方的信息,直至完全控制被侵入方。所以,口令攻擊是黑客實(shí)施網(wǎng)絡(luò)攻擊的最基本、最重要、最有效的方法之一。口令攻擊的主要方法如下。

1.社會(huì)工程學(xué)(Social Engineering)攻擊

社會(huì)工程學(xué)攻擊即通過(guò)人際交往這一非技術(shù)手段以欺騙、套取的方式來(lái)獲得口令。例如,有人在國(guó)外建了一個(gè)冒充國(guó)內(nèi)某家銀行的網(wǎng)站,如圖3.13所示。這個(gè)網(wǎng)站上的所有界面都和該銀行真正的網(wǎng)站是一樣的(黑客通過(guò)抓取真正銀行網(wǎng)站網(wǎng)頁(yè)的方式獲取)。然后通過(guò)短信、郵件等各種方式讓用戶(hù)輸入用戶(hù)名和密碼。這樣攻擊者就可以在這個(gè)假網(wǎng)站后臺(tái)獲取用戶(hù)的用戶(hù)名和密碼了。

圖3.13 偽造的銀行登錄界面

避免此類(lèi)攻擊的對(duì)策是加強(qiáng)用戶(hù)意識(shí)。例如,登錄中國(guó)建設(shè)銀行時(shí),我們要看清楚它的網(wǎng)站是“www.ccb.com”。但是有些攻擊者往往會(huì)做一個(gè)假網(wǎng)站,并把網(wǎng)站名改為一個(gè)很相近的名稱(chēng),如“www.cccb.com”“www.ccbb.com”等。

2.猜測(cè)攻擊

首先,使用口令猜測(cè)程序進(jìn)行攻擊。口令猜測(cè)程序往往根據(jù)用戶(hù)定義口令的習(xí)慣猜測(cè)用戶(hù)口令,像名字縮寫(xiě)、生日、寵物名、部門(mén)名等。在詳細(xì)了解用戶(hù)的社會(huì)背景之后,黑客可以列舉出幾百種可能的口令,并在很短的時(shí)間內(nèi)就可以完成猜測(cè)攻擊。

下面是中國(guó)人常用的最弱口令:

000000、111111、11111111、112233、123123、123321、123456、12345678、654321、666666、888888、abcdef、abcabc、abc123、a1b2c3、aaa111、123qwe、qwerty、qweasd、admin、password、p@ssword、passwd、iloveyou、5201314、!@#$%^、名字+123。

其中的口令“!@#$%^”是按住〈Shift〉的同時(shí)再輸入“123456”之后出現(xiàn)的口令。

下面是外國(guó)人常用的最弱口令:

password、123456、12345678、qwerty、abc123、monkey、letmein、1234567、trustno1、dragon、baseball、111111、iloveyou、master、sunshine、ashley、bailey、passw0rd、shadow、123123、654321、superman、qazwsx、michael、football。

看到以上弱口令以后,就要注意了,盡量不要使用上面的口令作為自己的口令。

3.字典攻擊

如果人工猜測(cè)攻擊不成功,攻擊者會(huì)繼續(xù)擴(kuò)大攻擊范圍,對(duì)所有英文單詞進(jìn)行嘗試,程序?qū)葱蛉〕鲆粋€(gè)又一個(gè)的單詞,進(jìn)行一次又一次嘗試,直到成功。據(jù)報(bào)道,對(duì)于一個(gè)有10萬(wàn)個(gè)英文單詞的集合來(lái)說(shuō),入侵者不到兩分鐘就可試完。所以,如果用戶(hù)的口令不太長(zhǎng)或是單詞、短語(yǔ),那么很快就會(huì)被破譯出來(lái)。如圖3.14所示為L(zhǎng)C軟件,它可以對(duì)操作系統(tǒng)的口令進(jìn)行字典式攻擊。通過(guò)使用該工具,可以了解口令的安全性。

圖3.14 字典攻擊

針對(duì)這種攻擊的防護(hù)措施主要是口令不要取那些在常規(guī)字典里能夠查到的單詞。

4.窮舉攻擊

如果字典攻擊仍然不能夠成功,入侵者會(huì)采取窮舉攻擊。一般從長(zhǎng)度為1的口令開(kāi)始,按長(zhǎng)度遞增進(jìn)行嘗試攻擊。由于人們往往偏愛(ài)簡(jiǎn)單易記的口令,窮舉攻擊的成功率很高。如果每千分之一秒檢查一個(gè)口令,那么86%的口令可以在一周內(nèi)破譯出來(lái)。針對(duì)這種攻擊的防護(hù)措施主要是設(shè)置的口令要足夠長(zhǎng),并且復(fù)雜。例如,至少8位以上,數(shù)字+符號(hào)+大小寫(xiě)組合就行了。

5.混合攻擊

混合攻擊結(jié)合了字典攻擊和窮舉攻擊,先進(jìn)行字典攻擊,再進(jìn)行暴力攻擊。

避免以上五類(lèi)攻擊的對(duì)策如下:

● 不用漢語(yǔ)拼音、英文單詞。

● 不用生日、紀(jì)念日、有意義的字符串。

● 使用大小寫(xiě)字母、符號(hào)、數(shù)字的組合。

● 不要將口令寫(xiě)下來(lái)。

● 不要將口令存于計(jì)算機(jī)文件中。

● 不要在不同系統(tǒng)上使用同一口令。

● 為防止眼明手快的人竊取口令,在輸入口令時(shí)應(yīng)確認(rèn)無(wú)人在身邊。

● 定期改變口令,至少兩個(gè)月左右要改變一次。

3.3.2 網(wǎng)絡(luò)監(jiān)聽(tīng)

世界上最早的監(jiān)聽(tīng)器是中國(guó)在兩千多年前發(fā)明的。戰(zhàn)國(guó)時(shí)代的《墨子》一書(shū)中就記載了一種叫作“聽(tīng)甕”的工具,如圖3.15所示。這種工具是用陶制成的,大肚小口,把它埋在地下,并在甕口蒙上一層薄薄的皮革,人伏在上面就可以聽(tīng)到城外方圓數(shù)十里的動(dòng)靜。特別是它可以埋在城里的城墻下,可以防止敵方通過(guò)挖洞的方式突破城墻的防護(hù)。

圖3.15 聽(tīng)甕

在網(wǎng)絡(luò)空間環(huán)境中,網(wǎng)絡(luò)監(jiān)聽(tīng)是一種用來(lái)監(jiān)視網(wǎng)絡(luò)狀態(tài)、數(shù)據(jù)流程以及網(wǎng)絡(luò)上信息傳輸?shù)墓芾砉ぞ摺K梢詫⒕W(wǎng)絡(luò)功能設(shè)定成監(jiān)聽(tīng)模式,這樣就可以截獲網(wǎng)絡(luò)上所傳輸?shù)男畔ⅰR簿褪钦f(shuō),當(dāng)攻擊者登錄網(wǎng)絡(luò)主機(jī)并取得超級(jí)用戶(hù)權(quán)限后,若要登錄其他主機(jī),使用網(wǎng)絡(luò)監(jiān)聽(tīng)的方法可以有效地截獲網(wǎng)絡(luò)上的數(shù)據(jù)。這是攻擊者優(yōu)先使用的方法。但是網(wǎng)絡(luò)監(jiān)聽(tīng)僅能應(yīng)用于連接同一網(wǎng)段的主機(jī),且通常用來(lái)獲取用戶(hù)口令或密碼。

網(wǎng)上有許多網(wǎng)絡(luò)監(jiān)聽(tīng)工具,例如Wireshark,Sniffer Pro, NetXray,tcpdump等。它們可以輕而易舉地截取包括口令、賬號(hào)等敏感信息。如圖3.16所示為使用Sniffer Pro監(jiān)聽(tīng)工具監(jiān)聽(tīng)到的口令信息。

圖3.16 Sniffer Pro監(jiān)聽(tīng)到口令信息

針對(duì)網(wǎng)絡(luò)嗅探攻擊的防范措施,主要包括如下方法。

● 安裝VPN網(wǎng)關(guān),防止入侵者對(duì)網(wǎng)絡(luò)信道進(jìn)行嗅探。

● 對(duì)內(nèi)部網(wǎng)絡(luò)通信采取加密處理。

● 采用交換設(shè)備進(jìn)行網(wǎng)絡(luò)分段。

● 采取技術(shù)手段發(fā)現(xiàn)處于混雜模式的主機(jī),即發(fā)掘“鼴鼠”。

3.3.3 緩沖區(qū)溢出攻擊

緩沖區(qū)溢出是指用戶(hù)向計(jì)算機(jī)緩沖區(qū)內(nèi)填充的數(shù)據(jù)位數(shù)超過(guò)了緩沖區(qū)本身的容量時(shí),溢出的數(shù)據(jù)覆蓋了合法的數(shù)據(jù)。理想的情況是:檢測(cè)程序會(huì)自行檢查數(shù)據(jù)長(zhǎng)度,并且不允許輸入超過(guò)緩沖區(qū)長(zhǎng)度的字符。然而,絕大多數(shù)程序都會(huì)假設(shè)數(shù)據(jù)長(zhǎng)度總是與所分配的儲(chǔ)存空間相匹配,這就為緩沖區(qū)溢出埋下巨大的隱患。操作系統(tǒng)中使用的緩沖區(qū),又稱(chēng)為“堆棧”。在各個(gè)操作系統(tǒng)進(jìn)程之間,指令會(huì)被臨時(shí)儲(chǔ)存在“堆棧”當(dāng)中,“堆棧”也會(huì)出現(xiàn)緩沖區(qū)溢出的情況。

緩沖區(qū)溢出攻擊則是利用軟件的緩沖區(qū)溢出漏洞進(jìn)行的攻擊。緩沖區(qū)溢出漏洞是一種非常普遍而且非常危險(xiǎn)的漏洞,它在操作系統(tǒng)和應(yīng)用軟件中廣泛存在。利用緩沖區(qū)溢出攻擊,能導(dǎo)致程序運(yùn)行失敗、系統(tǒng)關(guān)機(jī)、重新啟動(dòng)、內(nèi)存異常、CPU運(yùn)行異常等嚴(yán)重后果。

例如,圖3.17中的一段程序定義了一個(gè)名為buffer,長(zhǎng)度為16的字符數(shù)組。如果在將字符串str復(fù)制到buffer的時(shí)候,長(zhǎng)度大于16,那么就會(huì)出現(xiàn)緩沖區(qū)溢出現(xiàn)象。

圖3.17 緩沖區(qū)溢出程序

攻擊者就是利用類(lèi)似這樣的緩沖區(qū)溢出來(lái)進(jìn)一步攻擊的。這里只是舉一個(gè)小例子,說(shuō)明一下什么是緩沖區(qū)溢出。實(shí)際上的緩沖區(qū)溢出攻擊要復(fù)雜得多,感興趣的讀者可以查找相關(guān)資料。

2003年爆發(fā)的“沖擊波”病毒就是一個(gè)利用緩沖區(qū)溢出漏洞進(jìn)行攻擊的例子。“沖擊波”病毒正是利用了2003年7月21日公布的“DCOM/RPC接口中緩沖區(qū)溢出”漏洞來(lái)進(jìn)行傳播的。該病毒在當(dāng)年8月爆發(fā)。病毒運(yùn)行時(shí)會(huì)不停地利用IP掃描技術(shù)來(lái)查找網(wǎng)絡(luò)上操作系統(tǒng)為Windows 2000或Windows XP的計(jì)算機(jī),找到以后就利用DCOM/RPC緩沖區(qū)漏洞攻擊該系統(tǒng)。一旦攻擊成功,病毒將會(huì)被傳播到對(duì)方計(jì)算機(jī)中并進(jìn)行復(fù)制,使系統(tǒng)操作出現(xiàn)異常、不停地重啟,甚至?xí)?dǎo)致系統(tǒng)崩潰。只要那時(shí)的計(jì)算機(jī)上有RPC服務(wù),并且沒(méi)有給系統(tǒng)打補(bǔ)丁,就都會(huì)存在RPC漏洞。感染“沖擊波”病毒后,系統(tǒng)不斷要求關(guān)機(jī),如圖3.18所示。

圖3.18 “沖擊波”病毒要求系統(tǒng)關(guān)機(jī)

據(jù)國(guó)家計(jì)算機(jī)病毒應(yīng)急處理中心統(tǒng)計(jì),在“沖擊波”病毒出現(xiàn)24小時(shí)內(nèi),全球有140萬(wàn)個(gè)網(wǎng)絡(luò)地址(相當(dāng)于140萬(wàn)臺(tái)以上計(jì)算機(jī))被入侵。在“沖擊波”病毒出現(xiàn)的4個(gè)工作日內(nèi),該中心收集到全國(guó)范圍內(nèi)的61000多個(gè)案例,受感染的計(jì)算機(jī)超過(guò)100萬(wàn)臺(tái),全國(guó)所有地區(qū)幾乎都有案例報(bào)告。它給全球互聯(lián)網(wǎng)所帶來(lái)的直接損失,在幾十億美元左右。

緩沖區(qū)溢出攻擊占了遠(yuǎn)程攻擊的大多數(shù),這種攻擊可以使一個(gè)匿名的Internet用戶(hù)獲得一臺(tái)主機(jī)的部分或全部控制權(quán)。如果能有效消除緩沖區(qū)溢出的漏洞,則很大一部分安全威脅可以得到有效緩解。下面總結(jié)的四種方法,可以保護(hù)緩沖區(qū)免受緩沖區(qū)溢出的攻擊和影響。

(1)通過(guò)操作系統(tǒng)的檢測(cè)使得緩沖區(qū)溢出不可執(zhí)行,從而阻止攻擊者植入攻擊用的代碼。

(2)強(qiáng)制編寫(xiě)正確的代碼。

(3)利用編譯器的邊界檢查實(shí)現(xiàn)緩沖區(qū)保護(hù)。這種方法使得緩沖區(qū)溢出的情況不大可能出現(xiàn),從而完全消除了緩沖區(qū)溢出威脅,但是相對(duì)而言代價(jià)也比較大。

(4)在程序指針失效前進(jìn)行完整性的檢查。雖然這種方法不能使所有的緩沖區(qū)溢出失效,但可以阻止絕大多數(shù)的緩沖區(qū)溢出攻擊。

3.3.4 拒絕服務(wù)攻擊

1.拒絕服務(wù)攻擊簡(jiǎn)介

拒絕服務(wù)攻擊,英文名稱(chēng)是Denial of Service,簡(jiǎn)稱(chēng)DoS,即拒絕服務(wù)。DoS攻擊即攻擊者想辦法讓目標(biāo)主機(jī)或系統(tǒng)拒絕提供服務(wù)或資源訪問(wèn),這些資源包括CPU、磁盤(pán)空間、內(nèi)存、進(jìn)程、網(wǎng)絡(luò)帶寬等,從而阻止正常用戶(hù)的訪問(wèn)。下面以SYN Flood攻擊為例介紹DoS攻擊。

SYN Flood是一種常見(jiàn)的DoS攻擊方式。它是利用了TCP協(xié)議的缺陷,發(fā)送大量的偽造的TCP連接請(qǐng)求,使得被攻擊方CPU滿負(fù)荷或內(nèi)存資源耗盡,最終導(dǎo)致被攻擊方無(wú)法提供正常的服務(wù)。

要明白這種攻擊原理,還要從TCP連接的建立說(shuō)起。TCP和UDP不同,它提供一種基于連接的、可靠的字節(jié)流服務(wù)。想要雙方通信就必須先建立一條TCP連接。這條連接的兩端只有通信的雙方。TCP連接的建立過(guò)程如圖3.19所示。

圖3.19 正常的三次握手過(guò)程

首先,請(qǐng)求端(發(fā)起方)會(huì)發(fā)送一個(gè)帶有SYN標(biāo)志位的報(bào)文,SYN(Synchronize)即同步報(bào)文。該報(bào)文中含有發(fā)送端的初始序號(hào)ISN(Initial Sequence Number)和發(fā)送端使用的端口號(hào),其作用就是請(qǐng)求建立連接,也叫SYN請(qǐng)求。

第二步,應(yīng)答方收到這個(gè)請(qǐng)求報(bào)文后,就會(huì)回一個(gè)SYN+ACK的報(bào)文,同時(shí)這個(gè)報(bào)文中也包含服務(wù)器的ISN以及對(duì)請(qǐng)求端的確認(rèn)序號(hào),這個(gè)確認(rèn)序號(hào)的值是請(qǐng)求端的序號(hào)值+1,表示請(qǐng)求端的請(qǐng)求被接受。

第三步,發(fā)起方收到這個(gè)報(bào)文后,就會(huì)回應(yīng)給應(yīng)答方一個(gè)ACK報(bào)文,到此一個(gè)TCP連接就建立了。

上面也就是典型的TCP三次握手過(guò)程(Three-way Handshake)。問(wèn)題就出現(xiàn)在這最后一次的確認(rèn)里,如果由于請(qǐng)求端的某種異常(死機(jī)、掉線、有人故意而為),使得服務(wù)器沒(méi)有收到請(qǐng)求端發(fā)送的回應(yīng)ACK。那么第三次握手沒(méi)有完成,服務(wù)器就會(huì)向請(qǐng)求端再次發(fā)送一個(gè)SYN+ACK報(bào)文,并等待一段時(shí)間后丟棄這個(gè)未完成的連接。這個(gè)時(shí)間長(zhǎng)度稱(chēng)為SYN Timeout,一般來(lái)說(shuō)這個(gè)時(shí)間是分鐘的數(shù)量級(jí)(30s~2min);一個(gè)用戶(hù)出現(xiàn)異常導(dǎo)致服務(wù)器等待1min是沒(méi)有什么問(wèn)題的。如果有惡意攻擊者采用這種方式,控制大量的肉雞來(lái)模擬這種情況,服務(wù)器端會(huì)由于維護(hù)一個(gè)大量的半連接表而消耗大量的CPU和內(nèi)存資源。服務(wù)器會(huì)對(duì)這個(gè)半連接表進(jìn)行遍歷,然后嘗試發(fā)送SYN+ACK來(lái)繼續(xù)TCP連接的建立。實(shí)際上如果客戶(hù)的TCP協(xié)議棧不夠強(qiáng)大,最后的結(jié)果就是服務(wù)器堆棧溢出崩潰。即使服務(wù)器端足夠強(qiáng)大,服務(wù)器也會(huì)因?yàn)槊τ谔幚砉粽叩腡CP連接請(qǐng)求而無(wú)瑕理會(huì)正常的客戶(hù)的請(qǐng)求,此時(shí)從客戶(hù)端來(lái)看,服務(wù)器就已經(jīng)失去響應(yīng)。如果這樣的半連接是攻擊者發(fā)起的,這時(shí)我們稱(chēng)服務(wù)器遭受了SYN Flood攻擊。如圖3.20所示為攻擊者偽造SYN請(qǐng)求,形成了SYN Flood攻擊。

圖3.20 攻擊者偽造SYN請(qǐng)求

由于攻擊者大量占用了受害者的資源,正常用戶(hù)就不能訪問(wèn)正常的服務(wù)了。如圖3.21所示。

圖3.21 正常用戶(hù)不能訪問(wèn)

針對(duì)這種攻擊的防護(hù),主要是通過(guò)防火墻來(lái)實(shí)現(xiàn)的。具體來(lái)說(shuō)防火墻如果發(fā)現(xiàn)大量的這種半連接,就可以禁止它們通行,并且把相關(guān)的IP列為黑名單。這樣以后類(lèi)似的攻擊就不會(huì)發(fā)生了。如圖3.22所示為防火墻防范SYN Flood攻擊。

圖3.22 防火墻防范SYN Flood攻擊

2.分布式拒絕服務(wù)攻擊簡(jiǎn)介

分布式拒絕服務(wù)(Distributed Denial of Service,DDoS)攻擊,是使用網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上被攻陷的計(jì)算機(jī)作為“僵尸”向特定的目標(biāo)發(fā)動(dòng)“拒絕服務(wù)”式攻擊。這種攻擊是以DoS攻擊為基礎(chǔ),但是效果要比DoS攻擊強(qiáng)很多。DDoS按拒絕的對(duì)象可以分為帶寬消耗型攻擊和資源消耗型攻擊,如圖3.23所示。

圖3.23 DDoS攻擊的分類(lèi)

DDoS攻擊的基本步驟如下。

第1步:攻擊者使用掃描工具掃描大量主機(jī)以尋找潛在入侵目標(biāo),如圖3.24所示。

圖3.24 掃描

第2步:攻擊者設(shè)法入侵有安全漏洞的主機(jī)并獲取控制權(quán),這些主機(jī)將被用于放置后門(mén)、守護(hù)程序、攻擊者程序等,如圖3.25所示。

圖3.25 獲取控制權(quán)

第3步:攻擊者在得到入侵計(jì)算機(jī)清單后,從中選出建立網(wǎng)絡(luò)所需要的主機(jī),放置已編譯好的守護(hù)程序,并向被控制的計(jì)算機(jī)發(fā)送命令,如圖3.26所示。

圖3.26 放置已編譯好的守護(hù)程序

第4步:攻擊者發(fā)送控制命令給主機(jī),準(zhǔn)備啟動(dòng)對(duì)目標(biāo)系統(tǒng)的攻擊,如圖3.27所示。

第5步:主機(jī)發(fā)送攻擊信號(hào)給被控制計(jì)算機(jī)開(kāi)始對(duì)目標(biāo)系統(tǒng)發(fā)起攻擊,如圖3.28所示。

第6步:目標(biāo)系統(tǒng)被無(wú)數(shù)個(gè)偽造的請(qǐng)求所淹沒(méi),從而無(wú)法對(duì)合法用戶(hù)進(jìn)行響應(yīng),DDoS攻擊成功。如圖3.29所示,正常用戶(hù)無(wú)法訪問(wèn)。

以上為DDoS攻擊的詳細(xì)步驟。DDoS攻擊的效果非常驚人。由于整個(gè)過(guò)程是自動(dòng)化的,攻擊者能夠在5s內(nèi)入侵一臺(tái)主機(jī)并安裝攻擊工具。也就是說(shuō),在短短的一小時(shí)內(nèi)可以入侵?jǐn)?shù)千臺(tái)主機(jī),并使某一臺(tái)主機(jī)可能遭受到1000 MB/s數(shù)據(jù)量的猛烈攻擊。這一數(shù)據(jù)量相當(dāng)于1.04億人同時(shí)撥打某公司的一個(gè)電話號(hào)碼,那么正常用戶(hù)想訪問(wèn)這部電話就訪問(wèn)不成了。

圖3.27 發(fā)送控制命令

圖3.28 攻擊目標(biāo)

3.拒絕服務(wù)攻擊的防護(hù)

(1)定期掃描現(xiàn)有的網(wǎng)絡(luò)主節(jié)點(diǎn),清查可能存在的安全漏洞。對(duì)新出現(xiàn)的漏洞及時(shí)進(jìn)行清理。骨干節(jié)點(diǎn)的計(jì)算機(jī)因?yàn)榫哂休^高的帶寬,是黑客入侵的重災(zāi)區(qū),因此對(duì)這些主機(jī)本身加強(qiáng)安全是非常重要的。

(2)骨干節(jié)點(diǎn)上的防火墻的配置至關(guān)重要。防火墻本身能抵御DDoS攻擊和其他一些攻擊。在發(fā)現(xiàn)受到攻擊的時(shí)候,將攻擊導(dǎo)向一些犧牲主機(jī),這樣可以保護(hù)真正的主機(jī)不癱瘓。

(3)用足夠的機(jī)器承受黑客攻擊。這是一種較為理想的應(yīng)對(duì)策略。如果用戶(hù)擁有足夠的容量和足夠的資源讓黑客攻擊,黑客在不斷訪問(wèn)用戶(hù)、奪取用戶(hù)資源的同時(shí),自己的能量也在逐漸耗失,或許未等用戶(hù)被攻死,黑客已無(wú)力支持下去。

圖3.29 正常用戶(hù)無(wú)法訪問(wèn)

(4)充分利用網(wǎng)絡(luò)設(shè)備保護(hù)網(wǎng)絡(luò)資源。所謂網(wǎng)絡(luò)設(shè)備是指路由器、防火墻等負(fù)載均衡設(shè)備,它們可將網(wǎng)絡(luò)有效地保護(hù)起來(lái)。當(dāng)網(wǎng)絡(luò)被攻擊時(shí)最先死掉的是路由器,但其他機(jī)器沒(méi)有死。死掉的路由器經(jīng)重啟后會(huì)恢復(fù)正常,而且啟動(dòng)起來(lái)還很快,沒(méi)有什么損失。若其他服務(wù)器死掉,其中的數(shù)據(jù)會(huì)丟失,而且重啟服務(wù)器又是一個(gè)漫長(zhǎng)的過(guò)程。

(5)使用Express Forwarding可以過(guò)濾不必要的服務(wù)和端口,即在路由器上過(guò)濾假I(mǎi)P。比如Cisco公司的CEF(Cisco Express Forwarding)可以對(duì)封包Source IP和Routing Table做比較,并加以過(guò)濾。

(6)使用單播反向通路轉(zhuǎn)發(fā)(Unicast Reverse Path Forwarding)檢查訪問(wèn)者的來(lái)源。它通過(guò)反向路由表查詢(xún)的方法檢查訪問(wèn)者的IP地址是否是真,如果是假的,它將予以屏蔽。許多黑客攻擊常采用假I(mǎi)P地址的方式來(lái)迷惑用戶(hù),很難查出它來(lái)自何處,因此,利用單播反向通路轉(zhuǎn)發(fā)可減少假I(mǎi)P地址的出現(xiàn),有助于提高網(wǎng)絡(luò)安全性。

(7)過(guò)濾所有RFC1918 IP地址。RFC1918 IP地址是內(nèi)部網(wǎng)的IP地址,像10.0.0.0、192.168.0.0和172.16.0.0,它們不是某個(gè)網(wǎng)段的固定IP地址,而是Internet內(nèi)部保留的區(qū)域性IP地址,所以應(yīng)該把它們過(guò)濾掉。

(8)限制SYN/ICMP流量。用戶(hù)應(yīng)在路由器上設(shè)置SYN/ICMP的最大流量來(lái)限制SYN/ICMP封包所能占有的最高頻寬,這樣,當(dāng)出現(xiàn)大量的超過(guò)所限定的SYN/ICMP流量時(shí),就說(shuō)明不是正常的網(wǎng)絡(luò)訪問(wèn),而是有黑客正在入侵。

3.3.5 SQL注入攻擊

1. SQL注入攻擊簡(jiǎn)介

SQL注入攻擊是攻擊者對(duì)數(shù)據(jù)庫(kù)進(jìn)行攻擊的常用方法之一。隨著B(niǎo)/S模式應(yīng)用開(kāi)發(fā)的廣泛使用,采用這種模式編寫(xiě)的應(yīng)用程序也越來(lái)越多。然而由于程序員之間的水平及經(jīng)驗(yàn)也存在差距,很多程序員在編寫(xiě)代碼的時(shí)候,沒(méi)有對(duì)用戶(hù)輸入數(shù)據(jù)的合法性進(jìn)行驗(yàn)證,使應(yīng)用程序存在許多安全隱患。攻擊者可以提交一段用SQL語(yǔ)言編寫(xiě)的數(shù)據(jù)庫(kù)查詢(xún)代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù),這就是所謂的SQL注入攻擊(SQL Injection)。SQL注入攻擊會(huì)導(dǎo)致的數(shù)據(jù)庫(kù)安全風(fēng)險(xiǎn)包括刷庫(kù)、拖庫(kù)、撞庫(kù)。

2. SQL注入攻擊的原理

例如,某網(wǎng)站的登錄驗(yàn)證的SQL查詢(xún)代碼如下:

當(dāng)惡意攻擊者填入

時(shí),將導(dǎo)致原本的SQL字符串被填為

也就是實(shí)際上運(yùn)行的SQL命令會(huì)變成下面這樣的

因此,攻擊者就可以達(dá)到?jīng)]有賬號(hào)密碼,也可以登錄網(wǎng)站的目的。所以SQL注入攻擊俗稱(chēng)為攻擊者的填空游戲。

3. SQL注入攻擊的實(shí)現(xiàn)

目前的SQL注入攻擊不用自己編寫(xiě)軟件,網(wǎng)上有很多這樣的工具,例如BSQL Hacker、Pangolin、Aqlmap、Havij、Enema等。如圖3.30所示為SQL注入工具BSQL Hacker。

BSQL Hacker注入工具是由Portcullis實(shí)驗(yàn)室開(kāi)發(fā)的一個(gè)SQL自動(dòng)注入工具(支持SQL盲注)。它可以自動(dòng)對(duì)Oracle和MySQL等數(shù)據(jù)庫(kù)進(jìn)行攻擊,并自動(dòng)提取數(shù)據(jù)庫(kù)的數(shù)據(jù)和架構(gòu)。

4. SQL注入攻擊的危害

SQL注入攻擊的危害是非常大的。根據(jù)媒體報(bào)道,2011年12月21日,有多家互聯(lián)網(wǎng)站的用戶(hù)數(shù)據(jù)庫(kù)被黑客公開(kāi),超過(guò)5000萬(wàn)個(gè)用戶(hù)賬號(hào)和密碼在網(wǎng)上流傳。2011年12月21日,某專(zhuān)業(yè)網(wǎng)站數(shù)據(jù)庫(kù)開(kāi)始在網(wǎng)上被瘋狂轉(zhuǎn)發(fā),包括600余萬(wàn)個(gè)明文的注冊(cè)郵箱和密碼泄露,大批受影響用戶(hù)為此連夜修改密碼。此后,178游戲網(wǎng)等5家網(wǎng)站的用戶(hù)數(shù)據(jù)庫(kù)又被相繼公開(kāi),更有媒體曝光金山毒霸等數(shù)十家大型網(wǎng)站已遭黑客“拖庫(kù)”,從而將2011年末的密碼危機(jī)推向高峰。

5. SQL注入攻擊的防護(hù)

SQL注入攻擊屬于數(shù)據(jù)庫(kù)安全攻擊方法之一,可以通過(guò)數(shù)據(jù)庫(kù)安全防護(hù)技術(shù)實(shí)現(xiàn)有效防護(hù),數(shù)據(jù)庫(kù)安全防護(hù)方法與技術(shù)包括數(shù)據(jù)庫(kù)漏掃、數(shù)據(jù)庫(kù)加密、數(shù)據(jù)庫(kù)防火墻、數(shù)據(jù)脫敏、數(shù)據(jù)庫(kù)安全審計(jì)系統(tǒng)。

圖3.30 BSQL注入攻擊工具

3.3.6 木馬攻擊

1.木馬簡(jiǎn)介

傳說(shuō)希臘軍隊(duì)包圍特洛伊城久攻不下,于是有人想到了做一只大木馬,里面藏著一些士兵。然后假裝撤退,將木馬丟棄在特洛伊城下。等特洛伊人把木馬拉進(jìn)城后,晚上士兵出來(lái)打開(kāi)城門(mén),把希臘軍隊(duì)放進(jìn)來(lái)攻破了特洛伊城。如圖3.31所示為特洛伊木馬原型圖。

圖3.31 特洛伊木馬原型圖

在網(wǎng)絡(luò)安全界,木馬是特洛伊木馬的簡(jiǎn)稱(chēng)。木馬程序可以直接侵入用戶(hù)的計(jì)算機(jī)并進(jìn)行破壞,它常被偽裝成工具程序或者游戲等,誘使用戶(hù)打開(kāi)帶有木馬程序的郵件附件或從網(wǎng)上直接下載,一旦用戶(hù)打開(kāi)了這些郵件的附件或者執(zhí)行了這些程序,它們就會(huì)在計(jì)算機(jī)系統(tǒng)中隱藏一個(gè)可以在啟動(dòng)時(shí)悄悄執(zhí)行的程序。這種遠(yuǎn)程控制工具可以完全控制受害主機(jī),危害極大。

Windows下的木馬包括Netbus、subseven、BO、冰河、網(wǎng)絡(luò)神偷等。UNIX下的木馬則包括Rhost ++、Login后門(mén)、rootkit等。

以冰河木馬為例,其不同版本的文件圖標(biāo)如圖3.32所示。以冰河木馬6.0為例,其服務(wù)端大小為182KB,客戶(hù)端大小為451KB。

圖3.32 不同版本冰河木馬的文件圖標(biāo)

完整的木馬程序一般由兩部分組成:一個(gè)是服務(wù)器端,另一個(gè)是客戶(hù)端(也叫控制器端)。“中了木馬”就是指安裝了木馬的服務(wù)器端程序。若你的計(jì)算機(jī)被安裝了服務(wù)器端程序,則擁有相應(yīng)客戶(hù)端的人就可以通過(guò)網(wǎng)絡(luò)控制你的計(jì)算機(jī),為所欲為。這時(shí)你計(jì)算機(jī)上的各種文件、程序,以及正在使用的賬號(hào)、密碼就無(wú)安全可言了。這里注意受害者安裝的是服務(wù)器端,攻擊者用的是客戶(hù)端,不能反了。如果反了就被別人控制了。如圖3.33所示為冰河木馬6.0版本的界面。它的功能非常強(qiáng)大,可以抓取或控制屏幕、發(fā)送密碼、刪除文件等。

圖3.33 冰河木馬6.0版

2.木馬的種類(lèi)

(1)破壞型。這類(lèi)木馬唯一的功能就是破壞并且刪除文件,可以自動(dòng)刪除計(jì)算機(jī)中的Word、DLL、INI、EXE等重要文件。

(2)密碼發(fā)送型。可以獲取用戶(hù)的許多密碼并把它們發(fā)送到指定的郵箱。很多人喜歡把自己的各種密碼以文件的形式存放在計(jì)算機(jī)中,認(rèn)為這樣方便。但許多木馬軟件可以尋找到這些文件,把它們發(fā)送到黑客手中。也有些木馬軟件長(zhǎng)期潛伏,記錄操作者的鍵盤(pán)操作,從中尋找有用的密碼。

(3)遠(yuǎn)程訪問(wèn)型。如果有人運(yùn)行了服務(wù)端程序,一旦攻擊者知道了服務(wù)端的IP地址,就可以實(shí)現(xiàn)遠(yuǎn)程控制。這樣可以觀察受害者正在干什么,從而達(dá)到監(jiān)視某個(gè)計(jì)算機(jī)操作的目的。

(4)鍵盤(pán)記錄木馬。這種木馬程序只做一件事情,就是記錄受害者的鍵盤(pán)敲擊并且在LOG文件里查找密碼。它會(huì)隨著Windows的啟動(dòng)而啟動(dòng),并提供在線和離線記錄這樣的選項(xiàng),可以分別記錄受害者在線和離線狀態(tài)下敲擊鍵盤(pán)時(shí)的按鍵。也就是說(shuō)受害者按過(guò)什么按鍵,木馬程序都能知道,從這些按鍵中很容易就會(huì)得到受害者的密碼甚至是銀行卡賬號(hào)等有用信息。

(5)DoS攻擊木馬。隨著DoS攻擊越來(lái)越廣泛,被用作DoS攻擊的木馬程序也越來(lái)越多。攻擊者入侵一臺(tái)計(jì)算機(jī)后,會(huì)向其植入DoS攻擊木馬程序,這臺(tái)計(jì)算機(jī)日后就成為攻擊者進(jìn)行DoS攻擊的得力助手了。所以,這種木馬程序的危害不是體現(xiàn)在被感染的計(jì)算機(jī)上,而是體現(xiàn)在攻擊者可以利用它來(lái)攻擊一臺(tái)又一臺(tái)計(jì)算機(jī)。

3.木馬的防范

(1)檢測(cè)和尋找木馬隱藏的位置。木馬侵入系統(tǒng)后,需要找一個(gè)安全的地方選擇適當(dāng)?shù)臅r(shí)機(jī)進(jìn)行攻擊,因此只有找到和掌握木馬藏匿位置,才能最終清除木馬。木馬經(jīng)常會(huì)集成到程序中,藏匿在系統(tǒng)中,偽裝成普通文件或者添加到計(jì)算機(jī)操作系統(tǒng)的注冊(cè)表中,還有的會(huì)嵌入在啟動(dòng)文件中,一旦計(jì)算機(jī)啟動(dòng),這些木馬程序也將運(yùn)行。

(2)防范端口。檢查計(jì)算機(jī)用到什么樣的端口,正常運(yùn)用的是哪些端口,而哪些端口不是正常開(kāi)啟的;了解計(jì)算機(jī)端口狀態(tài),哪些端口目前是連接的,特別注意這種開(kāi)放是否正常;查看當(dāng)前的數(shù)據(jù)交換情況,重點(diǎn)注意哪些數(shù)據(jù)交換比較頻繁,是否屬于正常數(shù)據(jù)交換。關(guān)閉一些不必要的端口,例如,7626端口會(huì)經(jīng)常被冰河木馬使用,可以考慮關(guān)閉它。

(3)刪除可疑程序。對(duì)于非系統(tǒng)的程序,如果不是必要的,完全可以刪除;如果不能確定,則可以利用一些查殺工具進(jìn)行檢測(cè)。

(4)安裝防火墻。防火墻在計(jì)算機(jī)系統(tǒng)中起著不可替代的作用,它保障計(jì)算機(jī)的數(shù)據(jù)流通,保護(hù)著計(jì)算機(jī)的安全通道,對(duì)數(shù)據(jù)進(jìn)行管控可以根據(jù)用戶(hù)需要自定義,防止不必要的數(shù)據(jù)流通。安裝防火墻有助于對(duì)計(jì)算機(jī)病毒木馬程序的防范與攔截。

3.3.7 社會(huì)工程學(xué)攻擊

社會(huì)工程學(xué)攻擊是一種利用人的弱點(diǎn),以順從人的意愿、滿足人的欲望的方式,讓受害者上當(dāng)受騙的方法。

社會(huì)工程學(xué)的基本攻擊目標(biāo)和其他攻擊方法基本相同,目的都是為了獲得目標(biāo)系統(tǒng)的未授權(quán)訪問(wèn)路徑或重要信息,從事網(wǎng)絡(luò)入侵、信息盜取、身份盜取,或者僅僅是擾亂系統(tǒng)或網(wǎng)絡(luò),或是為了騙取受害人的錢(qián)財(cái)?shù)取?/p>

下面是一個(gè)虛擬的社會(huì)工程學(xué)攻擊的例子。某人在玩聯(lián)眾游戲的時(shí)候,突然有消息彈出聲稱(chēng)“中獎(jiǎng)”了。中獎(jiǎng)信息可以在網(wǎng)站www.ourgame888.com上看到。打開(kāi)這個(gè)網(wǎng)站如圖3.34所示,它和真正的聯(lián)眾網(wǎng)站幾乎沒(méi)有任何區(qū)別,只是上面多了一個(gè)“有獎(jiǎng)活動(dòng)專(zhuān)區(qū)”。

圖3.34 “中獎(jiǎng)”網(wǎng)站

進(jìn)入“有獎(jiǎng)活動(dòng)專(zhuān)區(qū)”,上面說(shuō)明獎(jiǎng)品為8000元現(xiàn)金和價(jià)值14900元的LG筆記本計(jì)算機(jī),如圖3.35所示;在“領(lǐng)獎(jiǎng)?wù)f明”中說(shuō),要獲得這些獎(jiǎng)品和獎(jiǎng)金必須先給承辦方688元的手續(xù)費(fèi)用,如圖3.36所示;這次活動(dòng)還有公證人叫“孫世江”,如圖3.37所示;還有聯(lián)眾公司的“網(wǎng)絡(luò)文化經(jīng)營(yíng)許可證”,如圖3.38所示;最后必須填寫(xiě)反饋信息,如圖3.39所示。

這是一起非常典型的社會(huì)工程學(xué)攻擊事件。如果不認(rèn)真分析,很容易受騙。下面做一個(gè)詳細(xì)的分析。細(xì)心的話,會(huì)發(fā)現(xiàn)這里有很多疑點(diǎn)。

(1)打開(kāi)真正的聯(lián)眾網(wǎng)站www.ourgame.com,如圖3.40所示。會(huì)發(fā)現(xiàn)它和上面的假聯(lián)眾網(wǎng)站除了“有獎(jiǎng)活動(dòng)專(zhuān)區(qū)”有區(qū)別以外,“在線游戲”人數(shù)也不一樣。真正聯(lián)眾網(wǎng)站上的在線游戲人數(shù)是變化的,而假聯(lián)眾網(wǎng)站上的在線游戲人數(shù)卻是不變的。

圖3.35 “獎(jiǎng)品”

圖3.36 “領(lǐng)獎(jiǎng)?wù)f明”

圖3.37 “公證人”

圖3.38 “聯(lián)眾”公司的“網(wǎng)絡(luò)文化經(jīng)營(yíng)許可證”

圖3.39 反饋信息

圖3.40 真正的聯(lián)眾網(wǎng)站

(2)上面“領(lǐng)獎(jiǎng)?wù)f明”里面要交688元手續(xù)費(fèi),這里我們不禁要問(wèn),這688元的手續(xù)費(fèi)為什么不能直接從8000元的“獎(jiǎng)金”中扣除呢?

(3)上面聯(lián)眾公司“網(wǎng)絡(luò)文化經(jīng)營(yíng)許可證”當(dāng)中,“單位名稱(chēng)”“地址”“法定代表人”“經(jīng)濟(jì)類(lèi)型”“注冊(cè)資本”等信息的字體大小、字體深淺為什么是不一樣的呢?

(4)為什么在“反饋信息”當(dāng)中,要寫(xiě)“銀行卡號(hào)”“身份證信息”“真實(shí)姓名”“持卡人姓名”等信息呢?

這些都是關(guān)于這次活動(dòng)的疑問(wèn)。經(jīng)過(guò)分析可以得出:通過(guò)上面第1點(diǎn)判斷,這是一個(gè)假網(wǎng)站;通過(guò)第2點(diǎn)判斷,這個(gè)活動(dòng)是在騙取“手續(xù)費(fèi)”;通過(guò)第3點(diǎn)判斷,這個(gè)“網(wǎng)絡(luò)文化經(jīng)營(yíng)許可證”是被人改過(guò)的、假的證件;通過(guò)第4點(diǎn)判斷,對(duì)方想騙取受害者銀行卡上的錢(qián)。

針對(duì)這種社會(huì)工程學(xué)攻擊的防范措施,關(guān)鍵是計(jì)算機(jī)用戶(hù)要會(huì)冷靜分析。要知道天上是不會(huì)平白無(wú)故掉下餡餅的,世界上沒(méi)有免費(fèi)的午餐。不要輕易相信類(lèi)似的中獎(jiǎng)信息,除非得到公安部門(mén)的認(rèn)可。

防范社會(huì)工程學(xué)攻擊主要采用如下方法。

(1)當(dāng)心來(lái)路不明的電子郵件、短信以及電話。在提供任何個(gè)人信息之前,驗(yàn)證其可靠性和權(quán)威性。

(2)仔細(xì)并認(rèn)真地瀏覽電子郵件、短信、微信等的細(xì)節(jié)。不要讓攻擊者消息中的急迫性阻礙了你的判斷。

(3)自學(xué)。信息是預(yù)防社會(huì)工程攻擊的最有力的工具。要經(jīng)常學(xué)習(xí)并研究如何鑒別和防御網(wǎng)絡(luò)攻擊者。

(4)永遠(yuǎn)不要打開(kāi)來(lái)自未知發(fā)送者的電子郵件中的嵌入鏈接。如果有必要就使用搜索引擎尋找目標(biāo)網(wǎng)站或手動(dòng)輸入網(wǎng)站地址。

(5)永遠(yuǎn)不要在未知發(fā)送者的電子郵件中下載附件。

(6)拒絕來(lái)自陌生人的在線技術(shù)幫助,無(wú)論他們聲稱(chēng)自己是多么正當(dāng)?shù)摹?/p>

(7)使用防火墻來(lái)保護(hù)計(jì)算機(jī)空間,及時(shí)更新殺毒軟件同時(shí)提高垃圾郵件過(guò)濾器的門(mén)檻。

(8)下載軟件及操作系統(tǒng)補(bǔ)丁,預(yù)防零日漏洞。及時(shí)安裝軟件供應(yīng)商發(fā)布的補(bǔ)丁程序。

(9)經(jīng)常關(guān)注網(wǎng)站的URL。有時(shí)網(wǎng)上的騙子對(duì)URL做了細(xì)微的改動(dòng),將流量誘導(dǎo)進(jìn)了自己的詐騙網(wǎng)站。

(10)不要幻想不勞而獲。如果你從來(lái)沒(méi)有買(mǎi)過(guò)彩票,那你永遠(yuǎn)都不會(huì)成為那個(gè)中大獎(jiǎng)的幸運(yùn)兒。如果你從來(lái)就沒(méi)有丟過(guò)錢(qián),那為什么還要接受來(lái)自國(guó)外某個(gè)機(jī)構(gòu)的退款呢?

主站蜘蛛池模板: 尤溪县| 达拉特旗| 遂宁市| 西青区| 竹溪县| 中西区| 冷水江市| 临江市| 织金县| 星子县| 武定县| 克什克腾旗| 江北区| 新巴尔虎右旗| 陇西县| 峡江县| 曲阜市| 那曲县| 亳州市| 郓城县| 孙吴县| 汝州市| 梨树县| 合山市| 乐安县| 肥西县| 台南市| 略阳县| 临湘市| 芜湖县| 方山县| 卓尼县| 伊川县| 突泉县| 台北县| 龙井市| 九龙城区| 广南县| 澄城县| 鹤峰县| 淮北市|