網路漏洞
網路漏洞
關於網路漏洞,目前還沒有一個全面、準確統一的定義。一般可以理解為在硬體、軟體何協議等的具體實現或系統安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權的情況下訪問或破壞系統。通俗描述性定義是存在於計算機網路系統中的、可能對系統中的組成和數據等造成損害的一切因素。具體舉例來說:比如在IntelPentium晶元中存在的邏輯錯誤,在Sendmail早期版本中的編程錯誤,在NFS協議中認證方式上的弱點,在Unix系統管理員設置匿名Ftp服務時配置不當的問題都可能被攻擊者使用,威脅到系統的安全。這些都可以認為是系統中存在的安全漏洞。
關於網路漏洞,目前還沒有一個準確統一的定義。有學者從訪問控制的角度出發,認為:當對系統的各種操作與系統的安全策略發生衝突時,就產生了安全漏洞。
也有專家認為:計算機系統是由若干描述實體配置的當前狀態所組成,可分為授權狀態和非授權狀態、易受攻擊狀態和不易受攻擊狀態,漏洞就是狀態轉變過程中能導致系統受損的易受攻擊狀態的特徵。
以上兩種觀點,都是從各自的專業角度對網路漏洞進行描述,並沒有給出一個全面的準確的定義。
網路漏洞會影響到很大範圍的軟硬體設備,包括作系統本身及其支撐軟體,網路客戶和伺服器軟體,網路路由器和安全防火牆等。換而言之,在這些不同的軟硬體設備中都可能存在不同的安全漏洞問題。在不同種類的軟、硬體設備,同種設備的不同版本之間,由不同設備構成的不同系統之間,以及同種系統在不同的設置條件下,都會存在各自不同的安全漏洞問題。
漏洞問題是與時間緊密相關的。一個系統從發布的那一天起,隨著用戶的深入使用,系統中存在的漏洞會被不斷暴露出來,這些早先被發現的漏洞也會不斷被系統供應商發布的補丁軟體修補,或在以後發布的新版系統中得以糾正。而在新版系統糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。因而隨著時間的推移,舊的漏洞會不斷消失,新的漏洞會不斷出現。漏洞問題也會長期存在。
因而脫離具體的時間和具體的系統環境來討論漏洞問題是毫無意義的。只能針對目標系統的操作系統版本、其上運行的軟體版本以及服務運行設置等實際環境來具體談論其中可能存在的漏洞及其可行的解決辦法。
同時應該看到,對漏洞問題的研究必須要跟蹤當前最新的計算機系統及其安全問題的最新發展動態。這一點如同對計算機病毒發展問題的研究相似。如果在工作中不能保持對新技術的跟蹤,就沒有談論系統安全漏洞問題的發言權,即使是以前所作的工作也會逐漸失去價值。
目前計算機系統安全的分級標準一般都是依據“橘皮書”中的定義。橘皮書正式名稱是“受信任計算機系統評量基準”(Trusted ComputerSystem EvaluationCriteria)。
橘皮書中對可信任系統的定義是這樣的:一個由完整的硬體及軟體所組成的系統,在不違反訪問許可權的情況下,它能同時服務於不限定個數的用戶,並處理從一般機密到最高機密等不同範圍的信息。
橘皮書將一個計算機系統可接受的信任程度加以分級,凡符合某些安全條件、基準規則的系統即可歸類為某種安全等級。橘皮書將 計算機系統的安全性能由高而低劃分為A、B、C、D四大等級。其中:
D級——最低保護(Minimal Protection),凡沒有通過其他安全等級測試項目的系統即屬於該級,如Dos,Windows個人計算機系統。
C級——自主訪問控制(DiscretionaryProtection),該等級的安全特點在於系統的客體(如文件、目錄)可由該系統主體(如系統管理員、用戶、應用程序)自主定義訪問權。例如:管理員可以決定系統中任意文件的許可權。當前Unix、Linux、Windows NT等作系統都為此安全等級。
B級——強制訪問控制(MandatoryProtection),該等級的安全特點在於由系統強制對客體進行安全保護,在該級安全系統中,每個系統客體(如文件、目錄等資源)及主體(如系統管理員、用戶、應用程序)都有自己的安全標籤(Security Label),系統依據用戶的安全等級賦予其對各個對象的訪問許可權。
A級——可驗證訪問控制(Verified Protection),而其特點在於該等級的系統擁有正式的分析及數學式方法可完全證明該系統的安全策略及安全規格的完整性與一致性。 '
可見,根據定義,系統的安全級別越高,理論上該系統也越安全。可以說,系統安全級別是一種理論上的安全保證機制。是指在正常情況下,在某個系統根據理論得以正確實現時,系統應該可以達到的安全程度。
系統安全漏洞是指可以用來對系統安全造成危害,系統本身具有的,或設置上存在的缺陷。總之,漏洞是系統在具體實現中的錯誤。比如在建立安全機制中規劃考慮上的缺陷,作系統和其他軟體編程中的錯誤,以及在使用該系統提供的安全機制時人為的配置錯誤等。
安全漏洞的出現,是因為人們在對安全機制理論的具體實現中發生了錯誤,是意外出現的非正常情況。而在一切由人類實現的系統中都會不同程度的存在實現和設置上的各種潛在錯誤。因而在所有系統中必定存在某些安全漏洞,無論這些漏洞是否已被發現,也無論該系統的理論安全級別如何。
在商業世界,漏洞主要是因為設計和實施中出現錯誤所致,造成信息完整性、可獲得性和保密性受損。錯誤通常在軟體中,也存在於各個信息系統層,從協議規格到設計到物理硬體。網路漏洞還可能是惡意用戶或自動惡意代碼故意為之。重要系統或網路中單個漏洞可能會嚴重破壞一個機構的安全態勢。
美國國防部對“漏洞”一詞的定義是易受攻擊性或“利用信息安全系統設計、程序、實施或內部控制中的弱點不經授權獲得信息或進入信息系統。”這裡的關鍵詞是“弱點”。任何系統或網路中的弱點都是可防的。
但是,系統或網路中的弱點表明解決方案是已知的,能夠實施的。有許多系統和網路漏洞分析器,包括自動漏洞檢測系統和TIGER系統。網路攻擊向量是對某一或多個具體目標實施攻擊的明確的路徑。自動漏洞檢測系統和TIGER系統利用模擬網路攻擊分析網路的整個態勢,常規失敗概率很低。
網路專家利用的其他類似工具有安全管理員網路集成工具(SAINT)和網路映射器(NMAP)——基於漏洞的評估工具,既快又可靠。由於NMAP攜帶方便、操作簡單,黑客也常常使用。它有用於Linux, UniX和微軟Windows平台的多種版本,能輕鬆掃描包含成百上千個系統和伺服器的巨型網路。SAINT和NMAP能對網路的埠或服務系統進行掃描,顯然也能被惡意和非惡意者利用。攻擊特徵和地址性質決定了新的攻擊或攻擊向量能躲過大多數漏洞評估工具。
例如,如果埠21——文件傳輸協議(FTP)的默認埠正在運行的話,對網路伺服器進行快速漏洞檢查能發現潛在的問題。傳統的FTP程序不提供數據加密,用戶認證級別很低,因此傳輸中相對容易竊取未加密數據。由於用戶認證系統功能不強,黑客如果能誘騙系統認為他是FTP伺服器的合法用戶,就能進入系統,這就出現了另外一個問題。解決這些漏洞就是應用加密技術。Secure-shell (SSH)FTP或SFTP通過加密保證數據的完整性和保密性。SFTP利用SSH進行可靠的數據連接保證遠程文檔安全傳輸。該協議使用埠22,系統管理員不用傳統的FTP伺服器,因此不需要使用埠21.令人驚訝的是,當他們運行SFTP時,有幾個管理員錯誤地忘記關掉FTP,這樣為黑客留下可利用的後門。
漏洞評估工具是雙向的。儘管它們提供管理員評估系統和網路狀態非常需要的能力,但這些工具也為惡意黑客提供了掃描能力。任何埠掃面工具能遠程刺探網路伺服器,決定哪個埠是對外部開發的。黑客還能發現這些開發的埠是否可以利用。
網路漏洞的種類
網路中有許多的漏洞都是由於設計人員和程序員的疏忽或失誤及對網路環境的不熟悉造成的。進行網路開發時,許多設計開發者並不重視網路的安全情況,也不完全了解程序的內部工作機理,致使程序不能適應所有的網路環境,造成網路功能與安全策略發生衝突,最終導致漏洞的產生。另有一部分漏洞則是網路用戶刻意為之的。網路管理員為了更好地監管和控制網路,往往預留秘密通道,以保證對網路的絕對控制。而部分網路用戶或黑客也許會出於好奇而在網路中秘密種下木馬、邏輯炸彈或是陷門。網路中的漏洞可以存在於硬體和軟體中,但更多還是以軟體漏洞的形式存在。無論是網路應用軟體,還是單機應用軟體,都廣泛隱藏有漏洞。網路中的聊天軟體如QQ,文件傳輸軟體如FlashFXP、CuteFTP,瀏覽器軟體如IE,單機中的辦公軟體如MSWord,這些應用軟體中都存在著可導致泄密和招致網路攻擊的漏洞。在各種操作系統中也同樣存在著大量漏洞,如:Windows系統中存在RPC遠程任意代碼執行漏洞等,RedHat中存在可通過遠程溢出獲得root許可權的漏洞等,各種版本的Unix系統中同樣存在著大量可導致緩衝器溢出的漏洞等。在Internet中提供服務的各種伺服器中,漏洞存在的情況和招致的危害更是嚴重。無論是Web伺服器、FTP伺服器、郵件伺服器,還是資料庫伺服器和流媒體伺服器都存在著可導致網路攻擊的安全漏洞。腳本語言的設計缺陷和使用不規範,更是令網際網路的安全狀況雪上加霜。
網路漏洞的廣泛存為網路攻擊提供了機會,但在一般情況下,普通的網路用戶不易受到惡意攻擊。相比而言,由於網路伺服器在網路中的重要作用,而且其安裝的軟體和開放的埠更多,也就更容易招致網路攻擊。但無論對於接受服務的個人用戶還是提供服務的伺服器用戶,都不能對網路中的漏洞掉以輕心,必須充分認識網路漏洞的危害,並對利用漏洞發動網路攻擊的原理有一定的了解。下面將從網路攻擊原理來對網路漏洞進行更深入的分析。
拒絕服務攻擊(DoS:Denail ofService)是一種針對TCP/IP協議漏洞的一種網路攻擊手段,其原理是利用DoS工具向目標主機發送海量的數據包,消耗網路的帶寬和目標主機的資源,造成目標主機網段阻塞,致使網路或系統負荷過載而停止向用戶提供服務。常見的拒絕服務攻擊方法有SYNFlood攻擊、Smurf、UDP洪水、Land攻擊、死亡之Ping、電子郵件炸彈等。目前影響最大、危害最深的是分散式DoS攻擊。它利用多台已被攻擊者控制的計算機對某一台計算機進行攻擊,很容易導致被攻擊主機系統癱瘓。對DoS攻擊的防護措施主要是設置防火牆,關閉外部路由器和防火牆的廣播地址,利用防火牆過濾掉UDP應答消息和丟棄ICMP包,盡量關閉不必要的TCP/IP服務。
簡單地說,緩衝區溢出的原因是向一個有限的緩衝區複製了超長的字元串,結果覆蓋了相鄰的存儲單元。這種覆蓋往往會導致程序運行的失敗,甚至是死機或是系統的重啟。另外,黑客利用這樣的漏洞可以執行任意的指令,掌握系統的操作權。緩衝區溢出漏洞廣泛存在於應用軟體和操作系統中,其危害是非常巨大的,但一直以來並沒有引起系統和軟體開發者足夠的重視。要防止緩衝區溢出攻擊,首要的是堵住漏洞的源頭,在程序設計和測試時對程序進行緩衝區邊界檢查和溢出檢測。而對於網路管理員,必須做到及時發現漏洞,並對系統進行補丁修補。有條件的話,還應對系統進行定期的升級。
欺騙類攻擊主要是利用TCP/IP協議自身的缺陷發動攻擊。在網路中,如果使用偽裝的身份和地址與被攻擊的主機進行通信,向其發送假報文,往往會導致主機出現錯誤操作,甚至對攻擊主機做出信任判斷。這時,攻擊者可冒充被信任的主機進入系統,並有機會預留後門供以後使用。根據假冒方式的不同,這種攻擊可分為:IP欺騙、DNS欺騙、電子郵件欺騙、原路由欺騙等。下面以IP欺騙攻擊為例分析欺騙攻擊的過程。在這種攻擊中,發動攻擊的計算機使用一個偽裝的IP地址向目標計算機主機發送網路請求;當主機收到請求后,會使用系統資源提供網路連接服務,並回復確認信息;但由於IP地址是假的,主機不可能得到回應,這種情況下,主機將會繼續重複發送確認信息。儘管操作系統規定了回復的次數和超時的時間,但完成多次回復仍要佔用主機資源較長時間,嚴重降低主機的工作效率。例如WindowsNT系統在預設回複次數下,從建立連接到資源的釋放大約用時190秒。對於解決欺騙類攻擊的方法,最好是充分了解主機的系統狀況,只啟用必用的應用程序和只開放提供服務所用到的埠。
在網路的主機中存在著許多服務程序錯誤和網路協議錯誤。換句話說就是,服務程序和網路協議無法處理所有的網路通信中所面臨的問題。人們利用這些錯誤,故意向主機發送一些錯誤的數據包。對於主機來說,往往不能正確處理這些數據包,這會導致主機的CPU資源全部被佔用或是死機。服務程序存在錯誤的情況很多,多種操作系統的服務程序都存在。例如WinNT系統中的RPC服務就存在著多種漏洞,其中危害最大的要數RPC介面遠程任意代碼可執行漏洞,非常流行的衝擊波病毒就是利用這個漏洞編製的。對付這類漏洞的方法是儘快安裝漏洞的補丁程序,在沒有找到補丁之前,應先安裝防火牆,視情況切斷主機應用層服務,即禁止從主機的所有埠發出和接收數據包。
通常網路攻擊者在獲得一台主機的控制權后,會在主機上建立後門,以便下一次入侵時使用。後門的種類很多,有登陸後門、服務後門、庫後門、口令破解後門等。這些後門多數存在於Unix系統中。目前,建立後門常用的方法是在主機中安裝木馬程序。攻擊者利用欺騙的手段,通過向主機發送電子郵件或是文件,並誘使主機的操作員打開或運行藏有木馬程序的郵件或文件;或者是攻擊者獲得控制權后,自己安裝木馬程序。對付後門攻擊的方法是經常檢測系統的程序運行情況,及時發現在運行中的不明程序,並用木馬專殺工具進行查殺木馬。
但網路攻擊的方法千變萬化,儘管可以對網路攻擊從原理上進行分類,但在網路攻擊的具體實例中,有時又很難簡單地將其歸於某一類的攻擊。例如,利用ping命令向一台主機發送超過65535的EchoRequest數據包,目標主機就會因緩衝區溢出而拒絕繼續提供服務,既可以將這種攻擊看作是拒絕服務攻擊,也可以視為緩衝區溢出攻擊。正是由於網路漏洞種類繁多,攻擊方法也多種多樣,很難對網路攻擊的具體實例進行一一分析,所以下面將以DoS攻擊為例,對網路攻擊的步驟和方法作進一步的介紹。
RPC服務漏洞進行攻擊
若遭受RPC服務DoS攻擊,應首先斷開網路並採用手工的防範措施。依次打開計算機“控制面板”—“管理工具”—“計算機管理”圖標,展開管理界面左側的“服務和應用程序”項中的“服務”選項,從界面右側找到Remote ProcedureCall(RPC)服務,單擊滑鼠右鍵,選擇“屬性”,打開屬性面板,選擇其中的“恢復”標籤,將失敗後計算機反應選項全部改為“不操作”,如圖1所示。雖然經過手工設置之後,計算機不再重新啟動,但主機的一些正常功能也被破壞,因此還需要給系統打上微軟提供的安全補丁才行。
通過對RPC服務DoS攻擊的分析,可大體了解網路攻擊的步驟。事實上,儘管網路攻擊的方法和原理各不相同,但其發動攻擊的步驟是基本一致的,通常都是採用以下4個步驟: 1)確定攻擊目標的位置;
2)利用公開協議和工具通過埠掃描、網路監聽收集目標的系統類型、提供的服務等信息;
3)利用自編入侵程序或公開的工具掃描分析系統的安全漏洞;
4)針對發現的網路漏洞展開攻擊。
通過對網路漏洞攻擊原理和攻擊步驟的分析,可以知道:要防止或減少網路漏洞的攻擊,最好的方法是儘力避免主機埠被掃描和監聽,先於攻擊者發現網路漏洞,並採取有效措施。提高網路系統安全的方法主要有:
1)在安裝操作系統和應用軟體之後及時安裝補丁程序,並密切關注國內外著名的安全站點,及時獲得最新的網路漏洞信息。在使用網路系統時,要設置和保管好賬號、密碼和系統中的日誌文件,並儘可能的做好備份工作。
2)及時安裝防火牆,建立安全屏障。防火牆可以儘可能屏蔽內部網路的信息和結構,降低來自外部網路的攻擊。對個人用戶而言,現在的個人防火牆還有探測掃描、攻擊,並自動防禦和追蹤的功能。例如金山毒霸和瑞星防火牆就具有掃描網路漏洞的功能,而藍盾防火牆則設計了自動反掃描的機制,外部的掃描將找不到任何埠。
3)利用系統工具和專用工具防止埠掃描。要利用網路漏洞攻擊,必須通過主機開放的埠。因此,黑客常利用Satan、Netbrute、SuperScan等工具進行埠掃描。防止埠掃描的方法:一是在系統中將特定的埠關閉,如利用Win系統中的TCP/IP屬性設置功能,在“高級TCP/IP設置”的“選項”面板中,關閉TCP/IP協議使用的埠;二是利用PortMapping等專用軟體,對埠進行限制或是轉向。
4)通過加密、網路分段、劃分虛擬區域網等技術防止網路監聽。
5)利用密罐技術,使網路攻擊的目標轉移到預設的虛假對象,從而保護系統的安全。
隨著計算機和網路技術在各個領域的迅速普及與廣泛應用,網路漏洞的種類越來越層出不窮。
步驟一:設置捕獲點
企業安全專家可能嘗試的方法是,通過啟用Wireshark捕獲網路中兩個不同點,來驗證防火牆性能效率。首先,在直通模式設備的非軍事區中,開啟混合模式,並啟動Wireshark進行抓包。這樣能獲取到所有試圖通過網路的未過濾數據包。接著,立即在在防火牆后的某台設備上開啟Wireshark。根據實際網路拓撲,可能需要配置一個監控點。在數據獲取到一定量后,保存數據並開始分析。
步驟二:檢查是否有入侵
對比步驟一中收集的兩個數據包,對比依據為防火牆上設置的過濾規則,檢查數據是否存在差異。例如,許多防火牆默認屏蔽所有TCP 23埠的Telnet流量。可以嘗試從外部網路發起針對內部網路設備的telnet登錄。檢查Wireshark獲取的數據內容,驗證數據包是否有發往防火牆。接下來,需要見證防火牆后的Wireshark數據,通過過濾器塞選Telent流量,如果發現有任何Telnet記錄,則說明防火牆配置存在嚴重問題了。
警覺的安全專家需要時刻意識到上述Telnet測試是最最基本的,對生產環境並不會有任何影響,因為當今最複雜的防火牆已經可以輕鬆拒絕傳統非安全協議,如Telnet和FTP。儘管如此,既然已經著手測試,上述內容是一個不錯的開始。所以,在我們通過Wireshark捕捉兩台網路設備的數據包后,現在可以開始著手更深入的包檢測方法。
步驟三:限制網路埠
在開啟Wireshark一段時間后,停止捕捉並將文件保存為PCAP文件格式。如果兩個捕捉點之間有任何網際網路信息數據傳輸,那麼數據包的數量將很快達到上千個。
大多數企業需要某種類型的網站展示,主要有兩種可能性:業務需要Web伺服器,而且伺服器通常要開放TCP 80埠。由於通過80埠的HTTP流量無須任何驗證,許多攻擊者操作HTTP報文作為通過防火牆的方法,並以此竊取重要數據。簡單來說。HTTP是大多數防火牆允許通過並直接放行的報文,所以攻擊者會將攻擊信息捎帶在正常的數據報文中,作為獲得某些授權的方式。