當前位置:首頁 » 操作系統 » oob演算法

oob演算法

發布時間: 2022-05-31 05:59:36

⑴ 網路攻擊的一般原理和方法是什麼

下載:http://download.csdn.net/source/274376
常見網路攻擊原理

1.1 TCP SYN拒絕服務攻擊

一般情況下,一個TCP連接的建立需要經過三次握手的過程,即:

1、 建立發起者向目標計算機發送一個TCP SYN報文;

2、 目標計算機收到這個SYN報文後,在內存中創建TCP連接控制塊(TCB),然後向發起者回送一個TCP ACK報文,等待發起者的回應;

3、 發起者收到TCP ACK報文後,再回應一個ACK報文,這樣TCP連接就建立起來了。
利用這個過程,一些惡意的攻擊者可以進行所謂的TCP SYN拒絕服務攻擊:

1、 攻擊者向目標計算機發送一個TCP SYN報文;

2、 目標計算機收到這個報文後,建立TCP連接控制結構(TCB),並回應一個ACK,等待發起者的回應;

3、 而發起者則不向目標計算機回應ACK報文,這樣導致目標計算機一致處於等待狀態。
可以看出,目標計算機如果接收到大量的TCP SYN報文,而沒有收到發起者的第三次ACK回應,會一直等待,處於這樣尷尬狀態的半連接如果很多,則會把目標計算機的資源(TCB控制結構,TCB,一般情況下是有限的)耗盡,而不能響應正常的TCP連接請求。

1.2 ICMP洪水

正常情況下,為了對網路進行診斷,一些診斷程序,比如PING等,會發出ICMP響應請求報文(ICMP ECHO),接收計算機接收到ICMP ECHO後,會回應一個ICMP ECHO Reply報文。而這個過程是需要CPU處理的,有的情況下還可能消耗掉大量的資源,比如處理分片的時候。這樣如果攻擊者向目標計算機發送大量的ICMP ECHO報文(產生ICMP洪水),則目標計算機會忙於處理這些ECHO報文,而無法繼續處理其它的網路數據報文,這也是一種拒絕服務攻擊(DOS)。

1.3 UDP洪水

原理與ICMP洪水類似,攻擊者通過發送大量的UDP報文給目標計算機,導致目標計算機忙於處理這些UDP報文而無法繼續處理正常的報文。

1.4 埠掃描

根據TCP協議規范,當一台計算機收到一個TCP連接建立請求報文(TCP SYN)的時候,做這樣的處理:

1、 如果請求的TCP埠是開放的,則回應一個TCP ACK報文,並建立TCP連接控制結構(TCB);
2、 如果請求的TCP埠沒有開放,則回應一個TCP RST(TCP頭部中的RST標志設為1)報文,告訴發起計算機,該埠沒有開放。

相應地,如果IP協議棧收到一個UDP報文,做如下處理:

1、 如果該報文的目標埠開放,則把該UDP報文送上層協議(UDP)處理,不回應任何報文(上層協議根據處理結果而回應的報文例外);
2、 如果該報文的目標埠沒有開放,則向發起者回應一個ICMP不可達報文,告訴發起者計算機該UDP報文的埠不可達。

利用這個原理,攻擊者計算機便可以通過發送合適的報文,判斷目標計算機哪些TCP或UDP埠是開放的,過程如下:

1、 發出埠號從0開始依次遞增的TCP SYN或UDP報文(埠號是一個16比特的數字,這樣最大為65535,數量很有限);
2、 如果收到了針對這個TCP報文的RST報文,或針對這個UDP報文的ICMP不可達報文,則說明這個埠沒有開放;
3、 相反,如果收到了針對這個TCP SYN報文的ACK報文,或者沒有接收到任何針對該UDP報文的ICMP報文,則說明該TCP埠是開放的,UDP埠可能開放(因為有的實現中可能不回應ICMP不可達報文,即使該UDP埠沒有開放)。

這樣繼續下去,便可以很容易的判斷出目標計算機開放了哪些TCP或UDP埠,然後針對埠的具體數字,進行下一步攻擊,這就是所謂的埠掃描攻擊。

1.5 分片IP報文攻擊

為了傳送一個大的IP報文,IP協議棧需要根據鏈路介面的MTU對該IP報文進行分片,通過填充適當的IP頭中的分片指示欄位,接收計算機可以很容易的把這些IP分片報文組裝起來。
目標計算機在處理這些分片報文的時候,會把先到的分片報文緩存起來,然後一直等待後續的分片報文,這個過程會消耗掉一部分內存,以及一些IP協議棧的數據結構。如果攻擊者給目標計算機只發送一片分片報文,而不發送所有的分片報文,這樣攻擊者計算機便會一直等待(直到一個內部計時器到時),如果攻擊者發送了大量的分片報文,就會消耗掉目標計算機的資源,而導致不能相應正常的IP報文,這也是一種DOS攻擊。

1.6 SYN比特和FIN比特同時設置

在TCP報文的報頭中,有幾個標志欄位:
1、 SYN:連接建立標志,TCP SYN報文就是把這個標志設置為1,來請求建立連接;
2、 ACK:回應標志,在一個TCP連接中,除了第一個報文(TCP SYN)外,所有報文都設置該欄位,作為對上一個報文的相應;
3、 FIN:結束標志,當一台計算機接收到一個設置了FIN標志的TCP報文後,會拆除這個TCP連接;
4、 RST:復位標志,當IP協議棧接收到一個目標埠不存在的TCP報文的時候,會回應一個RST標志設置的報文;
5、 PSH:通知協議棧盡快把TCP數據提交給上層程序處理。

正常情況下,SYN標志(連接請求標志)和FIN標志(連接拆除標志)是不能同時出現在一個TCP報文中的。而且RFC也沒有規定IP協議棧如何處理這樣的畸形報文,因此,各個操作系統的協議棧在收到這樣的報文後的處理方式也不同,攻擊者就可以利用這個特徵,通過發送SYN和FIN同時設置的報文,來判斷操作系統的類型,然後針對該操作系統,進行進一步的攻擊。

1.7 沒有設置任何標志的TCP報文攻擊

正常情況下,任何TCP報文都會設置SYN,FIN,ACK,RST,PSH五個標志中的至少一個標志,第一個TCP報文(TCP連接請求報文)設置SYN標志,後續報文都設置ACK標志。有的協議棧基於這樣的假設,沒有針對不設置任何標志的TCP報文的處理過程,因此,這樣的協議棧如果收到了這樣的報文,可能會崩潰。攻擊者利用了這個特點,對目標計算機進行攻擊。

1.8 設置了FIN標志卻沒有設置ACK標志的TCP報文攻擊

正常情況下,ACK標志在除了第一個報文(SYN報文)外,所有的報文都設置,包括TCP連接拆除報文(FIN標志設置的報文)。但有的攻擊者卻可能向目標計算機發送設置了FIN標志卻沒有設置ACK標志的TCP報文,這樣可能導致目標計算機崩潰。

1.9 死亡之PING

TCP/IP規范要求IP報文的長度在一定范圍內(比如,0-64K),但有的攻擊計算機可能向目標計算機發出大於64K長度的PING報文,導致目標計算機IP協議棧崩潰。

1.10 地址猜測攻擊

跟埠掃描攻擊類似,攻擊者通過發送目標地址變化的大量的ICMP ECHO報文,來判斷目標計算機是否存在。如果收到了對應的ECMP ECHO REPLY報文,則說明目標計算機是存在的,便可以針對該計算機進行下一步的攻擊。

1.11 淚滴攻擊

對於一些大的IP包,需要對其進行分片傳送,這是為了迎合鏈路層的MTU(最大傳輸單元)的要求。比如,一個4500位元組的IP包,在MTU為1500的鏈路上傳輸的時候,就需要分成三個IP包。
在IP報頭中有一個偏移欄位和一個分片標志(MF),如果MF標志設置為1,則表面這個IP包是一個大IP包的片斷,其中偏移欄位指出了這個片斷在整個IP包中的位置。例如,對一個4500位元組的IP包進行分片(MTU為1500),則三個片斷中偏移欄位的值依次為:0,1500,3000。這樣接收端就可以根據這些信息成功的組裝該IP包。

如果一個攻擊者打破這種正常情況,把偏移欄位設置成不正確的值,即可能出現重合或斷開的情況,就可能導致目標操作系統崩潰。比如,把上述偏移設置為0,1300,3000。這就是所謂的淚滴攻擊。

1.12 帶源路由選項的IP報文

為了實現一些附加功能,IP協議規范在IP報頭中增加了選項欄位,這個欄位可以有選擇的攜帶一些數據,以指明中間設備(路由器)或最終目標計算機對這些IP報文進行額外的處理。

源路由選項便是其中一個,從名字中就可以看出,源路由選項的目的,是指導中間設備(路由器)如何轉發該數據報文的,即明確指明了報文的傳輸路徑。比如,讓一個IP報文明確的經過三台路由器R1,R2,R3,則可以在源路由選項中明確指明這三個路由器的介面地址,這樣不論三台路由器上的路由表如何,這個IP報文就會依次經過R1,R2,R3。而且這些帶源路由選項的IP報文在傳輸的過程中,其源地址不斷改變,目標地址也不斷改變,因此,通過合適的設置源路由選項,攻擊者便可以偽造一些合法的IP地址,而矇混進入網路。

1.13 帶記錄路由選項的IP報文

記錄路由選項也是一個IP選項,攜帶了該選項的IP報文,每經過一台路由器,該路由器便把自己的介面地址填在選項欄位裡面。這樣這些報文在到達目的地的時候,選項數據裡面便記錄了該報文經過的整個路徑。
通過這樣的報文可以很容易的判斷該報文經過的路徑,從而使攻擊者可以很容易的尋找其中的攻擊弱點。

1.14 未知協議欄位的IP報文

在IP報文頭中,有一個協議欄位,這個欄位指明了該IP報文承載了何種協議 ,比如,如果該欄位值為1,則表明該IP報文承載了ICMP報文,如果為6,則是TCP,等等。目前情況下,已經分配的該欄位的值都是小於100的,因此,一個帶大於100的協議欄位的IP報文,可能就是不合法的,這樣的報文可能對一些計算機操作系統的協議棧進行破壞。

1.15 IP地址欺騙

