第五章TCPIP體系的協議安全2_第1頁
第五章TCPIP體系的協議安全2_第2頁
第五章TCPIP體系的協議安全2_第3頁
第五章TCPIP體系的協議安全2_第4頁
第五章TCPIP體系的協議安全2_第5頁
已閱讀5頁,還剩48頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

TCP安全TCP概述-TCP協議涉及到TCP報文段的結構、TCP連接的建立與終止、TCP數據的傳輸、流量控制、差錯控制、數據重傳等內容。連接建立-TCP是面向連接的。在面向連接的環境中,開始傳輸數據之前,在兩個終端之間必須先建立一個連接。建立連接的過程可以確保通信雙方在發送用戶數據之前已經準備好了傳送和接收數據。TCP-面向連接的、端到端的可靠傳輸服務對于一個要建立的連接,通信雙方必須用彼此的初始化序列號SEQ和來自對方成功傳輸確認的確認序號ACK來同步。(ACK號指明希望收到的下一個字節的編號)習慣上將同步信號寫為SYN,應答信號寫為ACK。TCP連接建立時的三次握手數據傳輸在連接建立后,TCP將以全雙工方式傳送數據,在同一時間主機A與主機B之間可以同時進行TCP報文段的傳輸,并對接收到的TCP報文段進行確認。當通過三次握手建立了主機A與主機B之間的TCP連接后,現在假設主機A要向主機B發送1800字節的數據,主機B要向主機A發送1500字節的數據。

TCP報文段的傳輸過程連接終止對于一個已經建立的連接,TCP使用改進的三次握手來釋放連接(使用一個帶有FIN附加標記的報文段,即在TCP報文段首部中將FIN字段的值置為1)。TCP關閉連接的步驟如圖所示。TCP使用改進的三次握手來釋放連接TCP的安全問題-BadTCP要實現可靠的數據傳輸,首先要通過三次握手方式建立主機之間的TCP連接,但在TCP連接過程中很容易出現一個嚴重的安全問題:TCPSYN泛洪攻擊。-拒絕服務攻擊DOS(DenyofService)三次握手-當源主機A要建立與目的主機B之間的TCP連接時,源主機A首先發送一個用于同步的SYN報文段(第一次握手)。當目的主機B接收到這個報文段時,在正常情況下目的主機會打開連接端口,并給源主機A返回一個SYN+ACK的報文段(第二次握手)。

在目的主機B的隊列中存在大量的“半開放狀態”的連接,最終將隊列的存儲空間填滿,并因資源耗盡而癱瘓。TCPSYN泛洪攻擊的工作過程

源IP地址是偽造的(spoofed),目的主機無法通過TCP三次握手建立連接。在此期間因為TCP緩存隊列已經填滿,而拒絕新的連接請求。目的主機一直嘗試直至超時(如75秒)。這就是該攻擊類型的基本機制。關于TCPSYN欺騙攻擊攻擊者目的是使目標系統上的TCP連接請求表溢出。從而不能對合法連接請求進行響應。假設目標主機系統上的TCP連接請求表項為256項。目標系統的每次超過時間為30S,運行超時次數為5次。如果一個連接請求超時未有應答,而且超時次數大于5,那么這個請求將會從TCP連接請求表中刪除。在沒有相關的應對措施和攻擊者已經占滿了目標系統的TCP連接請求表的情況下,為了能夠持續占滿目標系統的TCP連接請求表,攻擊者應以什么樣的速率發送TCP連接請求?掃描-Scan

