① rst是什麼意思
rst是TCP首部中的6個標志比特之一,表示重置連接、復位連接。
TCP(Transmission Control Protocol傳輸控制協議)是一種面向連接的、可靠的、基於位元組流的傳輸層通信協議,由IETF的RFC 793定義。
RST表示復位,用來異常的關閉連接,在TCP的設計中它是不可或缺的。發送RST包關閉連接時,不必等緩沖區的包都發出去(不像上面的FIN包),直接就丟棄緩存區的包發送RST包。而接收端收到RST包後,也不必發送ACK包來確認。
TCP處理程序會在自己認為的異常時刻發送RST包。例如,A向B發起連接,但B之上並未監聽相應的埠,這時B操作系統上的TCP處理程序會發RST包。
又比如,AB正常建立連接了,正在通訊時,A向B發送了FIN包要求關連接,B發送ACK後,網斷了,A通過若干原因放棄了這個連接(例如進程重啟)。
網通了後,B又開始發數據包,A收到後表示壓力很大,不知道這野連接哪來的,就發了個RST包強制把連接關了,B收到後會出現connect reset by peer錯誤。
RST的攻擊原理:
A和伺服器B之間建立了TCP連接,此時C偽造了一個TCP包發給B,使B異常的斷開了與A之間的TCP連接,就是RST攻擊了。實際上從上面RST標志位的功能已經可以看出這種攻擊如何達到效果了。
假定C偽裝成A發過去的包,這個包如果是RST包的話,毫無疑問,B將會丟棄與A的緩沖區上所有數據,強制關掉連接。
如果發過去的包是SYN包,那麼,B會表示A已經發瘋了(與OS的實現有關),正常連接時又來建新連接,B主動向A發個RST包,並在自己這端強制關掉連接。
② 分析TCP/IP網路層,傳輸層和應用層的安全缺陷。
1. 攻擊者監聽B方發出的SYN/ACK報文。
2. 攻擊者向B方發送RST包,接著發送SYN包,假冒A方發起新的連接。
3. B方響應新連接,並發送連接響應報文SYN/ACK。
4. 攻擊者再假冒A方對B方發送ACK包。
這樣攻擊者便達到了破壞連接的作用,若攻擊者再趁機插入有害數據包,則後果更嚴重。
TCP協議把通過連接而傳輸的數據看成是位元組流,用一個32位整數對傳送的位元組編號。初始序列號(ISN)在TCP握手時產生,產生機制與協議實現有關。攻擊者只要向目標主機發送一個連接請求,即可獲得上次連接的ISN,再通過多次測量來回傳輸路徑,得到進攻主機到目標主機之間數據包傳送的來回時間RTT。已知上次連接的ISN和RTT,很容易就能預測下一次連接的ISN。若攻擊者假冒信任主機向目標主機發出TCP連接,並預測到目標主機的TCP序列號,攻擊者就能偽造有害數據包,使之檢驗IP頭源地址的特點,自己填入偽造的IP地址來進行攻擊,使自己不被發現。
③ 分別列出用於應用層、傳輸層、網路層的一種安全協議。
傳輸層協議主要是採用TCP/UDP/IP這些協議了,當然還有其他的協議不常用罷了,應用層的協議也很多,他幾乎包含了TCP/IP七層的所有協議,而IEC 61850隻是一種標准,一種規范方式了。. 攻擊者監聽B方發出的SYN/ACK報文。 2. 攻擊者向B方發送RST包,接著發送SYN包,假冒A方發起新的連接。 3. B方響應新連接,並發送連接響應報文SYN/ACK。 4. 攻擊者再假冒A方對B方發送ACK包。
④ TCP/IP協議的安全缺陷主要表現在那幾方面
TCP/IP協議的安全隱患
造成操作系統漏洞的一個重要原因,就是協議本身的缺陷給系統帶來的攻擊點。網路協議是計算機之間為了互聯共同遵守的規則。目前的互聯網路所採用的主流協議TCP/IP,由於在其設計初期人們過分強調其開發性和便利性,沒有仔細考慮其安全性,因此很多的網路協議都存在嚴重的安全漏洞,給Internet留下了許多安全隱患。另外,有些網路協議缺陷造成的安全漏洞還會被黑客直接用來攻擊受害者系統。本文就TCP/IP協議自身所存在的安全問題和協議守護進程進行了詳細討論,指出針對這些安全隱患的攻擊。
TCP協議的安全問題
TCP使用三次握手機制來建立一條連接,握手的第一個報文為SYN包;第二個報文為SYN/ACK包,表明它應答第一個SYN包同時繼續握手的過程;第三個報文僅僅是一個應答,表示為ACK包。若A放為連接方,B為響應方,其間可能的威脅有:
1. 攻擊者監聽B方發出的SYN/ACK報文。
2. 攻擊者向B方發送RST包,接著發送SYN包,假冒A方發起新的連接。
3. B方響應新連接,並發送連接響應報文SYN/ACK。
4. 攻擊者再假冒A方對B方發送ACK包。
這樣攻擊者便達到了破壞連接的作用,若攻擊者再趁機插入有害數據包,則後果更嚴重。
TCP協議把通過連接而傳輸的數據看成是位元組流,用一個32位整數對傳送的位元組編號。初始序列號(ISN)在TCP握手時產生,產生機制與協議實現有關。攻擊者只要向目標主機發送一個連接請求,即可獲得上次連接的ISN,再通過多次測量來回傳輸路徑,得到進攻主機到目標主機之間數據包傳送的來回時間RTT。已知上次連接的ISN和RTT,很容易就能預測下一次連接的ISN。若攻擊者假冒信任主機向目標主機發出TCP連接,並預測到目標主機的TCP序列號,攻擊者就能偽造有害數據包,使之被目標主機接受。
IP協議的安全問題
IP協議在互連網路之間提供無連接的數據包傳輸。IP協議根據IP頭中的目的地址項來發送IP數據包。也就是說,IP路由IP包時,對IP頭中提供的源地址不作任何檢查,並且認為IP頭中的源地址即為發送該包的機器的IP地址。這樣,許多依靠IP源地址做確認的服務將產生問題並且會被非法入侵。其中最重要的就是利用IP欺騙引起的各種攻擊。
以防火牆為例,一些網路的防火牆只允許網路信任的IP數據包通過。但是由於IP地址不檢測IP數據包中的IP源地址是否為放送該包的源主機的真實地址,攻擊者可以採用IP源地址欺騙的方法來繞過這種防火牆。另外有一些以IP地址作為安全許可權分配依據的網路應用,攻擊者很容易使用IP源地址欺騙的方法獲得特權,從而給被攻擊者造成嚴重的損失。事實上,每一個攻擊者都可以利用IP不檢驗IP頭源地址的特點,自己填入偽造的IP地址來進行攻擊,使自己不被發現。
六 TCP/IP協議安全問題的防範
TCP協議安全問題的防範
對於SYN Flood攻擊,目前還沒有完全有效的方法,但可以從以下幾個方面加以防範:
1. 對系統設定相應的內核參數,使得系統強制對超時的SYN請求連接數據包的復位,同時通過縮短超時常數和加長等候隊列使得系統能迅速處理無效的SYN請求數據包。
2. 建議在該網段的路由器上做些配置的調整,這些調整包括限制SYN半開數據包的流量和個數。
3. 建議在路由器的前端多必要的TCP攔截,使得只有完成TCP三次握手過程的數據包才可以進入該網段,這樣可以有效的保護本網段內的伺服器不受此類攻擊。
IP協議安全問題的防範
1. 拋棄基於地址的信任策略。這是最簡單的方法。
2. 進行包過濾。如果網路是通過路由器接入Internet的,那麼可以利用路由器來進行包過濾。確認只有內部LAN可以使用信任關系,而內部LAN上的主機對於LAN以外的主機要慎重處理。路由器可以過濾掉所有來自於外部而希望與內部建立連接的請求。
3. 使用加密技術。阻止IP欺騙的一種簡單的方法是在通信時要求加密傳輸和驗證。當有多種手段並存時,加密方法可能最為適用。
七 TCP/IP各層的安全性和提高各層安全性的方法
1. 網路層的安全性
在過去的十年裡,已經提出了一些方案對網路層的安全協議進行標准化。例如,安全協議3號(SP3)就是美國國家安全局以及標准技術協會作為安全數據網路系統(SDNS)的一部分而制定的。網路層安全協議(NLSP)是由國際標准化組織為無連接網路協議(CLNP)制定的安全協議標准。集成化NLSP(I-NLSP)是由美國國家科技研究所提出的包括IP和CLNP在內的統一安全機制。SWIPE是另一個網路層的安全協議,由Ioannidis和Blaze提出並實現原型。所有這些提案的共同點多於不同點。事實上,他們用的都是IP封裝技術。其本質是,純文本的包被加密,封裝在外層的IP報頭里,用來對加密的包進行Internet上的路由選擇。到達另一端時,外層的IP報頭被拆開,報文被解密,然後送到收報地點。
網路安全性的主要優點是它的透明性,也就是說,安全服務的提供不需要應用程序、其他通信層次和網路部件做任何改動。它最主要的缺點是:網路層一般屬於不間進程和相應條例的包不做區別。對所有去往同一地址的包,它將按照同樣的加密密鑰和訪問控制策略來處理。這可能導致提供不了所需要的功能,也會導致性能下降。針對面向主機的密鑰分配的這些問題,RFC 1825允許(甚至可以說是推薦)使用面向用戶的密鑰分配,其中,不同的連接會得到不同的加密密鑰。但是,面向用戶的密鑰分配需要對相應的操作系統內核作比較大的改動。
簡而言之,網路層是非常適合提供基於主機對主機的安全服務的。相應的安全協議可以用來在Internet上建立安全的IP通道和虛擬私有網。例如,利用它對IP包的加密和解密功能,可以簡捷地強化防火牆系統的防衛能力。RSA數據安全公司已經發起了一個倡議,來推進多家防火牆和TCP/IP軟體廠商聯合開發虛擬私有網,該倡議被稱為S-WAN(安全廣域網)倡議,其目標是制定和推薦網路層的安全協議標准。
2. 傳輸層的安全性
在網路應用編程中,通常使用廣義的進程間通信(IPC)機制來與不同層次的安全協議打交道。在Internet中提供安全服務的首先一個想法便是強化它的IPC界面,如BSD、Sockets等,具體做法包括雙端實體的認證,數據加密密鑰的交換等。Netscape通信公司遵循了這個思路,制定了建立在可靠的傳輸服務(如TCP/IP所提供)基礎上的安全接層協議(SSL)。
網路安全機制的主要優點是它的透明性,即安全服務的提供不要求應用層做任何改變。這對傳輸層來是說是做不到的。原則上,任何TCP/IP應用,只要應用傳輸層安全協議,比如說SSL或IPC,就必定要進行若干修改以增加相應的功能,並使用不同的IPC界面。於是,傳輸層安全機制的主要缺點就是要對傳輸層IPC界面和應用程序兩端都進行修改。可是,比起Internet層和應用層的安全機制來,這里修改還是相當小的。另一個缺點是,基於UDP的通信很難在傳輸層建立起安全機制來。同網路層安全機制相比,傳輸層安全機制的主要優點是它提供基於進程對進程的(而不是主機對主機的)安全服務。這一成就如果再加上應用級的安全服務,就可以再向前跨越一大步了。
3. 應用層的安全性
網路層的安全協議允許為主機(進程)之間的數據通道增加安全屬性,這以為著真正的數據通道還是建立在主機(或進程)之間,但卻不可能區分在同一通道上傳輸的一個具體文件的安全性要求。比如說,如果一個主機與另一個主機之間建立起一條安全的IP通道,那麼所有在這條通道上傳輸的IP包就到要自動的被加密。同樣,如果一個進程和另一個進程之間通過傳輸層安全協議建立起了一條安全的數據通道,那麼兩個進程間傳輸的所有消息就都要自動的被加密。
一般來說,在應用層提供安全服務有幾種可能的做法,一個是對每個應用(及應用協議)分別進行修改。一些重要的TCP/IP應用已經這樣做了。在RFC1421至1424中,IETF規定了私用強化郵件(PEM)來為基於SMTP的電子郵件系統提供安全服務。Internet業界採納PEM的步子太慢的原因是PEM依賴於一個既存的、完全可操作的PKI(公鑰基礎結構)。建立一個符合PEM規范的PKI需要多方在一個共同點上達成信任。作為一個中間步驟,Phil Zimmermann開發了一個軟體包,叫做PGP(Pretty Good Privacy)。PGP符合PEM的絕大多數規范,但不必要求PKI的存在。相反,它採用了分布式的信任模型,即由每個用戶自己決定該信任哪些其他用戶。因此,PGP不是去推廣一個全局的PKI,而是讓用戶自己建立自己的信任之網。
⑤ 埠號的作用是什麼啊不是埠
在Internet上,各主機間通過TCP/TP協議發送和接收數據報,各個數據報根據其目的主機的ip地址來進行互聯網路中的路由選擇。可見,把數據報順利的傳送到目的主機是沒有問題的。問題出在哪裡呢?我們知道大多數操作系統都支持多程序(進程)同時運行,那麼目的主機應該把接收到的數據報傳送給眾多同時運行的進程中的哪一個呢?顯然這個問題有待解決,埠機制便由此被引入進來。
本地操作系統會給那些有需求的進程分配協議埠(protocal port,即我們常說的埠),每個協議埠由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據報後,將根據報文首部的目的埠號,把數據發送到相應埠,而與此埠相對應的那個進程將會領取數據並等待下一組數據的到來。說到這里,埠的概念似乎仍然抽象,那麼繼續跟我來,別走開。
埠其實就是隊,操作系統為各個進程分配了不同的隊,數據報按照目的埠被推入相應的隊中,等待被進程取用,在極特殊的情況下,這個隊也是有可能溢出的,不過操作系統允許各進程指定和調整自己的隊的大小。
不光接受數據報的進程需要開啟它自己的埠,發送數據報的進程也需要開啟埠,這樣,數據報中將會標識有源埠,以便接受方能順利的回傳數據報到這個埠。
埠的分類:
在Internet上,按照協議類型分類,埠被分為TCP埠和UDP埠兩類,雖然他們都用正整數標識,但這並不會引起歧義,比如TCP的80埠和UDP的80埠,因為數據報在標明埠的同時,還將標明埠的類型。
從埠的分配來看,埠被分為固定埠和動態埠兩大類(一些教程還將極少被用到的高埠劃分為第三類:私有埠):
固定埠(0-1023):
使用集中式管理機制,即服從一個管理機構對埠的指派,這個機構負責發布這些指派。由於這些埠緊綁於一些服務,所以我們會經常掃描這些埠來判斷對方是否開啟了這些服務,如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟知的埠;
動態埠(1024-49151):
這些埠並不被固定的捆綁於某一服務,操作系統將這些埠動態的分配給各個進程,同一進程兩次分配有可能分配到不同的埠。不過一些應用程序並不願意使用操作系統分配的動態埠,他們有其自己的『商標性』埠,如oicq客戶端的4000埠,木馬冰河的7626埠等都是固定而出名的。
埠在入侵中的作用:
有人曾經把伺服器比作房子,而把埠比作通向不同房間(服務)的門,如果不考慮細節的話,這是一個不錯的比喻。入侵者要佔領這間房子,勢必要破門而入(物理入侵另說),那麼對於入侵者來說,了解房子開了幾扇門,都是什麼樣的門,門後面有什麼東西就顯得至關重要。
入侵者通常會用掃描器對目標主機的埠進行掃描,以確定哪些埠是開放的,從開放的埠,入侵者可以知道目標主機大致提供了哪些服務,進而猜測可能存在的漏洞,因此對埠的掃描可以幫助我們更好的了解目標主機,而對於管理員,掃描本機的開放埠也是做好安全防範的第一步。
常見埠的介紹
由於本人知識有限,在這里只介紹一些淺顯的內容。
1)21 ftp
此埠開放表示伺服器提供了FTP服務,入侵者通常會掃描此埠並判斷是否允許匿名登陸,如果能找到可寫目錄,還可以上傳一些黑客程序做近一步入侵。要想關閉此埠,需要關閉FTP服務。
2)23 Telnet
此埠開放表示伺服器提供了遠程登陸服務,如果你有管理員的用戶名和密碼,可以通過這個服務來完全控制主機(不過要先搞定NTLM身份認證),獲得一個命令行下的shell。許多入侵者喜歡開啟這個服務作為後門。要想關閉此埠,需要關閉Telnet服務。
3)25 smtp
此埠開放表示伺服器提供了SMTP服務,一些不支持身份驗證的伺服器允許入侵者發送郵件到任何地點,SMTP伺服器(尤其是sendmail)也是進入系統的最常用方法之一。要想關閉此埠,需要關閉SMTP服務。
4)69 TFTP(UDP)
此埠開放表示伺服器提供了TFTP服務,它允許從伺服器下載文件,也可以寫入文件,如果管理員錯誤配置,入侵者甚至可以下載密碼文件。許多入侵者通過在自己機器運行此服務來傳文件到目標機器,從而實現文件的傳輸。要想關閉此埠,需要關閉TFTP服務。
5)79 finger
用於獲得用戶信息,查詢操作系統,探測已知的緩沖區溢出錯誤, 回應從自己機器到其它機器finger掃描。
6)80 http
此埠開放表示伺服器提供了HTTP服務,可以讓訪問者瀏覽其網頁等,大部分針對IIS伺服器的溢出攻擊都是通過這個埠的,可以說是入侵者最常攻擊的一個埠了。要想關閉此埠,需要關閉HTTP服務。
7)110 POP3
用於客戶端訪問伺服器端的郵件服務。POP3服務有許多公認的弱點。關於用戶名和密碼交換緩沖區溢出的弱點至少有20個,這意味著入侵者可以在真正登陸前進入系統,成功登陸後還有其它緩沖區溢出錯誤。
8)TCP的139和445
許多人都很關心這兩個埠,那我就來詳細的介紹一下吧:
首先我們來了解一些基礎知識:
1 SMB:(Server Message Block) Windows協議族,用於文件列印共享的服務;
2 NBT:(NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)埠實現基於TCP/IP協議的NETBIOS網路互聯。
3 在WindowsNT中SMB基於NBT實現,即使用139(TCP)埠;而在Windows2000中,SMB除了基於NBT實現,還可以直接通過445埠實現。
有了這些基礎知識,我們就可以進一步來討論訪問網路共享對埠的選擇了:
對於win2000客戶端(發起端)來說:
1 如果在允許NBT的情況下連接伺服器時,客戶端會同時嘗試訪問139和445埠,如果445埠有響應,那麼就發送RST包給139埠斷開連接,用455埠進行會話,當445埠無響應時,才使用139埠,如果兩個埠都沒有響應,則會話失敗;
2 如果在禁止NBT的情況下連接伺服器時,那麼客戶端只會嘗試訪問445埠,如果445埠無響應,那麼會話失敗。
對於win2000伺服器端來說:
1 如果允許NBT, 那麼UDP埠137, 138, TCP 埠 139, 445將開放(LISTENING);
2 如果禁止NBT,那麼只有445埠開放。
我們建立的ipc$會話對埠的選擇同樣遵守以上原則。顯而易見,如果遠程伺服器沒有監聽139或445埠,ipc$會話是無法建立的。那麼如何關閉2000上這兩個埠呢?
139埠可以通過禁止NBT來屏蔽
本地連接-TCP/IT屬性-高級-WINS-選『禁用TCP/IT上的NETBIOS』一項
445埠可以通過修改注冊表來屏蔽
添加一個鍵值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
value: 0
修改完後重啟機器
9)3389 Terminal Services
此埠開放表示伺服器提供了終端服務,如果你獲得了管理員的用戶名和密碼,那麼你可以通過這個服務在圖形界面下完全控制主機,這的確是一件令人嚮往的事情,但如果你得不到密碼也找不到輸入法漏洞,你會感到束手無策。要想關閉此埠,需要關閉終端服務。
埠的相關工具
1 netstat -an
的確,這並不是一個工具,但他是查看自己所開放埠的最方便方法,在cmd中輸入這個命令就可以了。如下:
C:\>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1028 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1027 *:*
UDP 127.0.0.1:1029 *:*
UDP 127.0.0.1:1030 *:*
這是我沒上網的時候機器所開的埠,兩個135和445是固定埠,其餘幾個都是動態埠。
2 fport.exe和mport.exe
這也是兩個命令行下查看本地機器開放埠的小程序,其實與netstat -an這個命令大同小異,只不過它能夠顯示打開埠的進程,信息更多一些而已,如果你懷疑自己的奇怪埠可能是木馬,那就用他們查查吧。
3 activeport.exe(也稱aports.exe)
還是用來查看本地機器開放埠的東東,除了具有上面兩個程序的全部功能外,他還有兩個更吸引人之處:圖形界面以及可以關閉埠。這對菜鳥來說是個絕對好用的東西,推薦使用喔。
4 superscan3.0
它的大名你不會沒聽說過吧,純埠掃描類軟體中的NO.1,速度快而且可以指定掃描的埠,不多說了,絕對必備工具。
保護好自己的埠:
剛接觸網路的朋友一般都對自己的埠很敏感,總怕自己的電腦開放了過多埠,更怕其中就有後門程序的埠,但由於對埠不是很熟悉,所以也沒有解決辦法,上起網來提心吊膽。其實保護自己的埠並不是那麼難,只要做好下面幾點就行了:
1 查看:經常用命令或軟體查看本地所開放的埠,看是否有可疑埠;
2 判斷:如果開放埠中有你不熟悉的,應該馬上查找埠大全或木馬常見埠等資料(網上多的很),看看裡面對你那個可疑埠的作用描述,或者通過軟體查看開啟此埠的進程來進行判斷;
3 關閉:如果真是木馬埠或者資料中沒有這個埠的描述,那麼應該關閉此埠,你可以用防火牆來屏蔽此埠,也可以用本地連接-TCP/IP-高級-選項-TCP/IP篩選,啟用篩選機制來篩選埠;
⑥ 網路存在不安全因素
1、是否使用了代理,使用代理每次登陸地點顯示不一樣,qq就會顯示驗證,這是騰訊的保護措施。
2、你的電腦是否中毒,區域網中有誰的電腦是否中毒,一般來說很少有這種問題的,除非你自己改變了登錄地點,比如前一天在湖南,後一天人在廣州,登錄QQ,它就會提示網路有不安全因素,然後就是驗證,這種驗證要持續好幾天,每次登陸就要驗證,很煩人,不過幾天後就會恢復正常。
3、網速慢的原因,第一從自身查起,確認自己沒有中毒,沒有開p2p軟體下載東西,再看看區域網中有誰在下載,也可以看看你自己連接網路的帶寬有多少。
⑦ rst ack 是什麼包
rstack是數據包。用於強制關閉TCP鏈接。TCP連接關閉的正常方法是四次握手。但四次握手不是關閉TCP連接的唯一方法有時,如果主機需要盡快關閉連接或連接超時,埠或主機不可達,RSTReset包將被發送注意,由於RST包不是TCP連接中的必須部分,可以只發送RST包即不帶ACK標記,但在正常的TCP連接中RST包可以帶ACK確認標記。
數據包說明
數據包是一個計算機詞彙,是TCP/IP協議通信傳輸中的數據單位。有人說,區域網中傳輸的不是幀Frame,但是TCPIP協議是工作在OSI模型第三層網路層、第四層傳輸層上的,而幀是工作在第二層數據鏈路層。上一層的內容由下一層的內容來傳輸,所以在區域網中,包是包含在幀里的。
任意一台主機都能夠發送具有任意源地址的數據包。當數據包進行長距離的傳輸時需要經過許多中繼站。每個中繼站就是一台主機或路由器,他們基於路由信息,將數據包向下一個中繼站傳遞。
在數據傳輸的路途上,如果路由器遇到大數據流量的情況下,它可能在沒有任何提示的情況下丟掉一些數據包。
較高層的協議如TCP協議用於處理這些問題,以便為應用程序提供一條可靠的鏈路。如果對於下一個中繼站來說數據包太大,該數據包就會被分片。也就是說,大的數據包會被分成兩個或多個小數據包,每個小數據包都有自己的IP頭,但其凈荷僅僅是大數據包凈荷的一部分。
⑧ 遇到5大安全問題應怎麼 解決
在本文中,筆者重點解析了TCP/IP協議棧面臨的五大網路安全問題,也介紹到企業網路安全管理人員在面臨問題時所能採取的應對措施。 1. IP欺騙 IP Spoof即IP 電子欺騙,可以理解為一台主機設備冒充另外一台主機的IP地址與其他設備通信,從而達到某種目的技術。早在1985年,貝爾實驗室的一名工程師Robbert Morris在他的一篇文章“A weakness in the 4.2bsd UNIX TCP/IP software”中提出了IP Spoof的概念,有興趣的讀者可參見原文:/~emv/tubed/archives/Morris_weakness_in_ TCPIP.txt 。 但要注意:單純憑借IP Spoof技術不可能很好地完成一次完整的攻擊,因為現有IP Spoof技術是屬於一種“盲人”式的入侵手段。 一般來說,IP欺騙攻擊有6個步驟: (1)首先使被信任主機的網路暫時癱瘓,以免對攻擊造成干擾; (2)然後連接到目標機的某個埠來猜測ISN基值和增加規律; (3)接下來把源地址偽裝成被信任主機,發送帶有SYN標志的數據段請求連接; (4)然後等待目標機發送SYN+ACK包給已經癱瘓的主機; (5)最後再次偽裝成被信任主機向目標機發送的ACK,此時發送的數據段帶有預測的目標機的ISN+1; (6)連接建立,發送命令請求。 下面是它的兩個關鍵步驟: (1)使被信任主機失去工作能力 為了偽裝成被信任主機而不露餡,需要使其完全失去工作能力。由於攻擊者將要代替真正的被信任主機,他必須確保真正的被信任主機不能收到任何有效的網路數據,否則將會被揭穿。有許多方法可以達到這個目的(如SYN洪水攻擊、Land等攻擊)。 (2)序列號取樣和猜測 對目標主機進行攻擊,必須知道目標主機的數據包序列號。通常如何進行預測呢?往往先與被攻擊主機的一個埠(如25埠)建立起正常連接。通常,這個過程被重復N次,並將目標主機最後所發送的ISN存儲起來。然後還需要估計他的主機與被信任主機之間的往返時間,這個時間是通過多次統計平均計算出來的。如果往返連接增加64,000,則現就可以估計出ISN的大小是128,000乘以往返時間的一半,如果此時目標主機剛剛建立過一個連接,那麼再加上64,00。一旦估計出ISN的大小,就開始著手進行攻擊,當然你的虛假TCP數據包進入目標主機時,如果剛才估計的序列號是准確的,進入的數據將被放置在目標機的緩沖區中。 但是在實際攻擊過程中往往沒這么幸運,如果估計的序列號小於正確值,那麼將被放棄。而如果估計的序列號大於正確值,並且在緩沖區的大小之內,那麼該數據被認為是一個未來的數據,TCP模塊將等待其他缺少的數據。如果估計序列號大於期待的數字且不在緩沖區之內,TCP將會放棄它並返回一個期望獲得的數據序列號。偽裝成被信任的主機IP後,此時該主機仍然處在癱瘓狀態,然後向目標主機的被攻擊埠(如25)發送連接請求。目標主機立刻對連接請求作出反應,發更新SYN+ACK確認包給被信任主機,因為此時被信任主機仍然處於癱瘓狀態,它當然無法收到這個包,緊接著攻擊者向目標主機發送ACK數據包,該數據包使用前面估計的序列號加1。如果攻擊者估計正確的話,目標主機將會接收該ACK。連接就正式建立起了,可以開始數據傳輸了。 對於來自網路外部的欺騙,防範的方法很簡單,只需要在區域網的對外路由器上加一個限制設置就可以實現了,在路由器的設置裡面禁止運行聲稱來自於網路內部的信息包。 對於來自區域網外部的IP欺騙攻擊的防範則可以使用防火牆進行防範,但是對於來自內部的攻擊通過設置防火牆則起不到什麼作用,這個時候應該注意內部網的路由器是否支持內部介面。如果路由器支持內部網路子網的兩個介面,則必須提高警惕,因為它很容易受到IP欺騙。 通過對信息包的監控來檢查IP欺騙攻擊將是非常有效的方法,使用netlog等信息包檢查工具對信息的源地址和目的地址進行驗證,如果發現了信息包來自兩個以上的不同地址,則說明系統有可能受到了IP欺騙攻擊,防火牆外面正有黑客試圖入侵系統。 2. SYN Flooding SYN Flooding是最為有效和流行的一種DoS攻擊形式。它利用TCP三次握手協議的缺陷,向目標主機發送大量的偽造源地址的SYN連接請求,消耗目標主機的資源,從而不能夠為正常用戶提供服務。 在TCP會話初期,有所謂的“三次握手”過程:對每次發送的數據量是怎樣跟蹤進行協商使數據段的發送和接收同步,根據所接收到的數據量而確定的數據確認數及數據發送、接收完畢後何時撤消聯系,並建立虛連接。為了提供可靠的傳送,TCP在發送新的數據之前,以特定的順序將數據包進行編號,並需要等待這些包傳送給目標機之後的確認消息。TCP總是用來發送大批量的數據。當應用程序在收到數據後要做出確認時也要用到TCP。由於TCP要時刻跟蹤,這需要額外開銷,使得TCP的格式有些顯得復雜。 TCP三次握手的步驟如下: (1)設主機A要與主機B通信,要建立一個TCP連接。首先,主機B(在這兒是伺服器),必須先運行一個伺服器進程,發出一個“被動找開”命令給TCP。之後伺服器進程便不斷探測埠,看是否有客戶進程有連接請求。並處於“聽”狀態。客戶端主機A的應用進程,向其TCP發“主動打開”命令,指明要與某個IP地址的某個埠建立TCP連接。第一次主機A的TCP便向主機B的TCP發出連接請求報文。TCP報文中指明了要連接的IP地址(隱含TP數據報指明)和埠號,設置能夠接受的TCP數據段最大值,以及一些用戶數據,SYN=1,ACK=0。這稱為“第一次握手”。 (2)主機A的連接請求到達主機B後,主機B的TCP查看是否有進程在偵聽該埠,如沒有,就發送一個RST=1的應答,拒絕連接,否則將到達TCP數據段留給“偵聽”進程。“偵聽”進程將發回一個應答TCP報文段,其中SYN=1,ACK=1,確認序號ACKSEQ=X+1,同時自己選一個發送序號SEQ=Y。這是“第二次握手”。 (3)主機A收到主機B的確認報文後,再向主機B發出一個確認TCP報文段,其中SYN=1,ACK=1,SEQ=X+1,ACKSEQ=Y+1,這就完成了“第三次握手”。 在SYN Flooding攻擊中,黑客機器向受害主機發送大量偽造源地址的TCP SYN報文,受害主機分配必要的資源,然後向源地址返回SYN+ACK包,並等待源端返回ACK包,如圖1所示。由於源地址是偽造的,所以源端永遠都不會返回ACK報文,受害主機繼續發送SYN+ACK包,並將半連接放入埠的積壓隊列中,雖然一般的主機都有超時機制和默認的重傳次數,但是由於埠的半連接隊列的長度是有限的,如果不斷地向受害主機發送大量的TCP SYN報文,半連接隊列就會很快填滿,伺服器拒絕新的連接,將導致該埠無法響應其他機器進行的連接請求,最終使受害主機的資源耗盡。 圖1 SYN Flooding攻擊示意圖 目前在防禦SYN Flooding攻擊方面有2種比較有效的技術。 (1)SYN-cookie技術 一般情況下,當伺服器收到一個TCP SYN報文後,馬上為該連接請求分配緩沖區,然後返回一個SYN+ACK報文,這時形成一個半連接。SYN Flooding正是利用了這一點,發送大量的偽造源地址的SYN連接請求,而不完成連接。這樣就大量地消耗伺服器的資源。 SYN-cookie技術針對標准TCP連接建立過程資源分配上的這一缺陷,改變了資源分配的策略。當伺服器收到一個SYN報文後,不立即分配緩沖區,而是利用連接的信息生成一個cookie,並將這個cookie作為將要返回的SYN+ACK報文的初始序列號。當客戶端返回一個ACK報文時,根據包頭信息計算cookie,與返回的確認序列號(初始的序列號+1)的前24位進行對比,如果相同,則是一個正常連接,然後,分配資源,建立連接。 該技術的巧妙之點在於避免了在連接信息未完全到達前進行資源分配,使SYN Flooding攻擊的資源消耗失效。實現的關鍵之處在於cookie的計算。cookie的計算應該做到包含本次連接的狀態信息,使攻擊者不能偽造cookie。cookie的計算過程如下。 ① 伺服器收到一個SYN包後,計算一個消息摘要mac: mac = MAC(A,k) MAC是密碼學中的一個消息認證碼函數,也就是滿足某種安全性質的帶密鑰的hash函數,它能夠提供cookie計算中需要的安全性。A為客戶和伺服器雙方的IP地址和埠號以及參數t的串聯組合:A = SOURCE_IP SOURCE_PORT DST_IP DST_PORT t;K為伺服器獨有的密鑰;時間參數t為32比特長的時間計數器,每64秒加1; ② 生成cookie: cookie = mac(0:24):表示取mac值的第0到24比特位; ③ 設置將要返回的SYN+ACK報文的初始序列號,設置過程如下: · 高24位用cookie代替; · 接下來的3比特位用客戶要求的最大報文長度MMS代替; · 最後5比特位為t mod 32。 客戶端收到來自伺服器SYN+ACK報文後,返回一個ACK報文,這個ACK報文將帶一個cookie(確認號為伺服器發送過來的SYN ACK報文的初始序列號加1,所以不影響高24位),在伺服器端重新計算cookie,與確認號的前24位比較,如果相同,則說明未被修改,連接合法,然後,伺服器完成連接的建立過程。 SYN-cookie技術由於在連接建立過程中不需要在伺服器端保存任何信息,實現了無狀態的三次握手,從而有效地防禦了SYN Flooding攻擊。但是該方法也存在一些弱點。由於cookie的計算只涉及了包頭的部分信息,在連接建立過程中不在伺服器端保存任何信息,所以失去了協議的許多功能,比如超時重傳。此外,由於計算cookie有一定的運算量,增加了連接建立的延遲時間,因此,SYN-cookie技術不能作為高性能伺服器的防禦手段。通常採用動態資源分配機制,即分配了一定的資源後再採用cookie技術,Linux系統中的SYN-cookie就是這樣實現的。還有一個問題是,當我們避免了SYN Flooding攻擊的同時,也提供了另一種拒絕服務攻擊方式,攻擊者發送大量的ACK報文,使伺服器忙於計算驗證。盡管如此,在預防SYN Flooding攻擊方面,SYN-cookie技術仍然是一種有效的技術。 (2)地址狀態監控的解決方法 地址狀態監控的解決方法是利用監控工具對網路中的有關TCP連接的數據包進行監控,並對監聽到的數據包進行處理。處理的主要依據是連接請求的源地址。 每個源地址都有一個狀態與之對應,總共有四種狀態: · 初態:任何源地址剛開始的狀態; · NEW狀態:第一次出現或出現多次也不能斷定存在的源地址的狀態; · GOOD狀態:斷定存在的源地址所處的狀態; · BAD狀態:源地址不存在或不可達時所處的狀態。 具體的動作和狀態轉換根據TCP頭中的位碼值決定。 ① 監聽到SYN包,如果源地址是第一次出現,則置該源地址的狀態為NEW狀態;如果是NEW狀態或BAD狀態;則將該包的RST位置1然後重新發出去,如果是GOOD狀態不作任何處理。 ② 監聽到ACK或RST包,如果源地址的狀態為NEW狀態,則轉為GOOD狀態;如果是GOOD狀態則不變;如果是BAD狀態則轉為NEW狀態;如果是BAD狀態則轉為NEW狀態。 ③ 監聽到從伺服器來的SYN ACK報文(目的地址為addr),表明伺服器已經為從addr發來的連接請求建立了一個半連接,為防止建立的半連接過多,向伺服器發送一個ACK包,建立連接,同時,開始計時,如果超時,還未收到ACK報文,證明addr不可達,如果此時addr的狀態為GOOD則轉為NEW狀態;如果addr的狀態為NEW狀態則轉為BAD狀態;如果為addr的狀態為BAD狀態則不變。 地址狀態的轉換圖如圖2所示。 圖2 地址狀態轉換圖 下面分析一下基於地址狀態監控的方法如何能夠防禦SYN Flooding攻擊。 對於一個偽造源地址的SYN報文,若源地址第一次出現,則源地址的狀態為NEW狀態,當監聽到伺服器的SYN+ACK報文,表明伺服器已經為該源地址的連接請求建立了半連接。此時,監控程序代源地址發送一個ACK報文完成連接。這樣,半連接隊列中的半連接數不是很多。計時器開始計時,由於源地址是偽造的,所以不會收到ACK報文,超時後,監控程序發送RST數據包,伺服器釋放該連接,該源地址的狀態轉為BAD狀態。之後,對於每一個來自該源地址的SYN報文,監控程序都會主動發送一個RST報文。 對於一個合法的SYN報文,若源地址第一次出現,則源地址的狀態為NEW狀態,伺服器響應請求,發送SYN+ACK報文,監控程序發送ACK報文,連接建立完畢。之後,來自客戶端的ACK很快會到達,該源地址的狀態轉為GOOD狀態。伺服器可以很好地處理重復到達的ACK包。 3. ACK Flooding ACK Flooding攻擊是在TCP連接建立之後,所有的數據傳輸TCP報文都是帶有ACK標志位的,主機在接收到一個帶有ACK標志位的數據包的時候,需要檢查該數據包所表示的連接四元組是否存在,如果存在則檢查該數據包所表示的狀態是否合法,然後再向應用層傳遞該數據包。如果在檢查中發現該數據包不合法,例如該數據包所指向的目的埠在本機並未開放,則主機操作系統協議棧會回應RST包告訴對方此埠不存在。 這里,伺服器要做兩個動作:查表、回應ACK/RST。這種攻擊方式顯然沒有SYN Flooding給伺服器帶來的沖擊大,因此攻擊者一定要用大流量ACK小包沖擊才會對伺服器造成影響。按照我們對TCP協議的理解,隨機源IP的ACK小包應該會被Server很快丟棄,因為在伺服器的TCP堆棧中沒有這些ACK包的狀態信息。但是實際上通過測試,發現有一些TCP服務會對ACK Flooding比較敏感,比如說JSP Server,在數量並不多的ACK小包的打擊下,JSP Server就很難處理正常的連接請求。對於Apache或者IIS來說,10kbps的ACK Flooding不會構成危脅,但是更高數量的ACK Flooding會造成伺服器網卡中斷頻率過高,負載過重而停止響應。可以肯定的是,ACK Flooding不但可以危害路由器等網路設備,而且對伺服器上的應用有不小的影響。 如果沒有開放埠,伺服器將直接丟棄,這將會耗費伺服器的CPU資源。如果埠開放,伺服器回應RST。 利用對稱性判斷來分析出是否有攻擊存在。所謂對稱性判斷,就是收包異常大於發包,因為攻擊者通常會採用大量ACK包,並且為了提高攻擊速度,一般採用內容基本一致的小包發送。這可以作為判斷是否發生ACK Flooding的依據,但是目前已知情況來看,很少有單純使用ACK Flooding攻擊,通常都會和其他攻擊方法混合使用,因此,很容易產生誤判。 一些防火牆應對的方法是:建立一個hash表,用來存放TCP連接“狀態”,相對於主機的TCP協議棧實現來說,狀態檢查的過程相對簡化。例如,不作sequence number的檢查,不作包亂序的處理,只是統計一定時間內是否有ACK包在該“連接”(即四元組)上通過,從而“大致”確定該“連接”是否是“活動的”。 4. UDP Flooding UDP Flooding是日漸猖厥的流量型DoS攻擊,原理也很簡單。常見的情況是利用大量UDP小包沖擊DNS伺服器,或Radius認證伺服器、流媒體視頻伺服器。100kbps的UDP Flooding經常將線路上的骨幹設備例如防火牆打癱,造成整個網段的癱瘓。由於UDP協議是一種無連接的服務,在UDP Flooding攻擊中,攻擊者可發送大量偽造源IP地址的小UDP包。但是,由於UDP協議是無連接性的,所以只要開了一個UDP的埠提供相關服務的話,那麼就可針對相關的服務進行攻擊。 正常應用情況下,UDP包雙向流量會基本相等,而且大小和內容都是隨機的,變化很大。出現UDP Flooding的情況下,針對同一目標IP的UDP包在一側大量出現,並且內容和大小都比較固定。 UDP協議與TCP 協議不同,是無連接狀態的協議,並且UDP應用協議五花八門,差異極大,因此針對UDP Flooding的防護非常困難。其防護要根據具體情況對待。 · 判斷包大小:如果是大包攻擊則使用防止UDP碎片方法。根據攻擊包大小設定包碎片重組大小,通常不小於1500。在極端情況下,可以考慮丟棄所有UDP碎片。 · 攻擊埠為業務埠:根據該業務UDP最大包的長度設置檢測UDP最大包以過濾異常流量。 · 攻擊埠為非業務埠:一個是丟棄所有UDP包,可能會誤傷正常業務;另一個是建立UDP連接規則,要求所有去往該埠的UDP包,必須首先與TCP埠建立TCP連接。不過這種方法需要很專業的防火牆或其他防護設備支持。 在網路的關鍵之處使用防火牆對來源不明的有害數據進行過濾,可以有效減輕UDP Flooding攻擊。此外,在用戶的網路中還應採取如下的措施。 · 禁用或過濾監控和響應服務。 · 禁用或過濾其他的 UDP 服務。 · 如果用戶必須提供一些 UDP 服務的外部訪問,那麼需要使用代理機制來保護那種服務,保證它不會被濫用。 · 對用戶的網路進行監控以了解哪些系統在使用這些服務,並對濫用的跡象進行監控。 · 對於一些小型的伺服器,可以直接用防火牆添加規則的方法屏蔽掉。 5. Connection Flooding Connection Flooding是典型的並且非常的有效的利用小流量沖擊大帶寬網路服務的攻擊方式,這種攻擊方式目前已經越來越猖獗。這種攻擊的原理是利用真實的IP地址向伺服器發起大量的連接,並且建立連接之後很長時間不釋放,佔用伺服器的資源,造成伺服器上殘余連接(WAIT狀態)過多,效率降低,甚至資源耗盡,無法響應其他客戶所發起的連接。 其中一種攻擊方法是每秒鍾向伺服器發起大量的連接請求,這類似於固定源IP的SYN Flooding攻擊,不同的是採用了真實的源IP地址。通常這可以在防火牆上限制每個源IP地址每秒鍾的連接數來達到防護目的。但現在已有工具採用慢速連接的方式,也即幾秒鍾才和伺服器建立一個連接,連接建立成功之後並不釋放並定時發送垃圾數據包給伺服器使連接得以長時間保持。這樣一個IP地址就可以和伺服器建立成百上千的連接,而伺服器可以承受的連接數是有限的,這就達到了拒絕服務的效果。 另外,蠕蟲大規模爆發的時候,由於蠕蟲代碼比較簡單,傳播過程中會出現大量源IP地址相同的包,對於 TCP 蠕蟲,則表現為大范圍掃描行為。這是在判斷Connection Flooding時需要注意的。 該攻擊的一般表現形式是:在受攻擊的伺服器上使用netstat –an命令來查看,會發現大量連接狀態來自少數的幾個源。如果統計的話,可以看到連接數對比平時出現異常。並且增長到某一閾值之後開始波動,說明此時可能已經接近性能極限。因此,對這種攻擊的判斷原則為:在流量上體現並不大,甚至可能會很小;出現大量的ESTABLISH狀態;新建的ESTABLISH狀態總數有波動。 防範該攻擊主要有如下方法。 · 主動清除殘余連接。 · 對惡意連接的IP進行封禁。 · 限制每個源IP的連接數。 · 可以對特定的URL進行防護。 · 反查Proxy後面發起HTTP Get Flood的源。
⑨ 如何屏蔽發來的RST包
是GF-W的作用
關鍵字這種技術叫主幹路由器關鍵字過濾阻斷
這個系統能夠從計算機網路系統中的關鍵點(如國家級網關)收集分析信息,過濾、嗅探指定的關鍵字,並進行智能識別,檢查網路中是否有違反安全策略的行為。利用這些設備主要進行IP數據包內容的過濾,如果符合既定的規則,則向該連接兩端的計算機發送IP欺騙性質(從前後IP報頭TTL值相差較大可知)的RST復位包,干擾兩者間正常的TCP連接,使數據流中斷,而在終端主機上會顯示連接失敗。
再多就不說了,說多了會被 block
加密代理可以繞過牆,自行上網搜索
---------------------------------
哈哈,某個說藏文是中文人的又來和我噴了
wiki的強項在於有據可查,說政治,自然科學?強?簡直是笑話
如果這位只認識中文,我就沒辦法再理論了,就像對英文盲說,科學文獻是英文的好,他說我不認識英文,所以英文文獻不好。
難道要wiki說64kill的學生好,kill的學生秒,kill的學生呱呱叫才叫不反華?你心中的正義是什麼樣的?歷史不是由某個party說了算的,時間到了,自會真相大白。
又說到GF-W,日本也說南京大屠殺是二十世紀最大的謊言,bitch就是bitch,賣了還立貞節牌坊。南京大屠殺不是日本說沒有就沒有的,同樣GF-W也不是ccp說沒有就沒有的。