一般情況下,路由器在轉發報文的時候,只根據報文的目的地址查路由表,而不管報文的源地址是什麼,因此,這樣就 可能面臨一種危險:如果一個攻擊者向一台目標計算機發出一個報文,而把報文的源地址填寫為第三方的一個IP地址,這樣這個報文在到達目標計算機後,目標計算機便可能向毫無知覺的第三方計算機回應。這便是所謂的IP地址欺騙攻擊。

比較著名的SQL Server蠕蟲病毒,就是採用了這種原理。該病毒(可以理解為一個攻擊者)向一台運行SQL Server解析服務的伺服器發送一個解析服務的UDP報文,該報文的源地址填寫為另外一台運行SQL Server解析程序(SQL Server 2000以後版本)的伺服器,這樣由於SQL Server 解析服務的一個漏洞,就可能使得該UDP報文在這兩台伺服器之間往復,最終導致伺服器或網路癱瘓。

1.16 WinNuke攻擊

NetBIOS作為一種基本的網路資源訪問介面,廣泛的應用於文件共享,列印共享,進程間通信(IPC),以及不同操作系統之間的數據交換。一般情況下,NetBIOS是運行在LLC2鏈路協議之上的,是一種基於組播的網路訪問介面。為了在TCP/IP協議棧上實現NetBIOS,RFC規定了一系列交互標准,以及幾個常用的TCP/UDP埠:

139:NetBIOS會話服務的TCP埠;
137:NetBIOS名字服務的UDP埠;
136:NetBIOS數據報服務的UDP埠。

WINDOWS操作系統的早期版本(WIN95/98/NT)的網路服務(文件共享等)都是建立在NetBIOS之上的,因此,這些操作系統都開放了139埠(最新版本的WINDOWS 2000/XP/2003等,為了兼容,也實現了NetBIOS over TCP/IP功能,開放了139埠)。

WinNuke攻擊就是利用了WINDOWS操作系統的一個漏洞,向這個139埠發送一些攜帶TCP帶外(OOB)數據報文,但這些攻擊報文與正常攜帶OOB數據報文不同的是,其指針欄位與數據的實際位置不符,即存在重合,這樣WINDOWS操作系統在處理這些數據的時候,就會崩潰。

1.17 Land攻擊

LAND攻擊利用了TCP連接建立的三次握手過程,通過向一個目標計算機發送一個TCP SYN報文(連接建立請求報文)而完成對目標計算機的攻擊。與正常的TCP SYN報文不同的是,LAND攻擊報文的源IP地址和目的IP地址是相同的,都是目標計算機的IP地址。這樣目標計算機接收到這個SYN報文後,就會向該報文的源地址發送一個ACK報文,並建立一個TCP連接控制結構(TCB),而該報文的源地址就是自己,因此,這個ACK報文就發給了自己。這樣如果攻擊者發送了足夠多的SYN報文,則目標計算機的TCB可能會耗盡,最終不能正常服務。這也是一種DOS攻擊。

1.18 Script/ActiveX攻擊

Script是一種可執行的腳本,它一般由一些腳本語言寫成,比如常見的JAVA SCRIPT,VB SCRIPT等。這些腳本在執行的時候,需要一個專門的解釋器來翻譯,翻譯成計算機指令後,在本地計算機上運行。這種腳本的好處是,可以通過少量的程序寫作,而完成大量的功能。

這種SCRIPT的一個重要應用就是嵌入在WEB頁面裡面,執行一些靜態WEB頁面標記語言(HTML)無法完成的功能,比如本地計算,資料庫查詢和修改,以及系統信息的提取等。這些腳本在帶來方便和強大功能的同時,也為攻擊者提供了方便的攻擊途徑。如果攻擊者寫一些對系統有破壞的SCRIPT,然後嵌入在WEB頁面中,一旦這些頁面被下載到本地,計算機便以當前用戶的許可權執行這些腳本,這樣,當前用戶所具有的任何許可權,SCRIPT都可以使用,可以想像這些惡意的SCRIPT的破壞程度有多強。這就是所謂的SCRIPT攻擊。

ActiveX是一種控制項對象,它是建立在MICROSOFT的組件對象模型(COM)之上的,而COM則幾乎是Windows操作系統的基礎結構。可以簡單的理解,這些控制項對象是由方法和屬性構成的,方法即一些操作,而屬性則是一些特定的數據。這種控制項對象可以被應用程序載入,然後訪問其中的方法或屬性,以完成一些特定的功能。可以說,COM提供了一種二進制的兼容模型(所謂二進制兼容,指的是程序模塊與調用的編譯環境,甚至操作系統沒有關系)。但需要注意的是,這種對象控制項不能自己執行,因為它沒有自己的進程空間,而只能由其它進程載入,並調用其中的方法和屬性,這時候,這些控制項便在載入進程的進程空間運行,類似與操作系統的可載入模塊,比如DLL庫。

ActiveX控制項可以嵌入在WEB頁面裡面,當瀏覽器下載這些頁面到本地後,相應地也下載了嵌入在其中的ActiveX控制項,這樣這些控制項便可以在本地瀏覽器進程空間中運行(ActiveX空間沒有自己的進程空間,只能由其它進程載入並調用),因此,當前用戶的許可權有多大,ActiveX的破壞性便有多大。如果一個惡意的攻擊者編寫一個含有惡意代碼的ActiveX控制項,然後嵌入在WEB頁面中,被一個瀏覽用戶下載後執行,其破壞作用是非常大的。這便是所謂的ActiveX攻擊。

1.19 Smurf攻擊

ICMP ECHO請求包用來對網路進行診斷,當一台計算機接收到這樣一個報文後,會向報文的源地址回應一個ICMP ECHO REPLY。一般情況下,計算機是不檢查該ECHO請求的源地址的,因此,如果一個惡意的攻擊者把ECHO的源地址設置為一個廣播地址,這樣計算機在恢復REPLY的時候,就會以廣播地址為目的地址,這樣本地網路上所有的計算機都必須處理這些廣播報文。如果攻擊者發送的ECHO 請求報文足夠多,產生的REPLY廣播報文就可能把整個網路淹沒。這就是所謂的smurf攻擊。

除了把ECHO報文的源地址設置為廣播地址外,攻擊者還可能把源地址設置為一個子網廣播地址,這樣,該子網所在的計算機就可能受影響。

1.20 虛擬終端(VTY)耗盡攻擊

這是一種針對網路設備的攻擊,比如路由器,交換機等。這些網路設備為了便於遠程管理,一般設置了一些TELNET用戶界面,即用戶可以通過TELNET到該設備上,對這些設備進行管理。

一般情況下,這些設備的TELNET用戶界面個數是有限制的,比如,5個或10個等。這樣,如果一個攻擊者同時同一台網路設備建立了5個或10個TELNET連接,這些設備的遠程管理界面便被占盡,這樣合法用戶如果再對這些設備進行遠程管理,則會因為TELNET連接資源被佔用而失敗。

1.21 路由協議攻擊

網路設備之間為了交換路由信息,常常運行一些動態的路由協議,這些路由協議可以完成諸如路由表的建立,路由信息的分發等功能。常見的路由協議有RIP,OSPF,IS-IS,BGP等。這些路由協議在方便路由信息管理和傳遞的同時,也存在一些缺陷,如果攻擊者利用了路由協議的這些許可權,對網路進行攻擊,可能造成網路設備路由表紊亂(這足可以導致網路中斷),網路設備資源大量消耗,甚至導致網路設備癱瘓。

下面列舉一些常見路由協議的攻擊方式及原理:

1.21.1 針對RIP協議的攻擊

RIP,即路由信息協議,是通過周期性(一般情況下為30S)的路由更新報文來維護路由表的,一台運行RIP路由協議的路由器,如果從一個介面上接收到了一個路由更新報文,它就會分析其中包含的路由信息,並與自己的路由表作出比較,如果該路由器認為這些路由信息比自己所掌握的要有效,它便把這些路由信息引入自己的路由表中。

這樣如果一個攻擊者向一台運行RIP協議的路由器發送了人為構造的帶破壞性的路由更新報文,就很容易的把路由器的路由表搞紊亂,從而導致網路中斷。

如果運行RIP路由協議的路由器啟用了路由更新信息的HMAC驗證,則可從很大程度上避免這種攻擊。

1.21.2 針對OSPF路由協議的攻擊

OSPF,即開放最短路徑優先,是一種應用廣泛的鏈路狀態路由協議。該路由協議基於鏈路狀態演算法,具有收斂速度快,平穩,杜絕環路等優點,十分適合大型的計算機網路使用。OSPF路由協議通過建立鄰接關系,來交換路由器的本地鏈路信息,然後形成一個整網的鏈路狀態資料庫,針對該資料庫,路由器就可以很容易的計算出路由表。

可以看出,如果一個攻擊者冒充一台合法路由器與網路中的一台路由器建立鄰接關系,並向攻擊路由器輸入大量的鏈路狀態廣播(LSA,組成鏈路狀態資料庫的數據單元),就會引導路由器形成錯誤的網路拓撲結構,從而導致整個網路的路由表紊亂,導致整個網路癱瘓。

當前版本的WINDOWS 操作系統(WIN 2K/XP等)都實現了OSPF路由協議功能,因此一個攻擊者可以很容易的利用這些操作系統自帶的路由功能模塊進行攻擊。

跟RIP類似,如果OSPF啟用了報文驗證功能(HMAC驗證),則可以從很大程度上避免這種攻擊。

1.21.3 針對IS-IS路由協議的攻擊

IS-IS路由協議,即中間系統到中間系統,是ISO提出來對ISO的CLNS網路服務進行路由的一種協議,這種協議也是基於鏈路狀態的,原理與OSPF類似。IS-IS路由協議經過 擴展,可以運行在IP網路中,對IP報文進行選路。這種路由協議也是通過建立鄰居關系,收集路由器本地鏈路狀態的手段來完成鏈路狀態資料庫同步的。該協議的鄰居關系建立比OSPF簡單,而且也省略了OSPF特有的一些特性,使該協議簡單明了,伸縮性更強。

對該協議的攻擊與OSPF類似,通過一種模擬軟體與運行該協議的路由器建立鄰居關系,然後傳頌給攻擊路由器大量的鏈路狀態數據單元(LSP),可以導致整個網路路由器的鏈路狀態資料庫不一致(因為整個網路中所有路由器的鏈路狀態資料庫都需要同步到相同的狀態),從而導致路由表與實際情況不符,致使網路中斷。

