網絡基礎設施安全指南
一、前言
當前,新漏洞頻出,被攻擊者加以利用,而安全功能和設備保護方法也與時俱進,不斷革新,進而,網絡安全指南也要持續更新。錯誤配置、不當配置處理和弱加密密鑰會導致整個網絡中的漏洞暴露無遺。所有網絡都有被入侵的風險,尤其是設備沒有妥善配置和維護時。管理員角色對于保護網絡免受攻擊至關重要,需要配備專門人員來保護網絡上的設備、應用程序和信息。
本報告介紹了總體網絡安全和保護網絡設備的最佳實踐,管理員可以此為參考防止攻擊者利用其網絡。雖然本文提供的是通用指導,適用于各種網絡設備,但僅以思科互聯網絡操作系統(IOS)設備為例,就所提建議給出了一些示例命令。
1.1 關于零信任
“零信任”是一種安全模型、一套系統設計原則以及一種協調的網絡安全和系統管理策略,默認傳統網絡邊界內外均存在威脅。美國國家安全局(NSA)完全支持零信任安全模型,本報告中的大部分指導可以按照零信任指南中的建議應用于各種邊界。不過,本報告側重于提供指導,緩解現有網絡的常見漏洞和弱點。隨著系統負責人引入新網絡設計以實現更成熟的零信任原則,本指南也會相應修改。
二、網絡架構與設計
實現多層防御的安全網絡設計對于防御威脅和保護網絡內的資源至關重要。對于網絡邊界設備和內部設備,設計均應遵循安全最佳實踐和零信任原則。
2.1 安裝邊界和內部防御設備
網絡需要大量的防御策略來保護一個個組件及其包含的信息。應在網絡邊界實施多層防御,以抵御外部威脅,監控和限制出入流量。
NSA建議根據安全最佳實踐在網絡邊界配置和安裝安全設備:
- 安裝邊界路由器,實現對外部網絡(例如互聯網服務提供商(ISP))的連接。
- 在整個網絡中部署多層下一代防火墻,限制出入流量,檢查網絡區域之間的所有內部活動。每一層都應該利用不同廠商來防止攻擊者利用同一個未修補漏洞進入內部網絡。
- 將可公開訪問的系統和出站代理放置在一個或多個非軍事區(DMZ)子網的防火墻層之間,這樣便可合理控制外部設備、DMZ設備和內部系統之間的訪問。
- 實施網絡監控方案,例如網絡入侵檢測系統(NIDS)、流量探針或全包捕獲設備,記錄和跟蹤出入流量。
- 部署多個專用遠程日志服務器,以便關聯不同設備的活動,檢測橫向移動。
- 在核心區域部署冗余設備,確保可用性。若配置為負載均衡模式,可提高網絡吞吐量,降低延時。
2.2 將相似網絡系統歸為一組
網絡中的相似系統應在邏輯上分為一組,防止來自其他類型系統的攻擊性橫向移動。攻擊者會針對更容易被利用的系統,如打印機,在進入目標后進一步移動到網絡上的其他系統。合理的網絡分段可大大降低攻擊者進入和利用這些其他系統的能力。此外,若將不同類型的系統按邏輯分組,則它們之間的訪問限制會更易于管理、控制和監視。
NSA建議將相似系統劃分到子網或虛擬局域網(VLAN),或通過防火墻或過濾路由器物理分隔各子網。工作站、服務器、打印機、電信系統和其他網絡外圍設備應相互隔離。運營技術,如工業控制系統,通常需要與其他信息技術和高風險網絡(如互聯網)隔離開來。這種物理隔離提供了更強的保護,因為攻擊者要繞過訪問限制必須突破子網之間的中間設備。在內部路由器、交換機或防火墻上配置訪問限制,僅允許必要端口和協議以執行網絡操作或有效完成任務。訪問控制列表(ACL)可能需要復制并直接應用于交換機以限制VLAN之間的訪問,或者應用于在內部子網之間執行路由的核心路由器。
2.3 清除后門連接
后門網絡連接位于不同網絡區域中的兩個或多個設備之間,這些網絡區域通常具有不同類型的數據和安全要求。入侵設備后,攻擊者可以使用此連接繞過訪問限制,進入網絡其他區域。外部邊界路由器不僅連接到ISP,也直接連接到內部或管理網絡,這就是一個后門網絡連接。攻擊者若能入侵此外部邊界路由器,就可能會繞過所有防火墻進入到內部網絡。
NSA建議清除所有后門網絡連接,并謹慎連接具有多個網絡接口的設備。檢查設備的所有網絡接口是否具有相似安全級別,或者中間設備是否對不同網絡區域進行了邏輯和物理隔離。
2.4 使用嚴格的邊界訪問控制
網絡邊界設備是安全模型中的基本元素,應互相補充,通過實施ACL來調節網絡流量的進出。這些訪問控制規則集應明確配置為僅允許支持網絡任務所必須的服務和系統。如果防火墻和邊界路由器配置的網絡安全策略不足,會導致不必要的內部網絡進出,增加網絡入侵和信息收集的風險。
NSA建議,審慎考慮可以建立哪些連接,配置規則集僅允許哪些連接,同時拒絕其他所有連接。使用這種方法,可以用一條規則拒絕多種連接,而不需要為每個連接創建單獨的拒絕規則。若需要動態應用其他邊界規則集終止或中斷攻擊,NSA建議使用入侵防護系統(IPS)。
NSA還建議,此類規則集的日志應至少包括拒絕或丟棄網絡流量的所有規則,并包括管理員訪問關鍵設備的成功或失敗信息。
2.5 實施網絡訪問控制(NAC)方案
攻擊者若想攻入網絡,必須通過網絡的外部邊界或從網絡內部獲得訪問權限。NAC方案可防止未授權物理連接,監控網絡上已授權的物理連接。
NSA建議采用NAC方案識別和驗證連接到網絡的各臺設備。端口安全機制可在交換機上實現,及時發現通過設備的媒體訪問控制(MAC)地址連接到網絡的未授權設備。
然而,端口安全會很難管理。合法網絡端口(例如時常更改的聯網設備,如會議室)可能被攔截,增加支持工作量。此外,攻擊者也能通過欺騙MAC地址繞過這種機制。更穩健的方案是利用802.1X,基于安裝在設備上的可信數字證書對設備進行認證。雖然證書的生成和安裝加大了方案的實現難度,但它比端口安全更容易管理,提供了更高級別的保證。
2.6 限制和加密虛擬專用網絡(VPN)
VPN網關通常可以通過互聯網訪問,容易遭遇網絡掃描、暴力嘗試和零日漏洞等網絡威脅。為防護這些漏洞,管理員應禁用所有不必要的功能,并對流向VPN網關的流量采用嚴格的流量過濾規則。
NSA建議,根據需要限制VPN網關對用戶數據報協議(UDP) 500端口、UDP 4500端口、封裝安全負載(ESP)等端口的訪問。
盡可能僅接受已知VPN對端IP地址發來的流量。若遠程對端IP地址未知,就無法將遠程訪問VPN添加到靜態過濾規則中。若無法將流量匹配到具體IP地址,在VPN網關前面部署IPS來監視畸形IPsec報文,檢查IPsec會話協商。
所有IPsec VPN都需要配置IPsec策略和互聯網密鑰交換(IKE)策略,確定在建立IPsec隧道時的各階段協商方法。如果將任一階段配置為允許弱加密,則整個VPN都可能面臨風險,數據機密性受到影響。每條IKE策略至少包括三個關鍵部分:
1. Diffie-Hellman算法/組
2. 加密算法
3. 哈希算法
以下是國家安全系統委員會15號政策(CNSSP 15)的建議最低設置:
- Diffie-Hellman組:16,具有4096位模冪(MODP)
- Diffie-Hellman組:20,具有384位橢圓曲線群(ECP)
- 加密:高級加密標準(AES)-256
- 哈希:安全哈希算法(SHA)-384
根據CNSSP 15的最低要求,Diffie-Hellman 15組也可以接受,但由于已發現互操作性問題,不建議使用。
可以在兩個端點之間建立VPN隧道,為不可信網絡(如互聯網)提供加密信道。在建立VPN方案、策略或轉換集時,確保其遵循CNSSP 15建議。CNSSP 15要求在互聯網工程任務組(IETF)的《商業國家安全算法(CNSA)套件互聯網協議安全(IPsec)加密》文件草案中進行了解釋。
為了防止它們無意中被使用,請使用以下配置命令禁用互聯網安全關聯和密鑰管理協議(ISAKMP)和IKEv2的默認策略和提議:
no crypto isakmp default policy
no crypto ikev2 policy default no crypto ikev2 proposal default
no crypto ipsec transform-set default
注意:如果禁用默認策略,則僅使用明確配置的策略。
使用以下示例配置命令建立IKEv2提議、策略和配置文件:
crypto ikev2 proposal
encryption aes-gcm-256 group [16|20]
crypto ikev2 policy
proposal
crypto ikev2 profile match identity remote ... authentication remote ... authentication local ...
配置文件的配置將取決于為其配置的網絡,并且必須具有本地和遠程身份驗證方法以及match語句。還可以建立單獨的密鑰環,應用于為多個預共享密鑰創建的配置文件。
使用以下示例配置命令建立IPsec轉換集:
crypto ipsec transform-set esp-gcm 256
mode tunnel
使用以下示例配置命令創建IPsec配置文件,利用上面定義的IKEv2配置文件和IPsec轉換集:
crypto ipsec profile
set transform-set
set pfs group16
set ikev2-profile
IPsec配置文件應使用以下配置命令應用于隧道接口:
interface
tunnel protection ipsec profile
no shutdown
三、安全維護
老舊的軟硬件可能包含已知漏洞,讓攻擊者可以輕而易舉地利用網絡。定期將軟硬件升級到廠商支持的較新版本,可以緩解這些漏洞。此外,軟件下載后,在使用前和使用過程中應驗證其完整性。應定期進行安全維護,確保設備持續安全運行。
3.1 驗證軟件和配置完整性
攻擊者通過篡改操作系統文件、內存中運行的可執行代碼或加載網絡設備操作系統的固件或引導加載程序,可將惡意軟件引入網絡設備。網絡設備上的軟件被惡意修改后,可能被攻擊者用來破壞數據完整性、泄露敏感信息或導致拒絕服務(DoS)。
NSA建議,將文件的加密哈希與廠商發布的已知合法哈希進行比較,驗證設備上安裝和運行的操作系統文件的完整性。升級操作系統文件時,在安裝前后對文件執行相同的完整性驗證,確保未進行任何篡改。可以使用以下exec命令在操作系統映像文件上計算基本的在線哈希:
verify /sha512
較老的設備可能只支持消息摘要5(MD5)哈希,可以使用以下exec命令計算這種哈希:
verify /md5
可以將計算出的哈希與https://www.cisco.com/網站支持頁面的相關文件信息進行比較。
這些軟件修改操作較為復雜,攻擊者一般選擇更改配置,因為這會比較簡單。配置更改可能意味著設備已被入侵。
NSA還建議實施配置更改控制過程,安全創建設備配置備份,用以檢測惡意更改。需要更改配置時,記錄更改并描述授權、目的和任務理由。將當前設備配置與最近的備份進行比較,定期驗證是否存在修改。若發現可疑更改,驗證是否經過授權。
3.2 妥善維護文件系統,進行引導管理
許多網絡設備至少有兩種配置,其中一種或多種保存在持久性存儲中,一個活動副本運行在內存中。應保存或提交對配置的永久更改,防止設備重啟或斷電時出現配置不一致。可以使用以下exec命令將配置更改保存在設備上:
copy running-config startup-config
針對臨時性更改,NSA建議,在更新的配置行之前插入注釋,說明更改原因和計劃刪除時間,之后根據實際情況刪除注釋和臨時更改。若設備不支持注釋,在配置的備份副本中插入注釋,與設備上的版本進行比較。遠程復制配置時使用加密協議,例如安全文件傳輸協議(SFTP)或安全復制協議(SCP)。必須保護此備份或歸檔配置機制以及備份存儲庫,防止未授權訪問。
NSA還建議,檢查各臺設備上是否存在未使用或不必要的文件,若有,使用以下exec命令刪除:
dir /recursive all-filesystems
delete
設備上存儲的較老的操作系統文件或備份配置文件很可能不再需要,應予刪除。設備上若存在多個版本的軟件,攻擊者就可能重新加載老舊版本,在較新版本的操作系統中再次引入修補過的漏洞。
3.3 維護最新的軟件和操作系統
維護最新的操作系統和穩定的軟件可防止關鍵漏洞和安全問題,因為這些漏洞和問題會在新版本修復。運行老舊操作系統或有漏洞軟件的設備容易受到各種已知漏洞的影響,攻擊者通常利用這些設備進入網絡。
NSA建議,將所有設備上的操作系統和軟件升級到廠商提供的最新穩定版本。升級操作系統可能需要額外的硬件或內存升級,獲得新軟件版本可能需要與廠商簽訂維護或支持合同。大多數網絡基礎設施設備不支持自動更新功能,需要向廠商申請并安裝最新軟件。
有關最新思科操作系統的文件列表,參見https://www.cisco.com/網站的支持頁面。
3.4 及時了解廠商支持的硬件
廠商最終會停止支持某些硬件平臺,如果出現故障,這些設備將無法維修。除了設備不穩定和內存需求問題外,由于缺乏軟件更新修復已知漏洞,攻擊者利用設備的風險也會增加。廠商支持的較新的硬件平臺改進了安全功能,包括防護已知漏洞。
NSA建議,一旦廠商發布生命周期終止(End-of-Life)通知或宣布不再支持某個設備,根據廠商建議制定計劃,升級為較新設備或更換受影響設備。應立即升級或更換老舊或已停止支持的設備,確保網絡服務和安全支持的可用性。
有關思科尚在支持的設備列表,參見https://www.cisco.com/網站的支持頁面。
四、認證、授權和記賬(AAA)
集中式AAA服務器提供了一種綜合機制來管理對設備的管理訪問,賬號對于攻擊者來說更難突破,因為憑證并非直接存儲在設備上。合理配置這些服務器為管理和監視訪問提供了權威來源,提高了訪問控制的一致性,減少了配置維護工作量,降低了管理成本。所有設備應首先通過以下示例命令配置為使用最新的AAA服務:
aaa new-model
應用上述配置后,設備將不再使用傳統的身份認證和授權方法。
4.1 實施集中式服務器
所有設備應配置為使用集中式AAA服務器。NSA建議,在網絡上至少安裝兩臺AAA服務器,以確保可用性,協助檢測和預防攻擊活動。如果一臺服務器因定期維護或其他原因不可用,其余服務器可繼續提供集中式AAA服務。服務器應:
- 配置為使用專門的復雜預共享密鑰對設備進行認證,確保只有經過授權的設備才能使用AAA服務(參見5.6 創建強密碼)。
- 配置為使用相同協議(如TACACS+、RADIUS或LDAP)以保證一致性,并盡可能使用加密傳輸(例如RadSec、DIAMER、LDAPS或IPsec封裝)。
- 相互同步,確保用戶憑證和訪問控制的一致性。
具有多個AAA服務器的服務器組可以使用以下配置命令進行配置:
aaa group server {tacacs+ | radius | ldap}
server-private key
server-private key
一些較老的設備可能在配置中使用關鍵字tacacs-server或radius-server,這就沒法為每個服務器分配單獨的密鑰。
NSA建議,用上述配置格式替換這些行,并為每個服務器分配一個單獨的預共享密鑰。若攻擊者獲得一臺服務器的預共享密鑰,則需要撤銷該密鑰,但設備可以繼續使用具有不同密鑰的其他服務器。
4.2 配置身份認證
身份認證是指驗證個人或實體的身份。所有設備應首先配置為使用AAA服務的集中式服務器,并且只有在所有集中式服務器不可用時,才使用本地管理員賬號。這同樣適用于特權級認證;只有在所有集中式服務器都不可用的情況下,設備才應使用本地特權級密碼。這種優先順序將防止攻擊者獲得本地管理員賬號憑證后登錄到設備,因為訪問通常由AAA服務器控制。
NSA建議,將login和enable(特權)訪問配置為集中式認證,并作為主要方法,如以下配置命令所示:
aaa authentication login default group local
aaa authentication enable default group enable
使用default關鍵字可以確保在未明確指定認證列表的情況下,在所有實例中全局應用配置。如果改用自定義命名列表,則需要明確配置將此列表應用于使用AAA的所有實例,這可能導致某些管理服務配置不正確,并存在入侵風險。若未明確配置應用自定義命名列表,則始終應用default列表。
應該是AAA服務器組(之前定義)的自定義名稱,其中包括集中式AAA服務器的IP地址及相關密鑰。
不要使用line關鍵字,因為這些密碼未安全存儲在配置中,無法問責。
切勿使用none關鍵字,因為它會禁用身份認證。
4.3 配置授權
授權是指驗證個人或實體是否具有訪問特定資源或執行特定操作的權限。授權的管理員命令取決于組織、實際情況和設備用途。至少要對啟動exec會話(Shell)和執行其他Shell命令(包括配置命令)進行授權。
NSA建議,合理限制合法管理員的操作權限,防止攻擊者使用已入侵賬號執行非法操作。大多數管理員使用1級權限進行用戶級訪問,使用15級權限進行特權級訪問。通過以下配置命令對這兩個級別以及管理員使用的任何其他權限級別進行授權:
aaa authorization exec default group local
aaa authorization commands 1 group local
aaa authorization commands 15 group local
aaa authorization config-commands
應使用default列表來確保配置全局應用。
應該是AAA服務器組(之前定義)的自定義名稱,其中包括集中式AAA服務器的IP地址及相關密鑰。
必要時,可在local關鍵字之后應用if-authenticated關鍵字。如果管理員成功登錄,但所有集中式AAA服務器都不可用,則這些服務器將無權再執行命令。if-authenticated關鍵字確保已認證用戶繼續執行命令。但是,要謹慎使用此關鍵字,因為它可能會為管理員提供非集中式AAA服務器上配置的訪問權限。
切勿使用none關鍵字,因為這會禁用授權。
4.4 配置記賬
記賬是指記錄所有訪問的相關資源或執行的操作,從而實現對管理員的問責。不要等待事件停止后再生成記錄,因為某些操作操作可能需要很長時間才能完成。還可以記錄并收集其他幾種類型的事件,但這取決于設備的組織和用途。
NSA建議,集中記錄系統配置更改,并按流程定期審查這些記錄,發現潛在的惡意活動。至少應在啟動和停止exec會話(Shell)以及啟動和停止Shell命令時收集記賬記錄。
與授權類似,必須使用以下配置命令對所有管理員權限級別應用commands記賬:
aaa accounting exec default start-stop group
aaa accounting commands 1 default start-stop group
aaa accounting commands 15 default start-stop group
應使用default列表來確保配置全局應用。
應該是AAA服務器組(之前定義)的自定義名稱,其中包括集中式AAA服務器的IP地址及相關密鑰。
4.5 應用最小權限原則
最小權限是一種安全概念,指對個人或實體分配執行授權任務所需的最低級別的訪問權限。許多常見任務不需要特權級訪問,例如查看網絡接口的狀態或路由表。實際應用中,管理員最初登錄應該使用最低權限級別。這就提供了一層額外保護,攻擊者必須繞過該層才能完全入侵設備。它還可以防止管理員無意中更改了設備配置。
NSA建議,將所有賬號的權限級別設置為1或0,管理員若需要更高權限執行特定任務,則需要輸入額外憑證。應定期檢查權限級別,刪除不必要的訪問權限,防止較低權限用戶無意中使用了特權級別命令。
可以使用privilege關鍵字更改單個本地賬號的權限級別。使用以下配置命令為本地賬號戶分配1級權限:
username privilege 1
注意:這并不會更改賬號密碼。
所有以1級權限登錄的管理員賬號都需要執行enable命令,要提升到更高權限需要提供額外憑證。除了檢查所有本地管理員賬號并確保只有最低級別權限外,還需要檢查在集中式AAA服務器上配置的所有賬號。
同樣,這也適用于控制臺(CON)、輔助(AUX)和虛擬終端(VTY)線路。AAA授權若配置正確,不應依賴于線路配置。但是,最佳實踐是使用以下配置命令將線路配置為最低級別權限:
line con 0
privilege level 1
line aux 0
privilege level 1
line vty 0 4
privilege level 1
line vty 5 15
privilege level 1
根據設備的不同,可能還需要將類似配置應用于其他線路。如果特定設備上不存在VTY線路5到15,則無需執行這些命令。
4.6 限制身份認證嘗試
限制身份認證嘗試次數并引入登錄延遲可以防止攻擊者對設備暴力破解密碼以獲取訪問權限。
NSA建議,將遠程管理登錄失敗次數限制為3次或更少,以下配置命令以思科IOS設備為例:
aaa authentication attempts login 3
用以下配置命令對安全外殼(SSH)會話進行類似配置:
ip ssh authentication-retries 3
NSA還建議,使用以下配置命令在兩次登錄嘗試之間設置至少1秒延遲,這會大大緩解暴力破解:
login delay 1
五、本地管理員賬號和密碼
本地賬號對網絡設備的管理至關重要。如果集中式身份認證失敗,管理員可使用本地賬號訪問網絡設備,解決和診斷網絡問題。本地賬號應該具有唯一性,使用單獨的復雜密碼進行身份認證,可問責到具體管理員。如果組織沒有密碼策略,則需要建立并實施新策略。根據需要,定期審查和修訂策略。
本節主要關注本地賬號和密碼。傳統的網絡設備使用老方法來管理本地賬號,可能不支持建議的密碼設置、更改和驗證機制。這些本地賬號過于簡單,需要采用其他方法進行保護。這與集中式AAA服務器不同,在集中式AAA服務器中可以有效實現多因素身份認證、復雜密碼、歷史密碼比較等機制。
5.1 使用不同的用戶名和賬號設置
大多數設備都具有公開的默認管理憑證,且通常授予對設備的完全管理訪問權限。這些設置可以讓攻擊者輕松進入網絡進行連接,可能獲得特權級別的訪問權限,以匿名監視或重新配置設備。
NSA建議,刪除所有默認配置,為每臺設備配置不同的安全管理員賬號。在未更改默認管理設置和賬號的情況下,請勿將任何新設備接入網絡。請注意,某些設備上的默認用戶賬號無法刪除。
5.2 更改默認密碼
大多數設備都用默認密碼,有時甚至沒有密碼,以便管理員在初始配置前訪問。其中許多密碼眾所周知,通常無需更改設備即可正常工作。這些設備是惡意自動掃描器(僵尸網絡)攻擊的主要目標,因為默認憑證允許特權訪問。
NSA建議,刪除所有默認密碼,為不同的訪問級別(包括用戶和特權級別)設置復雜、安全的不同密碼。此外,引入新設備時,需要在設備聯網之前更改默認用戶密碼和特權級別密碼。
5.3 刪除不必要賬號
某些設備存在不必要賬號。這些賬號或很少使用或根本沒用,它們的安全性往往被忽視。盡可能重命名或刪除與管理員無關的默認賬號。
NSA建議,僅保留必要的設備登錄賬號,其他應刪除。當管理員離開組織或改變角色時,應禁用或刪除關聯賬號。在思科IOS設備上,使用以下配置命令刪除本地賬號:
no username
5.4 使用單個賬號
賬號可單獨使用,也可在組內共享。但是,如果多個管理員使用組賬號訪問設備,則無法問責到人,因為配置更改無法追溯到個人。因此,攻擊者會攻擊組賬號,以獲得對設備的非法訪問權限。
NSA建議,禁用所有共享或組管理員賬號,并為每個管理員分配一個不同的賬號進行配置更改,確保每臺設備都可問責到人。如果確需組賬號,NSA建議對這些賬號進行監控,及時發現可疑活動。為每個管理員創建備份本地賬號可能不夠現實,但所有管理員共享單個組賬號的話,無法問責到人。
NSA還建議,僅在集中式AAA服務器不可用的緊急情況下才使用本地賬號。在這種情況下,本地緊急賬號密碼應由無設備直接訪問權的可信個人維護。管理員可以請求使用本地賬號和密碼,緊急情況結束后,可信個人可隨之更改密碼。這會防止密碼被重復使用,確保責任到人。所有其他的身份認證請求都應通過集中式AAA服務器進行。
5.5 使用安全算法存儲密碼
密碼通常以明文、加密或單向哈希的形式存儲在設備配置或本地數據庫中。切勿使用明文,有些加密或哈希函數安全性較弱,用公共工具很容易破解。攻擊者會使用網絡分析程序或入侵存儲配置文件的中央管理系統,從配置或本地數據庫中收集密碼或哈希。明文密碼和弱算法密碼很容易被破解,用于獲得用戶或特權級別的設備訪問權限。思科IOS支持以下單向哈希和加密類型:
- 0類密碼:以明文存儲,不應使用
- 4類密碼哈希:容易破解,不應使用
- 5類(MD5)密碼哈希:僅限于不支持6、8或9類的老操作系統,其他系統避免使用
- 6類密碼:AES加密,僅用于需要加密而不是哈希的情況(例如VPN密鑰),或不支持8類的系統上(這通常意味著9類也不可用)
- 7類密碼:即使加密也容易逆向,不應使用
- 8類(SHA-256 PBKDF2)密碼哈希:建議使用
- 9類(Scrypt)密碼哈希:未經國家標準與技術研究院(NIST)批準
NSA建議,使用現有的最安全算法存儲設備上的所有密碼,切勿以明文形式存儲。單向哈希算法是不可逆的,通常用于存儲密碼。但是,如果單向哈希算法不可用,則應使用強唯一密鑰加密密碼。
創建用戶賬號或分配密碼時,某些設備需要指定算法。應特別注意特權賬號,但本指南也適用于用戶賬號、管理口、經過認證的路由協議、VPN密鑰以及設備配置中可能指定密碼的任何地方。
使用以下配置命令防止明文密碼:
service password-encryption
使用以下配置命令存儲本地賬號的8類密碼哈希:
username algorithm-type sha256 secret
注意,algorithm-type關鍵字未存儲在保存的nvram:/startup-config配置中;相反,在哈希密碼之前,將secret關鍵字替換為secret 8。
如果需要可逆加密密碼(例如VPN密鑰),使用以下配置命令設置6類AES而不是7類密碼:
password encryption aes
key config-key password-encrypt
應為唯一且復雜的密碼,用于生成加密6類密碼的密鑰。不要將它設置為容易猜測的弱密碼,且不應默認,也不要在其他地方復用。攻擊者一旦猜出密鑰,就能解密存儲在配置中的所有6類密碼。密鑰設置后,通常不需要保留。
注意:key config-key password-encrypt配置命令未存儲在保存的nvram:/startup-config配置中。
由于無需保留,NSA建議為每個設備配置單獨的密鑰,防止攻擊者使用相同的密鑰解密所有設備上的6類密碼。請注意,密鑰更改后,需要重新手動設置6類加密密碼。
5.6 創建強密碼
使用弱密碼的設備容易被入侵。攻擊者可能會輕松猜出弱密碼或使用公開可用的密碼破解工具(例如字典或暴力破解)進行破解。一旦獲得特權訪問,攻擊者就能更改配置,對網絡上的其他設備造成潛在入侵風險。
NSA建議,為不同的訪問級別(包括用戶和特權級別)設置不同的復雜密碼。這同樣適用于路由身份認證、時間同步、VPN隧道、簡單網絡管理協議(SNMP)團體名,以及配置中存儲的任何其他密碼。密碼應滿足以下復雜性要求:
- 使用多種類型的字符(大寫、小寫、數字和特殊字符)
- 至少包含15個字符
- 不使用未修改的單詞或首字母縮略詞
- 非相鄰按鍵組合
- 與用戶名不同
- 與網絡、組織、位置、當地運動隊或其他功能標識符無關
- 與其他地方使用的最后一個或多個密碼不相同或類似
- 非默認密碼、空白密碼或眾所周知的密碼
對于通過集中式AAA服務器管理的密碼,組織的密碼策略可能并不要求遵守所有這些建議,尤其是當與多因素身份認證等結合時。上述建議至少適用于網絡設備配置中存儲的、無集中安全控制措施的本地賬號和密碼。
NSA強烈反對使用SNMPv1或v2c。更多信息,參見7.1禁用明文管理服務和7.8刪除SNMP讀寫團體名。
了解網絡、位置、程序等的攻擊者可以輕松猜出(或知道)相關術語,進而破解密碼。
NSA還建議,定期檢查弱密碼,強制執行組織的密碼策略。在設置新密碼之前,檢查密碼的復雜性,網絡管理員應定期檢查網絡設備配置,了解弱密碼算法的使用情況。
5.7 使用不同密碼
將同一密碼分配給多個賬號或多個訪問級別會影響問責和授權。如果管理員通過未加密協議訪問設備,攻擊者會使用網絡分析程序從網絡流量中收集密碼。如果獲得用戶級訪問權限,攻擊者可能會用相同密碼獲得特權訪問權限。
將同一密碼分配給多個設備,攻擊者能夠輕而易舉地同時入侵多臺設備。如果將同一密碼分配給大多數設備,攻擊者只需破解一個密碼即可獲得對所有這些設備的特權訪問。
NSA建議,為每臺設備的不同賬號和特權級別分別分配復雜、安全的密碼。
NSA還建議,檢查不同賬號和訪問級別以及多個設備是否復用同一密碼。相同的哈希可能表示存在密碼復用情況。
5.8 根據需要修改密碼
過往經歷表明,定期修改密碼會導致使用弱密碼,如果用戶遵循5.6 創建強密碼,可以不強制定期修改密碼。一開始就創建強密碼可以有效降低密碼泄露風險。
NSA建議,如果密碼或密碼哈希已被泄露,要立即更改密碼,并按照5.5 用安全算法 存儲密碼所述妥善保存。若有足夠的時間和資源,每個密碼都能被猜出或暴力破解(即嘗試各種可能的字符組合)。密碼泄露后若未及時修改,攻擊者就能趁機進行暴力破解。此外,千方百計破解舊密碼后,攻擊者可能會對舊密碼進行各種變換,若當前密碼是基于之前密碼,就有可能被猜出。
實際上,很難知道密碼何時被泄露,尤其是存儲在配置中的本地密碼。傳統網絡設備在存儲和傳輸配置(包括密碼和密碼哈希)的方式上要簡單得多。此外,通過電子郵件發送網絡設備配置或將其存儲在不受保護的文件共享中會帶來泄露風險,因為存儲在配置中的密碼和密碼哈希無任何保護措施。另外,使用弱算法存儲的密碼非常容易破解,應視為已泄露。
如果無法維護密碼的機密性,或者組織希望定期驅逐暗中竊取密碼的攻擊者,NSA建議制定密碼使用期限策略,要求定期修改密碼。修改本地密碼比集中式密碼麻煩得多,因此需要選擇一個合理可行的時間段,既方便管理員操作,又能降低攻擊者利用已泄露密碼作亂的可能性。如果設備不支持長密碼,建議增加密碼修改頻次,防止攻擊者破解仍在使用的密碼。
注意:如果使用復雜的9類密碼,其中secret 9密碼哈希以$14$開始,則表示密碼近期沒有修改,而是在上一次操作系統升級期間從5類轉換而來。通過使用algorithm-type sha256關鍵字將密碼更改為8類密碼來刪除復雜的9類密碼,如5.5 用安全算法存儲密碼所述。