一種信息收集型攻擊、其他攻擊的初步Ping掃射(PingSweep)-端口掃描(PortScanning)Ping掃射:運用ping這樣的程序探測目標地址,來發現那些目標在啟動并運行。防火墻通常阻止ICMP因而可以采用端口掃描:向大范圍的主機連接一系列的TCP端口或UDP端口,掃描軟件報告它成功的建立了連接的主機所開的端口。慢速掃描:由于一般掃描偵測器的實現是通過監視某個時間里一臺特定主機發起的連接的數目(例如每秒10次)來決定是否在被掃描,這樣黑客可以通過使用掃描速度慢一些的掃描軟件進行掃描。網絡漏洞掃描器-網絡入侵者收集信息的重要手段-由于系統管理員的疏忽或缺乏經驗,導致舊有的漏洞依然存在-許多人出于好奇或別有用心,不停的窺視網上資源安全評估工具-系統管理員保障系統安全的有效工具掃描器的主要功能-掃描目標主機識別其工作狀態(開/關機)-識別目標主機端口的狀態(監聽/關閉)-識別目標主機系統及服務程序的類型和版本-根據已知漏洞信息,分析系統脆弱點-生成掃描結果報告掃描內容-主機掃描確定在目標網絡上的主機是否可達。這是信息收集的初級階段,其效果直接影響到后續的掃描。-端口掃描當確定了目標主機可達后,就可以使用端口掃描技術,發現目標主機的開放端口,包括網絡協議和各種應用監聽的端口。-棧指紋OS識別根據各個OS在TCP/IP協議棧實現上的不同特點,采用黑盒測試方法,通過研究其對各種探測的響應形成識別指紋,進而識別目標主機運行的操作系統。網絡掃描的主要技術主機掃描技術端口掃描技術棧指紋OS識別技術主機掃描的目的是確定在目標網絡上的主機是否可達。這是信息收集的初級階段,其效果直接影響到后續的掃描。常用的傳統掃描手段有:ICMPEcho掃描ICMPSweep掃描BroadcastICMP掃描Non-EchoICMP掃描ICMPecho掃描實現原理:Ping的實現機制,在判斷在一個網絡上主機是否開機時非常有用。向目標主機發送ICMPEchoRequest(type8)數據包,等待回復的ICMPEchoReply包(type0)。如果能收到,則表明目標系統可達,否則表明目標系統已經不可達或發送的包被對方的設備過濾掉。ICMP協議

InternetControlMessageProtocolIP的一部分,在IP協議棧中必須實現直接封裝在IP數據報中,IP頭中協議類型為1通過類型和代碼的組合,ICMP報文報告在傳輸報文的過程中發生的各種情況ICMP協議

InternetControlMessageProtocol用途:網關或者目標機器利用ICMP與源通訊當出現問題時,提供反饋信息用于報告錯誤特點:其控制能力并不用于保證傳輸的可靠性它本身也不是可靠傳輸的并不用來反映ICMP報文的傳輸情況Echo(0)和EchoReply(8)-檢測目的站的可達性與狀態-主機或路由器向指定目的站發送ICMPECHO請求報文,請求報文包含一個可選的數據區;-收到ECHO請求報文的機器應立即回應一個ECHO應答報文,應答報文包含了請求報文中數據的拷貝-標識符:標識一個會話,例如,用進程ID-序號:可能這樣用:每個請求增1Ping程序Ping:PacketInternetGroper–用來判斷遠程設備可訪問性最常用的方法(網絡層)–原理:發送ICMPEcho消息,然后等待ICMPEchoReply消息優點:簡單,系統支持缺點:很容易被防火墻限制可以通過并行發送,同時探測多個目標主機,以提高探測效率(ICMPSweep掃描)。-注意:ping僅僅是判斷在網絡層的連通性;而防火墻可以過來ping操作那么我們可以判斷主機的存活與否?檢查主機存活的層次可以從不同層去探測網絡的存活。-ARP協議-TCP協議等作業:分析掃描器AngryIPScanner或IPSCAN工作原理。即用Sniffer抓包,看本機在運行該程序掃描時發出什么樣的報文。簡要描述。BroadcastICMP掃描實現原理:將ICMP請求包的目標地址設為廣播地址或網絡地址,則可以探測廣播域或整個網絡范圍內的主機。缺點:只適合于UNIX/Linux系統,Windows會忽略這種請求包;這種掃描方式容易引起廣播風暴Non-EchoICMP掃描一些其它ICMP類型包也可以用于對主機或網絡設備的探測,如:StampRequest(Type13)Reply(Type14)InformationRequest(Type15)Reply(Type16)AddressMaskRequest(Type17)Reply(Type18)主機掃描技術-高級技術防火墻和網絡過濾設備常常導致傳統探測手段變得無效。為了突破這種限制,必須采用一些非常規的手段,利用ICMP協議提供網絡間傳送錯誤信息的手段,往往可以更有效的達到目的:-異常的IP包頭-在IP頭中設置無效的字段值-錯誤的數據分片-通過超長包探測內部路由器-反向映射探測異常的IP包頭向目標主機發送包頭錯誤的IP包,目標主機或過濾設備會反饋ICMPParameterProblemError信息。常見的偽造錯誤字段為HeaderLengthField和IPOptionsField。根據RFC1122的規定,主機應該檢測IP包的VersionNumber、Checksum字段,路由器應該檢測IP包的Checksum字段。不同廠家的路由器和操作系統對這些錯誤的處理方式不同,返回的結果也各異。如果結合其它手段,可以初步判斷目標系統所在網絡過濾設備的ACL。反向映射探測該技術用于探測被過濾設備或防火墻保護的網絡和主機。通常這些系統無法從外部直接到達,但是我們可以采用反向映射技術,通過目標系統的路由設備進行有效的探測。當我們想探測某個未知網絡內部的結構時,可以構造可能的內部IP地址列表,并向這些地址發送數據包。當對方路由器接收到這些數據包時,會進行IP識別并路由,對不在其服務的范圍的IP包發送ICMPHostUnreachable或ICMPTimeExceeded錯誤報文,沒有接收到相應錯誤報文的IP地址會可被認為在該網絡中。當然,這種方法也會受到過濾設備的影響。端口掃描技術當確定了目標主機可達后,就可以使用端口掃描技術,發現目標主機的開放端口,包括網絡協議和各種應用監聽的端口。端口掃描技術主要包括以下三類:開放掃描會產生大量的審計數據,容易被對方發現,但其可靠性高;隱蔽掃描能有效的避免對方入侵檢測系統和防火墻的檢測,但這種掃描使用的數據包在通過網絡時容易被丟棄從而產生錯誤的探測信息;半開放掃描隱蔽性和可靠性介于前兩者之間。常用的端口掃描技術