與OSPF類似,如果運行該路由協議的路由器啟用了IS-IS協議單元(PDU)HMAC驗證功能,則可以從很大程度上避免這種攻擊。

1.22 針對設備轉發表的攻擊

為了合理有限的轉發數據,網路設備上一般都建立一些寄存器表項,比如MAC地址表,ARP表,路由表,快速轉發表,以及一些基於更多報文頭欄位的表格,比如多層交換表,流項目表等。這些表結構都存儲在設備本地的內存中,或者晶元的片上內存中,數量有限。如果一個攻擊者通過發送合適的數據報,促使設備建立大量的此類表格,就會使設備的存儲結構消耗盡,從而不能正常的轉發數據或崩潰。

下面針對幾種常見的表項,介紹其攻擊原理:

1.22.1 針對MAC地址表的攻擊

MAC地址表一般存在於乙太網交換機上,乙太網通過分析接收到的數據幀的目的MAC地址,來查本地的MAC地址表,然後作出合適的轉發決定。

這些MAC地址表一般是通過學習獲取的,交換機在接收到一個數據幀後,有一個學習的過程,該過程是這樣的:

a) 提取數據幀的源MAC地址和接收到該數據幀的埠號;
查MAC地址表,看該MAC地址是否存在,以及對應的埠是否符合;
c) 如果該MAC地址在本地MAC地址表中不存在,則創建一個MAC地址表項;
d) 如果存在,但對應的出埠跟接收到該數據幀的埠不符,則更新該表;
e) 如果存在,且埠符合,則進行下一步處理。

分析這個過程可以看出,如果一個攻擊者向一台交換機發送大量源MAC地址不同的數據幀,則該交換機就可能把自己本地的MAC地址表學滿。一旦MAC地址表溢出,則交換機就不能繼續學習正確的MAC表項,結果是可能產生大量的網路冗餘數據,甚至可能使交換機崩潰。

而構造一些源MAC地址不同的數據幀,是非常容易的事情。

1.22.2 針對ARP表的攻擊

ARP表是IP地址和MAC地址的映射關系表,任何實現了IP協議棧的設備,一般情況下都通過該表維護IP地址和MAC地址的對應關系,這是為了避免ARP解析而造成的廣播數據報文對網路造成沖擊。ARP表的建立一般情況下是通過二個途徑:

1、 主動解析,如果一台計算機想與另外一台不知道MAC地址的計算機通信,則該計算機主動發ARP請求,通過ARP協議建立(前提是這兩台計算機位於同一個IP子網上);

2、 被動請求,如果一台計算機接收到了一台計算機的ARP請求,則首先在本地建立請求計算機的IP地址和MAC地址的對應表。

因此,如果一個攻擊者通過變換不同的IP地址和MAC地址,向同一台設備,比如三層交換機發送大量的ARP請求,則被攻擊設備可能會因為ARP緩存溢出而崩潰。

針對ARP表項,還有一個可能的攻擊就是誤導計算機建立正確的ARP表。根據ARP協議,如果一台計算機接收到了一個ARP請求報文,在滿足下列兩個條件的情況下,該計算機會用ARP請求報文中的源IP地址和源MAC地址更新自己的ARP緩存:

1、 如果發起該ARP請求的IP地址在自己本地的ARP緩存中;
2、 請求的目標IP地址不是自己的。

可以舉一個例子說明這個過程,假設有三台計算機A,B,C,其中B已經正確建立了A和C計算機的ARP表項。假設A是攻擊者,此時,A發出一個ARP請求報文,該請求報文這樣構造:

1、 源IP地址是C的IP地址,源MAC地址是A的MAC地址;
2、 請求的目標IP地址是A的IP地址。

這樣計算機B在收到這個ARP請求報文後(ARP請求是廣播報文,網路上所有設備都能收到),發現B的ARP表項已經在自己的緩存中,但MAC地址與收到的請求的源MAC地址不符,於是根據ARP協議,使用ARP請求的源MAC地址(即A的MAC地址)更新自己的ARP表。

這樣B的ARP混存中就存在這樣的錯誤ARP表項:C的IP地址跟A的MAC地址對應。這樣的結果是,B發給C的數據都被計算機A接收到。

1.22.3 針對流項目表的攻擊

有的網路設備為了加快轉發效率,建立了所謂的流緩存。所謂流,可以理解為一台計算機的一個進程到另外一台計算機的一個進程之間的數據流。如果表現在TCP/IP協議上,則是由(源IP地址,目的IP地址,協議號,源埠號,目的埠號)五元組共同確定的所有數據報文。

一個流緩存表一般由該五元組為索引,每當設備接收到一個IP報文後,會首先分析IP報頭,把對應的五元組數據提取出來,進行一個HASH運算,然後根據運算結果查詢流緩存,如果查找成功,則根據查找的結果進行處理,如果查找失敗,則新建一個流緩存項,查路由表,根據路由表查詢結果填完整這個流緩存,然後對數據報文進行轉發(具體轉發是在流項目創建前還是創建後並不重要)。

可以看出,如果一個攻擊者發出大量的源IP地址或者目的IP地址變化的數據報文,就可能導致設備創建大量的流項目,因為不同的源IP地址和不同的目標IP地址對應不同的流。這樣可能導致流緩存溢出

⑵ 藍牙的技術信息

主要文章:藍牙協議棧和藍牙協議


