DNS原理、脆弱性與域名劫持案例
《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析DNS 原理、脆弱性與域名劫持案例賀思德 謝利東 sd
《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
DNS 原理、脆弱性與域名劫持案例
賀思德 謝利東 sdhe@ynu.edu.cn 2008-10-30 【未完¥章】
摘要 摘要 域名服務(wù)系統(tǒng)DNS 是互聯(lián)網(wǎng)中一個(gè)龐大的分布式數(shù)據(jù)庫系統(tǒng),它有兩個(gè)重要的作用:一是為網(wǎng)絡(luò)用戶訪問Web 服務(wù)器等信息系統(tǒng)時(shí)提供網(wǎng)站域名與IP 地址的轉(zhuǎn)換查詢,二是為電子郵件系統(tǒng)的傳輸提供路由信息。本文內(nèi)容:((1)以一個(gè)本地DNS 查詢過程的數(shù)據(jù)分析介紹其工作原理,((2)用2008年8月發(fā)生于國內(nèi)互聯(lián)網(wǎng)上的一個(gè)DNS 劫持案例,介紹淫穢網(wǎng)站如何利用DNS 系統(tǒng)的漏洞來進(jìn)行域名劫持,并使用超長的URL 來逃避互聯(lián)網(wǎng)搜索引擎和公安網(wǎng)絡(luò)監(jiān)察部門的搜索,將大量的互聯(lián)網(wǎng)用戶的DNS 查詢劫持連接到淫穢網(wǎng)站上,以提高其訪問量。((3)分析了DNS 協(xié)議固有的脆弱性,微軟的Windows 等商用系統(tǒng)的漏洞,最后給出了如何在DNS 系統(tǒng)中增強(qiáng)安全性的解決方案。
說明:說明:第一個(gè)DNS 案例屬于本地解析,因?yàn)椴樵兊氖跈?quán)域名記錄就在本地DNS 服務(wù)器上。如果要查詢的域名不在本地DNS 服務(wù)器中時(shí),可以采用遞歸解析和迭代解析兩種方式進(jìn)行自動(dòng)轉(zhuǎn)發(fā)。第二個(gè)域名劫持案例產(chǎn)生于互聯(lián)網(wǎng)DNS 系統(tǒng)的遞歸解析過程中,詳細(xì)的背景知識(shí)參看頁眉教材的第6.1.3節(jié)。分析軟件工具Wireshark 和使用方法可從頁眉的網(wǎng)站下載。
¥.1 .1 DNS 域名查詢服務(wù)數(shù)據(jù)域名查詢服務(wù)數(shù)據(jù)分析服務(wù)數(shù)據(jù)分析 分析
【實(shí)驗(yàn)?zāi)康摹?/p>
理解DNS(Domain Name System)域名服務(wù)器如何處理來自客戶機(jī)的域名解析請(qǐng)求。
通過實(shí)際案例分析DNS 如何進(jìn)行查詢和響應(yīng)。
【實(shí)驗(yàn)內(nèi)容】
1.利用客戶機(jī)訪問云南大學(xué)VOD 視頻點(diǎn)播服務(wù)器vod.ynu.edu.cn,同時(shí)用客戶機(jī)上安裝的網(wǎng)絡(luò)協(xié)議分析軟件Wireshark 捕獲通信時(shí)的數(shù)據(jù)。
2.分析DNS 客戶機(jī)/服務(wù)器之間的通信過程。
3.分析查詢數(shù)據(jù)包和響應(yīng)數(shù)據(jù)包的結(jié)構(gòu)和詳細(xì)內(nèi)容。
【實(shí)驗(yàn)原理】
參看教材第6.1節(jié)(P179)和第7章第2節(jié)相關(guān)內(nèi)容(P236)。圖¥.1為DNS

























查詢步驟圖。
圖¥.1 DNS域名查詢過程
【實(shí)驗(yàn)步驟】
1.啟動(dòng)客戶機(jī)上安裝的Wireshark 軟件,執(zhí)行Capture → Interfaces菜單命令,選擇進(jìn)行捕獲的網(wǎng)絡(luò)接口及其他選項(xiàng),詳細(xì)操作請(qǐng)參看教材第7章第2節(jié)相關(guān)部分(P246)。
1
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
2.啟動(dòng)客戶機(jī)IE 瀏覽器,訪問云南大學(xué)視頻點(diǎn)播服務(wù)器http://vod.ynu.edu.cn,捕獲通信數(shù)據(jù)。
3.停止Wireshark 的捕獲進(jìn)程。在Wireshark 界面顯示出獲取的數(shù)據(jù)包列表。
4.利用Wireshark 的顯示過濾器,從捕獲數(shù)據(jù)中濾出DNS 通信數(shù)據(jù)包。
在顯示過濾器Filter 中輸入“udp.port==53”并按下Enter 鍵,從捕獲數(shù)據(jù)中過濾出獲得本機(jī)與DNS 服務(wù)器通信的數(shù)據(jù)包,如圖¥.2所示,詳細(xì)操作請(qǐng)參看教材第7章(P251)。從圖中可以看出,1號(hào)數(shù)據(jù)包為DNS 客戶機(jī)查詢數(shù)據(jù)包,2號(hào)包為服務(wù)器響應(yīng)數(shù)據(jù)包。
注意:在圖¥.2中的下窗口可以看到Wireshark 自動(dòng)將數(shù)據(jù)中的ASCII 編碼字節(jié)翻譯為文本字符(參看教材附錄F ASCII編碼表)。例如:查詢ASCII 編碼表,第003F 字節(jié)是65,代表字符e。第0040號(hào)字節(jié)是64,代表字符d。第0041號(hào)字節(jié)是75,代表字符u。等等。而文本開始處的符號(hào)“.”編碼為02,文本結(jié)束處的符號(hào)“.”編碼為03(本段中的數(shù)字都是16

進(jìn)制數(shù))。
圖¥.2 DNS客戶機(jī)請(qǐng)求與服務(wù)器響應(yīng)的通信數(shù)據(jù)
5.分析DNS 通信過程 通信過程
在圖¥.2中,鼠標(biāo)點(diǎn)擊執(zhí)行Statistics → Flow Graph菜單命令,獲取客戶機(jī)(本機(jī))向DNS 服務(wù)器查詢vod.ynu.edu.cn 時(shí)的數(shù)據(jù)流向圖,如圖¥.3所示,詳細(xì)操作參看教材第7

