發新話題

『轉貼』入侵檢測系統FAQ(全)

『轉貼』入侵檢測系統FAQ(全)

作者:佚名 文章來源:www.cnsafe.net
1.介紹

1.1 什麼是網路侵入檢測系統(NIDS)?

入侵是指一些人(稱為'駭客', '駭客')試圖進入或者濫用你的系統。詞語'濫用'的範圍是很廣泛的,可以包括從嚴厲的偷竊機密資料到一些次要的事情,比如濫用你的電子郵件系統發垃圾郵件(雖然對我們中許多人呢,這個是主要的)。

侵入檢測系統(IDS)是用來檢測這些入侵的系統。根據這個FAQ的打算,IDS 可以有如下的分類:

網路侵入檢測系統(NIDS) 監視網線的資料包並試圖是否有駭客/駭客試圖進入系統(或者進行拒絕服務攻擊DoS)。一個典型的例子是一個系統觀察到一個目標主機的很多不同埠的大量TCP連接請求(SYN),來發現是否有人正在進行TCP的埠掃瞄。一個NIDS可以運行在目標主機上觀察他自己的流量(通常集成在協定棧或服務本身),也可以運行在獨立主機上觀察整個網路的流量(集線器, 路由器, 探測器[probe])。注意一個"網路"IDS監視很多主機,然而其他的只是監視一個主機(他們所安裝的)。

系統完整檢驗(SIV) 監視系統檔試圖發現是否有侵入者更改了檔(可能留個後門)。這樣系統最著名的就是Tripwire。一個SIV也應該能監視其他的組件,比如Windows的註冊表和chron的配置, 目的是發現知名的跡象。

他也應該能檢測到一個一般用戶偶然獲得root/Administrator級別許可權。

這個領域更多的產品應該被認為是工具而不是一個系統:比如Tripwire類似的工具檢測臨界系統元件的更改,卻不能產生即時的告警。

日誌檔監視器(LFM) 監視網路設備產生的日誌檔。同NIDS類似,這些系統通過對日誌檔的模式匹配提出是否有入侵者攻擊的建議。一個典型的例子就是分析HTTP日誌檔來發現入侵者試圖一些知名漏洞(比如phf攻擊)實例有swatch。

誘騙系統(包括decoys,lures,fly-traps,honeypots) 還有一些偽服務,目的是模擬一些知名 洞來誘陷駭客。參見 掌? 統工具包中的例子: 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 。也可以簡單的通過重新命名NT的系統管理員帳號,然後建立一個無許可權的虛帳號進行廣泛的審計。在此文檔後面有關於誘騙系統的更多描述。同時參見 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 其他更多資訊參見: 訪客無法瀏覽此圖片或連結,請先 註冊登入會員


1.2 誰在濫用(misusing)系統?

有兩個詞來描述攻擊者: 駭客和駭客。駭客是一個一般術語:喜歡進入東西的人。良性的駭客是那些喜歡進入他/她自己的電腦發現如何工作的人。

惡意的駭客是那些喜歡進入其他人系統的人。良性駭客希望媒體能停止對所有駭客的苛刻批評,使用駭客來做替代。很不幸,這個想法沒有被接受無論如何,在這個FAQ使用的詞語是'入侵者',來一般表示那些想要進入其他人系統的人。

侵入者可以被分為兩類:

外部的: 你網路外面的侵入者,或者可能攻擊你的外部存在(亂改的web伺服器,通過e-mail伺服器轉來的垃圾郵件)。外部的侵入者可能來自Internet, 撥號線, 物理介入, 或者從同你網路連接的夥伴網路(賣主,客戶, 中間商等)。

內部的: 合法使用你的互連網路的侵入者。包括濫用權力的人(比如社會安全僱員因為不喜歡某人就將其標誌為死亡)和模仿更改權力的人(比如使用別人的終端)。一個常被引用的統計就是80%的安全問題同內部人有關。

有幾種類型的侵入者: '快樂騎士'(Joy riders)因能而黑;'文化破壞者'(Vandals)意於毀壞或更改Web頁面; 奸商 (Profiteers)意於利益,如控制系統勒索或者竊取資料得利。