藍牙被定義為協議層架構,包括核心協議、電纜替代協議、電話傳送控制協議、選用協議。所有藍牙堆棧的強制性協議包括:LMP、L2CAP和SDP。此外,與藍牙通信的設備基本普遍都能使用HCI和 RFCOMM這些協議。
1 LMP:
鏈路管理協議(LMP)用於兩個設備之間無線鏈路的建立和控制。應用於控制器上。
2 L2CAP
邏輯鏈路控制與適配協議(L2CAP)常用來建立兩個使用不同高級協議的設備之間的多路邏輯連接傳輸。提供無線數據包的分割和重新組裝。
在基本模式下,L2CAP能最大提供64kb的有效數據包,並且有672位元組作為默認MTU(最大傳輸單元),以及最小48位元組的指令傳輸單元。
在重復傳輸和流控制模式下,L2CAP可以通過執行重復傳輸和CRC校驗(循環冗餘校驗)來檢驗每個通道數據是否正確或者是否同步。
藍牙核心規格附錄1 在核心規格中添加了兩個附加的L2CAP模式。這些模式有效的否決了原始的重傳和流控模式。 增強型重傳模式(Enhanced Retransmission Mode,簡稱ERTM):該模式是原始重傳模式的改進版,提供可靠的L2CAP 通道。 流模式(Streaming Mode,簡稱SM):這是一個非常簡單的模式,沒有重傳或流控。該模式提供不可靠的L2CAP 通道。 其中任何一種模式的可靠性都是可選擇的,並/或由底層藍牙BDR/EDR空中介面通過配置重傳數量和刷新超時而額外保障的。順序排序是是由底層保障的。
只有ERTM 和 SM中配置的 L2CAP通道才有可能在AMP邏輯鏈路上運作。
3 SDP
服務發現協議(SDP)允許一個設備發現其他設備支持的服務,和與這些服務相關的參數。比如當用手機去連接藍牙耳機(其中包含耳機的配置信息、設備狀態信息,以及高級音頻分類信息(A2DP)等等)。並且這些眾多協議的切換需要被每個連接他們的設備設置。每個服務都會被全局獨立性識別號(UUID)所識別。根據官方藍牙配置文檔給出了一個UUID的簡短格式(16位)。
4 RFCOMM
射頻通信(RFCOMM)常用於建立虛擬的串列數據流。RFCOMM提供了基於藍牙帶寬層的二進制數據轉換和模擬EIA-232(即早前的的RS-232)串列控制信號,也就是說,它是串口模擬。
RFCOMM向用戶提供了簡單而且可靠的串列數據流。類似TCP。它可作為AT指令的載體直接用於許多電話相關的協議,以及通過藍牙作為OBEX的傳輸層。
許多藍牙應用都使用RFCOMM由於串列數據的廣泛應用和大多數操作系統都提供了可用的API。所以使用串列介面通訊的程序可以很快的移植到RFCOMM上面。
5 BNEP
網路封裝協議(BNEP)用於通過L2CAP傳輸另一協議棧的數據。主要目的是傳輸個人區域網路配置文件中的IP 封包。BNEP在無線區域網中的功能與SNAP類似。
6AVCTP
音頻/視頻控制傳輸協議(AVCTP)被遠程式控制制協議用來通過L2CAP傳輸AV/C指令。立體聲耳機上的音樂控制按鈕可通過這一協議控制音樂播放器。
7 AVDTP
音視頻分發傳輸協議(AVDTP)被高級音頻分發協議用來通過L2CAP向立體聲耳機傳輸音樂文件。適用於藍牙傳輸中的視頻分發協議。
8 TCS
電話控制協議–二進制(TCS BIN)是面向位元組協議,為藍牙設備之間的語音和數據通話的建立定義了呼叫控制信令。此外,TCS BIN 還為藍牙TCS設備的的群組管理定義了移動管理規程。
TCS-BIN僅用於無繩電話協議,因此並未引起廣泛關注。
9採用的協議
採用的協議是由其他標准制定組織定義、並包含在藍牙協議棧中,僅在必要時才允許藍牙對協議進行編碼。採用的協議包括: 點對點協議(PPP):通過點對點鏈接傳輸IP數據報的互聯網標准協議 TCP/IP/UDP:TCP/IP 協議組的基礎協議 對象交換協議(OBEX):用於對象交換的會話層協議,為對象與操作表達提供模型 無線應用環境/無線應用協議(WAE/WAP):WAE明確了無線設備的應用框架,WAP是向移動用戶提供電話和信息服務接入的開放標准。
根據不同的封包類型,每個封包可能受到糾錯功能的保護,或許是1/3速率的前向糾錯(FEC) ,或者是2/3速率。此外,出現CRC錯誤的封包將會被重發,直至被自動重傳請求(ARQ)承認。 任何可發現模式下的藍牙設備都可按需傳輸以下信息: 設備名稱 設備類別 服務列表 技術信息(例如設備特性、製造商、所使用的藍牙版本、時鍾偏移等) 任何設備都可以對其他設備發出連接請求,任何設備也都可能添加可回應請求的配置。但如果試圖發出連接請求的設備知道對方設備的地址,它就總會回應直接連接請求,且如果有必要會發送上述列表中的信息。設備服務的使用也許會要求配對或設備持有者的接受,但連接本身可由任何設備發起,持續至設備走出連接范圍。有些設備在與一台設備建立連接之後,就無法再與其他設備同時建立連接,直至最初的連接斷開,才能再被查詢到。
每個設備都有一個唯一的48-位的地址。然而這些地址並不會顯示於連接請求中。但是用戶可自行為他的藍牙設備命名(藍牙設備名稱),這一名稱即可顯示在其他設備的掃描結果和配對設備列表中。
多數手機都有藍牙設備名稱(Bluetooth name),通常默認為製造商名稱和手機型號。多數手機和手提電腦都會只顯示藍牙設備名稱,想要獲得遠程設備的更多信息則需要有特定的程序。當某一范圍內有多個相同型號的手機(比如 Sony Ericsson T610)時,也許會讓人分辨哪個才是它的目標設備。(詳見Bluejacking) 1 動機
藍牙所能提供多很多服務都可能顯示個人數據或受控於相連的設備。出於安全上的考量,有必要識別特定的設備,以確保能夠控制哪些設備能與藍牙設備相連的。同時,藍牙設備也有必要讓藍牙設備能夠無需用戶干預即可建立連接(比如在進入連接范圍的同時).
未解決該矛盾,藍牙可使用一種叫bonding(連接) 的過程。Bond是通過配對(paring)過程生成的。配對過程通過或被自用戶的特定請求引發而生成bond(比如用戶明確要求「添加藍牙設備」),或是當連接到一個出於安全考量要求需要提供設備ID的服務時自動引發。這兩種情況分別稱為dedicated bonding和general bonding。
配對通常包括一定程度上的用戶互動,已確認設備ID。成功完成配對後,兩個設備之間會形成Bond,日後再再相連時則無需為了確認設備ID而重復配對過程。用戶也可以按需移除連接關系。
2 實施
配對過程中,兩個設備可通過一種創建一種稱為鏈路字的共享密鑰建立關系。如果兩個設備都存有相同的鏈路字,他們就可以實現paring或bonding。一個只想與已經bonding的設備通信的設備可以使用密碼驗證對方設備的身份,以確保這是之前配對的設備。一旦鏈路字生成,兩個設備間也許會加密一個認證的非同步無連接(Asynchronous Connection-Less,簡稱ACL) 鏈路,以防止交換的數據被竊取。用戶可刪除任何一方設備上的鏈路字,即可移除兩設備之間的bond,也就是說一個設備可能存有一個已經不在與其配對的設備的鏈路字。
藍牙服務通常要求加密或認證,因此要求在允許設備遠程連接之前先配對。一些服務,比如對象推送模式,選擇不明確要求認證或加密,因此配對不會影響服務用例相關的用戶體驗。
3 配對機制
在藍牙2.1版本推出安全簡易配對(Secure Simple Pairing) 之後,配對機制有了很大的改變。以下是關於配對機制的簡要總結: 舊有配對:這是藍牙2.0版及其早前版本配對的唯一方法。每個設備必須輸入PIN碼;只有當兩個設備都輸入相同的PIN碼方能配對成功。任何16-比特的 UTF-8字元串都能用作PIN碼。然而並非所有的設備都能夠輸入所有可能的PIN碼。 有限的輸入設備: 顯而易見的例子是藍牙免提耳機,它幾乎沒有輸入界面。這些設備通常有固定的PIN,如0000或1234,是設備硬編碼的。 數字輸入設備: 比如行動電話就是經典的這類設備。用戶可輸入長達16位的數值。 字母數字輸入設備: 比如個人電腦和智能電話。用戶可輸入完整的UTF-8 字元作為PIN碼。如果是與一個輸入能力有限的設備配對,就必須考慮到對方設備的輸入限制,並沒有可行的機制能夠讓一個具有足夠輸入能力的設備去決定應該如何限制用戶可能使用的輸入。 安全簡易配對(SSP):這是藍牙2.1版本要求的,盡管藍牙2.1版本的也許設備只能使用舊有配對方式和早前版本的設備互操作。 安全簡易配對使用一種公鑰密碼學(public key cryptography),某些類型還能防禦中間人(man in the middle,簡稱MITM)攻擊。SSP 有以下特點: 即刻運行(Just works):正如其字面含義,這一方法可直接運行,無需用戶互動。但是設備也許會提示用戶確認配對過程。此方法的典型應用見於輸入輸出功能受限的耳機,且較固定PIN機制更為安全。此方法不提供中間人(MITM) 保護。 數值比較(Numeric comparison):如果兩個設備都有顯示屏,且至少一個能接受二進制的「是/否」用戶輸入,他們就能使用數值比較。此方法可在雙方設備上顯示6位數的數字代碼,用戶需比較並確認數字的一致性。如果比較成功,用戶應在可接受輸入的設備上確認配對。此方法可提供中間人(MITM) 保護,但需要用戶在兩個設備上都確認,並正確的完成比較。 萬能鑰匙進入(Passkey Entry):此方法可用於一個有顯示屏的設備和一個有數字鍵盤輸入的設備(如計算機鍵盤),或兩個有數字鍵盤輸入的設備。第一種情況下,顯示屏上顯示6位數字代碼,用戶可在另一設備的鍵盤上輸入該代碼。第二種情況下,兩個設備需同時在鍵盤上輸入相同的6位數字代碼。兩種方式都能提供中間人(MITM) 保護。 非藍牙傳輸方式(OOB):此方法使用外部通信方式,如近場通信(NFC),交換在配對過程中使用的一些信息。配對通過藍牙射頻完成,但是還要求非藍牙傳輸機制提供信息。這種方式僅提供OOB機制中所體現的MITM保護水平。 SSP被認為簡單的原因如下: 多數情況下無需用戶生成萬能鑰匙。 用於無需MITM保護和用戶互動的用例。 用於數值比較,MITM 保護可通過用戶簡單的等式比較來獲得。 使用NFC等OOB,當設備靠近時進行配對,而非需要一個漫長的發現過程。 4 安全性擔憂

藍牙2.1之前版本是不要求加密的,可隨時關閉。而且,密鑰的有效時限也僅有約23.5 小時。單一密鑰的使用如超出此時限,則簡單的XOR攻擊有可能竊取密鑰。 一些常規操作要求關閉加密,如果加密因合理的理由或安全考量而被關閉,就會給設備探測帶來問題。 藍牙2.1版本從一些幾個方面進行了說明: 加密是所有非-SDP(服務發現協議)連接所必需的。 新的加密暫停和繼續功能用於所有要求關閉加密的常規操作,更容易辨認是常規操作還是安全攻擊。 加密必須在過期之前再刷新。 鏈路字可能儲存於設備文件系統,而不是在藍牙晶元本身。許多藍牙晶元製造商將鏈路字儲存於設備—然而,如果設備是可移動的,就意味著鏈路字也可能隨設備移動。 另請參見:基於通信網路的移動安全和攻擊
藍牙擁有機密性、完整性和基於SAFER+分組密碼的定製演算法的密鑰導出。藍牙密鑰生成通常基於藍牙PIN,這是雙方設備都必須輸入的。如果一方設備(如耳機、或類似用戶界面受限的設備)有固定PIN,這一過程也可能被修改。配對過程中,初始密鑰或主密鑰通過E22演算法生成。 E0流密碼也用於加密數據包、授權機密性,它是基於公共加密的、也就是之前生成的鏈路字或主密鑰。這些密鑰可用於對通過空中介面傳輸的數據進行後續加密,密鑰有賴於雙方或一方設備中輸入的PIN。
Andreas Becher於2008年發表了藍牙漏洞信息的利用概況。
2008年9月,美國國家標准與技術研究院(National Institute of Standards and Technology,NIST)發布了藍牙安全指南(Guide to Bluetooth Security),供相關機構參考。該指南描述了藍牙的安全功能,以及如何有效的保護藍牙技術。藍牙技術有它的優勢,但它易受拒絕服務攻擊、竊聽、中間人攻擊、消息修改及資源濫用。用戶和機構都必須評估自己所能接受的風險等級,並在藍牙設備的生命周期中增添安全功能。為減輕損失,NIST文件中還包括安全檢查列表,其內包含對藍牙微微網、耳機和智能讀卡器的創建和安全維護的指南和建議。
藍牙2.1發布於2007年,相應的消費設備最早出現於2009年,為藍牙安全(包括配對)帶來了顯著的改觀。更多關於這一改變的信息,請參見「配對機制」部分。 主要文章:Bluejacking