章(P259)。
圖¥.3 DNS域名查詢數(shù)據(jù)流向圖
注意:由于202.203.208.33是校園網(wǎng)內(nèi)的DNS 服務(wù)器,查詢速度較快,實(shí)際用時(shí)0.000468秒,因數(shù)據(jù)流向圖中保留3位有效數(shù)字,故Time 時(shí)間顯示均為0.000。
6.分析查詢請(qǐng)求分析查詢請(qǐng)求數(shù)據(jù)包結(jié)構(gòu)請(qǐng)求數(shù)據(jù)包結(jié)構(gòu) 數(shù)據(jù)包結(jié)構(gòu)
從圖¥.2中可以看出,1號(hào)數(shù)據(jù)包為查詢請(qǐng)求數(shù)據(jù)包,下面逐步對(duì)該數(shù)據(jù)包的結(jié)構(gòu)進(jìn)行分析。
2
,
《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
圖¥.4 1號(hào)數(shù)據(jù)包概要信息
(1)概要信息 概要信息
在Summary 窗口中單擊選中1號(hào)數(shù)據(jù)包,分析其概要信息,如圖¥.4所示。其中顯示:1號(hào)數(shù)據(jù)包是由客戶機(jī)(本機(jī))發(fā)給DNS 服務(wù)器的DNS 協(xié)議標(biāo)準(zhǔn)請(qǐng)求,查詢域名為vod.ynu.edu.cn。
(2)應(yīng)用層(應(yīng)用層(Domain Name System Domain Name System )頭部信息 頭部信息
在概要窗口中單擊選中1號(hào)數(shù)據(jù)包,并在協(xié)議樹窗口中單擊“Domain Name System”協(xié)議前的“ ”,顯示出該協(xié)議的詳細(xì)信息,如圖¥.5所示,詳細(xì)操作請(qǐng)參看教材第7章相關(guān)部分(P236)。
圖¥.5 應(yīng)用層(Domain Name System)頭部信息
分析:圖¥.5中的協(xié)議數(shù)據(jù)內(nèi)容詳細(xì)分析如下所示。
Domain Name System (query) // DNS查詢請(qǐng)求
[Response In: 2] // 響應(yīng)的標(biāo)識(shí)為2
Transaction ID: 0x3d34 // 本次DNS 查詢的標(biāo)識(shí)ID 代號(hào)
Flags: 0x0100 (Standard query) // 這是標(biāo)準(zhǔn)的查詢請(qǐng)求
0... .... .... .... = Response: Message is a query // QR: 這是查詢報(bào)文
.000 0... .... .... = Opcode: Standard query (0) // Opcode:操作代碼(0)標(biāo)準(zhǔn)查詢
.... ..0. .... .... = Truncated: Message is not truncated // TC:此查詢報(bào)文是完整的 .... ...1 .... .... = Recursion desired: Do query recursively // RD:請(qǐng)使用遞歸查詢 .... .... .0.. .... = Z: reserved (0) // 保留(0)標(biāo)志
0 = Non-authenticated data OK: Non-authenticated data is unacceptable // 非授權(quán)數(shù)據(jù):拒絕接受 Questions: 1 // 查詢記錄數(shù):1
Answer RRs: 0 // 應(yīng)答記錄數(shù):0
Authority RRs: 0 // 授權(quán)記錄數(shù):0
Additional RRs: 0 // 附加記錄數(shù):0
Queries // 查詢的問題
vod.ynu.edu.cn: type A, class IN // 要查詢的域名,類型A,要獲取IP 地址 Name: vod.ynu.edu.cn // 查詢域名為vod.ynu.edu.cn
Type: A (Host address) // 類型A(主機(jī)地址)
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
3
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
(3)User Datagram ProtocolUser Datagram Protocol am Protocol 傳輸層UDP 用戶數(shù)據(jù)報(bào)頭部信息用戶數(shù)據(jù)報(bào)頭部信息 頭部信息
在概要窗口中單擊選中1號(hào)數(shù)據(jù)包,并在協(xié)議樹窗口中單擊“User Datagram Protocol”協(xié)議前的“ ”,顯示出該協(xié)議的詳細(xì)信息,如圖¥.6所示,詳細(xì)操作請(qǐng)參看教材第7

章相關(guān)部分(P236)。
圖¥.6 傳輸層UDP(User Datagram Protocol)頭部信息
分析:協(xié)議內(nèi)容詳細(xì)分析如下所示
User Datagram Protocol, Src Port: 1034 (1034), Dst Port: domain (53) //UDP源端口1034,目的端口53 Source port: 1034 (1034) // 源端口(本機(jī)):1034
Destination port: domain (53) // 目的端口(DNS服務(wù)器):53
Length: 40 // UDP數(shù)據(jù)報(bào)總長度:40字節(jié)
Checksum: 0xc4c4 [correct] // 校驗(yàn)和,正確
7.分析響應(yīng)數(shù)據(jù)包結(jié)構(gòu) 分析響應(yīng)數(shù)據(jù)包結(jié)構(gòu)
從圖6.1-1中可以看出,2號(hào)數(shù)據(jù)包為DNS 服務(wù)器的響應(yīng)數(shù)據(jù)包,下面對(duì)該數(shù)據(jù)包的結(jié)構(gòu)進(jìn)行分析。
(1)概要信息 概要信息
在Summary 窗口中單擊選中2號(hào)數(shù)據(jù)包,如圖¥.7所示。概要信息:2號(hào)數(shù)據(jù)包是由DNS 服務(wù)器發(fā)給

客戶機(jī)(本機(jī))的響應(yīng),使用DNS

協(xié)議。
圖¥.7 2號(hào)數(shù)據(jù)包概要信息
圖¥.8 應(yīng)用層(Domain Name System)頭部信息
4
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
(2)應(yīng)用層DNS(DNS (Domain Name System Domain Name System )響應(yīng)的頭部信息 響應(yīng)的頭部信息
在概要窗口中單擊選中2號(hào)數(shù)據(jù)包,并在協(xié)議樹窗口中單擊“Domain Name System”協(xié)議前的“ ”,顯示出該協(xié)議的詳細(xì)信息,如圖¥.8所示,詳細(xì)操作請(qǐng)參看教材第7章相關(guān)部分(P236)。
分析:圖¥.8中的協(xié)議數(shù)據(jù)內(nèi)容詳細(xì)分析如下。
Domain Name System (response) // DNS響應(yīng)
[Request In: 1] // 請(qǐng)求的標(biāo)識(shí)為1
[Time: 0.000468000 seconds] // 1號(hào)請(qǐng)求包與2號(hào)響應(yīng)包的時(shí)間間隔 Transaction ID: 0x3d34 // 本次DNS 的業(yè)務(wù)交易代號(hào)ID(與請(qǐng)求包相同) Flags: 0x8580 (Standard query response, No error) // 標(biāo)準(zhǔn)的查詢響應(yīng),無錯(cuò)
1... .... .... .... = Response: Message is a response // QR: 這是一個(gè)響應(yīng)報(bào)文
.000 0... .... .... = Opcode: Standard query (0) // Opcode:標(biāo)準(zhǔn)查詢(0)
.... .1.. .... .... = Authoritative: Server is an authority for domain
// 授權(quán)狀態(tài):本域內(nèi)的授權(quán)服務(wù)器
.... ..0. .... .... = Truncated: Message is not truncated // TC:本報(bào)文是完整的
.... ...1 .... .... = Recursion desired: Do query recursively // RD:執(zhí)行遞歸查詢
1... .... = Recursion available: Server can do recursive queries // RA:本服務(wù)器可以遞歸查詢 .... .... .0.. .... = Z: reserved (0) // 保留(0)標(biāo)志
.... .. ..0. = Answer authenticated: Answer/authority portion was not authenticated by the server // 授權(quán)的應(yīng)答:應(yīng)答中的授權(quán)部分不是本服務(wù)器的授權(quán),而是遞歸解析過程中來自其他服務(wù)器的授權(quán) .... .... .... 0000 = R
reply code: No error (0) // 應(yīng)答代碼:無錯(cuò)0
Questions: 1 // 查詢問題:1
Answer RRs: 1 // 應(yīng)答記錄數(shù):1
Authority RRs: 2 // 授權(quán)記錄數(shù):2
Additional RRs: 2 // 附加記錄數(shù):2
Queries // 查詢的問題
vod.ynu.edu.cn: type A, class IN // 查詢的域名,類型,互聯(lián)網(wǎng)地址
Name: vod.ynu.edu.cn // 查詢域名為vod.ynu.edu.cn
Type: A (Host address) // 查詢類型A(主機(jī)地址)
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
Answers // 回答
vod.ynu.edu.cn: type A, class IN, addr 202.203.208.175 // 所查詢域名的IP 地址為202.203.208.175 Name: vod.ynu.edu.cn // 查詢域名為vod.ynu.edu.cn
Type: A (Host address) // 類型A(主機(jī)地址)
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
Time to live: 1 day // 此答案的有效期:1天
Data length: 4 // 數(shù)據(jù)長度:4字節(jié)
Addr: 202.203.208.175
Authoritative nameservers // 授權(quán)的域名服務(wù)器
ynu.edu.cn: type NS, class IN, ns pridns.ynu.edu.cn // 上級(jí)域名,域名服務(wù)器
Name: ynu.edu.cn //上級(jí)域名:ynu.edu.cn
Type: NS (Authoritative name server) // 類型:授權(quán)的域名服務(wù)器
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
Time to live: 1 day // 此答案有效期:1天
Data length: 9 // 數(shù)據(jù)長度:9字節(jié)
Name server: pridns.ynu.edu.cn // 初級(jí)域名服務(wù)器:pridns.ynu.edu.cn 5
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
ynu.edu.cn: type NS, class IN, ns secdns.ynu.edu.cn // 上級(jí)域名,二級(jí)域名服務(wù)器
Name: ynu.edu.cn // 域名:ynu.edu.cn
Type: NS (Authoritative name server) // 類型:授權(quán)域名服務(wù)器
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
Time to live: 1 day // 此答案有效期:1天
Data length: 9 // 數(shù)據(jù)長度:9字節(jié)
Name server: secdns.ynu.edu.cn // 二級(jí)域名服務(wù)器:secdns.ynu.edu.cn
Additional records // 附加記錄部分
pridns.ynu.edu.cn: type A, class IN, addr 202.203.208.33 // 初級(jí)域名服務(wù)器和它的IP 地址 Name: pridns.ynu.edu.cn // 初級(jí)DNS 服務(wù)器域名:pridns.ynu.edu.cn Type: A (Host address) // 類型:主機(jī)地址
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
Time to live: 1 day // 答案的有效期:1天
Data length: 4 // 數(shù)據(jù)長度:4字節(jié)
Addr: 202.203.208.33 //初級(jí)域名服務(wù)器地址:202.203.208.33 secdns.ynu.edu.cn: type A, class IN, addr 202.203.208.34 // 二級(jí)域名服務(wù)器和地址
Name: secdns.ynu.edu.cn // 二級(jí)域名服務(wù)器:secdns.ynu.edu.cn
Type: A (Host address) // 類型:主機(jī)地址
Class: IN (0x0001) // 使用標(biāo)準(zhǔn)IP 地址
Time to live: 1 day // 答案的有效期:1天
Data length: 4 // 數(shù)據(jù)長度:4字節(jié)
Addr: 202.203.208.34 // 二級(jí)域名服務(wù)器地址:202.203.208.34
(3)User Datagram Protocol, User Datagram Protocol, rotocol, 傳輸層UDP 頭部信息 頭部信息
在概要窗口中單擊選中2號(hào)數(shù)據(jù)包,并在協(xié)議樹窗口中單擊“User Datagram Protocol”協(xié)議前的“ ”,顯示出該協(xié)議的詳細(xì)信息,如圖¥.9所示,詳細(xì)操作請(qǐng)參看教材第7

章相關(guān)部分(P236)。
圖¥.9 傳輸層(User Datagram Protocol)頭部信息
分析:DNS服務(wù)器給客戶機(jī)的應(yīng)答數(shù)據(jù)報(bào)頭部中內(nèi)容詳細(xì)分析如下。
User Datagram Protocol, Src Port: domain (53), Dst Port: 1034 (1034) //UDP源端口和目的端口
Source port: domain (53) // 源端口(DNS服務(wù)器):53
Destination port: 1034 (1034) // 目的端口(客戶機(jī)):1034
Length: 130 // UDP數(shù)據(jù)報(bào)總長度:130字節(jié)
Checksum: 0x22f6 [correct] // 校驗(yàn)和:正確
[Good Checksum: True]
[Bad Checksum: False]
以上為DNS 客戶機(jī)訪問本地服務(wù)器,請(qǐng)求提供vod.ynu.edu.cn 的IP 地址,客戶機(jī)與服務(wù)器雙方正常通信過程的數(shù)據(jù)分析案例。建議讀者利用自己的計(jì)算機(jī),訪問一個(gè)Web 網(wǎng)站,利用Wireshark 將DNS 數(shù)據(jù)捕獲,重復(fù)上述分析過程。這樣才能深入了解DNS 協(xié)議的工作原理,提高自己分析問題和解決問題的能力。網(wǎng)絡(luò)協(xié)議分析軟件Wireshark 的下載和使用方法,參看頁眉的教材和網(wǎng)站。
6
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
¥.2 異常的.2 異常的DNS 服務(wù)導(dǎo)致服務(wù)導(dǎo)致淫穢導(dǎo)致淫穢網(wǎng)頁淫穢網(wǎng)頁URL 連接案例連接案例
案例:案例:2008年8月下旬發(fā)現(xiàn)訪問教學(xué)網(wǎng)站http://netsecurity.ynu.edu.cn 的每個(gè)網(wǎng)頁時(shí),客戶機(jī)瀏覽器上都會(huì)出現(xiàn)大量的淫穢URL 連接,經(jīng)過反復(fù)分析查明原因,恢復(fù)正常。介紹此案例的分析過程。
1.訪問本網(wǎng)站的網(wǎng)頁時(shí)出現(xiàn)淫穢訪問本網(wǎng)站的網(wǎng)頁時(shí)出現(xiàn)淫穢URL 連接 連接
案發(fā)期間,訪問本教學(xué)網(wǎng)站的首頁和其他任何網(wǎng)頁,都能正常顯示在客戶機(jī)瀏覽器上。但是客戶機(jī)安裝的瑞星殺毒軟件連續(xù)發(fā)出警告:“在瀏覽器的臨時(shí)文件夾中含有木馬Trojan.DL.JS.Agent.ljv”,根據(jù)提示,這些位于瀏覽器中的Internet 臨時(shí)文件夾是:
(1)C:Documents and SettingsHeLocal SettingsTemporary Internet FilesContent.IE5
(2)C:Documents and SettingsHeLocal SettingsTemporary Internet
FilesContent.IE5OJV3I0LLvip[2].htm
(3)C:DOCUME~1HeLOCALS~1Temp74447003896.tmp
當(dāng)瀏覽器正常顯示完本站網(wǎng)頁后,在瀏覽器的下邊緣狀態(tài)欄窗口就出現(xiàn)大量的URL 連接提示,隨即自動(dòng)打開了多個(gè)淫穢網(wǎng)站界面,顯示出各種淫穢流氓網(wǎng)站的頁面。每當(dāng)用戶點(diǎn)擊訪問本站的任何一個(gè)網(wǎng)頁,下述異常的URL 連接和淫穢網(wǎng)頁就重復(fù)出現(xiàn)一遍。這些惡意的URL 是:
注意:注意:上面這些淫穢網(wǎng)頁的URL 都很長,這種方法可以有效地逃避互聯(lián)網(wǎng)搜索引擎(例如:Google,baidu 等)的搜索,參看作者教材[1]中“Google的工作原理”,這種方法也能夠逃避公安網(wǎng)絡(luò)監(jiān)察部門的搜索檢查。由于淫穢網(wǎng)頁的URL 很長,很多互聯(lián)網(wǎng)搜索引擎搜索不到,但是為了提高其訪問量,于是就在互聯(lián)網(wǎng)系統(tǒng)的DNS 服務(wù)器上采取域名劫持的策略,將大量互聯(lián)網(wǎng)用戶對(duì)某些知名網(wǎng)站的正常訪問,劫持引導(dǎo)到他們的淫穢網(wǎng)站上。除了本文描述的域名劫持案例外,另一種方法是利用以太網(wǎng)的ARP 欺騙產(chǎn)生中間人,當(dāng)它轉(zhuǎn)發(fā)客戶訪問的網(wǎng)頁時(shí),在其中插入淫穢網(wǎng)站的連接內(nèi)容,見本網(wǎng)站ARP 欺騙案例分析。
2.尋找產(chǎn)生尋找產(chǎn)生淫穢產(chǎn)生淫穢URL 連接原因的過程 連接原因的過程
(1)首先我們懷疑本網(wǎng)站的網(wǎng)頁文件被黑客入侵和惡意竄改了,因此在服務(wù)器端和在客戶機(jī)瀏覽器端對(duì)收到的本網(wǎng)站的網(wǎng)頁代碼進(jìn)行了仔細(xì)分析,沒有發(fā)現(xiàn)任何異常的代碼。
(2)利用瑞星殺毒軟件對(duì)本站W(wǎng)eb 服務(wù)器進(jìn)行了全面的病毒和木馬清查,沒有發(fā)現(xiàn)任何問題。服務(wù)器的日志記錄正常。將服務(wù)器的網(wǎng)站文件換為幾個(gè)月前的備份文件,惡意URL 連接和木馬警告仍然出現(xiàn)。
(3)啟動(dòng)服務(wù)器上的IE 瀏覽器訪問本機(jī)網(wǎng)頁:如果將服務(wù)器上的瑞星防火墻的“端口開關(guān)”中“遠(yuǎn)程”的80端口開放,瀏覽器出現(xiàn)與遠(yuǎn)端客戶機(jī)訪問時(shí)相同的惡意URL 連接,并且殺毒軟件發(fā)出木馬報(bào)警。如果將防火墻“端口開關(guān)”中“遠(yuǎn)程”80端口關(guān)閉,則服務(wù)器上的瀏覽器中只顯示本站網(wǎng)頁,沒有惡意URL 連接和木馬報(bào)警。
因此可得結(jié)論1:瀏覽器中出現(xiàn)的淫穢URL 連接和木馬的第一個(gè)誘因是對(duì)某遠(yuǎn)端http 服務(wù)器的80端口的訪問。而與http 服務(wù)器的80端口建立TCP 鏈接之前,首先要執(zhí)行DNS 域名解析,參看頁眉教材。 7
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
(4)查看服務(wù)器的ARP 路由表,其中默認(rèn)網(wǎng)關(guān)的IP 地址與MAC 地址的對(duì)應(yīng)關(guān)系正常,證明服務(wù)器沒有受到ARP 欺騙攻擊。請(qǐng)參看本網(wǎng)站文章“利用ARP 欺騙實(shí)現(xiàn)中間人攻擊竄改網(wǎng)頁的案例分析”。按照頁眉教材第7.1節(jié)介紹的方法,獲得服務(wù)器的ARP 表如下:
C:Documents and Settings?ministrator>arp -a
Interface: 202.203.208.112 --- 0x10003 (服務(wù)器IP 地址)
Internet Address Physical Address Type
202.203.208.65 00-d0-2b-e5-1d-0a dynamic (服務(wù)器所在局域網(wǎng)的默認(rèn)網(wǎng)關(guān)MAC 地址正常)
(5)從不同地域的網(wǎng)絡(luò)中的計(jì)算機(jī)訪問本網(wǎng)站,瀏覽器都同樣出現(xiàn)上述淫穢網(wǎng)站URL 的連接。
由此可得結(jié)論2:產(chǎn)生惡意URL 連接和木馬的原因不是產(chǎn)生在本服務(wù)器和服務(wù)器所在的局域網(wǎng)中,同樣也不是產(chǎn)生在客戶機(jī)和客戶機(jī)所在的局域網(wǎng)中。
3.網(wǎng)頁中的淫穢網(wǎng)頁中的淫穢URL 連接和木馬從何而來 連接和木馬從何而來
分析:分析:因?yàn)镮E 瀏覽器在收到服務(wù)器的網(wǎng)頁代碼后,是邊解釋網(wǎng)頁代碼,邊逐漸顯示對(duì)應(yīng)的網(wǎng)頁內(nèi)容。即:瀏覽器上顯示的網(wǎng)頁內(nèi)容不是整頁一齊顯示,而是隨著代碼的逐段解釋而逐漸顯示的。因此我們可以根據(jù)瀏覽器上看到的惡意URL 和木馬出現(xiàn)的時(shí)刻,來判斷這些惡意代碼位于網(wǎng)頁代碼文件的大概位置。
在用瀏覽器觀察本站網(wǎng)頁時(shí)發(fā)現(xiàn),惡意URL 連接的出現(xiàn)時(shí)刻是在每個(gè)本站網(wǎng)頁正常顯示完畢之后。因此可以斷定:惡意URL 和木馬出現(xiàn)的誘因是位于本站的每個(gè)網(wǎng)頁的尾部,并且是位于每個(gè)網(wǎng)頁都共同具有

的部分。這個(gè)部分對(duì)應(yīng)于本站網(wǎng)頁底部的作者通信錄和點(diǎn)擊率統(tǒng)計(jì)的部分,如下圖。
圖¥.10 網(wǎng)頁中產(chǎn)生惡意URL 連接的可能位置
為了統(tǒng)計(jì)本網(wǎng)站的訪問量和客戶地域分布等數(shù)據(jù),所有網(wǎng)頁底部采用了“中國網(wǎng)站之家”等3個(gè)網(wǎng)站的統(tǒng)計(jì)服務(wù),每當(dāng)客戶點(diǎn)擊一次本站網(wǎng)頁,就會(huì)向統(tǒng)計(jì)服務(wù)的網(wǎng)站的80端口發(fā)送信息。本站網(wǎng)頁采用的由統(tǒng)計(jì)網(wǎng)站http:// indexed.webmasterhome.cn提供的代碼之一如下:
每當(dāng)運(yùn)行上述代碼時(shí),就要進(jìn)行一次對(duì)indexed.webmasterhome.cn 的域名查詢,產(chǎn)生淫穢URL 鏈接問題的根源來自此域名查詢的DNS 服務(wù)器。根據(jù)上述分析,將圖¥.10所示區(qū)域的代碼逐段停用,發(fā)現(xiàn)當(dāng)把“CNZZ.COM.”、“收錄查詢”和“雅虎統(tǒng)計(jì)”等訪問量統(tǒng)計(jì)的代碼功能停用后,本站網(wǎng)頁中的惡意URL 連接即消失,由此找到產(chǎn)生問題的原因。關(guān)于網(wǎng)頁點(diǎn)擊率統(tǒng)計(jì)的工作原理,在另文介紹。
8
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
4.問題的根源 問題的根源
根據(jù)上述對(duì)DNS 懷疑的分析結(jié)果,在國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心網(wǎng)站上有如下公告:
關(guān)于DNS 系統(tǒng)面臨嚴(yán)重安全漏洞風(fēng)險(xiǎn)的緊急公告 系統(tǒng)面臨嚴(yán)重安全漏洞風(fēng)險(xiǎn)的緊急公告
安全公告:CN-VA08-05。發(fā)布日期發(fā)布日期:2008年7月24日。漏洞類型漏洞類型:欺騙。漏洞評(píng)估漏洞評(píng)估:重要。安全等安全等安全公告發(fā)布日期漏洞類型漏洞評(píng)估
級(jí):三級(jí)。公開程度公開程度:公共。http://www.cert.org.cn/articles/bulletin 公開程度
漏洞描述:漏洞描述:
2008年7月9日以來,思科、微軟、ISC等互聯(lián)網(wǎng)域名解析服務(wù)軟件廠商紛紛發(fā)布了安全公告,稱其DNS 軟件存在高危漏洞,攻擊者可以通過猜測(cè)DNS 解析過程中的報(bào)文序列號(hào)來偽造DNS 權(quán)威服務(wù)器的應(yīng)答,從而達(dá)到“污染”高速緩存(Cache)中的記錄的目的,即將錯(cuò)誤的域名指向信息注入即將錯(cuò)誤的域名指向信息注入DNS 服務(wù)器,服務(wù)器,最終導(dǎo)致受到污染的DNS 服務(wù)器將對(duì)外提供錯(cuò)誤的解析結(jié)果。服務(wù)器將對(duì)外提供錯(cuò)誤的解析結(jié)果。該種攻擊方式可造成域名劫持攻擊,使得公眾在不知情的情況下通過域名訪問到黑客指定的網(wǎng)站,面臨網(wǎng)絡(luò)釣魚和網(wǎng)頁木馬等一系列嚴(yán)重的安全威脅。
7月22日,針對(duì)該漏洞的探測(cè)程序被發(fā)布,7月23日,針對(duì)該漏洞的完整攻擊程序被發(fā)布,并隨后廣泛流傳。我中心經(jīng)過初步測(cè)試后發(fā)現(xiàn),在帶寬良好情況下,該攻擊程序?qū)Υ嬖诼┒吹腄NS 服務(wù)器只需數(shù)分鐘就可完成攻擊,受攻擊目標(biāo)會(huì)瞬時(shí)接到大量攻擊報(bào)文,容易被誤判為“query flood”方式的拒絕服務(wù)攻擊。鑒于該安全事件形勢(shì)嚴(yán)峻且發(fā)展迅速,為確保我國互聯(lián)網(wǎng)的運(yùn)行安全,請(qǐng)各相關(guān)單位迅速采取適當(dāng)措施,對(duì)所運(yùn)行的DNS 服務(wù)器進(jìn)行必要的安全加固,并加強(qiáng)異常監(jiān)測(cè)和處置。
建議措施:建議措施:
(1)根據(jù)各DNS 生產(chǎn)廠商提供的補(bǔ)丁升級(jí)DNS 服務(wù)器系統(tǒng);
(2)因在攻擊過程中會(huì)短時(shí)出現(xiàn)大量偽造的域名解析響應(yīng)數(shù)據(jù)包,呈現(xiàn)拒絕服務(wù)攻擊特點(diǎn),這些數(shù)據(jù)包的源IP、目的IP、解析的IP 地址相同,但序列號(hào)不同,可據(jù)此在有條件的防護(hù)設(shè)備(如智能防火墻、流量清洗設(shè)備等)上配置相應(yīng)的規(guī)則加以屏蔽或過濾;
(3)定期清理DNS 緩存或在發(fā)現(xiàn)異常訪問后清理緩存。
5.結(jié)論:結(jié)論:
在訪問本網(wǎng)站時(shí)客戶機(jī)獲得的查詢記錄響應(yīng)來自本地的DNS 服務(wù)器,其工作正常,客戶機(jī)瀏覽器獲得了目標(biāo)網(wǎng)站的正確的IP 地址。但是當(dāng)瀏覽器解釋網(wǎng)頁代碼到網(wǎng)站的每個(gè)網(wǎng)頁底部的“收錄查詢”時(shí),瀏覽器啟動(dòng)了對(duì)統(tǒng)計(jì)網(wǎng)站的域名查詢,在本地DNS 服務(wù)器中沒有此統(tǒng)計(jì)網(wǎng)站的授權(quán)記錄,這時(shí)本地DNS 服務(wù)器利用遞歸解析方法,將查詢請(qǐng)求發(fā)向遠(yuǎn)端的DNS 服務(wù)器。網(wǎng)頁中出現(xiàn)的淫穢網(wǎng)站的URL 連接就產(chǎn)生于對(duì)統(tǒng)計(jì)網(wǎng)站的域名查詢的遞歸解析過程中。
參看本教材[2]中第6章6.1.5節(jié)圖6.11關(guān)于DNS 系統(tǒng)的原理介紹,由于此案例中DNS 系統(tǒng)采用了遞歸解析方式,因此要具體查找到本案例中的高速緩存受到污染的DNS 服務(wù)器,就需要分析各DNS 服務(wù)器進(jìn)行遞歸查詢的鏈路關(guān)系。問題可能產(chǎn)生于遞歸解析鏈路中的某個(gè)DNS 服務(wù)器中的高速緩存受到污染。如果不能對(duì)被污染的DNS 服務(wù)器準(zhǔn)確定位,可以在全互聯(lián)網(wǎng)系統(tǒng)的所有DNS 服務(wù)器中安裝上制造商提供的補(bǔ)丁程序。關(guān)于易受污染的DNS 服務(wù)器型號(hào)和制造商清單見下面美國網(wǎng)站的公告。
在美國計(jì)算機(jī)應(yīng)急響應(yīng)組的網(wǎng)站 http://www.kb.cert.org/vuls/id/800113 上對(duì)此DNS 服務(wù)器的高危漏洞進(jìn)行了詳細(xì)的技術(shù)描述,并且給出了易受此惡意攻擊影響的DNS 服務(wù)器清單列表。更重要的是更重要的是,更重要的是,在DNS 系統(tǒng)的各服務(wù)器之間的查詢轉(zhuǎn)發(fā)中,系統(tǒng)的各服務(wù)器之間的查詢轉(zhuǎn)發(fā)中,禁止使用遞歸解析方式,禁止使用遞歸解析方式,而使用迭代方式。而使用迭代方式。
為了讓讀者易于理解,本文對(duì)DNS 的原理和域名劫持案例進(jìn)行了非常詳細(xì)的分析。從中可以看出,進(jìn)行網(wǎng)絡(luò)安全診斷的最基本和最有效的方法是進(jìn)行數(shù)據(jù)分析。對(duì)于本案例的DNS 域名劫持攻擊,客戶端局域網(wǎng)內(nèi)的殺毒軟件、防火墻和入侵檢測(cè)IDS 都是沒有用的。
9
,《計(jì)算機(jī)網(wǎng)絡(luò)安全與應(yīng)用》賀思德 申浩如 科學(xué)出版社 2007 http://netsecurity.ynu.edu.cn 網(wǎng)絡(luò)安全案例分析
¥.3 美國計(jì)算機(jī)應(yīng)急響應(yīng)組.3 美國計(jì)算機(jī)應(yīng)急響應(yīng)組DNS 安全公告安全公告 公告
下面對(duì)美國計(jì)算機(jī)應(yīng)急響應(yīng)組“關(guān)于DNS 服務(wù)器的高速緩存易受到污染的技術(shù)分析”進(jìn)行介紹和解釋。漏洞公告ID 號(hào):VU#800113. “域名系統(tǒng)DNS 的執(zhí)行中,多種途徑容易導(dǎo)致高速緩存受到攻擊污染”。公告網(wǎng)址http://www.kb.cert.org/vuls/id/800113
要點(diǎn):要點(diǎn):由于DNS 協(xié)議本身的弱點(diǎn),以及DNS 軟件中存在的共同問題,導(dǎo)致DNS 高速緩存易受到攻擊污染。
1.詳細(xì)的DNS 漏洞分析 漏洞分析
域名系統(tǒng)用于將主機(jī)名轉(zhuǎn)換為IP 地址,是互聯(lián)網(wǎng)系統(tǒng)的一個(gè)重要組成部分。攻擊者可以利用對(duì)DNS 的高速緩存進(jìn)行污染的技術(shù),將虛假的DNS 信息設(shè)置到DNS 服務(wù)器的高速緩存中。對(duì)DNS 高速緩存進(jìn)行污染并不是一個(gè)新概念,有些已發(fā)表的文章都論述了DNS 協(xié)議中的固有脆弱點(diǎn),還有一些軟件商開發(fā)的DNS 實(shí)施軟件中的普遍漏洞,這些都容易導(dǎo)致DNS 緩存受到污染。下面是這些缺陷和漏洞的例子:
(1)缺乏足夠的缺乏足夠的DNS 查詢ID 標(biāo)識(shí)碼空間:標(biāo)識(shí)碼空間:
在DNS 協(xié)議數(shù)據(jù)包的結(jié)構(gòu)參數(shù)中指定了一個(gè)16比特長的字段作為查詢交易的ID 標(biāo)識(shí)碼(見頁眉教材的圖6.7中的標(biāo)識(shí)ID,例如,圖¥.5的數(shù)據(jù)中,DNS客戶機(jī)向服務(wù)器發(fā)出的查詢請(qǐng)求中Transaction ID: 0x3d34)。在DNS 協(xié)議被正確地運(yùn)行過程中,客戶機(jī)發(fā)送DNS 查詢請(qǐng)求數(shù)據(jù)包時(shí)選擇一個(gè)真正的隨機(jī)數(shù)作為本次查詢的ID 標(biāo)識(shí)碼,而DNS 服務(wù)器利用收到的此ID 號(hào)將查詢結(jié)果響應(yīng)發(fā)回給客戶機(jī)。如果一個(gè)攻擊者要冒充服務(wù)器向客戶機(jī)發(fā)回虛假的DNS 響應(yīng)包,那么他平均要進(jìn)行32768次嘗試,才能成功地預(yù)測(cè)到此ID 標(biāo)識(shí)碼,利用它來欺騙客戶機(jī)接受虛假的響應(yīng)信息。有一些計(jì)算機(jī)操作系統(tǒng)的DNS 軟件在隨機(jī)選擇此交易ID 號(hào)時(shí),使用了較少的比特?cái)?shù),因而攻擊者只要嘗試較少的次數(shù)就可以成功地預(yù)測(cè)到此ID 號(hào)。另外,已知有一些計(jì)算機(jī)操作系統(tǒng)產(chǎn)生的ID 號(hào)的隨機(jī)性不強(qiáng)。Amit Klein 在2007年研究了幾個(gè)存在此問題的計(jì)算機(jī)操作系統(tǒng),并將已發(fā)現(xiàn)的存在問題發(fā)布于下述公告中:
?
?
? 漏洞公告 -微軟Windows DNS 服務(wù)器的高速緩存抗污染能力的脆弱性報(bào)告,全文下載網(wǎng)址[10]:http://www.kb.cert.org/vuls/id/484649 漏洞公告 - ISC BIND產(chǎn)生的DNS 查詢ID 號(hào)的機(jī)密性不強(qiáng)的報(bào)告,全文下載網(wǎng)址[11]:http://www.kb.cert.org/vuls/id/252735 漏洞公告 - BIND version 8 產(chǎn)生機(jī)密性不強(qiáng)的DNS 查詢標(biāo)識(shí)ID 號(hào)的公告,全文下載
網(wǎng)址[12]:http://www.kb.cert.org/vuls/id/927905
(2)多重發(fā)出同樣多重發(fā)出同樣的同樣的DNS 請(qǐng)求:請(qǐng)求:
有些計(jì)算機(jī)系統(tǒng)的DNS 業(yè)務(wù)的脆弱性表現(xiàn)在,如果要對(duì)DNS 服務(wù)器中的同一個(gè)資源記錄RR (resource record)多次進(jìn)行查詢時(shí),就會(huì)產(chǎn)生同時(shí)發(fā)送多個(gè)同樣的查詢請(qǐng)求的情況。這種情況可能導(dǎo)致“生日攻擊”,使攻擊者進(jìn)行DNS 欺騙的成功率大大提高。此問題在安全公告VU#457875中進(jìn)行了描述,題目為“各種DNS 業(yè)務(wù)軟件對(duì)同一個(gè)資源記錄RR 同時(shí)發(fā)送多個(gè)同樣的請(qǐng)求”,參看[13]:http://www.kb.cert.org/vuls/ id/ 457875。有一些開發(fā)商已經(jīng)在自己的產(chǎn)品中對(duì)此問題做了緩解的處理。
(3)在多次發(fā)多次發(fā)送DNS 查詢請(qǐng)求時(shí)重復(fù)使用同樣的查詢請(qǐng)求時(shí)重復(fù)使用同樣的固定源端口號(hào)同樣的固定源端口號(hào):固定源端口號(hào):
當(dāng)前的一些計(jì)算機(jī)的網(wǎng)絡(luò)操作系統(tǒng)中,剛開始發(fā)送DNS 請(qǐng)求時(shí)選取了一個(gè)隨機(jī)數(shù)作為源端口號(hào),這是正確的方法。但是在后續(xù)再發(fā)送請(qǐng)求時(shí),又重復(fù)使用了已經(jīng)用過的同樣的數(shù)字作為源端口號(hào)。在有些系統(tǒng)軟件中,甚至將向外發(fā)送的DNS 請(qǐng)求的端口號(hào)固定在已經(jīng)分配給DNS 服務(wù)器的端口53/UDP上。
近年來對(duì)這些脆弱性做了多方面的研究,將這些方法組合起來就可提高對(duì)DNS 服務(wù)器的高速緩存進(jìn)行污染的攻擊能力,出現(xiàn)了一些很有效的攻擊技術(shù)。風(fēng)險(xiǎn)最大的是基于高速緩存的DNS 解析器,特別是那些開放式的DNS 解析器,它允許自己的管理域外的客戶機(jī)通過遞歸解析方式向它提出域名解析請(qǐng)求服務(wù)。對(duì)不開放的DNS 服務(wù)器也有同樣的問題。這些高速緩存的DNS 解析器是攻擊者最常選的目標(biāo),原始授權(quán)DNS 解析器(stub resolvers)也有此風(fēng)險(xiǎn)。
因?yàn)閷?duì)這些脆弱性的攻擊,都依賴于攻擊者的預(yù)測(cè)和欺騙網(wǎng)絡(luò)數(shù)據(jù)流的能力。在當(dāng)前DNS 協(xié)議規(guī)范的范圍內(nèi)增加源端口號(hào)的隨機(jī)選取范圍可減緩此類攻擊,隨機(jī)化的源端口號(hào)能被用來獲取額外的大約16比 10