1.3 入侵者如何進入系統?

入侵者進入系統的主要途徑:

物理侵入: 如果一個侵入者對主機有物理進入許可權。(比如他們能使用鍵盤或者參與系統),應該可以進入。方法包括控制臺特權一直到物理參與系統並且移走磁片(在另外的機器讀/寫)。甚至BIOS保護也很容易穿過的: 事實上所有的BIOS都有後門口令。

系統侵入: 這類侵入表現為侵入者已經擁有在系統用戶的較低許可權。如果系統沒有打最新的漏洞補丁,就會給侵入者提供一個利用知名漏洞獲得系統管理員許可權的機會。

遠程侵入: 這類入侵指入侵者通過網路遠端進入系統。侵入者從無特權開始這種侵入方式包括多種形式。比如如果在他/她和受害主機之間有防火牆存在侵入者就複雜得多。

應該注意網路侵入檢測系統主要關心遠端侵入。

1.4 入侵者為什麼能侵入系統?
軟體總是存在bug。系統管理員和開發人員永遠無法發現和解決所有的可能漏洞。侵入者只要發現一個漏洞就可以入侵系統。

1.4.1 軟體bug
軟體bug存在於伺服器後臺程式(Daemons), 客戶程式, 作業系統, 網路協議棧。軟體bug可以分為如下幾種:

緩衝區溢出: 我們讀來的幾乎所有的安全漏洞歸於這一類。一個典型的例子是一個開發人員設定了一個256字元長的緩衝區來存儲用戶名。

開發人員想當然的認為沒有人的名字比這個長。但是駭客想,如果我輸入一個錯誤的很長的用戶名會發生什麼呢? 附加的字元會去哪裡?

如果駭客恰巧做對了, 他們發送300個字元, 包括了被伺服器執行的代碼,並且,他們進入了系統。駭客們通過幾個方法發現這些bug。

首先,很多服務的源代碼在網路上是公開的。駭客們經常讀這些代碼尋找有緩衝區溢出問題的程式。第二,駭客們可以讀程式本身來看是否有問題存在,雖然讀彙編代碼輸出真的很難。第三,駭客們會檢查程式所有的輸入並且試圖利用亂數據來溢出。如果程式崩潰了,就會存在讓駭客認真構造輸入並且允許進入的機會。應該注意這個問題在C/C++編寫的程式中普遍存在,卻很少出現在Java的程式當中。

意外結合: 程式通常被組合成很多層代碼,包括了潛在的作為最下面的作業系統層。侵入者常可以發送一些對於一層無意義的輸入, 卻對其他層有意義。Web上最常見的控制用戶輸入的語言就是Perl。Perl寫的程式往往發送這些輸入到其他的程式來進一步的處理。一個常見的駭客技術就是輸入字串"|mail< /etc/passwd"。這個命令得以執行是因為作業系統為這個輸入啟動一個附加的程式。然而作業系統解釋 管道符"|"並且按語義啟動"mail"程式,結果是將password檔寄給侵入者。

未處理的輸入: 很多程式寫成處理有效的輸入,很多程式師不知道當一些人的輸入不符合規格的後果。

競爭(Race)條件: 現在的許多系統是多工/多線程的。這就意味著他們可以同時運行多個程式。如果兩個程式同時訪問同一個資料就會發生危險。想像A和B的兩個程式,需要修改同一個檔。為了修改,每個程式將檔讀入記憶體,在記憶體中改變內容,然後將記憶體複製到檔。

當程式A將檔讀入記憶體並且進行修改的時候,產生了一個競爭條件。
在A寫檔前,程式B執行並且獲得讀寫許可權。現在程式A將記憶體複製到文件中。因為程式A 在B修改前開始,所有B的修改丟失了。因為你必須獲得正確的執行順序,所以競爭條件是非常稀有的。侵入者通常不得不試上千次,然後獲得許可權,進入系統。


1.4.2 系統配置
系統配置bug可以分為如下類別:

缺省配置: 許多系統交付給客戶的時候採用的缺省的易用的配置。不幸的是,"易用"就意味著"易侵入"。幾乎所有的交付給你的Unix和WinNT系統可以很容易的被攻擊。

懶惰的系統管理員: 驚人的數位的主機被配置成沒有系統管理員口令。
這個是因為系統管理員太懶惰了以至於懶得馬上配置一個,他們只是希望系統最好能少麻煩的儘快啟動運行。不幸,他們再也不回來設置一個,讓侵入者輕易的進來。侵入者最容易的事情就是先掃瞄所有的機器找沒有口令的主機。

生成的漏洞: 事實上所有的程式可能被配置成一個非安全的模式。有的時候系統管理員將不注意的在主機上打開一個漏洞。許多系統管理員手冊都建議系統管理員關掉所有不是絕對必要的程式和服務來避免意外漏洞。應該注意安全審計包通常可以發現這些漏洞並且提醒系統管理員信任的關係: 侵入者常用"島跳"的方法利用信任關係攻擊網路。一個互相信任主機的網路和他們最脆弱的連結一樣安全。

1.4.3 口令解密
這個是一個特殊的部分。

真正脆弱的口令: 很多人使用他們自己的名字,孩子的名字,配偶的名字,寵物的名字,或者小車的型號做口令。也有的用戶使用"password"或者簡單到什麼也沒有。這給出了侵入者可以自己鍵入的不多與30個可能性的列表。

字典攻擊: 上述攻擊失敗後,侵入者開始試圖"字典攻擊"。這種方法,侵入者利用程式嘗試字典中的單詞的每種可能。字典攻擊可以利用重複的登陸或者收集加密的口令並且試圖同加密後的字典中單詞匹配。侵入者通常利用一個英語字典或其他語言的字典。他們也使用附加的類字典資料庫,比如名字和常用的口令。

強力攻擊(Brute force attacks): 同字典攻擊類似,侵入者可能嘗試所有的字元組合方式。一個4個由小寫字母組成的口令可以在幾分鐘內被破解。(大約的共有50萬個可能的組合)一個較長的由大小寫字母組成的口令,包括數位和標點(10萬億種可能的組合)可以在一個月內破解,如果你可以每秒試100萬種組合。(實際上,一個單機每秒可以算上幾千次。)

1.4.4 監聽不安全的通信
共用媒體: 傳統的乙太網中, 你只要線上上啟動Sniffer就可以看到在一個網段的所有通信。現在這個方法由於更多公司採用交換乙太網而困難。

伺服器監聽: 然而在一個交換的網路裏,如果你可以在一個伺服器(特別是做路由器的)安裝sniffer程式,你就可以可以使用得到的資訊來攻擊客戶主機和信任主機。比如,你可能不知道某個用戶的口令,通過在他登陸的時候監聽Telnet會話,就可以得到他的口令。

遠程監聽: 大量的主機可以RMON,帶有公共團體字串。當帶寬非常低的時候(你不能監聽所有的通信),則呈現有趣的可能性。

1.4.5 設計的缺點
甚至當一個軟體完全按照設計來實現的時候,仍然可能因為設計時的bug帶來被侵入。

TCP/IP 協定缺點: TCP/IP協議在我們有很多被黑經驗前被設計。結果有很多可能引起安全問題的設計缺點。一些例子比如smurf攻擊,ICMP不可達的連結, IP哄騙, 和SYN floods。最大的問題是IP協議本身非常信任: 駭客自由的偽造和更改IP資料。IPSec被設計成解決了很多的缺點,但是沒有被廣泛的應用。

Unix 設計缺點: 有很多Unix固有的缺點使得Unix系統頻繁的被入侵。

主要問題是許可權控制系統, 只有"root"才是系統管理員許可權。結果:

1.5 入侵者如何獲得口令?
入侵者利用如下方法獲得口令:
明文監聽: 一些協定(Telnet, FTP, 基本HTTP)使用明文的口令,意味著他們在比如客戶/伺服器傳輸過程中不進行加密。入侵者可以使用一個協議分析儀觀察線纜上的這樣的口令。不需要更多的努力;入侵者馬上可以使用這些口令來登陸。