Bluejacking是指用戶通過藍牙無線技術向對方不知情的用戶發送圖片或信息。常見的應用包括簡訊息,比如「你被Bluejack了」。Bluejacking不涉及設備上任何數據的刪除或更改。Bluejacking可能涉及取得對移動設備的無線控制和撥打屬於Bluejack發起者的付費電話。安全上的進展已經緩解了這一問題。 一、2001–2004
2001年,貝爾實驗室的Jakobsson和Wetzel from發現並指出了藍牙配對協議和加密方案的缺陷。2003年,A.L. Digital 公司的Ben和Adam Laurie發現藍牙安全實施上的一些重要缺陷有可能導致個人信息的泄露。隨後Trifinite Group的Martin Herfurt在德國漢諾威電腦展(CEBIT)的游樂場中進行了現場試驗,向世界展示了這一問題的重要性。 一種稱為BlueBug的新型攻擊被用於此次實驗。2004年,第一個生成通過藍牙在行動電話間傳播的病毒出現於塞班系統。卡巴斯基實驗室最早發現了該病毒,並要求用戶在病毒傳播之前確認未知軟體的安裝。病毒是由一群自稱「29A」的病毒開發者作為驗證概念編寫,並發送防病毒機構的。因此,它應被看作是對藍牙技術或塞班系統的潛在威脅,而非實際的威脅,原因是該病毒並未散播至塞班系統之外。2004年8月,一個世界紀錄級的實驗(另請參見Bluetooth sniping)證實,如果有定向天線和信號放大器,2類藍牙無線電的范圍可擴增至1.78km(1.11mi)。這就造成了潛在的安全威脅,因為攻擊者將能夠在相當程度的遠距離之外接入有缺陷的藍牙設備。攻擊者想要與目標設備建立連接,還必須能夠接受其發出的信息。如果攻擊者不知道藍牙地址和傳輸通道(盡管它們在設備使用狀態下幾分鍾之內就能推導出來),就不可能對藍牙設備進行攻擊。
二、2005年
2005年1月,一種稱為Lasco.A的移動惡意程序蠕蟲開始針對採用塞班系統(60系列平台)的行動電話,通過藍牙設備自我復制並傳播至其他設備。一旦移動用戶允許接收另一設備發送來的文件(velasco.sis),這一蠕蟲即可開始自動安裝。一旦安裝成功,蠕蟲變回開始尋找並感染其他的藍牙設備。此外,蠕蟲會感染設備上其他的.SIS文件,通過可移動的媒體文件(保全數位、CF卡等)復制到另一設備上。蠕蟲可導致行動電話的不穩定。
2005年4月,劍橋大學安全研究員發表了針對兩個商業藍牙設備間基於PIN配對的被動攻擊的研究結果。他們證實了實際攻擊之快,以及藍牙對稱密鑰建立方法的脆弱。為糾正爭議缺陷,他們通過實驗證實,對於某些類型的設備(如行動電話),非對稱密鑰建立更可靠且可行。
2005年6月,Yaniv Shaked和Avishai Wool發表文章,描述了藍牙鏈路獲得PIN的被動和主動方法。如果攻擊者出現在最初配對時,被動攻擊允許配有相應設備的攻擊者竊聽通信或冒名頂替。主動攻擊方法使用專門建立的、必須插入到協議中特定的點的信息,
讓主從設備不斷重復配對過程。然後再通過被動攻擊即可攻獲PIN碼。這一攻擊的主要弱點是它要求用戶在設備受攻擊時根據提示重新輸入PIN。主動攻擊可能要求定製硬體,因為大多數商業藍牙設備並不具備其所需的定時功能。
2005年8月,英國劍橋郡警方發布警告,稱有不法分子通過有藍牙功能的電話跟蹤放置於車中的其他設備。警方建議當用戶把手提電腦或其他設備放置於車中時,須確保任何移動網路連接均處於禁用狀態。
三、2006年
2006年4月, Secure Network和F-Secure的研究人員發布了一份報告,提醒人們注意可見狀態下的設備之多,並公布了有關藍牙服務的傳播、以及藍牙蠕蟲傳播進程緩解的相關數據。
四、2007年
2007年10月,在盧森堡黑客安全大會上,Kevin Finistere和Thierry Zoller展示並發布了一款課通過Mac OS X v10.3.9 和 v10.4上的藍牙進行通信的遠程跟外殼(root shell)。它們還展示了首個PIN 和 Linkkeys 破解器,這是基於Wool 和 Shaked的研究。

⑶ 什麼是DDOS攻擊

DoS的攻擊方式有很多種,最基本的DoS攻擊就是利用合理的服務請求來佔用過多的服務資源,從而使合法用戶無法得到服務的響應。DDoS攻擊手段是在傳統的DoS攻擊基礎之上產生的一類攻擊方式。單一的DoS攻擊一般是採用一對一方式的,當攻擊目標CPU速度低、內存小或者網路帶寬小等等各項性能指標不高它的效果是明顯的。隨著計算機與網路技術的發展,計算機的處理能力迅速增長,內存大大增加,同時也出現了千兆級別的網路,這使得DoS攻擊的困難程度加大了 - 目標對惡意攻擊包的"消化能力"加強了不少,例如你的攻擊軟體每秒鍾可以發送3,000個攻擊包,但我的主機與網路帶寬每秒鍾可以處理10,000個攻擊包,這樣一來攻擊就不會產生什麼效果。這時候分布式的拒絕服務攻擊手段(DDoS)就應運而生了。你理解了DoS攻擊的話,它的原理就很簡單。如果說計算機與網路的處理能力加大了10倍,用一台攻擊機來攻擊不再能起作用的話,攻擊者使用10台攻擊機同時攻擊呢?用100台呢?DDoS就是利用更多的傀儡機來發起進攻,以比從前更大的規模來進攻受害者。高速廣泛連接的網路給大家帶來了方便,也為DDoS攻擊創造了極為有利的條件。在低速網路時代時,黑客佔領攻擊用的傀儡機時,總是會優先考慮離目標網路距離近的機器,因為經過路由器的跳數少,效果好。而現在電信骨幹節點之間的連接都是以G為級別的,大城市之間更可以達到2.5G的連接,這使得攻擊可以從更遠的地方或者其他城市發起,攻擊者的傀儡機位置可以在分布在更大的范圍,選擇起來更靈活了。編輯本段被DDoS攻擊時的現象被攻擊主機上有大量等待的TCP連接網路中充斥著大量的無用的數據包,源地址為假製造高流量無用數據,造成網路擁塞,使受害主機無法正常和外界通訊利用受害主機提供的服務或傳輸協議上的缺陷,反復高速的發出特定的服務請求,使受害主機無法及時處理所有正常請求嚴重時會造成系統死機大雞吧攻擊運行原理如圖,一個比較完善的DDoS攻擊體系分成四大部分,先來看一下最重要的第2和第3部分:它們分別用做控制和實際發起攻擊。請注意控制機與攻擊機的區別,對第4部分的受害者來說,DDoS的實際攻擊包是從第3部分攻擊傀儡機上發出的,第2部分的控制機只發布命令而不參與實際的攻擊。對第2和第3部分計算機,黑客有控制權或者是部分的控制權,並把相應的DDoS程序上傳到這些平台上,這些程序與正常的程序一樣運行並等待來自黑客的指令,通常它還會利用各種手段隱藏自己不被別人發現。在平時,這些傀儡機器並沒有什麼異常,只是一旦黑客連接到它們進行控制,並發出指令的時候,攻擊傀儡機就成為害人者去發起攻擊了。有的朋友也許會問道:"為什麼黑客不直接去控制攻擊傀儡機,而要從控制傀儡機上轉一下呢?"。這就是導致DDoS攻擊難以追查的原因之一了。做為攻擊者的角度來說,肯定不願意被捉到,而攻擊者使用的傀儡機越多,他實際上提供給受害者的分析依據就越多。在佔領一台機器後,高水平的攻擊者會首先做兩件事:1. 考慮如何留好後門!2. 如何清理日誌。這就是擦掉腳印,不讓自己做的事被別人查覺到。比較不敬業的黑客會不管三七二十一把日誌全都刪掉,但這樣的話網管員發現日誌都沒了就會知道有人幹了壞事了,頂多無法再從日誌發現是誰乾的而已。相反,真正的好手會挑有關自己的日誌項目刪掉,讓人看不到異常的情況。這樣可以長時間地利用傀儡機。但是在第3部分攻擊傀儡機上清理日誌實在是一項龐大的工程,即使在有很好的日誌清理工具的幫助下,黑客也是對這個任務很頭痛的。這就導致了有些攻擊機弄得不是很乾凈,通過它上面的線索找到了控制它的上一級計算機,這上級的計算機如果是黑客自己的機器,那麼他就會被揪出來了。但如果這是控制用的傀儡機的話,黑客自身還是安全的。控制傀儡機的數目相對很少,一般一台就可以控制幾十台攻擊機,清理一台計算機的日誌對黑客來講就輕松多了,這樣從控制機再找到黑客的可能性也大大降低。編輯本段黑客是如何組織一次DDoS攻擊的?這里用"組織"這個詞,是因為DDoS並不象入侵一台主機那樣簡單。一般來說,黑客進行DDoS攻擊時會經過這樣的步驟:1. 搜集了解目標的情況 下列情況是黑客非常關心的情報: 被攻擊目標主機數目、地址情況目標主機的配置、性能目標的帶寬對於DDoS攻擊者來說,攻擊互聯網上的某個站點,如 http://www.mytarget.com,有一個重點就是確定到底有多少台主機在支持這個站點,一個大的網站可能有很多台主機利用負載均衡技術提供同一個網站的www服務。以yahoo為例,一般會有下列地址都是提供 http://www.yahoo.com 服務的: 66.218.71.87 66.218.71.88 66.218.71.89 66.218.71.80 66.218.71.81 66.218.71.83 66.218.71.84 66.218.71.86 如果要進行DDoS攻擊的話,應該攻擊哪一個地址呢?使66.218.71.87這台機器癱掉,但其他的主機還是能向外提供www服務,所以想讓別人訪問不到 http://www.yahoo.com 的話,要所有這些IP地址的機器都癱掉才行。在實際的應用中,一個IP地址往往還代表著數台機器:網站維護者使用了四層或七層交換機來做負載均衡,把對一個IP地址的訪問以特定的演算法分配到下屬的每個主機上去。這時對於DDoS攻擊者來說情況就更復雜了,他面對的任務可能是讓幾十台主機的服務都不正常。所以說事先搜集情報對DDoS攻擊者來說是非常重要的,這關繫到使用多少台傀儡機才能達到效果的問題。簡單地考慮一下,在相同的條件下,攻擊同一站點的2台主機需要2台傀儡機的話,攻擊5台主機可能就需要5台以上的傀儡機。有人說做攻擊的傀儡機越多越好,不管你有多少台主機我都用盡量多的傀儡機來攻就是了,反正傀儡機超過了時候效果更好。但在實際過程中,有很多黑客並不進行情報的搜集而直接進行DDoS的攻擊,這時候攻擊的盲目性就很大了,效果如何也要靠運氣。其實做黑客也象網管員一樣,是不能偷懶的。一件事做得好與壞,態度最重要,水平還在其次。2. 佔領傀儡機 黑客最感興趣的是有下列情況的主機: 鏈路狀態好的主機性能好的主機安全管理水平差的主機這一部分實際上是使用了另一大類的攻擊手段:利用形攻擊。這是和DDoS並列的攻擊方式。簡單地說,就是佔領和控制被攻擊的主機。取得最高的管理許可權,或者至少得到一個有許可權完成DDoS攻擊任務的帳號。對於一個DDoS攻擊者來說,准備好一定數量的傀儡機是一個必要的條件,下面說一下他是如何攻擊並佔領它們的。首先,黑客做的工作一般是掃描,隨機地或者是有針對性地利用掃描器去發現互聯網上那些有漏洞的機器,象程序的溢出漏洞、cgi、Unicode、ftp、資料庫漏洞…(簡直舉不勝舉啊),都是黑客希望看到的掃描結果。隨後就是嘗試入侵了,具體的手段就不在這里多說了,感興趣的話網上有很多關於這些內容的文章。總之黑客現在佔領了一台傀儡機了!然後他做什麼呢?除了上面說過留後門擦腳印這些基本工作之外,他會把DDoS攻擊用的程序上載過去,一般是利用ftp。在攻擊機上,會有一個DDoS的發包程序,黑客就是利用它來向受害目標發送惡意攻擊包的。3. 實際攻擊 經過前2個階段的精心准備之後,黑客就開始瞄準目標准備發射了。前面的准備做得好的話,實際攻擊過程反而是比較簡單的。就象圖示里的那樣,黑客登錄到做為控制台的傀儡機,向所有的攻擊機發出命令:"預備~ ,瞄準~,開火!"。這時候埋伏在攻擊機中的DDoS攻擊程序就會響應控制台的命令,一起向受害主機以高速度發送大量的數據包,導致它死機或是無法響應正常的請求。黑客一般會以遠遠超出受害方處理能力的速度進行攻擊,他們不會"憐香惜玉"。 老到的攻擊者一邊攻擊,還會用各種手段來監視攻擊的效果,在需要的時候進行一些調整。簡單些就是開個窗口不斷地ping目標主機,在能接到回應的時候就再加大一些流量或是再命令更多的傀儡機來加入攻擊。DDOS常用的工具軟體——CC v2.0 防範DDOS比較出色的防火牆:各種硬體防火牆,look'n'sotp 風雲

