网络基础设施安全指南(上)

一、前言

当前,新漏洞频出,被攻击者加以利用,而安全功能和设备保护方法也与时俱进,不断革新,进而,网络安全指南也要持续更新。错误配置、不当配置处理和弱加密密钥会导致整个网络中的漏洞暴露无遗。所有网络都有被入侵的风险,尤其是设备没有妥善配置和维护时。管理员角色对于保护网络免受攻击至关重要,需要配备专门人员来保护网络上的设备、应用程序和信息。

本报告介绍了总体网络安全和保护网络设备的最佳实践,管理员可以此为参考防止攻击者利用其网络。虽然本文提供的是通用指导,适用于各种网络设备,但仅以思科互联网络操作系统(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列表。

<GROUP_NAME>应该是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 用安全算法存储密码所述。

【免责声明】

该文章原文版权归原作者所有。文章内容仅代表原作者个人观点。本译文仅以分享先进网络安全理念为目的,为业内人士提供参考,促进思考与交流,不作任何商用。如有侵权事宜沟通,请联系littlebee@nsfocus.com邮箱。

【文章信息】

发布机构:美国国家安全局(NSA)

发布日期:2022年3月1日

原文链接:https://media.defense.gov/2022/Mar/01/2002947139/-1/-1/0/CTR_NSA_NETWORK_INFRASTRUCTURE_SECURITY_GUIDANCE_20220301.PDF

小蜜蜂翻译组公益译文项目,旨在分享国外先进网络安全理念、规划、框架、技术标准与实践,将网络安全战略性文档翻译为中文,为网络安全从业人员提供参考,促进国内安全组织在相关方面的思考和交流。

Spread the word. Share this post!

Meet The Author