密文監聽: 許多協定,使用加密的口令。這種情況下,入侵者就需要執行字典或者強力攻擊口令來試圖解密。應該注意到你不能發現入侵者的存在,因為他/她是完全被動並且不用向線纜傳送任何東西。口令破解在入侵者利用自己的機器來鑒權的時候,不許要發送人和東西到線纜。

重放(Replay)攻擊: 很多情況下,入侵者不必解密口令。他們可以使用加密的格式來代替登陸系統。這通常需要重新編碼用戶端軟體來使用加密的口令
口令檔竊取: 所有的用戶資料庫通常存儲在磁片上的一個單個檔。UNIX下這個檔是/etc/passwd(或者這個檔的其他鏡像),WinNT下,是SAM文件每個方法,一旦入侵者取得了這個檔,他/她就能運行解密程式(如上面所述)來發現檔中一些脆弱的密碼。

觀察: 一個傳統的口令安全問題是口令必須長而且難猜(使得字典和強力攻擊不合理的困難)。然而,這樣的口令往往很難記憶,所以用戶就在某地寫下來。入侵者常可以搜尋一個個人辦公桌來發現寫到小字條上的口令(一般在鍵盤下面)。入侵者也可以自己訓練在用戶後面觀察口令的鍵入。

交際工程: 一個普通(且成功)的技巧是簡單的打個電話給用戶並且說 "hi,我是MIS組的Bob, 我們正跟蹤網路上的一些問題,並且出現在你的機器裏。
你用的是什麼口令呢?"許多用戶會在這種情況下放棄他們的口令。(許多公司有政策讓用戶永遠不要給出他們的口令,甚至他們自己的MIS部門,但是這個伎倆仍然成功。一個簡單的解決方法就是MIS組打電話給6個月的僱員問他們口令,然後批評他們的錯誤,這樣他們就不會忘記了

1.6典型的入侵過程?
一個典型的入侵過程也許如下:

步驟1.外部偵查--
入侵者會盡可能地找出實際上並不直接給予他們的資訊. 他們常通過公開資訊或偽裝成正常的使用者. 用這種方式的入侵者, 將使你實在難以察覺. 如你的網路跟你的Domain Name 一起 註冊的(例如 foobar.com),入侵者可以使用'whois'這種查表(lookup)來儘量找出你的網路(network)資訊. 入侵者也許經由你的DNS表(使用'nslookup','dig',或其他的工具程式 來作 domain 的轉換)來找出你機器的名字. 入侵者會流覽其他的公開資訊, 例如 你的公開站點和匿名(anonymous)FTP 站點. 入侵者也許會尋找關於你公司的新聞檔和報刊的發行品.

步驟2.內部偵查--
入侵者使用更具侵略性的技術來對資訊掃瞄,但不會破壞任何東西.他們將由你全部的網頁來找出CGI scripts(CGIscripts 經常是容易被入侵的).他們也許會為了試探主機的存在而使用'ping'.他們也許會用 UDP/TCP scan/strob(掃瞄)來找出目標主機的可獲得服務(services).他們也許會執行一個如同 'rpcinfo','showmount', 'snmpwalk'等等 的工具程式, 來尋找可獲得的資訊.關於這點,入侵者只是做出"正常的"網路行為,並且沒有作出任何被歸類為闖入(intrusion)的舉動.針對這點,NIDS會告訴你"有人在檢查你的大門握把",但沒有人真的去試著把門打開.

步驟3.入侵--
入侵者違越了規矩,並開始對目標主機作了可能的漏洞入侵.入侵者嘗試 在一個輸入資料裏,傳遞一個shell 指令,因而危及CGI script.入侵者試圖以傳遞大量的資料的方式,來侵害一個已知的緩衝區溢位(buffer-overrun)漏洞.入侵者開始檢查有無 簡單可猜(甚至 沒有)密碼的戶帳號.一個駭客,會由幾個階段性的入侵.例如,如果駭客可以得到一個用戶的帳號,他將試圖作更進一步的入侵舉動來獲得 root/admin.