⑷ nand flash的oob能不能隨意修改

NOR和NAND是現在市場上兩種主要的非易失快閃記憶體技術。Intel於1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接著,1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,並且象磁碟一樣可以通過介面輕松升級。但是經過了十多年之後,仍然有相當多的硬體工程師分不清NOR和NAND快閃記憶體。 相「flash存儲器」經常可以與相「NOR存儲器」互換使用。許多業內人士也搞不清楚NAND快閃記憶體技術相對於NOR技術的優越之處,因為大多數情況下快閃記憶體只是用來存儲少量的代碼,這時NOR快閃記憶體更適合一些。而NAND則是高數據存儲密度的理想解決方案。 NOR的特點是晶元內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash快閃記憶體內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。 NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理和需要特殊的系統介面。 性能比較 flash快閃記憶體是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為0。 由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多隻需要4ms。 執行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。 ● NOR的讀速度比NAND稍快一些。 ● NAND的寫入速度比NOR快很多。 ● NAND的4ms擦除速度遠比NOR的5s快。 ● 大多數寫入操作需要先進行擦除操作。 ● NAND的擦除單元更小,相應的擦除電路更少。 介面差別 NOR flash帶有SRAM介面,有足夠的地址引腳來定址,可以很容易地存取其內部的每一個位元組。 NAND器件使用復雜的I/O口來串列地存取數據,各個產品或廠商的方法可能各不相同。8個引腳用來傳送控制、地址和數據信息。 NAND讀和寫操作採用512位元組的塊,這一點有點像硬碟管理此類操作,很自然地,基於NAND的存儲器就可以取代硬碟或其他塊設備。 容量和成本 NAND flash的單元尺寸幾乎是NOR器件的一半,由於生產過程更為簡單,NAND結構可以在給定的模具尺寸內提供更高的容量,也就相應地降低了價格。 NOR flash占據了容量為1~16MB快閃記憶體市場的大部分,而NAND flash只是用在8~128MB的產品當中,這也說明NOR主要應用在代碼存儲介質中,NAND適合於數據存儲,NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲卡市場上所佔份額最大。 可*性和耐用性 採用flahs介質時一個需要重點考慮的問題是可*性。對於需要擴展MTBF的系統來說,Flash是非常合適的存儲方案。可以從壽命(耐用性)、位交換和壞塊處理三個方面來比較NOR和NAND的可*性。 壽命(耐用性) 在NAND快閃記憶體中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次。NAND存儲器除了具有10比1的塊擦除周期優勢,典型的NAND塊尺寸要比NOR器件小8倍,每個NAND存儲器塊在給定的時間內的刪除次數要少一些。 位交換 所有flash器件都受位交換現象的困擾。在某些情況下(很少見,NAND發生的次數要比NOR多),一個比特位會發生反轉或被報告反轉了。 一位的變化可能不很明顯,但是如果發生在一個關鍵文件上,這個小小的故障可能導致系統停機。如果只是報告有問題,多讀幾次就可能解決了。 當然,如果這個位真的改變了,就必須採用錯誤探測/錯誤更正(EDC/ECC)演算法。位反轉的問題更多見於NAND快閃記憶體,NAND的供應商建議使用NAND快閃記憶體的時候,同時使用EDC/ECC演算法。 這個問題對於用NAND存儲多媒體信息時倒不是致命的。當然,如果用本地存儲設備來存儲操作系統、配置文件或其他敏感信息時,必須使用EDC/ECC系統以確保可*性。 壞塊處理 NAND器件中的壞塊是隨機分布的。以前也曾有過消除壞塊的努力,但發現成品率太低,代價太高,根本不劃算。 NAND器件需要對介質進行初始化掃描以發現壞塊,並將壞塊標記為不可用。在已製成的器件中,如果通過可*的方法不能進行這項處理,將導致高故障率。 易於使用 可以非常直接地使用基於NOR的快閃記憶體,可以像其他存儲器那樣連接,並可以在上面直接運行代碼。 由於需要I/O介面,NAND要復雜得多。各種NAND器件的存取方法因廠家而異。 在使用NAND器件時,必須先寫入驅動程序,才能繼續執行其他操作。向NAND器件寫入信息需要相當的技巧,因為設計師絕不能向壞塊寫入,這就意味著在NAND器件上自始至終都必須進行虛擬映射。 軟體支持 當討論軟體支持的時候,應該區別基本的讀/寫/擦操作和高一級的用於磁碟模擬和快閃記憶體管理演算法的軟體,包括性能優化。 在NOR器件上運行代碼不需要任何的軟體支持,在NAND器件上進行同樣操作時,通常需要驅動程序,也就是內存技術驅動程序(MTD),NAND和NOR器件在進行寫入和擦除操作時都需要MTD。 使用NOR器件時所需要的MTD要相對少一些,許多廠商都提供用於NOR器件的更高級軟體,這其中包括M-System的TrueFFS驅動,該驅動被Wind River System、Microsoft、QNX Software System、Symbian和Intel等廠商所採用。 驅動還用於對DiskOnChip產品進行模擬和NAND快閃記憶體的管理,包括糾錯、壞塊處理和損耗平衡。 與非門的FLASH是相對或非門的FLASH而言 兩者除了在設計上採用了NAND和NOR實現這個主要區別外,有如下主要區別: 1。匯流排介面上,NOR的介面類型一般的匯流排介面,與SRAM器件相似。NAND則是IO介面,需要另外邏輯才能作為MEMORY (當然是廠家做好了的) 2。NOR的器件支持隨機訪問,而NAND的只支持順序訪問。因此NAND一般用在大規模存貯,而NOR的用於存程序代碼, 直接運行程序。而NAND放程序時,要先LOAD到RAM中再跑 3。NOR的每個CELL占更大的面積,NAND的小多了,因此同樣容量的價格NAND的低很多

麻煩採納,謝謝!

⑸ 隨機森林進行特徵重要性度量的詳細說明

隨機森林進行特徵重要性度量的詳細說明
特徵選擇方法中,有一種方法是利用隨機森林,進行特徵的重要性度量,選擇重要性較高的特徵。下面對如何計算重要性進行說明。
1 特徵重要性度量
計算某個特徵X的重要性時,具體步驟如下:
1)對每一顆決策樹,選擇相應的袋外數據(out of bag,OOB)計算袋外數據誤差,記為errOOB1.
所謂袋外數據是指,每次建立決策樹時,通過重復抽樣得到一個數據用於訓練決策樹,這時還有大約1/3的數據沒有被利用,沒有參與決策樹的建立。這部分數據可以用於對決策樹的性能進行評估,計算模型的預測錯誤率,稱為袋外數據誤差。
這已經經過證明是無偏估計的,所以在隨機森林演算法中不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差的無偏估計。
2)隨機對袋外數據OOB所有樣本的特徵X加入雜訊干擾(可以隨機改變樣本在特徵X處的值),再次計算袋外數據誤差,記為errOOB2。
3)假設森林中有N棵樹,則特徵X的重要性=∑(errOOB2-errOOB1)/N。這個數值之所以能夠說明特徵的重要性是因為,如果加入隨機雜訊後,袋外數據准確率大幅度下降(即errOOB2上升),說明這個特徵對於樣本的預測結果有很大影響,進而說明重要程度比較高。
2 特徵選擇
在特徵重要性的基礎上,特徵選擇的步驟如下:
1)計算每個特徵的重要性,並按降序排序
2)確定要剔除的比例,依據特徵重要性剔除相應比例的特徵,得到一個新的特徵集
3)用新的特徵集重復上述過程,直到剩下m個特徵(m為提前設定的值)。
4)根據上述過程中得到的各個特徵集和特徵集對應的袋外誤差率,選擇袋外誤差率最低的特徵集。

⑹ 施耐德plc程序加密怎麼破解