-TCPconnect()掃描-最基本的TCP掃描-原理就是調用SOCKETAPI(套接字應用程序接口)中的connect()直接向遠程機器發送連接請求,并通過套接字是否能建立連接來辨別其端口的狀態。-如果端口處于偵聽狀態,那么connect()就能成功。否則,這個端口是不能用的,即沒有提供服務。-不需要任何權限。系統中的任何用戶都有權利使用這個調用。另一個好處就是速度。-這種方法的缺點是容易被發覺,并且被過濾掉。目標計算機的logs文件會顯示一連串的連接和連接是出錯的服務消息,并且能很快的使它關閉。開放性,不隱蔽常用的端口掃描技術

-TCPSYN掃描

-“半開放”掃描-這是因為掃描程序不必要打開一個完全的TCP連接。-掃描程序發送的是一個SYN數據包,好象準備打開一個實際的連接并等待反應一樣(參考TCP的三次握手建立一個TCP連接的過程)目標返回SYN|ACK,表示端口處于偵聽狀態。目標返回RST,表示端口沒有處于偵聽態。-如果收到一個SYN|ACK,則掃描程序必須再發送一個RST信號,來關閉這個連接過程。-這種掃描技術的優點在于一般不會在目標計算機上留下記錄。但這種方法的一個缺點是,必須要有root權限才能建立自己的SYN數據包。半開放,比較隱蔽隱蔽掃描技術

-TCPFIN掃描-有的時候有可能SYN掃描都不夠秘密。一些防火墻和包過濾器會對一些指定的端口進行監視,有的程序能檢測到這些掃描。-FIN數據包可能會沒有任何麻煩的通過。這種掃描方法的思想是關閉的端口會用適當的RST來回復FIN數據包。另一方面,打開的端口會忽略對FIN數據包的回復。(基于Unix的TCP/IP協議棧產生影響)-這種方法和系統的實現有一定的關系。有的系統(Windows)不管端口是否打開,都回復RST,這樣,這種掃描方法就不適用了。并且這種方法在區分Unix和Windows時,是十分有用的。

隱蔽隱蔽掃描技術

-TCP間接掃描實現原理:利用第三方的IP(欺騙主機)來隱藏真正掃描者的IP。由于掃描主機會對欺騙主機發送回應信息,所以必須監控欺騙主機的IP行為,從而獲得原始掃描的結果。掃描主機通過偽造第三方主機IP地址向目標主機發起SYN掃描,并通過觀察其IP序列號的增長規律獲取端口的狀態(NMAP的idle掃描)優點:隱蔽性好缺點:對第三方主機的要求較高隱蔽掃描技術-TCPXmasTree掃描FINURG

PUSH分組發送給目標端口;目標系統應該向所有關閉端口回送RST。-TCPNull掃描該技術關閉所有的標識;目標系統應該向所有關閉端口回送RST。RFC793端口掃描技術

