劉悅 胡曦明 馬苗 李鵬
摘要:針對計算機網(wǎng)絡(luò)協(xié)議OSPF的教學設(shè)計和課堂講授通常僅涉及其通信功能的現(xiàn)狀,提出圍繞OSPF安全性開展理論和實踐教學。在深入分析了OSPF安全機制的基礎(chǔ)上,基于H3C Cloud Lab平臺,實現(xiàn)了OSPF路由攻擊與防御的仿真實驗,對網(wǎng)絡(luò)通信和網(wǎng)絡(luò)安全方向的專業(yè)課教學具有應(yīng)用價值。
關(guān)鍵詞: OSPF;網(wǎng)絡(luò)通信;網(wǎng)絡(luò)安全;攻擊與防御;實驗教學
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044 (2018)20-0156-04
Security Analysis and Prevention and Detection System of Routing Protocol OSPF
LIU Yue1, HU Xi-ming1,2*, MA Miao1,2, LI Peng1,2
(1.School of Computer Science, Shaanxi Normal University, Xian 710119, China; 2.Key Laboratory of Modern Teaching Technology, Ministry of Education, Xian 710119, China)
Abstract: The teaching design and classroom instruction for the computer network protocol OSPF usually only involve the status of its communication function, and put forward the teaching of theory and practice around the security of OSPF. Based on the in-depth analysis of the OSPF security mechanism, based on the H3C Cloud Lab platform, the simulation experiment of OSPF routing attack and defense is realized. It is valuable for the teaching of network communication and the teaching of network security.
Key words: OSPF routing protocol; network communication; network security; attack and defense; experimental teaching
作為在園區(qū)網(wǎng)中應(yīng)用最為廣泛的路由協(xié)議之一,內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol,簡稱IGP)OSPF(Open Shortest Path First開放式最短路徑優(yōu)先)[1]已成為《計算機網(wǎng)絡(luò)》《網(wǎng)絡(luò)工程》和《路由與交換》等計算機類專業(yè)課程教學中的重點和難點。
當前,在課堂教學里OSPF的教學設(shè)計通常僅涉及其路由算法[2]、路由表管理等通信功能部分,但這并不代表OSPF不存在網(wǎng)絡(luò)安全[3]的問題,在復(fù)雜的互聯(lián)網(wǎng)環(huán)境中,不可避免地出現(xiàn)針對OSPF的攻擊。如何在課程中開展關(guān)于OSPF安全性的理論和實驗教學成為計算機類課程教學改革的突出問題。
1 OSPF安全機制
1.1 報文驗證機制
OSPF為保證安全性,設(shè)計了三種類型的驗證機制,分別是:(1)空驗證,在路由的信息交換過程中不需要驗證。(2)簡單口令驗證,即防止惡意路由隨意地加入路由域,造成惡意攻擊。(3)加密驗證,即為接入同一個網(wǎng)絡(luò)或子網(wǎng)的路由器配置一個公共密鑰,這個網(wǎng)絡(luò)的路由器發(fā)送的每一份OSPF報文都附帶著含有密鑰的信息摘要,當路由器接收到報文時,根據(jù)路由器上的公共密鑰以及接收到報文信息生成一份信息摘要,并與之前接收的信息摘要比較,若結(jié)果一致,則接收報文,否則丟棄。
1.2 分層路由機制
將自治區(qū)域劃分為許多個小區(qū)域,區(qū)域性地劃分產(chǎn)生了兩種不同類型的OSPF路由選擇[4],分別是區(qū)域間路由選擇和區(qū)域內(nèi)路由選擇[5]。本區(qū)域的拓撲結(jié)構(gòu)對其他區(qū)域是屏蔽的,當域內(nèi)路由的安全受到威脅時,對整個自治區(qū)域產(chǎn)生的危害是有限的。
1.3 可靠的擴散機制
OSPF協(xié)議擁有對錯誤鏈路信息的反擊能力,若區(qū)域內(nèi)注入了錯誤的路由信息,其他路由器會用錯誤的路由信息更新正確的信息,但是只要兩個路由之間存在一條可靠路由信息,就能發(fā)回源路由,會由源路由重新擴散[6],更新其他錯誤路由信息。
2 OSPF的路由攻擊方法
2.1 路由欺騙
針對OSPF協(xié)議的欺騙攻擊[7],即冒充一臺合法路由器與網(wǎng)絡(luò)中的路由器建立鄰接關(guān)系,并向攻擊的路由器輸入大量鏈路狀態(tài)廣播,引導(dǎo)路由器形成錯誤的網(wǎng)絡(luò)拓撲,導(dǎo)致整個網(wǎng)絡(luò)的路由表紊亂。
2.2 路由拒絕服務(wù)攻擊
拒絕服務(wù),即Dos(Denial of Service)[8]。造成Dos的攻擊行為被稱為拒絕服務(wù)攻擊,其目的是使計算機網(wǎng)絡(luò)無法提供正常的服務(wù)。對OSPF協(xié)議的拒絕服務(wù)攻擊主要有以下四種:
(1)Max age 攻擊
發(fā)送帶有最大Max Age 設(shè)置的LSA信息報[9],這樣,最開始的路由器通過產(chǎn)生刷新信息來發(fā)送這個LSA,而后就引起在Age 項中的突然改變值的競爭。通過持續(xù)突然插入最大值到信息包給整個路由器群網(wǎng)絡(luò),將會導(dǎo)致網(wǎng)絡(luò)癱瘓。
(2)Sequence++攻擊
LSA sequence number 欄是被用來判斷舊的或者是否同樣的LSA,比較大的序列號表示這個LSA越是接近的。通過持續(xù)插入大LSA sequence 序列號信息包,最開始的路由器就會產(chǎn)生發(fā)送自己更新的LSA序列號來超過攻擊序列號[10]的競爭,這樣就導(dǎo)致了網(wǎng)絡(luò)不穩(wěn)定。
(3)最大序列號攻擊
當想超過最大序列號的時候,LSA就必須從路由domain(域)[11]中刷新,有ISN初始化序列號。通過插入最大的序列號OX7FFFFFFF并即將被初始化,導(dǎo)致最開始路由器的競爭。
(4)偽造LSA攻擊
通過所有g(shù)ated進程[12]停止并重新啟動來清除偽造的不正確的LSA,導(dǎo)致發(fā)生拒絕服務(wù)。
3 OSPF安全性實驗教學
3.1 實驗流程
OSPF的正確運行是基于對鄰居路由的信任,但是在現(xiàn)在復(fù)雜的網(wǎng)絡(luò)環(huán)境中,不可避免地出現(xiàn)偶然的漏洞或者是有預(yù)謀的攻擊。針對實驗環(huán)境及常見攻擊特點設(shè)計模擬攻擊和防御的實驗方案如圖1所示。
常見的路由攻擊分為路由欺騙,Max age攻擊,Sequence++攻擊,最大序列號攻擊和偽造LSA攻擊[13],本文對路由欺騙進行模擬實驗通過更改cost值而成功進行欺騙。路由防御分為OSPFv2的防御機制和OSPFv3的防御機制,本文在OSPFv2攻擊實驗的基礎(chǔ)上對OSPFv3防御進行仿真模擬。
3.2 攻擊實驗
3.2.1 實驗環(huán)境
按照圖1所示的實驗流程,本文以路由攻擊中常見的路由欺騙方法作為教學案例來講解OSPF路由攻擊的具體技術(shù)實現(xiàn)。
實驗中仿真已經(jīng)完成收斂的OSPF路由器R0和R1通過在交換機上接入一臺運行相應(yīng)程序的PC機 (通過quagga軟件源使得Linux系統(tǒng)成為軟路由[14]),使得將R0原本指向R1的GE 0/1 172.16.0.2的路由指向我們的攻擊端,達到攻擊的目的。
3.2.2 關(guān)鍵配置
(1)攻擊方配置
Quagga是一個軟路由軟件使得Linux系統(tǒng)成為軟路由。傳統(tǒng)的H3c cloud lab不支持這種功能,因此本文引入軟路由系統(tǒng),軟路由系統(tǒng)有MyRouter、My WIFI Router、quagga、軟路由OS系統(tǒng)等等,其中quagga具有配置簡單,開源的優(yōu)點。
在Ubuntu系統(tǒng)安裝quagga ,啟動quagga,發(fā)現(xiàn)兩個端口。
zebra(2601 )進程是用來管理路由信息的查看靜態(tài)路由。
ospfd(2604 )進程是用來專門負責OSPF相關(guān)信息。
其中2601和2604代表的是zebra和ospfd兩個進程的進程號,在Telnet后使用配置命令sh run 可以查看二者的進程信息。
(2)被攻擊方配置
實驗中配置好的兩臺設(shè)備R0 和R1 已經(jīng)收斂完成,兩臺路由器采用GE0/0接口交互OSPFv2, R0和R1的配置命令如下表所示:
此外R1新開啟GE0/1,用以將路由信息更新至R0,接口信息如下:
3.2.3 攻擊過程與結(jié)果分析
(1)攻擊過程
首先,在實驗開始的時候需要啟動在圖二所示的被攻擊方R0及驗證方R1的OSPF進程,再做如下配置,啟動攻擊方PC機quagga軟路由系統(tǒng)與攻擊方R0和驗證方R1的OSPF協(xié)商進程,以此來觀察攻擊者和被攻擊者的關(guān)系。
其次R0和R1應(yīng)該收到OSPFv2信息,并且開始OSPFv2握手和協(xié)商,由于之前已經(jīng)選擇出DR和BDR,因此我們最后加入的被設(shè)置成DROTHER。
最后在ubuntu的網(wǎng)卡內(nèi)增加172.16.0.2并在ospfd設(shè)置接口的cost值為1(我在這里設(shè)為了最小值)。
(2)結(jié)果分析
此時更新已經(jīng)發(fā)送出去,且由于cost比較小,將被R0采納為最優(yōu)路徑。可以通過zebra進程使用sh ip route命令查看軟路由里的OSPF信息,發(fā)送之前信息為“172.16.0.0 [110/20] via 192.168.0.249,00:09:42”在攻擊完成后再次查看信息,發(fā)送之后信息變?yōu)椤?72.16.0.0 [110/11] via 192.168.0.186,00:04:55”,根據(jù)結(jié)果顯示,攻擊成功。
3.3 路由防御
根據(jù)如圖1所示的試驗流程,在攻擊實驗的同時可以做路由防御實驗,本文做了以IPv6基礎(chǔ)的OSPFv3防御試驗為教學案例來講解有防御模塊的實施過程。即實驗拓撲如圖所示:
(1)OSPFv3交互
實驗中配置好的被攻擊方R0 和驗證方R1 已經(jīng)收斂完成,兩臺路由器采用GE0/0接口交互OSPFv3,此外驗證方R1新開啟GE0/1,用以將路由信息更新至被攻擊方R0,則R0和R1的OSPFv3交互信息如下所示:
(2)啟動ospfd協(xié)商進程
首先在攻擊方PC機中ospfd中做如下配置,啟動和被攻擊方R0和驗證方R1的OSPFv3協(xié)商進程,以此來觀察攻擊方與被攻擊方的關(guān)系。
(3)開始攻擊
R0和R1應(yīng)該收到OSPFv3信息,并且開始OSPFv3握手和協(xié)商,由于之前已經(jīng)選擇出DR和BDR,因此實驗最后加入的被設(shè)置成DROTHER。
(4)設(shè)置cost值
在ubuntu的網(wǎng)卡內(nèi)增加2002:fff::64并在ospfd設(shè)置接口的cost值為1(同樣設(shè)為最小值)。
(5)防御效果
此時更新已經(jīng)發(fā)送出去, 通過zebra進程使用sh ip route命令查看軟路由里的OSPF信息,但是R0信息沒有發(fā)生變化,一直保持為“2000:fff::0:0:0:0:0:0[110/11] via 2001:da8:4001:3:0:6822:b243:2480,00:09:42”,根據(jù)結(jié)果顯示,防御成功。
(6)結(jié)果分析
OSPFv3防御實驗驗證了OSPFv3采用了新的報文格式,利用IPv6提供的網(wǎng)絡(luò)層安全機制保障了所交換的路由信息安全,說明了使用基于IPv6的OSPFv3路由協(xié)議較OSPFv2版本的路由協(xié)議具有很大的安全性。
4 總結(jié)
作為目前網(wǎng)絡(luò)中應(yīng)用最為廣泛的路由協(xié)議之一,OSPF是本科計算機網(wǎng)絡(luò)類課程的教學重點和難點,但是在實際的教學過程中不管是理論教學還是實踐教學僅僅只涉及了OSPF的通信功能部分,OSPF路由安全并未涉及。隨著網(wǎng)絡(luò)環(huán)境越來越復(fù)雜,OSPF也面臨的網(wǎng)絡(luò)安全威脅日益突出,因此圍繞OSPF安全性開展理論和實驗教學是非常有必要的。
為此,本文提出了基于仿真的方法來圍繞OSPF安全性開展理論和實驗教學,提出采用H3C Cloud Lab平臺,利用quagga軟路由系統(tǒng)實現(xiàn)OSPF路由攻擊與防御實驗,為OSPF安全性理論和實踐教學提供了切實可行的教學設(shè)計和教學案例。
參考文獻:
[1] 劉邦桂,劉冰.OSPF動態(tài)路由協(xié)議的研究[J].電腦知識與技術(shù),2010,6(12):3285-3286.
[2] 黃亞玲.RIP距離矢量路由算法優(yōu)化方案[J].電腦知識與技術(shù),2015,11(13):41-42.
[3] 楊慧.網(wǎng)絡(luò)安全技術(shù)的發(fā)展現(xiàn)狀和未來發(fā)展趨勢[J].電腦知識與技術(shù),2010,6(35):9991-9993.
[4] 賀道德,江濤.基于翻轉(zhuǎn)課堂的無線傳感網(wǎng)教學設(shè)計研究[J].電腦知識與技術(shù),2017,13(4):98-99.
[5] 婁松濤.淺析路由選擇協(xié)議[J].電腦知識與技術(shù),2009,5(9):2110-2111.
[6] Andrew S.Tanenbaum.計算機網(wǎng)絡(luò)(第四版[M].北京:清華大學出版社,2004,195-196.
[7] 張選波.計算機網(wǎng)絡(luò)協(xié)議原理實驗教程[M].福建:銳捷網(wǎng)絡(luò)大學,2006.
[8] 薛麗君.分布式拒絕服務(wù)(DDos)攻擊檢測與防護[D]. 電子科技大學,2003.
[9] 任云花. OSPF 路由攻擊的安全性分析[J]. 科技情報開發(fā)與經(jīng)濟,2007,17(15):252-253.
[10] K. Varadhan, R. Govindan, D. Estrin. Persistent route oscillations in inter-domain routing[J]. Computer Networks, 2000,32(1):1-16.
[11] 吳禮發(fā). 網(wǎng)絡(luò)協(xié)議工程[M].北京:電子工業(yè)出版社,2001:57-58.
[12] 蘭巨龍.高性能IPV6路由器基礎(chǔ)平臺及實驗系統(tǒng)需求說明書,
[13] 郭方平.OSPF路由協(xié)議安全性探討[J]. 中國新通信,2014(15):45-46.
[14] 劉濤,李佩鐸.淺談軟路由和硬路由[J].電腦知識與技術(shù),2010,6(2):298+320.