互联网上的每一个人和每一件事都依赖于域名系统(DNS)的正常运作。近年来,DNS一直是网络攻击的常见对象,2019年当然也不例外。大多数这类攻击的目的远比简单地让一家公司网络崩溃或破坏一个网站更加险恶;已知的攻击包括重定向一家组织的部分或全部域名以获得访问受保护资源的权限、拦截流量甚至获得该域名的TLS证书。组织应定期进行DNS审查和审计。下面的指导说明将让您的审查迈出第一步。
为什么DNS常被攻击?
DNS对于任何有线上平台的组织都是至关重要的。因此,攻击域名是一个攻击任何线上组织的有效方法,具体途径包括拒绝服务、污损、滥用等其他方式。域名不仅代表您的品牌,也是您的客户与您进行业务互动的方式。在当今世界,域名对于网页、语音、视频、聊天、API及公司可能提供或使用的所有其他服务都至关重要。简而言之,拥有自己域名的控制权对您的生意至关重要。
对这个问题缺乏重视是对您的DNS存在的最大威胁。许多组织认为DNS的安装设置是理所当然的,只需配置一次就可以永远保留它。然而,对手便会利用这种忽视和由此产生的弱点。定期进行DNS审查和审计是一项基本的预防措施。
攻击从哪里开始?
攻击者可以通过DNS根区域、DNS注册中心/顶级域(TLD)(例如.com、.net、.uk、.jp等)、域名注册器、DNS名称注册器(该区域被委派的实体)、DNS区域文件、权威的DNS名称服务器和递归DNS解析器等对其进行攻击。攻击者还可以劫持路由,或以欺骗方式得到DNS服务器的IP地址。综上所述,攻击面十分的广泛。好消息是DNS本身有较强的抵抗能力,而且也有许多组织关注着DNS的安全、稳定和弹性。
第一个重点领域是DNS区域的管理(例如example.com)。DNS区域管理是许多组织在其安全和网络审查中容易忽视的一个问题。不要低估攻击的范围和潜在危害:只要进入并访问DNS区域和/或注册器,攻击者就可以重定向入站电子邮件、通过攻击者控制的主机引导流量,甚至可以获得TLS证书。
域名注册商和DNS区域文件
除此之外,域名注册商控制域名的权威名称服务器(或称“授权”,delegations)的列表。这些授权包括对有关域具有权威性的DNS服务器的主机名和IP地址。权威的DNS服务器有一个主区域文件的副本,并用“权威答案”回应DNS查询。近年来大规模攻击的兴起已经改变了域所有者操作其权威命名服务器的方式。过去,大多数组织在自己的系统上操作权威的命名服务器。而如今,组织有了更多选择。有些域名注册商提供全面服务包,由注册商负责管理和维护域名的完整DNS配置。例如,基于云的提供者如Akamai的Fast DNS可以提供应对DDoS攻击的增强弹性功能,以及简化的基础设施管理。
DNS审查和审计工作
新闻报道、计算机应急响应小组(CERT)和政府通知可能会敦促您“做DNS审计”,但建议往往到此为止。这篇文章的其余部分是一家组织应该审查的主题领域的集合,以评估他们目前的DNS“态度”。这些建议是基于Akamai自身经验、ICANN的安全和稳定性咨询委员会(SSAC)、DNS操作分析和研究中心(DNS-OARC)以及其他DNS专家的工作所得出。
审查对域名注册商的访问
按照注册商的要求检查组织中当前的域管理员,并确保他们符合您的期望。检查与注册商配置的所有域并确保您知道组织中有哪些人可以访问注册商的在线门户,同时与这些用户进行确认。如果您有与多个注册商注册的域名,确保您向每一个注册商重复这个操作。尽管如此,还是建议您考虑将注册合并到一个单一的注册商下。同时,找机会核实您所有的域名都在您的域名注册审计中——有些人可能已经使用个人账户注册了一个域名,如果他们离开了您所在的组织,这可能会导致失去控制。
攻击者会充分利用一家组织忽略的DNS漏洞。他们会找到没有妥善维护的账户,并对其进行破坏。因此您的第一步就是在每个注册商处检查、更新和记录哪些人可以访问哪些区域。
审查域名系统的角色和责任
最少化访问(least access)原则是一个最安全的准则:人们只需要拥有完成其工作所需的最低访问权限。检查能够访问注册商的用户是否是其工作职能所必需。除了一次性审查之外,安排对每个人访问级别的反复审查。此外,确保至少有两个人可以访问每个注册门户;否则一旦管理员离职,访问权限的丧失将对组织造成灾难性后果。
请记住,攻击者经常利用社交媒体作为网络钓鱼尝试的一部分。他们可以很容易地在社交媒体平台上锁定知名度高的员工,因为他们知道组织在重组、裁员或员工退休后可能会忘记删除注册信息。
员工权限转让
组织的预终止过程应该包括对用户角色的审核。作为审核的一部分,组织应该审核员工对资源的访问权限,比如注册账户或DNS云提供者,并终止所有权限。在合理的情况下,应尽快将权限赋予替代人员或继任人员。
终止程序还应更换或撤销离职员工可以获得的所有机密。除了密码,这还应该包括双重身份验证(2FA)令牌、口头身份验证密码以及组织文件中任何授权员工的登记名单。无论员工离职的情况如何,这些都应当是一种常规操作。这并不是对离职员工的玷污,而是组织规避威胁的必要手段。
更新所有注册资料
接下来,查看与您注册的域名相关联的联系信息。确保每个域名的有效期足够长(建议至少一年),并正确设置其中的各选项如自动续约等。一个意外过期的域名可能会导致巨大的财务成本,在最坏的情况下,可能会无可挽回地丢失,或是被竞争对手注册。
域名也通常有四个联系点:注册人、技术、管理和账单联系人。您的注册商可能只会发送特定类型的讯息给这些角色中的一个,在某些争端中,注册人会处于优先的位置。确保所有的联系信息是最新的——因为在组织发展壮大、缩小、转移或被并购时,注册联系人的更新问题往往会被忽视。
使用角色账户获取域注册信息
为了帮助管理域注册联系信息,组织经常使用一个角色账户(role account)来管理所有的四个必需的域联系点。角色账户的构建因组织而异,但基本思想是建立一个严格限制的邮件列表,所有域名注册信函都可以发送到该列表。这些角色职位通常被命名为“域管理员”(Domain Administrator)或“主机管理员”(Hostmaster),并列出组织的总部联系信息,包括地址、电话和传真号码。确保直接发送到这些号码的合法电话和传真仍将到达DNS管理员手中。使用角色职位,而不是指定的人员可以使得更改工作职责或者增加和删除人员更加灵活,而不需要在注册商处进行重要更新。如果使用邮件列表,您的定期审计应审查订阅邮件列表的员工,以限制潜在的滥用行为。
不要使用个人电子邮件地址
个人电子邮件地址不应该用作企业、政府或组织域管理员的联系点。作为审查过程的一部分,确保个人电子邮件地址从未用于域名联系信息或注册商访问账户。
- 使用员工的个人电子邮件地址(例如joe@gmail.com)作为联络点,将会将域名的控制权移交到该员工手中。此外,您也无法知道您的员工在他们的个人电子邮件账户上使用了什么样的安全措施,因此您可能把自己暴露在一个心怀不满的现任或前任员工的报复行为面前。您所有的域名联系人应该包括由您的组织或母组织控制的电子邮件地址。
- 还应该避免使用员工的组织或公司电子邮件地址(例如q.smith@examplecompany.com)。暴露参与管理公司域名的个人姓名,就会使他们面临更大的社会风险和针对公司的钓鱼式攻击。相反,应该使用基于角色或基于部门的名称(例如hostmaster-technical@example.com、hostmaster-billing@example.com),最好是让多个用户接收发送到这些地址的通信。
防范钓鱼式攻击
网络钓鱼是破坏注册账户的主要攻击之一。您有可能遭遇到针对DNS管理员的钓鱼攻击,所以一个全面的钓鱼防御是必不可少的。以下一系列反钓鱼技术可提供有效保护,防止钓鱼式攻击。
- 使用通用的、基于角色职能的或基于部门的电子邮件地址,例如domainadmin@example.com。通过基于角色的账户收到的钓鱼邮件通常更容易被管理员发现。
- 在年度安全审查中加入反钓鱼培训,并要求所有DNS管理员完成培训。
- 在DNS管理员(以及组织中的每个人)使用的所有设备上部署终端安全/安全软件并加强安保措施。
- 启用电子邮件过滤服务,以防止一些常见的钓鱼和恶意软件攻击您的DNS管理员以及您的组织的其余部分。
- 过滤DNS查询,防止员工访问已知的网络钓鱼网站。像Akamai的企业威胁保护器(ETP)这样的工具提供DNS级别的企业安全。
没有可以阻止网络钓鱼攻击的万全之策,但是采用正确的防御组合将有助于组织降低风险。
凭证更新——更改密码
定期更改密码是所有在线账户的良好做法,域名注册商账户也不例外。在对您的DNS基础设施进行审查时,要求每个具有注册服务器访问权限的人轮换他们的凭据。虽然您的组织可能有一个全面的密码策略,但是通常会忽略外部服务,如注册服务器。外部账户应遵守您的内部密码安全指导方针和轮换时间表。注册服务器账户的密码应该是长而复杂的;使用密码管理器可以很容易地以加密、冗长和易找到的方式生成和存储复杂的密码。密码永远不应该写下来或以未加密的形式存储。
注册商账户双重认证(2FA)
当您的注册商支持时,所有账户都应该使用双重身份验证(2FA)。使用2FA时,任何试图登录到注册器的人不仅需要账户密码,还需要第二个因素,如智能手机应用程序或硬件令牌等。2FA可以阻止本来可能成功的网络钓鱼尝试。
如果可能的话,应该避免使用基于SMS的2FA。基于SMS的2FA仍然优于只使用密码保护的账户,但其他方法如基于时间的一次性密码(TOTP)、硬件令牌或基于推送的2FA应该是首选的。新的NIST数字身份指南建议,短信作为2FA的一部分应该被废弃(参见NIST特刊800-63B)。
如果您的注册商不支持2FA,申请这个功能。如果他们不接受,考虑寻找替代的注册商。在许多情况下,同一顶级域名、通用顶级域名和通用顶级域名都会存在处于竞争关系的多个注册商。
了解注册商的安全策略、工具和流程
世界上有数百个域名注册商,支持超过1500个顶级域名。一些注册商比其他机构有更好的安全措施。您的组织可以帮助引导行业朝着更好的方向发展。通过查看注册商的在线文档了解他们的安全实践和策略。如果无法找到此信息,请与注册商进行对话,并鼓励他们发布此信息。
例如,您的注册商是否提供运营域所需的支持服务?注册商是否提供24×7技术支持,允许在非营业时间进行故障排除?ICANN的政策要求您的当前注册商通知您,他们从注册商那里收到的任何域名转移请求,表明有人已经要求将域名转移到一个新的注册商。您的注册商是否只通过电子邮件发送此信息,或者您可以选择通过电话或传真请求此信息?您的注册商是否发送通知所有其他更新到您的域名?ICANN的安全和稳定性咨询委员会(SSAC)与ICANN社区合作,提供DNS操作和安全指导。ICANN的SAC 40保护域名注册服务免受剥削或滥用的措施和SAC 44注册人保护域名注册账户指南是理解和评估注册商安全实践的出色指南。
审核隐私注册选项
许多域名注册商提供隐私或代理注册服务。这些服务会对公众隐藏您的个人联系信息,并用ICANN-联系信息取而代之。欧盟的一般数据保护条例(GDPR)已经改变了在像WHOIS这样的域注册数据库中发布信息的方式。作为一般原则,一个基于角色注册域名信息的方法可以兼容GDPR,同时在您的域名下向社区提供最新的联系信息。
注:在某些情况下,代理服务器或隐私注册表会妨碍获取组织验证(OV)和扩展验证(EV)SSL/TLS证书所需的验证过程。启用或禁用代理或隐私注册的过程可能因注册商而异,在订阅这些服务之前,应充分了解时间表。在关闭隐私注册方面的延迟可能会导致证书轮换失败或域转移的延迟,如果需要这些服务的话。应该仔细考虑这些风险。
在您的区域内检查和维护记录
DNS区域包含许多主机名和子域,但许多DNS管理员可能不知道哪个部门或业务单位负责给定的条目。主机名(hostname)指的是类型为A、AAAA、CNAME、TXT等的记录。子域由NS记录的存在来指示,并将对区域的该部分的控制委托给另一个名称服务器上的区域。
DNS管理员应该知道哪些组或团队负责他们组织区域文件中的每个条目。如果您的组织使用内部票据跟踪系统,信息可能存储在系统中,但在短时间内可能不容易访问。确保随着时间的推移精确地跟踪区域的更改可能需要对内部流程进行更新。一旦您可以在您的区域文件中确定每个条目的责任方,您应该执行定期审查并确保记录。验证每个主机名和子域的所有权,并删除过时的条目应该是常规DNS审查的一部分。
对于新的应用程序、服务或现场演示,可以快速添加记录,但是这些记录可能在相关服务关闭或迁移之后仍然存在很长时间。作为内部产品生命周期的一部分,确保对服务的关闭给予了足够的重视,关闭过程包括通知DNS管理员不再需要主机名或子域。
特别要注意委托的子域,因为它们的设计目的是将区域的一部分控制权让给另一个名称服务器。确保NS记录是准确的,并且它们仍然为子域提供权威的答案。如果您的组织将一个子域名委托给第三方DNS服务提供商,那么经常检查委托子域名的答案就更重要了,因为外部服务提供商可能会在没有通知您他们的客户的情况下重新使用这些IP地址。如果一个区域被委托给由您的组织在第三方云提供商中运行的名称服务器,那么一定要跟踪IP地址的变化并相应地更新区域委托。公共云计算倾向于快速重新启用IP地址,因此无法审计您的NS记录和相关的IP地址可能会导致域管理权的变更。
名称服务器和区域文件最佳实践
DNS审查应包括对您控制的所有名称服务器上的所有用户账户的审查,包括“初级”和“次级”名称服务器。可以访问名称服务器的用户可以直接编辑域文件或更改系统上运行的软件。不要仅仅依靠操作系统中的访问许可权或访问级别保护,因为利用或错误配置可能允许任何拥有账户的人访问区域文件或服务器配置实用程序。确保保存访问日志以跟踪什么人登录到服务器;访问控制和问责制对您的DNS基础设施的所有部分都至关重要。这在主辅模型中尤其重要,其中“初级”名称服务器包含区域文件的规范副本,而“次级”名称服务器定期或根据请求将其从主服务器转移过来。
DNS区域文件修改控制
审查还应该包括对区域文件本身的管理,以确保存在并执行适当的变更管理流程。区域文件的主副本应该存储在修订控制系统或其他访问控制存储器中。当出现更改请求时,DNS管理员生成一个更新的区域文件,将其放入一个审查程序中,检查其是否有错误,然后将新的副本推送到生产环境。在更新导致意外行为的情况下,应该有一个定期测试和易于执行的过程,将区域恢复到最后一个已知的良好状态;一个修订控制系统可以帮助促进这种恢复。审查您的DNS基础设施还应包括定期审查账户,编辑访问用于维护区域文件的修订控制系统。
与所有重要数据一样,区域文件及其更改日志应定期备份到安全的异地备份。可信备份与修订控制相结合,将有助于建立用于恢复文件的“最后已知良好”版本。
如果区域文件的主副本存在于云DNS提供商中,您应该确保所有可以编辑区域记录的账户都遵守为注册账户服务的强大安全条例。即使在使用云提供商时,也要确保定期存储区域文件的备份副本,以便在灾难恢复中使用。Akamai的Fast DNS产品提供了粒度访问控制(granular access control)、双因素身份验证(two-factor authentication)以及轻松下载专区副本以便备份或审计的能力。
您的域名是否在注册商处被锁定?
域锁定(domain locking)是防止未经授权更改域注册的一种方法。大多数域名注册商允许注册域名的注册商锁定(registrar locks),也称为客户端锁定(client locks)。与注册商联系,看看他们是否支持这项服务。如果可用,确保您的域是锁定的。更具体地说,建议至少您的域名应该有客户端删除、客户端更新和客户端传输锁定功能,不要有客户端重置锁定。一些注册商在他们的门户只提供一个锁定选项,这往往会包含上述三个推荐的锁定功能。锁定功能集可以防止任何未经授权的更新或传输,同时也防止攻击者在没有首先解锁域之前删除域注册。而只要不设置重置锁定,您仍然可以更新域名或利用注册商的自动更新功能。许多注册商不会为锁定功能收取费用,有些甚至会默认锁定域名,无需您做任何事情。
除了客户端/注册商锁定,一些gTLD或ccTLD运营商还提供服务器锁定(server lock),也称为注册表锁定(registry lock)。服务器锁定为域更新增加了额外的保护层,只有在注册人的请求下,才能通过与注册操作员的协调的“带外”(out-of-band)进程(通常是通过电话)添加或删除服务器锁定。与客户端锁定一样,建议的服务器锁定是Server Delete、Server Update和Server Transfer,出于与前面相同的原因,不建议使用Server Renew。请注意,有些注册商/TLD运营商并不提供这项服务。使用服务器或注册表锁定服务通常需要额外的成本,并涉及增加的注册人/注册商交互。
请注意,添加或删除服务器/注册表锁定可能会导致更改域的延迟(长达一周),例如更新注册联系信息、更新委托记录、域转移或域删除。例如,当转移域之间的注册,您需要在传输过程开始之前解除锁定域。
在对您的域进行更改时,请确保使用WHOIS来验证锁是否按预期应用。要查询WHOIS信息,您可以使用ICANN的WHOIS页面,通过计算机终端的WHOIS命令,或者注册网站的WHOIS页面。下面您可以看到一个应用客户机/注册机锁的例子:
同样,在检查客户端/注册商和服务器/注册表锁定的WHOIS时,应该从您的WHOIS查询返回以下内容:
抱最好的希望,做最坏的打算
域名注册商已被黑客入侵。DNS管理员账户已被攻破。等到这种情况发生就为时已晚了。将这些情况作为DNS审查工作的一部分进行准备。在您的域被劫持的情况下,向您的注册商询问他们的恢复过程。他们应该引导您完成准备适当文档的过程。ICANN的SAC044服务建议收集以下文档,以防备注册商域名在被劫持的最坏情况:
- 域名注册记录的副本(例如:带有时间戳的WHOIS查找、截图或来自注册商门户的导出)。
- 结算记录,尤其是已显示付款的记录。
- 将域名与您(合法注册人)发布的内容相关联的日志、存档或财务事务。
- 电话簿(黄页)、营销材料等,其中包含将您(注册人)与域名相关联的广告。
- 来自注册服务商和ICANN的提及域名的通信。
- 将您(注册人)与域名相关联的法律文件、税务申报、政府颁发的身份证明、营业税通知等。
这份名单来自ICANN SSAC,一个由ICANN委员会任命的安全专家小组。您的组织应该充分利用他们来之不易的恢复被劫持域的经验。