-UDPICMP端口不能到達掃描這種方法與以上方法的區別是使用UDP協議。由于這個協議很簡單,所以掃描變得相對比較困難。這是由于打開的端口對掃描探測并不發送一個確認,關閉的端口也并不需要發送一個錯誤數據包。-But許多主機在你向一個未打開的UDP端口發送一個數據包時,會返回一個ICMP_PORT_UNREACH錯誤。這樣你就能發現哪個端口是關閉的。-UDP和ICMP錯誤都不保證能到達,因此這種掃描器必須還實現在一個包看上去是丟失的時候能重新傳輸。這種掃描方法是很慢的,因為RFC對ICMP錯誤消息的產生速率做了規定。同樣,這種掃描方法需要具有root權限。分段掃描實現原理:并不直接發送TCP探測數據包,是將數據包分成兩個較小的IP段。這樣就將一個TCP頭分成好幾個數據包,從而包過濾器就很難探測到。優點:隱蔽性好,可穿越防火墻缺點:可能被丟棄;某些程序在處理這些小數據包時會出現異常。棧指紋OS識別技術根據各個OS在TCP/IP協議棧實現上的不同特點,采用黑盒測試方法,通過研究其對各種探測的響應形成識別指紋,進而識別目標主機運行的操作系統。根據采集指紋信息的方式,又可以分為主動掃描和被動掃描兩種方式。Ping的結果-TTL值可以判斷0S類型LINUX64WIN2K/NT128WINDOWS系列32UNIX系列255修改默認TTL值被動掃描通過Sniff收集數據包,再對數據包的不同特征(TCPWindow-size、IPTTL、IPTOS、DF位等參數)進行分析,來識別操作系統。被動掃描基本不具備攻擊特征,具有很好的隱蔽性,但其實現嚴格依賴掃描主機所處的網絡拓撲結構;和主動探測相比較,具有速度慢、可靠性不高等缺點。主動掃描采用向目標系統發送構造的特殊包并監控其應答的方式來識別操作系統類型。主動掃描具有速度快、可靠性高等優點,但同樣嚴重依賴于目標系統網絡拓撲結構和過濾規則。FIN探測:發送一個FIN包給一個打開的端口,一般的行為是不響應,但某些實現例如MSWindows,BSDI,CISCO,HP/UX,MVS,和IRIX發回一個RESET。BOGUS標記探測(QUESO):設置一個未定義的TCP"標記"(64或128)在SYN包的TCP頭里。Linux機器到2.0.35之前在回應中保持這個標記。TCPISN取樣:找出當響應一個連接請求時由TCP實現所選擇的初始化序列數式樣。這可分為許多組例如傳統的64K(許多老UNIX機器),隨機增量(新版本的Solaris,IRIX,FreeBSD,DigitalUNIX,Cray,等),真“隨機”(Linux2.0.*,OpenVMS,新的AIX,等),Windows機器(和一些其他的)用一個“時間相關”模型,每過一段時間ISN就被加上一個小的固定數不分段位:許多操作系統開始在送出的一些包中設置IP的"Don'tFragment"位。TCP初始化窗口:檢查返回包的窗口大小。如queso和nmap保持對窗口的精確跟蹤因為它對于特定OS基本是常數。ACK值:不同實現中一些情況下ACK域的值是不同的。例如,如果你送了一個FIN|PSH|URG到一個關閉的TCP端口。大多數實現會設置ACK為你的初始序列數,而Windows會送給你序列數加1。ICMP錯誤信息終結:一些操作系統跟從限制各種錯誤信息的發送率。例如,Linux內核限制目的不可達消息的生成每4秒鐘80個。測試的一種辦法是發一串包到一些隨機的高UDP端口并計數收到的不可達消息。ICMP消息引用:ICMP錯誤消息可以引用一部分引起錯誤的源消息。對一個端口不可達消息,幾乎所有實現只送回IP請求頭外加8個字節。然而,Solaris送回的稍多,而Linux更多。SYN洪水限度:如果收到過多的偽造SYN數據包,一些操作系統會停止新的連接嘗試。許多操作系統只能處理8個包。參考:NmapRemoteOSDetection/nmap/nmap-fingerprinting-article.html

NMAP-最好的端口探測工具下載頁面:http:///download.html

幫助文檔:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論