步驟4.立足--
在這階段中,入侵者已經由機器的入侵,成功地在你的網路中立足.入侵者主要的目的就是藏匿入侵證據(修改稽核(audit trail)與log檔)並確認他可以再次侵入.他們也許會安裝可讓他們執行的'toolkits'.用他們有著後門(backdoor)密碼的木馬(Trojanhorses)置換原先的服務,或 創造一個屬於自己的使用者帳戶.System IntegrityVerifiers(SIVs)可以 注意到 檔案的改變 而對使用這些手段的入侵者做出檢測.由於大部分的網路難以防禦來自內部的侵害,入侵者將利用這個機器作為其他機器的跳島.

步驟5.利益--
入侵者利用他們的優勢偷取機密資料,濫用系統資源(階段性的由其他機器侵擾你的機器)或破壞你的網頁.其他的情節也許開始情況不同.不管是入侵特定的站點或者是隨機地在網路世界中掃瞄特定的漏洞.例如 入侵者可能會企圖掃瞄有著SendMail DEBUG漏洞機器的整個網路.他們可以輕易入侵有漏洞的機器.他們不會直接針對你,甚至不知道你是誰.(就好像'birthdayattack'般,列出已知的系統漏洞與IP位置,憑運氣的找到有著其中一項漏洞的機器)

1.7一般的入侵類型有哪些?
有三種攻擊方式:

偵察--包括ping掃瞄,DNS zone 轉換,e-mail偵察,TCP 或 UDP 埠(port)掃瞄(scan),與經由公開網頁伺服器可能的索引(indexing),來發現CGI漏洞.
漏洞--入侵者將會利用隱密的特性或缺陷(bugs)來存取系統.拒絕服務(denial-of-service)(DOS)攻擊--入侵者試圖破壞服務(或機器),使網路連結(link)超載,CPU超載,填滿硬碟.入侵者不是想獲得資訊,而是僅僅以如破壞者般的行為而不讓你使用機器.

1.8 常見漏洞有哪些?
1.8.1 CGI腳本(scripts)
CGI程式是惡名昭彰地不安全.典型的安全漏洞包括 經由shell特殊字元(metacharacters)的利用,直接傳遞變質的輸入 於 命令shell裏.使用隱藏的變數,指定系統裏的檔案名(filename),或揭示更多系統的種種.最為人知的CGI缺陷就是裝載於NCSA httptd的'phf'資料庫(library).'phf'library 假定為允許 伺服解析(sever-parsed)HTML,而造成 傳回任何檔案 的漏洞. 其他入侵者試圖使用的知名CGI腳本漏洞有:TextCounter, GuestBook, EWS,info2www, Count.cgi, handler, webdist.cgi,php.cgi, files.pl, nph-test-cgi, nph-publish,AnyForm, FormMail.如果你發現有人試圖存取上述的CGI腳本(但你沒有使用他們),這便清楚顯示了一個入侵的意圖(假設你沒有把你想使用的CGI腳本用那個缺陷版本安裝).

1.8.2 Web 伺服器(server) 攻擊
在CGI程式執行後,Web伺服器可能有了其他的漏洞.非常多的self-written Web伺服器(包括IIS 1.0 與 NetWare2.x)會因為在一 檔案名之中,能把一連串的"../"寫在路徑(path)名裏,因而跳到 系統檔案 的其他地方,得到任何檔案.其他的一般漏洞,就是在 請求(request)域(field) ,或 其他 HTTP資料 的 緩衝區溢出.Web伺服器常因為與其底層的operating system有著互動的關係 ,而產生漏洞.在Microsoft IIS裏有個古老的漏洞被使用,因檔案有兩個檔案名--一個 長檔名與 一個短的相應8.3形式名 ,有時能繞過允許機制 而獲得存取.NTFS (the new file system)有一個特色,名為--"alternate data streams" 相似於Macintosh系統的 資料與 資源 forks.你可以在通過streamname時,添加上":DATA"(這是為了看他的腳本而不是執行什麼),來存取他的檔案.伺服器長久以來因URLs而存在著問題.例如"death by a thousand slashes"問題,導致Apache產生大量的CPU負載,因它試著在數以千計的"/" URL中處理每一個目錄.

