|
網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認為是互聯(lián)網(wǎng)發(fā)展的第三階段。 1.22 針對設(shè)備轉(zhuǎn)發(fā)表的攻擊為了合理有限的轉(zhuǎn)發(fā)數(shù)據(jù),網(wǎng)絡(luò)設(shè)備上一般都建立一些寄存器表項,比如MAC地址表,ARP表,路由表,快速轉(zhuǎn)發(fā)表,以及一些基于更多報文頭字段的表格,比如多層交換表,流項目表等。這些表結(jié)構(gòu)都存儲在設(shè)備本地的內(nèi)存中,或者芯片的片上內(nèi)存中,數(shù)量有限。如果一個攻擊者通過發(fā)送合適的數(shù)據(jù)報,促使設(shè)備建立大量的此類表格,就會使設(shè)備的存儲結(jié)構(gòu)消耗盡,從而不能正常的轉(zhuǎn)發(fā)數(shù)據(jù)或崩潰。 下面針對幾種常見的表項,介紹其攻擊原理: 1.22.1 針對MAC地址表的攻擊 MAC地址表一般存在于以太網(wǎng)交換機上,以太網(wǎng)通過分析接收到的數(shù)據(jù)幀的目的MAC地址,來查本地的MAC地址表,然后作出合適的轉(zhuǎn)發(fā)決定。 這些MAC地址表一般是通過學(xué)習(xí)獲取的,交換機在接收到一個數(shù)據(jù)幀后,有一個學(xué)習(xí)的過程,該過程是這樣的: a) 提取數(shù)據(jù)幀的源MAC地址和接收到該數(shù)據(jù)幀的端口號; b) 查MAC地址表,看該MAC地址是否存在,以及對應(yīng)的端口是否符合; c) 如果該MAC地址在本地MAC地址表中不存在,則創(chuàng)建一個MAC地址表項; d) 如果存在,但對應(yīng)的出端口跟接收到該數(shù)據(jù)幀的端口不符,則更新該表; e) 如果存在,且端口符合,則進行下一步處理。 分析這個過程可以看出,如果一個攻擊者向一臺交換機發(fā)送大量源MAC地址不同的數(shù)據(jù)幀,則該交換機就可能把自己本地的MAC地址表學(xué)滿。一旦MAC地址表溢出,則交換機就不能繼續(xù)學(xué)習(xí)正確的MAC表項,結(jié)果是可能產(chǎn)生大量的網(wǎng)絡(luò)冗余數(shù)據(jù),甚至可能使交換機崩潰。 而構(gòu)造一些源MAC地址不同的數(shù)據(jù)幀,是非常容易的事情。 1.22.2 針對ARP表的攻擊 ARP表是IP地址和MAC地址的映射關(guān)系表,任何實現(xiàn)了IP協(xié)議棧的設(shè)備,一般情況下都通過該表維護IP地址和MAC地址的對應(yīng)關(guān)系,這是為了避免ARP解析而造成的廣播數(shù)據(jù)報文對網(wǎng)絡(luò)造成沖擊。ARP表的建立一般情況下是通過二個途徑: 1、 主動解析,如果一臺計算機想與另外一臺不知道MAC地址的計算機通信,則該計算機主動發(fā)ARP請求,通過ARP協(xié)議建立(前提是這兩臺計算機位于同一個IP子網(wǎng)上); 2、 被動請求,如果一臺計算機接收到了一臺計算機的ARP請求,則首先在本地建立請求計算機的IP地址和MAC地址的對應(yīng)表。 因此,如果一個攻擊者通過變換不同的IP地址和MAC地址,向同一臺設(shè)備,比如三層交換機發(fā)送大量的ARP請求,則被攻擊設(shè)備可能會因為ARP緩存溢出而崩潰。 針對ARP表項,還有一個可能的攻擊就是誤導(dǎo)計算機建立正確的ARP表。根據(jù)ARP協(xié)議,如果一臺計算機接收到了一個ARP請求報文,在滿足下列兩個條件的情況下,該計算機會用ARP請求報文中的源IP地址和源MAC地址更新自己的ARP緩存: 1、 如果發(fā)起該ARP請求的IP地址在自己本地的ARP緩存中; 2、 請求的目標IP地址不是自己的。 可以舉一個例子說明這個過程,假設(shè)有三臺計算機A,B,C,其中B已經(jīng)正確建立了A和C計算機的ARP表項。假設(shè)A是攻擊者,此時,A發(fā)出一個ARP請求報文,該請求報文這樣構(gòu)造: 1、 源IP地址是C的IP地址,源MAC地址是A的MAC地址; 2、 請求的目標IP地址是A的IP地址。 這樣計算機B在收到這個ARP請求報文后(ARP請求是廣播報文,網(wǎng)絡(luò)上所有設(shè)備都能收到),發(fā)現(xiàn)B的ARP表項已經(jīng)在自己的緩存中,但MAC地址與收到的請求的源MAC地址不符,于是根據(jù)ARP協(xié)議,使用ARP請求的源MAC地址(即A的MAC地址)更新自己的ARP表。 這樣B的ARP混存中就存在這樣的錯誤ARP表項:C的IP地址跟A的MAC地址對應(yīng)。這樣的結(jié)果是,B發(fā)給C的數(shù)據(jù)都被計算機A接收到。 1.22.3 針對流項目表的攻擊 有的網(wǎng)絡(luò)設(shè)備為了加快轉(zhuǎn)發(fā)效率,建立了所謂的流緩存。所謂流,可以理解為一臺計算機的一個進程到另外一臺計算機的一個進程之間的數(shù)據(jù)流。如果表現(xiàn)在TCP/IP協(xié)議上,則是由(源IP地址,目的IP地址,協(xié)議號,源端口號,目的端口號)五元組共同確定的所有數(shù)據(jù)報文。 一個流緩存表一般由該五元組為索引,每當(dāng)設(shè)備接收到一個IP報文后,會首先分析IP報頭,把對應(yīng)的五元組數(shù)據(jù)提取出來,進行一個HASH運算,然后根據(jù)運算結(jié)果查詢流緩存,如果查找成功,則根據(jù)查找的結(jié)果進行處理,如果查找失敗,則新建一個流緩存項,查路由表,根據(jù)路由表查詢結(jié)果填完整這個流緩存,然后對數(shù)據(jù)報文進行轉(zhuǎn)發(fā)(具體轉(zhuǎn)發(fā)是在流項目創(chuàng)建前還是創(chuàng)建后并不重要)。 可以看出,如果一個攻擊者發(fā)出大量的源IP地址或者目的IP地址變化的數(shù)據(jù)報文,就可能導(dǎo)致設(shè)備創(chuàng)建大量的流項目,因為不同的源IP地址和不同的目標IP地址對應(yīng)不同的流。這樣可能導(dǎo)致流緩存溢出。 網(wǎng)絡(luò)的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術(shù)都需要適時應(yīng)勢,對應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!