教育部資通訊人才培育先導型計畫 寬頻有線教學推動聯盟中心 第四章 交換器/路由器之安全特性
第四章 交換器/路由器之安全特性 前言 4.1 交換器 Layer 2 attacks 4.2 路由器的安全功能設定 4.1.1 CAM table overflow 4.1.2 MAC address spoofing 4.1.3 DHCP starvation 4.1.4 VLAN hopping 4.1.5 STP manipulation 4.2 路由器的安全功能設定 4.2.1 Secure Access to router 4.2.2 Router privileges and accounts 4.2.3 Turn off unneeded services 4.2.4 Routing protocol authentication 4.2.5 Network Address Translation 本章我們先介紹交換器的運作方式,接著說明攻擊者如何利用交換器的運作漏洞來攻擊、竊聽訊息及執行man-in-the-middle attack等。 本章的第二節將介紹如何設定一個安全的路由器,因為路由器的預設值是沒有啟動任何的防禦機制,任何人皆可登入路由器修改設定;路由器最重要的服務是執行封包轉送,但是有些路由器的出廠預設是將路由器可以提供的服務全部啟動,路由器執行那些不必要的服務是浪費路由器的資源以及讓有心人士可藉由那些服務的安全漏洞進行入侵。除此之外,若路由器執行的路由協定(routing protocols)沒有認證機制,可能會造成路由表(routing tables)被有心人士竄改;因此管理者必須對所有的網路設備(如交換器、路由器等)設定登入限制、關閉不需要的服務,以及使用有認證機制的通訊協定等來防止網路設備可能會遭受到的攻擊。
第四章 交換器/路由器之安全特性 4.1.1 CAM table overflow 有心人士常用來攻擊交換器的方法如下所示: MAC address spoofing DHCP starvation VLAN hopping STP manipulation 在解說各種攻擊方法之前,首先介紹交換器的CAM table CAM table是交換器記錄其每個硬體連接埠(port) 上存在那些主機,主要是記錄主機的硬體位址(MAC address)及相關的VLAN參數等資訊。 當交換器收到一個訊框(frame),它會將該訊框上的來源硬體位址(Source MAC address)與接收該訊框的連接埠記錄在CAM table上,同時會去查詢CAM table是否存有該訊框上目的端硬體位址(Destination MAC address)的資訊,假如該筆資訊存在的話,交換器會直接將訊框送往目的端所在的連接埠,稱為轉送訊框(forwarding);若CAM table不存在該筆資訊的話,交換器會將該訊框送往所有的連接埠(除了原來收到該訊框的連接埠),稱為廣播訊框(broadcasting) 。 由於CAM table大小有限制,所以假設一筆記錄(entry)一段時間未使用的話,便會刪除或是被新的記錄覆蓋。
第四章 交換器/路由器之安全特性 4.1.1 CAM table overflow 交換器的運作方式 如左圖所示,假設硬體位址A的主機現在要傳送訊息給硬體位址B的主機,當交換器收到該訊息時,查看CAM table發現沒有B的記錄,因此將訊框送往連接埠2和3,稱為廣播(broadcasting) 。 當擁有硬體位址B的主機收到訊息,發出回應給擁有硬體位址A的主機時,交換器查看CAM table中發現有硬體位址A是位在連接埠1的記錄,因此將該訊息直接送往連接埠1,稱為轉送 (forwarding);同時將硬體位址B位在連接埠2的資訊記錄下來。 之後擁有硬體位址A的主機,再一次傳送訊息給硬體位址為B的主機時,因為交換器中的CAM table中存有B是位在連接埠2上,所以將該訊框直接送往(forwarding)連接埠2。 交換器的運作範例 4
第四章 交換器/路由器之安全特性 4.1.1 CAM table overflow CAM table overflow的目的 讓交換器在CAM table找不到訊框目的端的資訊而將訊框送往所有的連接埠(broadcasting),藉此竊聽所有流經交換器的訊息。 CAM table overflow 攻擊方法 前面提到CAM table的大小是固定的,因此攻擊者藉由發送大量偽造硬體位址的訊框讓交換器的CAM table填滿錯誤資訊,之後當交換器收到訊框會無法從CAM table找到硬體位址與對映連接埠的資訊,而將訊框送往所有的連接埠。 遭受CAM table overflow攻擊的交換器,其工作方式如同集線器(hub)一般,會將收到的訊息送往所有的連接埠,因此攻擊者就可監聽所有流經交換器的訊息。 CAM table overflow 攻擊範例 如左圖所示,一開始交換器上的CAM table存有主機A、B分別位於連接埠1、2的資訊,所以A傳送給B的訊息交換器會直接送往連接埠2。 主機C發送偽造硬體位址的訊框,當交換器收到後會更新CAM table,若數量超過CAM table所能記錄的大小,則會將先前的記錄覆蓋掉,如左圖所示,交換器將原先CAM table記錄主機B與連接埠2的資訊覆蓋為X、Y這兩個不存在的硬體位址是位在連接埠3的資訊。 之後當A要傳訊息給B,交換器收到訊框後無法從CAM table知名B是位在哪個連接埠,因此將該訊框送往連接埠2、3,此時主機C也可以收到A傳給B的訊息。 CAM table overflow 攻擊範例
第四章 交換器/路由器之安全特性 4.1.2 MAC address spoofing MAC address spoofing的目的 攔截送給目標主機的所有訊息 MAC address spoofing攻擊方法 攻擊者藉由發送一個訊框,其來源位址偽造成目標主機的硬體位址,讓交換器誤以為目標主機是位在攻擊者主機所在的連接埠,造成CAM table記錄錯誤訊息,之後送給目標主機的訊框都被傳送到攻擊者主機所在的連接埠。 MAC address spoofing攻擊範例 如左圖所示,一開始CAM table記錄主機A在連接埠2、主機B在連接埠1、主機C在連接埠3。 攻擊者的主機B送出一個訊框,其來源位址欄位填上目標主機A的硬體位址,當交換器收到後更新CAM table,記錄A主機在連接埠1。 之後所有要送給A的訊息,全部都會往連接埠1送,使得主機B可以收到原本要傳給主機A的訊息。 MAC address spoofing攻擊範例
第四章 交換器/路由器之安全特性 4.1.3 DHCP starvation DHCP starvation的目的 攻擊者偽裝成DHCP伺服器分配IP給網路上的主機,並告知預設閘道為攻擊者所擁有的主機位址,藉此達成man-in-the-middle attack。 DHCP starvation攻擊方法 攻擊者藉由佔用合法DHCP伺服器所有可分配的IP位址,讓合法DHCP伺服器無法提供服務給其網路上的主機,之後攻擊者主機偽裝成DHCP伺服器,分配IP給使用DHCP取得IP的主機,並告知預設閘道位址。 DHCP starvation攻擊範例 如左圖所示,攻擊者首先發送大量偽造來源硬體位址的DHCP requests給合法的DHCP伺服器,嘗試找出並且佔用DHCP伺服器所有可分配的IP位址。 攻擊者將合法DHCP伺服器的所有可分配IP佔用後,自已設置一個偽裝的DHCP伺服器,當網路上的主機發出DHCP request時,由攻擊者偽裝的DHCP伺服器回應給使用者,藉此達到man-in-the-middle attack。 DHCP starvation攻擊範例
第四章 交換器/路由器之安全特性 4.1.4 VLAN hopping VLAN hopping attack的目的 Switch spoofing Double tagging Switch spoofing: 當交換器啟動VLAN的功能,交換器之間在轉送VLAN的訊框時,每個VLAN需要一條專屬的線路,如左圖1所示,當網路上有二個VLAN存在,交換器之間需要有二條線路分別轉送這二個VLAN的訊框。當VLAN越多,所需要的專屬線路也越多,為了節省交換器連接埠的使用,可以將連接埠設定為Trunk的運作模式,讓所有的VLAN訊息經由Trunk轉送,如左圖2所示。 Cisco交換器連接埠的運作模式有auto、on、off、desirable、或non-negotiate等狀態,其預設值為auto;且Cisco交換器會自動執行DTP (Dynamic Trunk Protocol)與其它Cisco交換器建立trunk port 。 Switch spoofing為攻擊者設置一個系統,偽裝成交換器送出DTP訊息至網路上,讓其它Cisco交換器與攻擊者的系統建立trunk port,之後所有的VLAN封包都會經過攻擊者的系統。 圖1 不同VLAN的訊框經由交換器轉送 圖2
第四章 交換器/路由器之安全特性 4.1.4 VLAN hopping Double tagging: Double tagging攻擊範例 在網路上,不同VLAN的主機要交換訊息必須要經過路由器,管理者可以在路由器設定安全控管,例如設定某些資源只有相同VLAN的主機才可以使用;Double tagging為攻擊者在其送出的訊框封裝(encapsulation)兩層802.1q的標頭,藉此躲避路由器的安全檢查,並經由直接相連交換器的trunk port將封包送往不同的VLAN。 目前大部分的交換器都只會做一層的解封裝,所以當第一臺交換器看到double-tagged的訊框時會將第一層的標頭去除並將還帶有一個802.1q的訊框經由trunk port送往第二個交換器上,第二個交換器收到後根據802.1q上的資訊將該訊框送往相應的VLAN上。 Double tagging攻擊範例 如左圖所示,攻擊者的主機A發送一個封裝兩層802.1q標頭的訊框(外層為VLAN20、內層為VLAN30)。 當訊框到達第一臺交換器,交換器看到外層802.1q的標頭(VLAN20)時,將該標題去除並將帶有內層標頭(VLAN30)的訊框送往trunk port。 當第二臺交換器看到傳來的訊框,根據上面所附的VLAN資訊,將訊框傳送至VLAN30。 Double tagging攻擊範例
第四章 交換器/路由器之安全特性 4.1.5 STP manipulation Spanning Tree Protocol運作範例 什麼是STP (Spanning Tree Protocol)? 當網路存在多個交換器,STP用來建立一棵擴張樹(spanning tree)連接各交換器,讓交換器之間的連接不會有迴圈的產生,讓廣播封包(Broadcast)不會造成廣播風暴(Broadcast storm)。 STP (Spanning Tree Protocol)運作流程 一開始從執行STP通訊協定的所有交換器中選出一個交換器當做「Root Bridge」,接著各交換器透過bridge protocol data units (BPDUs)封包交換,計算一條連到Root Bridge的最短路徑並將會產生迴圈的連接埠設定為blocking狀態。 Root Bridge的挑選方式是根據每個交換器上預先設定的優先權(Priority 0~65535)來決定,數值最小的交換器會被選為Root Bridge。 當擴張樹(spanning tree)在各交換器被建立之後,各交換器的連接埠被設為blocking或是forwarding的狀態,處於blocking狀態下的連接埠無法轉送或接收訊框,但可以接受BPDUs( Bridge Protocol Data Units ) 。 STP (Spanning Tree Protocol)運作範例 從左圖可看出,交換器A為Root Bridge,交換器B、C各自選擇一條最短路徑與Root Bridge相連,交換器B、C之間還有一條連線存在,為了不會有迴圈的產生,交換器B、C將相連接的連接埠設為blocking 。 Spanning Tree Protocol運作範例
第四章 交換器/路由器之安全特性 4.1.5 STP manipulation STP manipulation的目的 攻擊者的主機將自已偽裝成Root Bridge,讓攻擊者的主機能夠收到原本不該收到的訊息,或藉此進行man-in-the-middle attack 。 攻擊者主機不斷發送STP configuration/topology change BPDUs,要求STP上所有的交換器重新計算路徑,可能會造成網路30~45秒的中斷,達到DoS的攻擊效果。 STP manipulation的攻擊範例 如左圖所示,交換器A被選為Root Bridge,交換器A、B要傳送訊框時,是直接互傳給對方。 攻擊者的主機假冒成交換器,廣播STP topology change BPDUs 宣稱他有最低的優先權值。 當其它交換器收到時,會將攻擊者的主機設為Root Bridge,重新計算連接到攻擊者主機的最短路徑;重新計算出來的路徑讓交換器A、B的訊框,不是直接傳送給對方,必須經由攻擊者的主機才能到達,因此攻擊者可以竊聽到原本不能收到的訊息,或執行man-in-the-middle attack。 STP manipulation的攻擊範例
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Secure Access to Router Strong Password Selection Configuration File Protection Remote configuration using SSH Set Up Privileged EXEC and Telnet Passwords Set Up Telnet and Console Timeout Values Remote Access Restrain AAA Access Control Securing SNMP 路由器在企業網路上是一個相當重要的連結裝置,因此管理者在路由器上應該啟動相關的安全防禦功能,避免未經授權的使用者任意竄改路由器的設定值。 例如管理者可以考慮限制登入路由器的方法,如不允許使用Telnet遠端登入;並且對那些被允許用來登入路由器的方法,做相關安全上的設定,如設定密碼,或是需要身份認證,記錄登入路由器的人、其IP位址、登入時間等相關資訊。以下為本小節將要介紹的內容: Strong Password Selection Configuration File Protection Remote configuration using SSH Set Up Privileged EXEC and Telnet Passwords Set Up Telnet and Console Timeout Values Remote Access Restrain AAA Access Control Securing SNMP
4.2.1 Secure Access to Router 交換器/路由器之安全特性 4.2.1 Secure Access to Router Create Strong Password Example: 「We have great course for you!」 「whgc4u!」 Strong Password Selection 設定密碼是最常用也是最基本的安全防禦方法,透過密碼的設定,讓只有知道密碼的人才能夠登入路由器,管理者設定的密碼至少要滿足下列要求: 不能夠太容易被猜出來或是利用暴力破解法得到密碼。 密碼長度至少要6~10字元,以及不要使用在字典當中查得到的單字當作密碼或密碼的一部份,因為暴力破解法通常都是利用字典存在的單字做不同的組合藉以猜出密碼。 。 容易記憶,不須要靠其它額外的方式來記錄密碼。如左圖所示,我們先選擇”We have great course for you!”這樣的一個句子,之後選取每個單字的第一個字母,以及將”for”這個單字以”4”這個數字替代,”you”用”u”替代,我們可以得到”Whgc4u!”這樣的一個密碼。 在擁有許多設備的大型企業網路中,每個設備的密碼更需要合理且有意義,讓管理者能夠容易的記住,因此需要正規化或是演算法來產生出密碼。舉例來說,我們可以使用代碼來代表部門名稱或是位址,例如資訊中心170室的網路設備,可以使用”IC170”這樣的字串做為產生密碼的參數。 在建立密碼之後,若公司的政策是要將密碼以文件記錄等方式留存時,必須確定存取這些文件記錄時也需要相關的安全保護,例如至少對這些文件加密,將能夠存取這些文件的次數設到最低,用暗示的字句來提示密碼,不要將完整的密碼記錄在文件上。 密碼設定範例 Construction Engineering 220 Computational Design 1002 Digital Media Design 403 Electronic Engineering 101 Visual Communication Design 803 CE220 DMD403 VCD803 CD1002 EE101 企業網路設備之密碼設定範例
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Configuration File Protection 路由器的設定檔(configuration file)會儲存管理者對該設備啟動那些安全防禦功能的相關資訊,例如密碼的設定;因此設定檔的備份不應該存放在任何不安全的系統中,如左圖所示,管理者應該在一個安全的檔案伺服器中建立一個專用目錄儲存網路設備之設定檔備份,並將相關檔案加密及設定存取權限。 不要將設定檔留存在TFTP伺服器上,當設定檔傳送到安全的檔案伺服器上後,應立即刪除TFTP伺服器上的設定檔。 CNL Try to access Secure file server Backup configuration CNL4 保護設定檔的方法
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Telnet Remote configuration using SSH 管理者可藉由遠端登入來管理網路,一般經常使用Telnet遠端登入網路設備,然而使用Telnet是相當不安全的,因為Telnet在網路上傳輸的內容皆是以明文的方式傳送,用來登入網路設備的密碼可能會被有心人士竊聽到,如左上圖所示。 基於保護登入密碼的考量,建議以Secure Shell (SSH)取代Telnet來遠端管理網路設備,因為使用SSH連線,訊息在傳輸的過程中是有經過加密,如左下圖所示,因此使用SSH能夠讓管理者在一個不安全的網路環境下建立安全的連線來遠端管理網路設備。 目前有兩種SSH的版本: SSH Version 1 (SSHv1)及SSH Version 2 (SSHv2)。 Login to CNL Password is CNLisGood CNL CNLisGood Umm! I Get Password “CNLisGood” 不安全的遠端登入方法 SSH Login to CNL Password is CNLisGood CNL ad%hj&jl# What is password? 安全的遠端登入方法
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Set Up Privileged EXEC and Telnet Passwords 管理者除了設定密碼以防止任何人遠端登入網路設備之外,還應該執行權限控管,要求登入者若要執行Privileged EXEC,則需要進一步的認證;管理者可以在網路設備設定使用不同於登入密碼的另一個密碼來作權限控管,或是建立AAA TACACS+ 或是RADIUS認證伺服器來執行合法登入者的身份認證及權限控管。 Set Up Telnet and Console Timeout Values 管理者應該設定Console、Telnet連線至網路設備的閒置時間(idle time),若網路設備在閒置時間內沒有收到登入者的任何訊息,則自動斷線,避免登入網路設備者因某些因素暫時離開,讓其他人有機會藉此取得網路設備的控制權。如左圖所示,管理者將Console、Telnet連線的idle time設定為10分鐘,若網路設備在10分鐘內沒有收到任何訊息,則自動斷線。 Away from keyboard 10 minutes. Idle time expired! Disconnect! 設定Console、Telnet連線的idle time
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Remote Access Restrain 管理者可以利用設定ACL (Access Control List),限制可登入網路設備的IP範圍與可使用的通訊協定。如左圖所示,網路管理部門使用的IP位址為192.168.1.0/24,管理者可以利用ACL來限制只有此IP位址範圍的主機才能夠登入路由器,還可以限制登入者只能使用SSH通訊協定執行登入,不允許使用Telnet通訊協定登入。 192.168.2/24 192.168.1/24 Manage department 設定ACL 限制可登入路由器的IP範圍
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router AAA Access Control 管理者可以採用TACACS+或是RADIUS這兩個業界標準,建立AAA伺服器(如左圖所示),對網路設備的存取認證方式及權限控管作更嚴謹的保護措施 。 AAA伺服器提供認證(authentication)、授權(authorization)以及稽核(accounting)服務,使用AAA Access Control的優點如下: 有支援AAA通訊協定的網路設備稱為AAA Client,經管理者設定後,即可使用AAA伺服器提供的服務。 集中式管理網路使用者帳號與密碼。 集中式事件記錄 (logging)。 集中式授權。 Remote User Internet Corporate Network TACACS+ Client Network Access Server TACACS+ Security Server Remote User Internet Corporate Network RADIUS Client Network Access Server RADIUS Server 建設AAA伺服器來執行身份認證及權限控管
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router AAA Access Control (Cont.) 雖然TACACS+與RADIUS有許多相同的功能,但兩者之間還是存在著差異,如左圖所示: TACACS+將整個TACACS+的封包做加密,而RADIUS僅對封包中password的部分做加密。 TACACS+能夠將authentication、authorization、 accounting服務分開使用。 企業網路管理者應該瞭解TACACS+與RADIUS這兩者間的不同,根據公司政策佈署其中一種或是兩種皆採用。 TACACS+ RADIUS Functionality Separates AAA Combines Authentication/Authorization Transport Protocol TCP UDP CHAP Bidirectional Unidirectional Protocol Support Multi-protocol support No ARA No NetBEUI Confidentiality Entire Packet-Encrypted Password-Encrypted Accounting Limited Extensive TACACS+與RADIUS的功能差異 資料來源: www.cisco.com
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Securing SNMP SNMP簡易網管通訊協定為Simple Network Management Protocol的縮寫,SNMP通訊協定是目前使用最為普遍的網路管理通訊協定,它讓管理者可以在TCP/IP網路上遠端監控及設定其管轄範圍內各網路節點的狀態。在SNMP的網管架構中,網路上的設備可分成兩大類:(1) 管理器(Manager),(2)接受管理的代理器(Agent) 。 SNMP管理器主要是負責監視與收集代理器傳回的網路狀態並作分析,而SNMP代理器則負責收集本身所在網域的網路狀態並回報給SNMP管理器。SNMP管理器對其代理器的運作模式有兩種,分別為read-only和read-write。 如左圖所示,早期的SNMP並不是非常安全的協定,管理器遠端控制代理器時,無論是read-only及read-write的運作模式,訊息皆是以明文傳送,而更糟的是訊息內”區域名稱”(community name)的欄位使用眾所皆知的字串,例如 public(for read-only)以及private(for read-write)做為管理器與代理器之間認證的依據. 由於使用不安全的認證方式,SNMP已成為入侵者用來收集網路資訊的主要工具之一,利用SNMP的弱點可以搜集到的資訊包含: MAC address bindings IP address bindings Type of hardware and version of operating system Router interface information Router tables ARP tables Device up time 利用這些資訊,入侵者可以很容易搜索出網路上裝置使用的系統、版號等,然後利用該系統版號某些已知的弱點來做攻擊或是入侵系統的動作。 Model Level Authentication Encryption What Happens V1 noAuthNoPriv Community String No Authenticates with a community string match V2 V3 Username Authenticates with a username authNoPriv MD5 or SHA Provides HMAC MD5 or SHA algorithms for authentication authPriv DES Provides DES 56-bit encryption in addition to authentication based on the CBC-DES (DES-56) standard SNMP版本的比較 資料來源: Cisco Network Security
4.2.1 Secure Access to Router 第四章 交換器/路由器之安全特性 4.2.1 Secure Access to Router Securing SNMP (Cont.) 雖然SNMP有上述之弱點,管理者可以使用下列幾種方式來增加使用SNMP的安全性: 使用最新版本SNMPv3。 利用ACL來限制SNMP訊息的來源處及傳送範圍,如左圖所示,管理者可以在路由器設定ACL限制SNMP訊息只能出現在路由器interface e0/2所連接的網段上(network segment) 。 指定SNMP代理器的哪些介面接受SNMP管理器的存取。 阻擋來自外部網路的SNMP管理器對SNMP代理器的存取。 SNMP connection attempt CNL e0/1 Internet SNMP e0/2 Attacker 利用ACL限制SNMP訊息的來源處及傳送範圍
4.2.2 Router privileges and accounts 第四章 交換器/路由器之安全特性 4.2.2 Router privileges and accounts Set Up User Accounts 在一個企業,可能同時有許多位網路管理者,建議每個網路管理者皆應擁有一組專屬的帳號用來登入路由器;目的是當管理者登入路由器並改變路由器設定,之後能夠從log messages,利用登入時專屬的帳號來追溯是哪位管理者更改設定。另外,在設定這些專屬帳號時應注意下列事項: 設定帳號時千萬要同時建立密碼。 當有管理者離職或職務調動,應立即將其專屬帳號刪除。 Set Up Privilege Levels 每位管理者雖然擁有各自專屬的帳號,但並非每位管理員皆可使用路由器上所有的指令,可依職務高低來給予不同的權限,如左圖所示。在設定管理者對路由器的權限(如可用的指令)時必須注意: 勿將屬於層級較高的管理者才能使用的指令下放給層級較低的管理者使用。 能夠修改路由器設定的指令,應僅慎設定哪些層級以上的人才可以使用,避免讓層級較低的人利用這些指令來修改路由器的設定,將自已的權限提高。 Bryan Lin CNL Account Bryan Chang Lin Privilege 2 3 4 Chang 不同帳號給予不同的權限
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Feature Description Recommendation TCP & UDP small servers Standard TCP/UDP network services: echo, chargen, etc. This is a legacy feature, disable it explicitly. Finger Unix user lookup service, allows remote listing of logged in users. Unauthorized persons don’t need to know this, disable it. HTTP server Some Cisco IOS devices offer web-based configuration. If not in use, explicitly disable, otherwise restrict access. Bootp server Service to allow other routers to boot from this one. This is rarely needed and may open a security hole, disable it. IP source routing Feature that allows a packet to specify its own route. Can be helpful in attacks, disable it. Proxy ARP Router will act as a proxy for layer 2 address resolution. Disable this service unless the router is serving as a LAN bridge. IP directed broadcast Packets can identify a target LAN for broadcasts. Directed broadcast can be used for attacks, disable it. IP unreachable notifications Router will explicitly notify senders of incorrect IP addresses. Can aid network mapping, disable on interfaces to untrusted networks. IP mask reply Router will send an interface’s IP address mask in response to an ICMP mask request. Can aid IP address mapping; explicitly disable on interfaces to untrusted networks. IP redirects Router will send an ICMP redirect message in response to certain routed IP packets. NTP service Router can act as a time server for other devices and hosts. SNMP Routers can support SNMP remote query and configuration. If not in use, remove default community strings and explicitly disable, otherwise restrict access. Domain Name Service Routers can perform DNS name resolution. Set the DNS server addresses explicitly, or disable DNS lookup. 路由器或交換器最重要的工作是快速轉送封包,其餘額外的服務,因為大部份出廠的預設狀態為開啟(enable) ,建議管理者登入路由器及交換器,確定所有非必要性的服務是在停用的狀態(disable),避免提供攻擊者利用額外服務的弱洞進行入侵的管道。 為了讓路由器及交換器更安全,並且不要影響網路設備轉送封包的效能,管理者應該仔細評估企業網路結構與公司安全政策,將不需要的服務和協定移除或停用。例如,在DMZ網路範圍內,通常會建立網頁伺服器,讓使用者利用HTTP連線存取資料,管理者對在DMZ網路範圍內的其它網路設備,就不要開啟可使用HTTP連線管理網路設備的服務。 美國National Security Agency建議管理者,除非必要,否則應該將左表所列之網路設備服務停用,下面小節將說明下列服務被建議停用的理由: Telnet Web Management Interface SNMP (Read-Only) Source Routing IP Directed Broadcast ICMP NTP TCP and UDP Small Servers Finger Service Disable Bootp Server Disable Configuration Auto-Loading Disable Proxy ARP Restrict DNS Service 建議停用網路設備不必要提供的服務 資料來源 http://www.nsa.gov/snac/routers/C4-040R-02.pdf
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Disable Telnet 當公司的安全政策禁止使用不安全的遠端存取方式連接企業網路時,管理者應該關閉網路設備的Telnet服務。 Disable Web Management Interface 許多網路設備提供友善的圖形化介面(Web-based interface),讓管理者能夠使用瀏灠器取代傳統的CLI介面來設定網路設備;然而管理者使用HTTP方式登入網路設備時,所輸入的帳號、密碼在傳輸過程通常是以明文傳送,因此若被攻擊者竊聽到,則攻擊者就能夠利用竊聽到的帳號、密碼以管理者的權限登入網路設備,因此管理者應儘量避免以HTTP的方式登入網路設備,或者關閉HTTP遠端控制網路設備功能。左圖所示為停用路由器HTTP服務的指令。 Connection refused CNL2 CNL3 CNL4 192.168.1.10 http://192.168.1.10 CNL1 CNL4(config)#no ip http server 停用路由器HTTP服務
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Disable SNMP SNMP能夠有效的用來管理網路設備,同樣的對攻擊者也是很好的入侵工具。攻擊者能用SNMP去獲得有用的資訊,例如得知網路設備的設定,甚至能夠更改網路設備的設定。在前面的4.2.1節有提到利用ACL限制SNMP訊息的來源處及傳送範圍,然而在一個需要高度安全層級的網路環境,使用上述的方式也許不夠,必要時將SNMP的服務完全停用。 左圖所示為管理者利用ACL阻擋來自網際網路的SNMP訊息,但允許SNMP訊息在DMZ網路範圍傳送,DMZ通常屬於高風險的網路環境,容易遭受入侵,建議管理者對在DMZ網路範圍內的網路設備停用SNMP的服務。 Disable IP Source Routing 一般當封包在網路上傳送時,路由器會根據封包上的目的端IP位址執行IP lookup來決定要將該封包往何處送。但若發送封包的來源主機使用IP Source Routing功能,有提供IP Source Routing服務的路由器收到該封包後便根據指定的路徑傳送該封包,不需要執行IP lookup;Microsoft文件(MS99-038)指出有心人士可以利用IP Source Routing進行network topology的情資收集或攻擊,因此建議管理者停用路由器的IP Source Routing服務。 http://www.microsoft.com/technet/security/bulletin/fq99-038.mspx SNMP connection attempt SNMP connection attempt SNMP Internet Attacker CNL Attacker 停用DMZ網路範圍內路由器的SNMP服務
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Disable IP Directed Broadcast Directed broadcast能夠讓主機發出廣播封包到指定的LAN中所有主機,一些阻斷式服務攻擊(如smurf)常會利用Directed broadcast達到癱瘓目標主機或網路,因此強烈建議管理者應將此服務停用。 左圖所示為攻擊者的主機送出一ICMP echo request的廣播封包,該封包上的來源端IP位址被設為目標主機(victim)的IP位址,若該封包能夠被傳送到指定的LAN,則該LAN中所有主機都會傳回一ICMP echo reply的封包到目標主機,成為癱瘓目標主機的幫凶。 Disable ICMP Services ICMP是網路管理者用來檢測網路是否異常的一套通訊協定,同樣的,攻擊者也可利用ICMP來獲取網路狀態或進行攻擊。攻擊者常利用ICMP messages的Host unreachable、Redirect及Mask Reply進行網路狀態的情資收集,因此建議管理者應該關閉與untrusted networks連接的路由器介面的ICMP服務。 Host with falsified source address IP directed Boradcast Target Segment Internet Attacker ICMP echo requests to directed broadcast address CNL 停用路由器的Directed broadcast服務
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Disable NTP service 網路設備可透過Network Time Protocol (NTP)來保持時間的正確性及同步。有些網路設備的預設是開啟這項功能,如左上圖所示,若網路設備介面所連接的網路並不存在NTP Master時,應該將該介面的NTP功能關閉。在http://www.ciac.org/ciac/bulletins/l-071.shtml文件明確指出有心人士可利用NTP code的缺陷進行 buffer overflow的攻擊,造成執行NTP的網路設備當機,因此建議管理者評估是否真的需要提供NTP服務,若不需要應將此服務停用。 Disable TCP and UDP Small Servers 在TCP及UDP的通訊協定標準,規範許多不必要的服務(如TCP的echo、chargen,UDP的echo、discard),管理者應該關閉網路設備提供這些服務,減少入侵管道。 Disable Finger Service Finger是以往在UNIX系統用來查詢目前有誰登入,有些網路設備的作業系統也提供這項功能,但沒有權限登入網路設備的users不應該讓他們可藉此服務得知目前網路設備有誰登入,因此管理者應該關閉此項服務。 CNL2 NTP messages CNL CNL3 NTP master Drop NTP messages NTP messages CNL4 停用路由器連接外部網路介面的NTP服務 CNL2 CNL CNL3 NTP master CNL4 Connect 192.168.1.10 finger 192.168.1.10 Connection refused 停用路由器的Finger服務
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Disable Bootp Server Bootp通常是用來讓某些無硬碟的主機或工作站能夠透過網路下載開機程式及作業系統的通訊協定;網路設備也可以被設定成為Bootp server,但攻擊者也可能藉此下載網路設備的作業系統,因此若無需使用,應關閉此項服務。 Disable Configuration Auto-Loading 路由器能夠經由網路或是從記憶體載入startup configuration,但是經由網路載入設定檔是不安全的作法,除非是在一個完全可信任的網路環境下(例如一個獨立的實驗室網路);因此若不需要使用的話,應將此項服務關閉。 CNL2 I need a IOS image. CNL Bootp CNL3 NTP master CNL4 停用路由器的Bootp Server服務
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Disable Proxy ARP 通常主機執行Address Resolution Protocol (ARP)通訊協定來找出目的端主機IP位址對映的硬體位址(MAC address);當目的端主機與送出ARP request封包的主機是在同一個LAN ,目的端主機會自行回覆ARP response封包(傳回目的端主機的硬體位址);反之若目的端主機與送出ARP request封包的主機不是屬於同一個LAN,且路由器有啟動Proxy ARP的服務,則路由器會替代目的端主機回覆ARP response封包(傳回的是路由器介面的硬體位址) 。 大多數的路由器在其所有的介面預設是啟動Proxy ARP服務,建議管理者針對路由器所有介面所連接的網路,評估是否真的需要提供Proxy ARP服務,如左圖所示,不需要提供Proxy ARP服務的介面,應該要將此服務關閉。 Proxy ARP allowed Proxy ARP disallowed Attacker CNL e0/1 e0/2 Attempted spoof e0/3 Proxy ARP allowed 停用路由器連接外部網路介面的Proxy ARP服務
4.2.3 Turn off unneeded services 第四章 交換器/路由器之安全特性 4.2.3 Turn off unneeded services Restrict DNS Service 通常主機執行Domain Name System (DNS)通訊協定來找出目的端主機host name與其IP位址對映的相關資訊;有些路由器提供DNS lookup服務,但是當送出DNS query封包其上的目標位址(destination IP)預設值為廣播位址255.255.255.255,然而DNS並未提供認證與保證資料一致性的安全機制,所以如果有攻擊者假冒DNS Server,路由器可能會得到錯誤的回應資料,讓攻擊者有機可乘;因此建議管理者若要在路由器開啟DNS lookup服務,應該要指定可信任的DNS Server位址,不要使用預設值,若沒有可信任的DNS伺服器存在的話,那就直接將DNS lookup服務關閉。 Untrusted DNS 192.168.1.100 CNL2 CNL CNL3 DNS query Trusted DNS 192.168.1.30 CNL4 192.168.1.10 限制路由器只能向可信任的DNS伺服器送出DNS query封包
4.2.4 Routing protocol authentication 第四章 交換器/路由器之安全特性 4.2.4 Routing protocol authentication 如左圖所示,早期路由器執行的路由協定(routing protocols)沒有認證機制(例如RIPv1),攻擊者能夠藉由送出偽造的routing update封包,竄改路由器上的路由表(routing tables),造成流經路由器的封包可以被重新導向到任何攻擊者想送往的地方。保護路由器上的routing table完整性有兩種最基本的方法: 只使用static routes,適用於小型網路。 選擇使用提供認證機制的routing protocols,這能夠保證路由器只會處理從合法來源送來的routing update封包,而丟棄偽造的routing update封包。 I have route to 192.168.1.1/24 Hop count = 1 Routing protocol : RIPv1 CNL CNL1 CNL2 Attacker To 192.168.1.1/24 CNL3 CNL4 192.168.1.1/24 攻擊者偽造routing update,竄改路由器CNL4上的路由表 31
4.2.4 Routing protocol authentication 第四章 交換器/路由器之安全特性 4.2.4 Routing protocol authentication Static routes是管理者在路由器上設定到某特定網路的封包該經由路由器那個interface轉送,static routes不會被偽造的routing update影響;然而若僅使用人工設定的static routes會造成管理上的困難,這是因為當網路中的一個節點故障(例如路由器損壞),可能造成整個網路傳輸的中斷,管理者必須重新設定static routes來恢復網路連線。建議管理者在一個大型的網路,b若有設定static routes,最好也要設定路由器執行有認證機制的routing protocols,如此一來,若網路架構有所變動,路由器能夠自動重新選擇可用路徑, 不須管理者介入。 左下表為有認證機制的routing protocols,管理者可以設定路由器執行以下任一種Routing protocol,以防止來源不明、未經授權或假的routing update竄改路由器上的路由表(routing tables) : OSPF RIPv2 Enhanced IGRP BGP I have route to 192.168.1.1/24 Hop count = 1 Routing protocol : RIPv2 CNL CNL1 Unauthenticated messages CNL2 Attacker To 192.168.1.1/24 CNL3 CNL4 192.168.1.1/24 Routing Protocol with Authentication OSPF RIPv2 Enhanced IGRP BGP 提供認證機制的routing protocols 32
4.2.5 Network Address Translation 第四章 交換器/路由器之安全特性 4.2.5 Network Address Translation Internet 防火牆 內部網路 外部網路 NAT Source address 192.168.100.2 200.100.50.25 主機B 主機A 192.168.100.3 NAT (Network Address Translation) NAT讓內部網路的主機可使用private IP位址,但是當要與外部網路的主機通訊時,送出的封包必須先經由執行NAT的主機將封包上的Private IP位址轉換成Public IP再送到外部網路;接收的封包也必須先經由執行NAT的主機將封包上的Public IP位址轉換成Private IP再送到內部網路。使用NAT可以增強網路的安全防護,這是因為經由NAT送出的封包,顯示的都是Public IP位址,增加攻擊者收集內部網路主機情資的困難度。 左圖所示為管理者在防火牆設定執行NAT機制,連外網路只有一個Public IP位址(200.100.50.25),經由NAT內部網路的主機A(192.168.100.3)與主機B(192.168.100.2)對外通訊時都是使用此Public IP位址。 防火牆執行NAT機制 33
第四章 交換器/路由器之安全特性 總結 本章第一節介紹Layer 2可能會遭受到的攻擊,例如有心人士利用交換器執行的通訊協定其本身的弱點進行入侵行為,傳送偽造的訊息給交換器,進行man-in-the-middle attack、竊聽、DoS等網路攻擊。 本章的第二節主要是介紹如何設置一個安全的路由器,例如實現安全登入路由器的機制;建立管理者的專屬帳號與權限設定;將路由器不需要提供的服務關閉,以避免攻擊者利用服務本身存在的弱點入侵路由器,進行更改設定等不法行為;使用具有認證功能的路由器通訊協定(routing protocol);內部網路的主機使用private IP位址,增加收集網路情資的困難度。
第四章 交換器/路由器之安全特性 參考資料 「Securing Network Switches.ppt」 「Mitigating Network Attacks.ppt」 「Mitigating Layer 2 Attacks.pdf」 「Network Attacks and Mitigation.ppt」 「Preventing STP Forwarding Loops.ppt」 「Protecting Against VLAN Attacks.ppt」 「Protecting Against Spoof Attacks.ppt」 「Configuring AAA on Cisco Routers.ppt」 「Describing STP Security Mechanisms.ppt」 「Securing Management and Reporting Features.ppt」 「Mitigating Threats and Attacks with Access Lists.ppt」 「Securing Cisco Router Installations and Administrative Access.ppt」 「Disabling Unused Cisco Router Network Services and Interfaces.ppt」 「http://www.ciac.org/ciac/bulletins/l-071.shtml/」 「http://www.cisco.com/warp/public/707/cisco-sa-20020508-ntp-vulnerability.shtml/」 「http://www.nsa.gov/snac/downloads_all.cfm」Security Configuration Guides 「http://www.isecutech.com.tw/feature/view.asp?fid=571」不可埋沒的資安寶藏-路由器紀錄 「WHITE PAPER: IRONSHIELD BEST PRACTICES HARDENING FOUNDRY ROUTERS & SWITCHES」,Philip Kwan 「http://www.cisco.com/en/US/docs/ios/12_3t/12_3t4/feature/guide/gt_login.html」Cisco IOS Login Enhancements 「http://www.cisco.com/en/US/products/hw/switches/ps708/products_white_paper09186a008013159f.shtml#wp39054」VLAN Security White Paper 35