NSA网络基础设施安全指南(翻译)(三)
2022-4-29 16:45:30 Author: www.freebuf.com(查看原文) 阅读量:6 收藏

本地帐户对于网络设备的管理非常重要。 如果集中身份验证失败,管理员可通过本地帐户对网络设备进行访问,诊断和排除网络问题。本地帐户名应该是唯一的,还要使用唯一且复杂的密码进行身份验证,每个管理员有责任保护用户名和密码不被泄露出去。 如果组织不存在密码策略,要尽快建立并落地实施,定期审查和修订相关政策。

本节主要关注本地帐户和密码。 传统网络设备使用传统方法来管理本地帐户,它们可能不支持推荐密码机制,例如复杂度、更新和验证等。 采用传统方法管理本地账户需要应用不同的管理方案。在集中式 AAA 服务器中,可以实施多因子身份验证、密码复杂性、以前的密码对比和其他机制等。

5.1 使用唯一的用户名和帐户设置

大多数网络设备都存在公开的默认管理服务,并且通过默认管理账户密码可对设备的完全管理访问。 默认配置可以让攻击者轻松进入网络进行连接,并可能获得特权级访问权限以匿名方式对设备监控或重新配置设备。

NSA 建议删除所有默认配置,并为每个管理员重新配置一个唯一且足够安全的帐户。在未更改默认管理设置和帐户之前,请勿将任何新设备接入网络中。 还要注意,某些设备上的默认用户帐户无法删除。

5.2 改变默认密码

大多数设备都分配有默认密码,有时甚至空密码,以方便系统管理员进行初始配置。 其中许多密码是公开的,通常默认面膜不需要更改在设备即可正常登陆。 它们通常恶意自动扫描程序(例如僵尸网络)利用的主要目标,因为默认密码提供对设备的特权级访问。

NSA 建议删除所有默认密码,并为所有访问级别(包括用户级别和特权级别)分配唯一、满足复杂度要求且足够长度安全的密码。 此外,在将新设备引入网络时,请在将设备连接到网络之前更改默认用户和特权级密码。

5.3 删除不用的账户

某些设备内置不需要的帐户。 由于它们可能很少使用或根本不使用,因此经常忽略维护它们的安全性。 如果没有其他影响,建议重命名或删除与特定管理员无关的默认帐户。

NSA 建议将授权登录设备的帐户数量限制在一定的范围内, 所有其他的都应该被删除。 当管理员离开组织或更改工作岗位时,应禁用或删除关联的帐户。 在 Cisco IOS 设备上,使用以下配置命令删除本地帐户:

no username <NAME>

5.4 使用个人账户

帐户可以被单个管理员使用或在一组成员之间共享。 但是,如果多个管理员使用组帐户访问设备,则无法强制执行问责制,因为使用组账户对配置更改的操作不会与特定个人相关联,所以攻击者更喜欢可以用组帐户为目标来获得对设备的未经授权的访问。

NSA 建议禁用所有共享或组管理员帐户,并为每个管理员使用唯一帐户,可以对明确配置更改的访问操作相关责任人。 如果需要群组账户,NSA 建议监控这些账户操作检测任何可疑活动。 为每个管理员创建备份本地帐户在实际工作可能不可行,但每个管理员都知道使用单个组帐户不能提供个人责任溯源。

NSA 还建议在集中式 AAA 服务器不可用的紧急情况下使用本地帐户。 在此类事件中,唯一的本地紧急帐户密码应由无法直接访问设备的受信任个人维护。 管理员可以请求本地帐户和密码,一旦紧急情况结束,受信任的个人可以更改密码。 这将防止密码重用并确保问责制。 所有其他身份验证请求都应通过集中式 AAA 服务器进行。

5.5 使用安全算法存储密码