1.8.3 Web流覽器 攻擊
Microsoft與Netscape的Web流覽器,都有安全漏洞(當然啦,雖然最新版本的,我們還沒發現),這包括了URL, HTTP, HTML,JavaScript, Frames, Java, 與 ActiveX 攻擊.URL資料段,會有緩衝區溢位元的情況,當它由HTTP標頭(header)被解悉時,在螢幕上顯示時,或於某種形式被處理(如由cache history儲存).而且,有著古老InternetExplorer漏洞的在流覽器,在執行 LNK或URL命令時會伴隨著能在內部造成影響的漏洞.HTTP 頭可能因為傳遞給只收特定值的函數而產生漏洞HTML常會存在漏洞,如 MIME-type 緩衝區溢位 於Netscape Communicator的 命令.JavaScript長久以來都很受喜愛,並常常試著經由產生一個檔名 與 自動地隱藏"SUBMIT" button來侵害 "file upload" 函式 . 已有許多不同的這種漏洞被修正了,然而會有新發現的方法來繞過修正.Frames 常如 JavaScript的一部份般, 或 Java hack來使用 經由一個象素大小的螢幕,把網頁隱藏)但它們呈現了特別的問題.如 我能 包含一個連結 到一個可信賴的 使用者frames 的站點,然後以我自己站點的網頁置換那些frames的一部份,於是它們將會以那個遠端站點的一部份般 出現在你面前.

Java 有一個健全的安全模型(model),但經證實那個模型有著特殊的漏洞(雖然與其他的任何事物相比,它被證實是整個系統最為安全的元件之一).再者,它的健全安全性,也許是它的undoing:正常的Java applets 無法存取當地(local)系統,但有時,如果他們真能存取當地系統的話,它們將會更為有用.因此,"信任(trust)"模型的完成,更容易被入侵.ActiveX 甚至比 Java更危險, 當它是由一個 信任模型純粹運作並 執行 原有的(native)程式碼. 你甚至會偶然地感染到病毒(virus)( 在販售商的程式碼中意外地被植入(imbeded)).

