摘 要: IE安全是信息安全領域一個非常重要的方面,隨著計算機網絡的廣泛應用,安全的重要性也日漸突出,薄弱的認證環節,系統的易被監視性、易欺騙性等這些因素在一定程度上來說直接危害到一個網站的安全。但一直以來有很多網站在設計的時候對安全維護并沒有一個正確的理解,因而也不可能認識到安全維護對于網站的重要性。目前,在信息通信的發展過程當中,IE安全漏洞始終是一個引起各方面高度關注的問題,為了讓大家上網更加安全快速,本文作者總結整理了IE的安全漏洞和防范措施,以及對抗常見黑客攻擊手段。
關鍵詞: IE漏洞 黑客攻擊 防火墻技術
1.引言
IE漏洞一般是程序員編程時的疏忽或者考慮不周導致的,還有就是該功能有一定用處(對部分使用者很有用),但是卻被黑客利用,也算是漏洞。漏洞的形成有兩方面,一方面因為軟件、系統分成若干板塊,分工編寫。問題就出在分工編寫這個環節:世界上沒有思維一樣的人,所以難免會出現種種問題,且不說“幾不管”的中間地帶,就是在軟件匯總時,為了測試方便,程序員總會留有后門,在測試以后再進行修補,這些后門,如果一旦疏忽(或是為某種目的故意留下),或是沒有被發現,軟件發布后自然而然就成了漏洞。另一方面就是網絡協議。網絡協議有TCP、UDP、ICMP、IGMP等。其實,它們本來的用途是好的,但卻被一些人用于不法的活動。例如,ICMP本來是用于尋找網絡相關信息,后來卻被用于網絡嗅探和攻擊;TCP本來是用于網絡傳輸,后來卻被用于泄漏用戶信息。對于漏洞的補救方法包括本身補救和借助補救兩種方法。
2.IE經典漏洞故障分析與實戰解決方案
2.1 發送錯誤報告IE關閉。
針對不同情況,可分別用以下方法關閉IE發送錯誤報告功能。
2.1.1對IE5.x用戶,執行“控制面板→添加或刪除程序”,在列表中選擇“Internet Explorer Error Reporting”選項,然后單擊“更改/刪除”按鈕,將其從系統中刪除。
2.1.2對Windows 9x/Me/NT/2000下的IE6.0用戶,則可打開“注冊表編輯器”,找到[HKEY_ LOCAL_MACHINE\Software\ Microsoft\ Internet Explorer\Main],在右側窗格創建名為IEWatsonEnabled的DWORD雙字節值,并將其賦值為0。
2.1.3對Windows XP的IE6.0用戶,執行“控制面板→系統”,切換到“高級”選項卡,單擊“錯誤報告”按鈕,選中“禁用錯誤報告”選項,并選中“但在發生嚴重錯誤時通知我”,最后單擊“確定”按鈕。
2.2 IE發生內部錯誤,窗口被關閉。
2.2.1關閉過多的IE窗口。如果在運行需占大量內存的程序,建議IE窗口打開數不要超過5個。
2.2.2降低IE安全級別。執行“工具→Internet選項”菜單,選擇“安全”選項卡,單擊“默認級別”按鈕,拖動滑塊降低默認的安全級別。
2.2.3將IE升級到最新版本。IE6.0 SP1可使用以IE為核心的瀏覽器,如MyIE2。它占用系統資源相對要少,而且當瀏覽器發生故障關閉時,下次啟動它,會有“是否打開上次發生錯誤時的頁面”的提示,盡可能地幫你挽回損失。
2.3 出現運行錯誤。
2.3.1啟動IE,執行“工具→Internet選項”菜單,選擇“高級”選項卡,選中“禁止腳本調試”復選框,最后單擊“確定”按鈕即可。
2.3.2將IE瀏覽器升級到最新版本。
2.4 IE窗口始終最小化的問題。
2.4.1打開“注冊表編輯器”,找到[HKEY_CURRENT_USER\ Software\Microsoft\Internet Explorer\Desktop\Old WorkAreas],然后選中窗口右側的“OldWorkAreaRects”,將其刪除。
2.4.2同樣在“注冊表編輯器”中找到[HKEY_ CURRENT_ USER\Software\Microsoft\Internet Explorer\Main],選擇窗口右側的“Window_Placement”,將其刪除。
2.4.3退出“注冊表編輯器”,重啟電腦,然后打開IE,將其窗口最大化,并單擊“往下還原”按鈕將窗口還原,接著再次單擊“最大化”按鈕,最后關閉IE窗口。以后重新打開IE時,窗口就正常了。
3.黑客攻擊主要方法
3.1 IP偽裝技術。
保留IP地址不能在Internet上路由,因此使用保留IP地址的系統無法到達Internet。但通過建立一個IP偽裝服務器(一臺Linux服務器)可解決這一問題。具有IP偽裝功能時,當數據包離開用戶計算機時,包含有它自身的IP地址作為“源地址”,在數據包經過Linux服務器發送到外部世界時,會經過一個轉換。數據包的源地址改變成服務器的IP地址,而經過轉換的數據包可以在Internet中完整路由。服務器同時記錄哪個源地址的數據包發送到Internet上的哪個目標IP地址。當數據包發送到Internet上之后,它能夠到達其目標地址并獲得其響應。從用戶角度看,他有一個能夠完整路由的Internet連接。安全性由轉換表來保證,服務器保存有哪個用戶計算機與哪個外部Internet主機通訊的記錄。如果某個黑客希望獲得對用戶計算機的訪問,幾乎是不可能的。外部世界看到的惟一的IP地址是服務器的地址,其它所有的地址都被隱藏。即使有黑客向服務器發送數據包,服務器也無法知道應該將這個數據包發送到哪個用戶計算機。為了將內部網絡連接到外部世界,需要在IP偽裝服務器上有兩個網絡接口。一個接口用于連接到內部網絡,而另一個接口用來將服務器(并通過IP偽裝將內部網絡)連接到外部世界。因為這種服務器具有多個接口,所以經常被稱為“多宿主”服務器。可以為連接到內部網絡的網卡賦予一個保留IP地址。例如:#/sbin/ifconfig eth1 inet 192.168.1.1 netmask 255.255.255.0,這里,假定連接內部網絡的網絡接口為eth1,并且內部網絡中的用戶計算機數小于253。如果需要超過253個用戶計算機,則可以增加網絡掩碼位數,還可建立第二臺IP偽裝計算機,并將內部網絡劃分為兩個子網。
將用戶計算機的IP地址配置為192.168.1.2到192.168.1.254,并將所有用戶計算機的網關設置為192.168.1.1、網絡掩碼為255.255.255.0,就可以從每臺用戶計算機ping內部網關了(192.168.1.1)。這時,所有的用戶計算機能夠互相通信,并能夠與IP轉換服務器通信,但目前還不能從客戶計算機上到達外部世界,這需要在IP轉換服務器上定義一個過濾規則。鍵入如下命令即可。/sbin/ipchains -A forward-j MASQ-s 192.168.1.0/24-d 0.0.0.0/0/sbin/ipchains-P forward DENY第一條命令對其目標地址不是192.168.1.0網絡的IP數據包打開了IP偽裝服務。它將轉發最初來自192.168.1.0網絡的、經過偽裝的IP數據包,并轉發到另一個網絡接口所連接的網絡的默認路由器。第二條命令將默認的轉發策略設置為拒絕所有非內部網絡的數據包。這時,用戶就可以從內部網計算機上瀏覽并與Internet通訊,就像直接連接到Internet一樣可將上述命令放在/etc/rc.d/rc.local文件中,這樣,在服務器開機時,就能自動啟動IP偽裝功能。
3.2利用IP地址欺騙突破防火墻。
黑客或入侵者利用偽造的IP發送地址產生虛假的數據分組,喬裝成來自內部站的分組過濾器,這種類型的攻擊是非常危險的。關于涉及到的分組真正是內部的還是外部的分組被包裝得看起來像內部的種種跡象都已喪失殆盡。只要系統發現發送地址在其自己的范圍之內,則它就把該分組按內部通信對待并讓其通過。
通常主機A與主機B的TCP連接(中間有或無防火墻)是通過主機A向主機B提出請求建立起來的,而其間A和B的確認僅僅根據由主機A產生并經主機B驗證的初始序列號ISN具體分三個步驟。
主機A產生它的ISN,傳送給主機B,請求建立連接;B接收到來自A的帶有SYN標志的ISN后,將自己本身的ISN連同應答信息ACK一同返回給A;A再將B傳送來ISN及應答信息ACK返回給B。至此,正常情況,主機A與B的TCP連接就建立起來了。
B——SYN→A
B←SYN+ACK——A
B——ACK→A
假設C企圖攻擊A,因為A和B是相互信任的,如果C已經知道了被A信任的B,那么就要相辦法使得B的網絡功能癱瘓,防止別的東西干擾自己的攻擊。在這里普遍使用的是SYN flood,攻擊者向被攻擊主機發送許多TCP—SYN包。當B的網絡功能暫時癱瘓,現在C必須想方設法確定A當前的ISN。首先連向25端口,因為SMTP是沒有安全校驗機制的,與前面類似,不過這次需要記錄A的ISN,以及C到A的大致的RTT(round trip time)。這個步驟要重復多次以便求出RTT的平均值,C向A發送帶有SYN標志的數據段請求連接,只是信源IP改成了B。A向B回送SYN+ACK數據段,B已經無法響應,B的TCP層只是簡單地丟棄A的回送數據段。這個時候C需要暫停一小會兒,讓A有足夠時間發送SYN+ACK,因為C看不到這個包。然后C再次偽裝成B向A發送ACK,此時發送的數據段帶有Z預測的A的ISN+1。如果預測準確,連接建立,數據傳送開始。問題在于即使連接建立,A仍然會向B發送數據,而不是C,C仍然無法看到A發往B的數據段,C必須蒙著頭按照協議標準假冒B向A發送命令,于是攻擊完成。如果預測不準確,A將發送一個帶有RST標志的數據段異常終止連接,C只有從頭再來。隨著不斷地糾正預測的ISN,攻擊者最終會與目標主機建立一個會晤。通過這種方式,攻擊者以合法用戶的身份登錄到目標主機而不需進一步的確認。如果反復試驗使得目標主機能夠接收對網絡的ROOT登錄,那么就可以完全控制整個網絡。
C(B)——SYN→A
B←SYN+ACK——A
C(B)——ACK→A
C(B)——PSH→A
IP欺騙攻擊利用了RPC服務器僅僅依賴于信源IP地址進行安全校驗的特性,攻擊最困難的地方在于預測A的ISN。攻擊難度比較大,但成功的可能性也很大。C必須精確地預見可能從A發往B的信息,以及A期待來自B的什么應答信息,這要求攻擊者對協議本身相當熟悉。同時需要明白,這種攻擊根本不可能在交互狀態下完成,必須通過寫程序完成。當然在準備階段可以用netxray之類的工具進行協議分析。
3.3 防范偽裝成可信IP地址的攻擊。
攻擊者通過改變自己的IP地址來偽裝成內部網用戶或可信的外部網用戶,以合法用戶身份登錄那些只以IP地址作為驗證的主機;或者發送特定的報文以干擾正常的網絡數據傳輸;或者偽造可接收的路由報文(如發送ICMP報文)來更改路由信息,來非法竊取信息。
防范方法有以下幾種。
3.3.1當每一個連接局域網的網關或路由器在決定是否允許外部的IP數據包進入局域網之前,先對來自外部的IP數據包進行檢驗,如果該IP包的IP源地址是其要進入的局域網內的IP地址,該IP包就被網關或路由器拒絕,不允許進入該局域網。雖然這種方法能夠很好地解決問題,但是考慮到一些以太網卡接收它們自己發出的數據包,并且在實際應用中局域網與局域網之間也常常需要有相互的信任關系以共享資源,因此這種方案不具備較好的實際價值。
3.3.2另外一種防御這種攻擊的較為理想的方法是當IP數據包出局域網時檢驗其IP源地址。即每一個連接局域網的網關或路由器在決定是否允許本局域網內部的IP數據包發出局域網之前,先對來自該IP數據包的IP源地址進行檢驗。如果該IP包的IP源地址不是其所在局域網內部的IP地址,該IP包就被網關或路由器拒絕,不允許該包離開局域網。因此建議每一個ISP或局域網的網關路由器都對出去的IP數據包進行IP源地址的檢驗和過濾。如果每一個網關路由器都做到了這一點,IP源地址欺騙將基本上無法奏效。
4.結語
本文闡述了IE瀏覽器的漏洞的形成和解決漏洞的辦法,并且介紹了防范黑客對IE瀏覽器攻擊的技巧。
參考文獻:
[1]V.V.PReetham.INTERNET安全與防火墻.清華大學出版社.
[2]Erik Schetina Ken Green.INTERNET安全權威指南.中國電力出版社.
[3]梅珊,王滕宇,馮曉聰.黑客帝國INTERNET安全防范實例.中國電力出版社.
[4]李思齊.文洋.防火之道——INTEERNET安全構建與應用.北京航天航空大學出版社.
[5]李明柱.時憶杰.安全防范技巧與實例.北京航天航空大學出版社.
[6]周仲義.網絡安全與黑客攻擊.貴州科學技術出版社.
[7]Sean Convery.網絡安全體系結構.人民郵電出版社.
[8]Charlie Kaufman.Radia Perlman.Mike Speciner.網絡安全——公眾世界中的通信秘密.電子工業出版社.
[9]Kevin Kenan.數據庫加密——最后的防線.電子工業出版社.
[10]趙泉.網絡安全與電子商務.清華大學出版社.