密码通常以明文、加密或单向哈希的形式存储在设备的配置或本地数据库中。 永远不应该使用明文,并且一些加密或散列函数被认为是弱的,很容易被公开可用的工具破解。 攻击者可以通过使用网络分析器或破坏存储配置文件的中央管理系统,从配置或本地数据库中收集密码或哈希值。 明文密码和弱算法密码很容易被破解并用于获取用户或特权级别的设备访问权限。 Cisco IOS 支持以下单向哈希和加密类型:

  • 类型0:不应使用,因为它们以明文形式存储
  • 类型 4 :不应使用密码哈希,因为它们很容易破解
  • 类型 5 (MD5):应避免使用密码散列,但不支持类型 6、8 或 9 的旧操作系统除外。
  • 类型 6 :密码是 AES 加密的,只能用于需要加密而不是散列的密码(例如用于 VPN 密钥),或用于不支持类型 8 的系统(这通常意味着类型 9 也不可用)
  • 类型 7:不应使用:,因为它们很容易撤销,即使它们已加密。
  • 类型 8建议使用 (SHA-256 PBKDF2) 密码哈希
  • 类型 9 (scrypt算法) 密码哈希未经美国国家标准与技术研究院 (NIST) 批准

有关上述密码类型的更多信息,请参阅 Cisco 密码类型:最佳实践[13]。

NSA 建议使用最安全的算法存储设备上的所有密码,并且永远不要以明文形式存储。 单向哈希算法是不可逆的,通常应该用于存储密码。 但是,如果单向哈希算法不可用,则应使用唯一强密钥对密码进行加密。

在创建用户帐户或分配密码时,某些设备需要指定算法。 应特别注意特权级帐户,但本指南也适用于用户帐户、管理端口、经过身份验证的路由协议、VPN 密钥以及可能在设备配置中指定密码的任何地方。

使用以下配置命令防止明文密码:

service password-encryption

使用以下配置为本地帐户存储类型 8 密码哈希命令:

username <NAME> algorithm-type sha256 secret <PASSWORD>

注意,algorithm-type关键字不存储在 nvram:/startup-config 中保存的配置中; 而是在散列密码之前将 secret 关键字替换为 secret 8。如果需要可逆加密密码(例如 VPN 密钥),请使用 Type 6 AES 而不是 Type 7 密码和以下配置命令:

password encryption aes

key config-key password-encrypt <KEY>

<KEY>应该是一个唯一且复杂的密码,用于生成加密类型 6 密码的密钥。 它不应该使用默认的、不满足复杂度要求或容易猜到的密码,也不应该在配置的其他地方重复使用过的密码。 猜出此密钥的攻击者可以使用它来解密存储在配置中的所有类型 6 密码。 一旦设置了这个键,一般不需要保留。

注意:key config-key password-encrypt 配置命令不存储在nvram:/startup-config 中保存的配置中。由于不需要保留,因此 NSA 建议为每个设备使用唯一密钥,这将防止攻击者使用相同的密钥来解密所有设备上的 Type 6 密码。 请注意,如果密钥被更改,则需要再次手动设置类型 6 加密密码。

5.6 创建健壮密码

设备配置了弱密码的会增加攻击者入侵该设备的能力。 攻击者可能能够轻松猜出弱密码或使用公开可用的密码破解工具(例如,字典或暴力破解尝试)破解它。 一旦获得特权级访问权限,攻击者就可以可能危及网络上其他设备的配置更改。 NSA 建议为所有级别的访问分配唯一且复杂的密码,包括用户和特权级别访问。 独特而复杂的密码还应该用于路由身份验证、时间同步、VPN 隧道、简单网络管理协议 (SNMP) 团体字符串以及密码存储在配置中的任何其他位置。 密码应满足以下复杂性要求:

  • 使用所有不同的字符类(大写、小写、数字和特殊的角色)
  • 长度至少为 15 个字符
  • 不是基于未经修改的单词或首字母缩略词
  • 不是键盘顺序
  • 与用户名不同
  • 与网络、组织、地点、当地运动队或其他无关功能标识符
  • 与最后一个或其他地方分配的密码不同或相似
  • 不是默认密码、空白密码或公开密码

组织的密码策略可能不需要遵守所有通过集中式 AAA 服务器管理的密码建议,尤其是在与多因素身份验证和其他主体结合使用时。 上述指南至少应适用于存储在网络设备配置中的本地帐户和其他密码,其中无法应用集中式安全控制。