PLC加密的方式:
通過編程軟體將密碼(明文)同程序文件一起寫入PLC中。在用編程軟體連接PLC時,提示輸入密碼,然後PLC返回實際密碼,在編程軟體內部實現密碼的比較。此種加密方法在寫入PLC中的密碼沒用經過任何加密計算。比較容易破解!
通過編程軟體將密碼同程序文件一起寫入PLC中。寫入PLC的密碼(密文)在編程軟體內部經過一定的加密計算(大都是簡單的加密演算法)。在用編 程軟體連接PLC時,提示輸入密碼,然後PLC返回密文密碼,在編程軟體內部實現密文的比較。此種加密方法,破解有一定的難度!需要跟蹤分析編程程序,找 出加密演算法。
通過編程軟體將密碼明文同程序文件一起寫入PLC中,由PLC對密碼明文進行加密計算出密文存儲在PLC內部。在用編程軟體連接PLC時,提示 輸入密碼,PLC不用返回密文,在PLC內部實現密文的比較。這種加密方式也不易實現,需要PLC硬體及PLC操作系統支持。此種加密方式最難破解。
PLC的解密方式:
直接監視通訊口,找出明文密碼。
監視通訊口、跟蹤編程軟體,找出密碼明文與密文的關系(演算法)。
目前沒有十分有效的方法。
各種破解需要一定的技巧及經驗、相關軟體,真正的高手不屑於此。寫此篇文章的目的不是要教大家如何破解,只是看不慣某些專業收費破解PLC密碼的人,提醒PLC廠家提高密碼的保密強度。
艾馳商城是國內最專業的MRO工業品網購平台,正品現貨、優勢價格、迅捷配送,是一站式采購的工業品商城!具有10年工業用品電子商務領域研 究,以強大的信息通道建設的優勢,以及依託線下貿易交易市場在工業用品行業上游供應鏈的整合能力,為廣大的用戶提供了感測器、圖爾克感測器、變頻器、斷路 器、繼電器、PLC、工控機、儀器儀表、氣缸、五金工具、伺服電機、勞保用品等一系列自動化的工控產品

⑺ 機器學習中out of bag error怎麼理解

訓練數據集為 T ,具有M個特徵
T = {(X1,y1), (X2,y2), ... (Xn, yn)}
Xi {xi1, xi2, ... xiM},是輸入向量 yi 是標簽.

隨機森林總結:
隨機森林演算法是一個分類器演算法,主要基於兩種方法
Bagging
Random subspace method.
假設在森林中我們設定s棵樹,首先我們生成 S 個和原始數據集大小一致的數據集,採用放回的隨機抽樣方法 (也即,每生成一個數據集抽樣n次).最終產生 數據集T1,
T2, ... TS}. 每個數據集稱作一個 bootstrap 數據集. 由於放回抽樣,每個數據集 Ti 中有重復數據,Ti 相比原始數據集,可能會缺少若干記錄.這稱為Bootstrapping. (en.wikipedia.org/wiki/Bootstrapping_(statistics))
Bagging 是進行 bootstraps & 然後將每個從 bootstrap中學到的模型進行集成的過程
現在, RF 生成 S 棵樹,m
(=sqrt(M) or =floor(lnM+1)) 隨機從M個特徵中抽取子特徵,來創建樹. 這叫做隨機子空間方法(random subspace method).
所以對每個Ti bootstrap 數據集,我們創建了一棵樹 Ki. 如果你相對某些輸入數據進行分類 D
= {x1, x2, ..., xM} ,你讓這些數據在每棵樹上都跑一遍,從而生成 S 個預測結果 (一棵樹有一個預測結果) ,表示為 Y
= {y1, y2, ..., ys}. 最終預測結果通過大多數投票策略決定.
Out-of-bag error:
在生成s個分類器後 (S棵樹), 對於原始訓練集T中每個記錄 (Xi,yi) ,選擇所有不包括(Xi,yi) 的bootstrap數據集Tk.注意,這個子集,是一個boostrap 數據集所組成的集合,它們都不包含原始數據集中的某個特定記錄. 這個集合被稱作 out-of-bag 樣例. 共有n 個這樣的子集 (原始數據集 T中每行記錄對應一個). OOB 分類器 使用的是Tk 上投票的累積,所以它們不包含 (xi,yi).
從另外一個角度來解釋oob方法如下:
每一棵樹都通過使用不同的 bootstrap 樣本.相比原始數據集,每個 bootstrap數據集中大概有1/3的記錄沒有包括進來,也就沒有在構建第k棵樹時候使用.
對於構建第k棵樹時候沒有用到的每條記錄,讓它們過一遍第k棵樹,進而獲得一個分類.通過這種方法, 對任何一條記錄來說,大概有1/3 的樹沒有用這條記錄來構建,因而對這些樹可以進行測試集上的數據分類。最終, 假設 類別j 是當記錄n是oob時候,獲得投票最多的類別,j被錯誤分類除以總記錄數n,就是 oob error estimate. 這在很多測試中被證明是無偏的[2].
Out-of-bag 估計的泛化錯誤率是 out-of-bag classifier 在訓練集上的錯誤率。
那麼它為什麼重要? Breiman [1996b]在對 bagged 分類器的錯誤率估計研究中, 給出實證證據顯示,out-of-bag 估計 和使用與訓練集大小一致的測試集所得到的錯誤率一樣精確. 所以, 使用out-of-bag error 估計可以不在另外建立一個測試集.
參考網址:http://blog.sina.com.cn/s/blog_4c9dc2a10102vl24.html

⑻ 隨機森林預測結果應該出來啥

隨機森林基於決策樹,隨機森林既對數據隨機抽樣N次,訓練N顆決策樹最後對結果求平均值,所以想了解隨機森林,只需了解決策樹即可。

從直觀角度來解釋,每棵決策樹都是一個分類器(假設現在針對的是分類問題),那麼對於一個輸入樣本,N棵樹會有N個分類結果。而隨機森林集成了所有的分類投票結果,將投票次數最多的類別指定為最終的輸出,這就是一種最簡單的 Bagging 思想。

決策樹基於觀測到的數據的概率,直觀的建立起決策規則,是一種簡單、非線性、符合認知的無參數分類(回歸)的方法。

隨機森林有一個重要的優點就是,沒有必要對它進行交叉驗證或者用一個獨立的測試集來獲得誤差的一個無偏估計。它可以在內部進行評估,也就是說在生成的過程中就可以對誤差建立一個無偏估計。

我們知道,在構建每棵樹時,我們對訓練集使用了不同的bootstrap sample(隨機且有放回地抽取)。所以對於每棵樹而言(假設對於第k棵樹),大約有1/3的訓練實例沒有參與第k棵樹的生成,它們稱為第k棵樹的oob樣本。

而這樣的采樣特點就允許我們進行oob估計,它的計算方式如下:對每個樣本,計算它作為oob樣本的樹對它的分類情況(約1/3的樹);然後以簡單多數投票作為該樣本的分類結果;最後用誤分個數占樣本總數的比率作為隨機森林的oob誤分率。

oob誤分率是隨機森林泛化誤差的一個無偏估計,它的結果近似於需要大量計算的k折交叉驗證。

介紹

作為新興起的、高度靈活的一種機器學習演算法,隨機森林(Random Forest,簡稱RF)擁有廣泛的應用前景,從市場營銷到醫療保健保險,既可以用來做市場營銷模擬的建模,統計客戶來源,保留和流失,也可用來預測疾病的風險和病患者的易感性。

最初,我是在參加校外競賽時接觸到隨機森林演算法的。最近幾年的國內外大賽,包括2013年網路校園電影推薦系統大賽、2014年阿里巴巴天池大數據競賽以及Kaggle數據科學競賽,參賽者對隨機森林的使用佔有相當高的比例。

⑼ 請問有沒有大大能解出這個加密演算法

一個加密系統S可以用數學符號描述如下:
S={P, C, K, E, D}
其中
P——明文空間,表示全體可能出現的明文集合,
C——密文空間,表示全體可能出現的密文集合,
K——密鑰空間,密鑰是加密演算法中的可變參數,
E——加密演算法,由一些公式、法則或程序構成,
D——解密演算法,它是E的逆。
當給定密鑰kÎK時,各符號之間有如下關系:
C = Ek(P), 對明文P加密後得到密文C
P = Dk(C) = Dk(Ek(P)), 對密文C解密後得明文P
如用E-1 表示E的逆,D-1表示D的逆,則有:
Ek = Dk-1且Dk = Ek-1
因此,加密設計主要是確定E,D,K。

⑽ 關於DDOS及其防禦