1.8.4 SMTP (SendMail) 攻擊
SendMail 是一個極端複雜並被廣泛使用的程式, 是以,它頻為安全漏洞的來源. 在過去( '88 Morris Worm的時期),駭客 會利用 DEBUG 命令的漏洞 或 隱藏 WIZ 的特徵,來闖入 SMTP. 近來, 他們經常試著用 緩衝區溢位 手段.SMTP 也被用做偵察(reconnaissance) 攻擊, 如利用VRFY 命令找出使用者名子.

1.8.5 Access
失敗的 login 企圖,失敗的檔案存取企圖, passwordcracking,管理者權力的濫用.

1.8.6 IMAP
使用者經由 IMAP 協定從伺服器收email (在對比之下, SMTP 介於伺服器之間傳送e-mail ). 駭客已在一些受歡迎的IMAP伺服器裏發現漏洞.

1.8.7 IP spoofing
有些類型的攻擊是利用技術來偽造(或 'spoof')你的IP地址.一個 原始位址 伴隨著 每個IP包(packet)被傳送時,實際上它可以不是被用於routing. 這表示當與服務器交談(talkin)時,一個入侵者可以佯裝成你 . 入侵者不會收到應答(response)包 (雖然你的機器有見到,但把他們丟棄了, 因為 它們不符合你之前傳遞的任何請求(request) ). 入侵者不會經由這種方式取得資料,而是仍假裝成你,傳送命令給伺服器.IP spoofing 經常有如其他的攻擊的部分般使用著:SMURF以偽造的源位址廣播方式ping,導致大量的機器應答,經由位址,回覆到 受害者, 使它 (或 它的連結)負載.

TCP序號預選
在 TCP連接 的起始, 你這端必須選擇一個 序號, 而伺服器端也必須選擇一個序號. 較老的 TCP棧選擇一個可預測的有續數字, 而讓入侵者由一個 偽造的IP地址(他們本來不應該看到應答包)想必能繞過安全機制.

DNS 通過可預知序號中毒
DNS伺服器 會 "遞迴" 解析 DNS 名.因此,在它滿足一個用戶端 要求(request) 時,它本身也成為遞迴鏈下個伺服器的客戶它使用的有序號是可預測的.因此, 一個入侵者可以傳送 一個要求到DNS伺服器 並傳送一個 回應 到 伺服器 以偽裝成為 鏈結中的下一個伺服器. 它會相信 偽裝 回應, 並使用它來滿足其他的用戶端.

1.8.8 緩衝區溢位
一些其他的緩衝區溢位攻擊有:

DNS 溢位
過長的 DNS名,傳送到伺服器中. DNS名 限制了每一個次要成分(subcomponent)是64-bytes而總體是於256-bytes.statd 溢位提交了過長的 檔案名.

1.8.9 DNS 攻擊
DNS 是一個首要的目標.因為如果你能侵害(corrupt)DNS伺服器, 你便能利用信任關係.

DNS 緩存中毒
每個 DNS包, 包括了一個 "詢問(Question)" 節與"回答(Answer)"節. 有缺陷的伺服器將會相信 (並 緩存)在傳送問題時伴隨的 回答大部分,但不是全部的DNS 伺服器 已於 1998 11月,被補丁(patched) .DNS

poisoning through sequence prediction
如上

DNS 溢位
如上

1.9 什麼是拒絕服務? (DoS)?
1.9.1 Ping-of-Death
傳送一個開始於包(packet)的尾末之前 ,但擴展到包的尾末之後的無效片段(fragment).

1.9.2 SYN 氾濫(Flood)
很快速地傳送 TCP SYN包(做為連接(connection)的開啟), 讓受害者處於等待完成大量連接的狀態, 造成他資源的耗盡與丟棄合法的連接. 一個新的防範措施 --"SYN cookies". 每一個連結端有他自己的序數(sequence-number).對於一個SYN的反應,被攻擊的機器產生一個 特別的序數(一個連結的"cookie")然後 忘卻關於連接的一切. 然後當一個合法的連接的包來到時,它便能再創造關於連接的遺漏資訊.

1.9.3 Land/Latierra
傳送與來源/目的 位址/阜號 相同的偽造SYN包 ,受害系統便 試著完成TCP連接 的無窮回路(infinite loop).

1.9.4 WinNuke
在TCP連接時 傳送 OOB/URG資料 到阜號139(NetBIOS Session/SMB)上, 造成Windows系統(死機)hang.

TOP

入侵檢測(ID)FAQ(初級)2

關於入侵檢測,有什麼開放的標準存在麼?

  目前為止入侵檢測還沒有成熟的開放標準。但是我們正在向這一方向努力。
  Internet工程任務組(IETF)是制定互聯網標準的實體。他們有一個工作小組專門致力於開發一個通用的IDS報警格式。該小組已經完成了需求調查的階段,具體的設計方案已經基本結束,但是具體的細節可能會稍有變化。初步的實現工作可能會因為標準的最終確定而進行少量修改。現在的設計是通過類似HTTP的連接格式來發送基於XML的IDS警告。為了滿足IDS分析的需要,並且使該協定能夠以自然的方式穿越防火牆,人們為此做了許多工作。
  我們歡迎更多的人員參與進來。IEFT工作組對任何想參與並且技術過硬的人都是開放的。這是因為個人總是能為了解決問題提出最佳的方法,而不是按照老闆的日程來給出答案。
  工作組的宗旨可以參考訪客無法瀏覽此圖片或連結,請先 註冊登入會員 ,郵件列表:http://www.semper.org/idwg-public/工作組的文檔可以查看訪客無法瀏覽此圖片或連結,請先 註冊登入會員
ISO的T4委員會也為此付出了不少努力,提出了入侵檢測框架。該專案的進展情況目前仍是未知的,FAQ作者也無法對此獲得已知數據。
通用入侵檢測框架(CIDF)是美國國防高級研究項目局(DARPA)為IDS資料交換而作出的一個嘗試。CIDF並不是想做成一個可以影響商業產品的標準,它只是一個研究項目。現在的CIDF開發似乎已經停止。CIDF使用類似於Lisp的格式來交換入侵相關事件的資訊,並且為使用這些消息定義了大量的系統原型。你可以在http://www.gidos.org上獲得更多的資訊。
Stuart Staniford-Chen
President, Silicon Defense
stuart@silicondefense.com

如何在一個網路流量繁重的交換環境下實現入侵檢測系統(基於網路)?  在交換環境下實現入侵檢測系統的主要困難,是由集線器和交換機的不同所造成的。集線器沒有連接的概念,因此每從一個埠收到資料包,都會向其他的埠進行複製。然而交換機是基於連接的,當一個資料包從交換機的一個臨時連接埠進入,該資料包會被轉發到目的埠。因此在集線器環境下,我們可以把我們的探測器放到任何位置,但是對於交換機,必須使用某些手段才能夠使探測器監視需要的流量。
  目前的選擇有TAPS(中文為水龍頭的意思),集線器和跨越埠(spanning port,有些地方也稱為Mirror Port鏡像埠),跨越埠可以將交換機配置成對某個埠像集線器一樣工作。例如在圖一中,我們希望監視交換機和資源機(Resource Machine)之間的連接狀況。為此我們可以讓交換機把資源機埠的經過的數據傳到IDS所在的埠上。我們可以傳送資源機發出的資料包,或者收到的資料包,或者兩者。某些現有的交換機無法保證將100%的監視流量傳送到跨越埠上,因此即使入侵檢測系統被設置成監視所有攻擊,某些攻擊行為也可能未被察覺。交換機有時也只允許傳送一個埠的資料包,因此同時監視多個主機就非常困難,甚至不可能。


  使用集線器或者TAP是差不多的解決方案。集線器或者tap被放置在被監視連接的中間,通常是位於兩個交換機之間,或者交換機和路由器之間,或者伺服器和交換機之間,等等。在圖二中,集線器被放置在資源主機和交換機之間。這樣,資源主機和交換機之間的網路仍然正常運行,但是由於集線器的特性,網路資料被複製到IDS上。這個和跨越埠有些類似,但是跨越埠只能監視單個主機。集線器上連接多台機器會使網路出現問題從而抵消交換機帶來的好處,另外,使用一個容錯集線器會大大增加成本。Tap被用來設計成對主連接(也就是從資源主機到交換機的連接)容錯,並且用硬體實現,確保不會出錯。


  圖三中,一個tap被用來監視一台資源主機。Tap是單方向的,只允許從交換機和資源主機之間到IDS的流量通過。這樣就避免了IDS到交換機或者資源主機的流量,這個流量也不會再回到IDS。既然tap是單方向的,我們可以把網路流量從幾個tap引導到hub上,最終由IDS來監視,這樣就不會引起網路問題,參見圖四



什麼是蜜罐?如何使用蜜罐?

  蜜罐是一些程式,這些程式可以類比在你電腦的指定埠上運行的一個或多個網路服務。攻擊者會認為你在運行某些有漏洞的服務,可以通過這些來攻破系統。蜜罐可以用來記錄下所有的連接那些埠的活動,甚至包括攻擊者的擊鍵記錄。這會為你提供某些聯合攻擊的預警。
  有一個蜜罐程式叫做欺騙工具包(Deception Tool Kit),可以從http://www.all.net/dtk/index.html下載。你可以為每一個埠配置連接反應。
  蜜罐上運行眾所周知的伺服器,比如說網頁,郵件或者功能變數名稱伺服器,是和合適的,因為這些系統是經常被攻擊的物件。蜜罐也可以用來替換正在被攻擊的系統。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。