NSA 强烈反对使用 SNMP 版本 1 或 2C。 有关详细信息,请参阅 7.1 禁用明文管理服务和 7.8 删除 SNMP 读写社区字符串。

攻击者了解网络、位置、程序等信息就很容易猜解这些术语,有助于他们去破解密码。 NSA 还建议定期检查弱口令,落实组织的密码策略。 在设置新密码之前应检查密码复杂性,并且网络管理员应定期检查网络设备配置以识别弱密码算法的使用。

5.7 使用唯一密码

为多个帐户或多个访问级别分配相同的密码可能会影响问责制和授权。如果管理员通过未加密的协议明文访问,攻击者可以使用网络分析器从流量中获取密码。如果对手获得用户级别的访问权限,他们可能会重复使用相同的密码来获得特权级别的访问权限。将相同的密码分配给多个设备可以让攻击者同时入侵多个设备,而不费吹灰之力。如果为很多设备分配了相同的密码,则攻击者只需破解一个密码即可获得对所有这些设备的特权级访问权限。

NSA 建议为每个设备上的每个帐户和特权级别分配一个唯一、复杂且安全的密码。NSA 还建议检查跨多个帐户和访问级别以及跨多个设备的密码重用,通过相同密码的哈希值可以核查密码是否重用。

5.8 按需变更密码

根据以往经验定期更改密码会导致使用较弱的密码,如果用户遵循 5.6 创建强密码中的指导,则可能不需要执行此策略。 最初创建健壮密码是减少为了减少密码泄露。 NSA 建议如果密码或密码哈希已被泄露,请立即更改密码,并按照 5.5 使用安全算法存储密码中的说明安全地存储它。 只要有足够的时间和资源,对所有可能字符组合的进行尝试,每个密码都可以被猜到或暴力破解。未经更改的泄露密码使攻击者有更多时间使用这些技术。 此外,如果攻击者最终破解了旧密码,他们可能会继续尝试变体并猜测当前密码是否基于以前的密码。

不幸的是,很难察觉密码何时被泄露,尤其是存储在配置中的本地密码。 传统网络设备在存储和传输配置(包括密码和密码哈希)方面做安全措施很简单。 此外,通过电子邮件发送网络设备配置或将它们存储在未受保护的文件共享中可能构成泄露,因为存储在配置中的密码和密码散列不受保护。 此外,使用脆弱的算法存储的密码应被视为已泄露,因为它们更容易破解。

如果无法维护密码的机密性,或者组织希望定期尝试发现并禁用可能已泄露密码而不被发现的行为者,则 NSA 建议制定一项包含定期更改密码的策略。更改本地密码比集中式密码要麻烦得多,要选择一个对网络管理员来说合理可行的时间范围,同时减少对手可以利用可能泄露的密码的时间。如果设备不支持长密码,建议减少更改密码周期,以防止攻击者破解仍在使用的密码。

注意:如果使用复杂的 Type 9 密码存储密码,其中密码 9 密码哈希以 $14$ 开头,则表明密码最近未更改,密码哈希是在以前的操作系统升级期间从 Type 5 转换而来的。错综复杂的第 9 类密码机密性应通过更改密码到具有算法类型 sha256 关键字的类型 8 机密,如前面 5.5 使用安全算法存储密码中所述。

日志记录是记录设备运行和溯源网络安全事件的一种重要机制,使管理员通过查看日志分析可疑活动并调查事件。如果设备日志记录配置不完整会导致日志信息丢失或不准确,并且难以关联设备或网络上发生的事件进行分析。正确的日志记录包括将日志发送到多个远程日志服务器,将时钟同步到多个经过身份验证的时间源,以及实施日志管理策略和过程。安全信息和事件管理(SIEM)系统可用于归集和分析远程日志服务器接收的日志。

应按照管理和预算办公室(OMB)备忘录M-21-31[14]的建议保留日志。

6.1 启用日志记录

开启日志记录时,网络设备才会生成日志消息。应将设备配置为将日志消息发送到本地日志缓冲区和集中收集日志的服务器。NSA建议启用syslog日志记录,将本地日志缓冲区设置为16 MB或更大,并建立一个程序来验证定期接收和查看日志。大多数设备应该能够支持更大的缓冲区大小,但如果内存不足,则可以针对特定设备减小缓冲区大小。确保使用以下配置命令启用系统日志记录:

logging on

使用以下配置命令增加最大本地日志缓冲区:

logging buffered 16777216 informational

注意:这也会将日志记录级别更改为信息级别,因为这两个值必须同时设置。

6.2 建立集中式远程日志服务器

发送到远程日志服务器的日志消息确保不容易被泄露或删除,确保在设备泄露、重新启动或本地日志缓冲区已满时,这些消息不会受到影响。在防御拒绝服务供给影响和减少单点故障时,多个日志服务器至关重要。

NSA建议至少建立两个远程集中日志服务器,以确保设备日志消息的监控、冗余备份和可用性。如果设置支持加密功能,在日志传输过程进行加密,以防止未经授权泄露敏感信息。出站系统日志消息只能在Cisco IOS设备上通过在设备和远程系统日志服务器之间创建IPsec隧道进行加密,如2.6限制和加密虚拟专用网络(VPN)中所述。使用以下配置命令配置至少两个远程日志服务器:

logging host <IP_ADDRESS_1>

logging host <IP_ADDRESS_2>

6.3 获取必的日志信息

配置完善设备产生的日志中可以为管理员提供了事件分析所需的信息,包括关联多个相关事件或与其他设备上发生的事件。

NSA建议将每个设备上的陷阱和缓冲区日志记录级别至少设置为系统日志级别“信息”(代码6),以收集所有必要的信息。可以将设备配置为“调试”(代码7),但生成的消息数量会增加很多可能会对日志检查过程造成影响。使用以下配置命令将陷阱和缓冲区日志记录级别设置为信息性:

logging trap informational

logging buffered 16777216 informational

请注意!这将设置本地日志缓冲区的最大大小,因为这两个值必须同时设置。

还可以分别使用consolemonitor关键字在console和VTY行上启用日志记录。这些方法将立即通知已登录的管理员,但不会保留消息。除非管理员需要,否则没有必要为这些方法启用日志记录。可以使用以下配置命令禁用它们:

no logging console

no logging monitor

NSA还建议对时区使用世界标准时间(UTC),尤其是当网络跨越多个时区时。所有日志消息都应该包含一个正确配置的时间戳,带有完整日期(包括年份)、时间(包括秒和毫秒)以及时区。确保时区设置正确,并使用以下配置命令启用上面列出的所有功能:

clock timezone UTC 0 0

service timestamps log datetime msec localtime show-timezone year

service timestamps debug datetime msec localtime show-timezone year

最后,NSA 还建议启用日志消息以提示用户何时成功或未成功登录系统。 即使在正确配置计费功能情况下,这些事件会记录在集中式 AAA 服务器上,不会记录在本地缓冲区中。 确保使用以下配置命令记录这些事件:

login on-failure log

login on-success log

6.4 同步时钟

网络时间协议 (NTP) 用于在全球范围内同步设备时钟,并确保包含在日志消息中的时间戳的精准性。 为了保障可靠性,每个设备至少两个可信时间源同步。 确保日志消息时间戳可以在地理上分散的时区之间轻松关联,并用于不同设备之间的网络事件关联分析至关重要。

NSA 建议每台设备和远程日志服务器至少使用两个可信赖且可靠的时间服务器,以确保信息的准确性和可用性。内部时间服务器应设置为所有设备时间的来源,还要与权威的外部时间源同步。 这种设计减少了外部请求的数量,并在无法访问外部时间服务器的情况下确保时间戳的一致性。 在网络上部署时间服务器时,管理员应确认设备能够访问时间服务器,并且在应用配置后时钟已同步。 NSA 还建议在所有设备上启用 NTP 身份验证以防止时钟篡改,并在设备及其指定时间源之间配置健壮且唯一的 NTP 身份验证密钥。

使用以下配置命令建立可信 NTP 密钥并启用 NTP 身份验证:

ntp authentication-key <#1> md5 <KEY>

ntp trusted-key <#1>


文章来源: https://www.freebuf.com/articles/paper/331792.html
如有侵权请联系:admin#unsafe.sh