解讀DDOS及防禦DDOS攻擊指南
一、為何要DDOS?
隨著Internet互聯網路帶寬的增加和多種DDOS黑客工具的不斷發布,DDOS拒絕服務攻擊的實施越來越容易,DDOS攻擊事件正在成上升趨勢。出於商業競爭、打擊報復和網路敲詐等多種因素,導致很多IDC託管機房、商業站點、游戲伺服器、聊天網路等網路服務商長期以來一直被DDOS攻擊所困擾,隨之而來的是客戶投訴、同虛擬主機用戶受牽連、法律糾紛、商業損失等一系列問題,因此,解決DDOS攻擊問題成為網路服務商必須考慮的頭等大事。
二、什麼是DDOS?
DDOS是英文Distributed Denial of Service的縮寫,意即「分布式拒絕服務」,那麼什麼又是拒絕服務(Denial of Service)呢?可以這么理解,凡是能導致合法用戶不能夠訪問正常網路服務的行為都算是拒絕服務攻擊。也就是說拒絕服務攻擊的目的非常明確,就是要阻止合法用戶對正常網路資源的訪問,從而達成攻擊者不可告人的目的。雖然同樣是拒絕服務攻擊,但是DDOS和DOS還是有所不同,DDOS的攻擊策略側重於通過很多「僵屍主機」(被攻擊者入侵過或可間接利用的主機)向受害主機發送大量看似合法的網路包,從而造成網路阻塞或伺服器資源耗盡而導致拒絕服務,分布式拒絕服務攻擊一旦被實施,攻擊網路包就會猶如洪水般湧向受害主機,從而把合法用戶的網路包淹沒,導致合法用戶無法正常訪問伺服器的網路資源,因此,拒絕服務攻擊又被稱之為「洪水式攻擊」,常見的DDOS攻擊手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS則側重於通過對主機特定漏洞的利用攻擊導致網路棧失效、系統崩潰、主機死機而無法提供正常的網路服務功能,從而造成拒絕服務,常見的DOS攻擊手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等。就這兩種拒絕服務攻擊而言,危害較大的主要是DDOS攻擊,原因是很難防範,至於DOS攻擊,通過給主機伺服器打補丁或安裝防火牆軟體就可以很好地防範,後文會詳細介紹怎麼對付DDOS攻擊。
三、被DDOS了嗎?
DDOS的表現形式主要有兩種,一種為流量攻擊,主要是針對網路帶寬的攻擊,即大量攻擊包導致網路帶寬被阻塞,合法網路包被虛假的攻擊包淹沒而無法到達主機;另一種為資源耗盡攻擊,主要是針對伺服器主機的攻擊,即通過大量攻擊包導致主機的內存被耗盡或CPU被內核及應用程序占完而造成無法提供網路服務。
如何判斷網站是否遭受了流量攻擊呢?可通過Ping命令來測試,若發現Ping超時或丟包嚴重(假定平時是正常的),則可能遭受了流量攻擊,此時若發現和你的主機接在同一交換機上的伺服器也訪問不了了,基本可以確定是遭受了流量攻擊。當然,這樣測試的前提是你到伺服器主機之間的ICMP協議沒有被路由器和防火牆等設備屏蔽,否則可採取Telnet主機伺服器的網路服務埠來測試,效果是一樣的。不過有一點可以肯定,假如平時Ping你的主機伺服器和接在同一交換機上的主機伺服器都是正常的,突然都Ping不通了或者是嚴重丟包,那麼假如可以排除網路故障因素的話則肯定是遭受了流量攻擊,再一個流量攻擊的典型現象是,一旦遭受流量攻擊,會發現用遠程終端連接網站伺服器會失敗。
相對於流量攻擊而言,資源耗盡攻擊要容易判斷一些,假如平時Ping網站主機和訪問網站都是正常的,發現突然網站訪問非常緩慢或無法訪問了,而Ping還可以Ping通,則很可能遭受了資源耗盡攻擊,此時若在伺服器上用Netstat -na命令觀察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等狀態存在,而ESTABLISHED很少,則可判定肯定是遭受了資源耗盡攻擊。還有一種屬於資源耗盡攻擊的現象是,Ping自己的網站主機Ping不通或者是丟包嚴重,而Ping與自己的主機在同一交換機上的伺服器則正常,造成這種原因是網站主機遭受攻擊後導致系統內核或某些應用程序CPU利用率達到100%無法回應Ping命令,其實帶寬還是有的,否則就Ping不通接在同一交換機上的主機了。
當前主要有三種流行的DDOS攻擊:
1、SYN/ACK Flood攻擊:
這種攻擊方法是經典最有效的DDOS方法,可通殺各種系統的網路服務,主要是通過向受害主機發送大量偽造源IP和源埠的SYN或ACK包,導致主機的緩存資源被耗盡或忙於發送回應包而造成拒絕服務,由於源都是偽造的故追蹤起來比較困難,缺點是實施起來有一定難度,需要高帶寬的僵屍主機支持。少量的這種攻擊會導致主機伺服器無法訪問,但卻可以Ping的通,在伺服器上用Netstat -na命令會觀察到存在大量的SYN_RECEIVED狀態,大量的這種攻擊會導致Ping失敗、TCP/IP棧失效,並會出現系統凝固現象,即不響應鍵盤和滑鼠。普通防火牆大多無法抵禦此種攻擊。
2、TCP全連接攻擊:
這種攻擊是為了繞過常規防火牆的檢查而設計的,一般情況下,常規防火牆大多具備過濾TearDrop、Land等DOS攻擊的能力,但對於正常的TCP連接是放過的,殊不知很多網路服務程序(如:IIS、Apache等Web伺服器)能接受的TCP連接數是有限的,一旦有大量的TCP連接,即便是正常的,也會導致網站訪問非常緩慢甚至無法訪問,TCP全連接攻擊就是通過許多僵屍主機不斷地與受害伺服器建立大量的TCP連接,直到伺服器的內存等資源被耗盡而被拖跨,從而造成拒絕服務,這種攻擊的特點是可繞過一般防火牆的防護而達到攻擊目的,缺點是需要找很多僵屍主機,並且由於僵屍主機的IP是暴露的,因此容易被追蹤。
3、刷Script腳本攻擊:
這種攻擊主要是針對存在ASP、JSP、PHP、CGI等腳本程序,並調用MSSQLServer、MySQLServer、Oracle等資料庫的網站系統而設計的,特徵是和伺服器建立正常的TCP連接,並不斷的向腳本程序提交查詢、列表等大量耗費資料庫資源的調用,典型的以小博大的攻擊方法。一般來說,提交一個GET或POST指令對客戶端的耗費和帶寬的佔用是幾乎可以忽略的,而伺服器為處理此請求卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的資料庫伺服器很少能支持數百個查詢指令同時執行,而這對於客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機伺服器大量遞交查詢指令,只需數分鍾就會把伺服器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛、ASP程序失效、PHP連接資料庫失敗、資料庫主程序佔用CPU偏高。這種攻擊的特點是可以完全繞過普通的防火牆防護,輕松找一些Proxy代理就可實施攻擊,缺點是對付只有靜態頁面的網站效果會大打折扣,並且有些Proxy會暴露攻擊者的IP地址。
四、怎麼抵禦DDOS?
對付DDOS是一個系統工程,想僅僅依靠某種系統或產品防住DDOS是不現實的,可以肯定的是,完全杜絕DDOS目前是不可能的,但通過適當的措施抵禦90%的DDOS攻擊是可以做到的,基於攻擊和防禦都有成本開銷的緣故,若通過適當的辦法增強了抵禦DDOS的能力,也就意味著加大了攻擊者的攻擊成本,那麼絕大多數攻擊者將無法繼續下去而放棄,也就相當於成功的抵禦了DDOS攻擊。以下為筆者多年以來抵禦DDOS的經驗和建議,和大家分享!
1、採用高性能的網路設備
首先要保證網路設備不能成為瓶頸,因此選擇路由器、交換機、硬體防火牆等設備的時候要盡量選用知名度高、口碑好的產品。再就是假如和網路提供商有特殊關系或協議的話就更好了,當大量攻擊發生的時候請他們在網路接點處做一下流量限制來對抗某些種類的DDOS攻擊是非常有效的。
2、盡量避免NAT的使用
無論是路由器還是硬體防護牆設備要盡量避免採用網路地址轉換NAT的使用,因為採用此技術會較大降低網路通信能力,其實原因很簡單,因為NAT需要對地址來回轉換,轉換過程中需要對網路包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3、充足的網路帶寬保證
網路帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論採取什麼措施都很難對抗現在的SYNFlood攻擊,當前至少要選擇100M的共享帶寬,最好的當然是掛在1000M的主幹上了。但需要注意的是,主機上的網卡是1000M的並不意味著它的網路帶寬就是千兆的,若把它接在100M的交換機上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等於就有了百兆的帶寬,因為網路服務商很可能會在交換機上限制實際帶寬為10M,這點一定要搞清楚。
4、升級主機伺服器硬體
在有網路帶寬保證的前提下,請盡量提升硬體配置,要有效對抗每秒10萬個SYN攻擊包,伺服器的配置至少應該為:P4 2.4G/DDR512M/SCSI-HD,起關鍵作用的主要是CPU和內存,若有志強雙CPU的話就用它吧,內存一定要選擇DDR的高速內存,硬碟要盡量選擇SCSI的,別只貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價,再就是網卡一定要選用3COM或Intel等名牌的,若是Realtek的還是用在自己的PC上吧。

5、把網站做成靜態頁面
大量事實證明,把網站盡可能做成靜態頁面,不僅能大大提高抗攻擊能力,而且還給黑客入侵帶來不少麻煩,至少到現在為止關於HTML的溢出還沒出現,看看吧!新浪、搜狐、網易等門戶網站主要都是靜態頁面,若你非需要動態腳本調用,那就把它弄到另外一台單獨主機去,免的遭受攻擊時連累主伺服器,當然,適當放一些不做資料庫調用腳本還是可以的,此外,最好在需要調用資料庫的腳本中拒絕使用代理的訪問,因為經驗表明使用代理訪問你網站的80%屬於惡意行為。
6、增強操作系統的TCP/IP棧
Win2000和Win2003作為伺服器操作系統,本身就具備一定的抵抗DDOS攻擊的能力,只是默認狀態下沒有開啟而已,若開啟的話可抵擋約10000個SYN攻擊包,若沒有開啟則僅能抵禦數百個,具體怎麼開啟,自己去看微軟的文章吧!《強化 TCP/IP 堆棧安全》。也許有的人會問,那我用的是Linux和FreeBSD怎麼辦?很簡單,按照這篇文章去做吧!《SYN Cookies》
7、安裝專業抗DDOS防火牆
國內有一款口碑很好的「金盾防火牆」,據說全國有三分之二的電信和網通機房都有其產品,金盾防火牆是專門針對DDOS攻擊和黑客入侵而設計的專業級防火牆,該設備採用自主研發的新一代抗拒絕攻擊演算法,可達到10萬-100萬個並發攻擊的防禦能力,同時對正常用戶的連接和使用沒有影響。專用得體系結構可改變TCP/IP的內核,在系統核心實現防禦拒絕攻擊的演算法,並創造性的將演算法實現在網路驅動層,效率沒有受到限制。同時可防禦多種拒絕服務攻擊及其變種,如:SYN Flood。TCP Flood、UDP Flood、ICMP Flood及其變種Land、Teardrop、Smurf、Ping of Death等等,大家有需要可以問問他們,他們的聯系方式是:
中新軟體有限公司(北京)分公司
電話:010-51299965轉8010
傳真:01051299975-8002
聯系人:孫仕寶
QQ:188362577 MSN:[email protected]

熱點內容
並聯臂演算法 發布:2024-05-06 20:02:11 瀏覽:621
cf跟dnf哪個需求配置高 發布:2024-05-06 20:01:23 瀏覽:655
什麼配置皮筋能打老鼠嗎 發布:2024-05-06 19:54:32 瀏覽:741
壓縮機油壓差報警 發布:2024-05-06 19:45:08 瀏覽:335
打游戲腳本好不好 發布:2024-05-06 19:44:00 瀏覽:234
七日殺如何轉移伺服器 發布:2024-05-06 19:43:04 瀏覽:428
唐plusdmi買哪個配置 發布:2024-05-06 19:36:48 瀏覽:147
汽車安卓屏開燈效果怎麼弄 發布:2024-05-06 19:12:36 瀏覽:76
編譯優化如何推斷變數的值域范圍 發布:2024-05-06 19:11:54 瀏覽:438
修羅雲伺服器 發布:2024-05-06 18:05:18 瀏覽:709