十种机制保护三大网络基础协议(BGP、NTP和FTP)

除了DNS,还有其他网络基础协议也会变成攻击者的武器,该如何保护呢?

QQ截图20180730162547

涉及基础互联网协议的攻击见诸报端时,人们的视线往往集中在Web上,HTTP或DNS是绝对的主角。但历史告诉我们,其他协议也会被当做攻击脆弱公司企业的武器和入口。

比如BGP(边界网关协议)、NTP(网络时间协议)和FTP(文件传输协议),就是攻击者用以破坏运营或盗取数据资产的利器。最近频发的加密货币钱包劫持事件,充分展现出了BGP劫持作为攻击链一部分的有效性。从大多数用户的角度来看,BGP的神秘源于其复杂性,而大多数公司企业仅在其网络变得非常巨大之时才考虑应用BGP,更是增添了公司的风险。

NTP常被看做是仅提供对时便利性的协议,让用户免去自行对时并手动录入系统的麻烦。但实际上,从数据加密到文件传输等一应事务,都依赖NTP协议从标准服务器获取权威时间。因此,NTP协议无处不在,对攻击者非常有价值。

另外,虽然用户更喜欢用HTTP在系统间传输文件,但很多应用程序和系统仍将FTP作为基本的文件传输机制。因为常被用于传输大文件,只要能够对目标使用,FTP就是网络罪犯的有力武器。

对大多数公司而言,“停止使用这些协议”并不现实;有太多应用程序和用户都依赖这些协议,很长时间内都无法放弃其中哪一个。而且BGP和NTP这两个协议甚至都没有替代方案可用。所以,公司企业有必要找到保护这些协议的方法,让它们作为工具为公司所用,而不是作为武器为攻击者所用。

保护网络基础协议的方法当然有很多,其中有一些是可以激发思维,推动防御策略向前发展的。下面我们就为读者呈上几种保护网络基础协议的有效方法。

1. BGP:保护发言人

BGP是路由器间相互告知所处位置的协议,还可供路由器组用以建立数据包发送的最佳路径。其实现过程中需要确定路由器仍然接在互联网上:通过发言人(Speaker)每隔60秒在179端口发送一条TCP消息来保持与其相邻节点的连接。如果发言人被拿下,不仅仅是路由器掉线,还会打开非法路由器顶替上位的大门。

很明显,在已知端口上定期通信的关键网络链路是脆弱的,网络拥有者需采取特别的预防措施来保护它。互联网工程任务组(IETF)的专家们建议,可以采用访问控制列表(ACL)来屏蔽掉来自非邻居路由器节点的通信。

另外,网络管理员还应在控制层和数据层上施加速率限制,预防数据包洪水把发言人挤掉线。不仅仅是攻击洪水,过量的合法流量也会将网络从互联网上挤掉。所以,预设速率限制是个不错的预防方法。

2. BGP:TTL保安全

ACL是保护BGP的首要方法,其次就是利用网络防护中一个更广泛的机制:生存时间(TTL)。

TTL安全在 IETF RFC 5082 的“通用TTL安全机制”(GTSM)中有所描述。其大意是,花费太长时间到达的数据包不可能来自邻居节点,而不是来自邻居节点的数据包是可以丢弃的。

TTL安全的基本操作是:将TTL设置成255(最大值),也就是要求数据包来自直接连接。因为第3层设备每碰一次数据包,都会导致TTL的衰减,所以绕来绕去的数据包是达不到TTL要求的。

3. BGP:前缀过滤器

想要保护BGP及其在网络中的职能,须得确保通告特定路由的路由器具备通告该路由的权限。比如说,如果有路由器通告称,“访问AWS要经过一家小电锯修理厂的路由器”,那这台路由器就肯定是恶意路由器,应被禁止其路由通告行为。可以预防恶意路由通告的方法之一,是前缀过滤——有点复杂,还有些现实世界的局限性,但是非常有效的方法。

前缀过滤可以判断路由器是否具备通告某路由的权限。其基本方法是基于互联网路由注册表(IRR)中包含的信息来过滤前缀。但因为IRR未必能及时更新,所以该方法在实际应用上情况有点复杂。

前缀过滤应仅允许路由器接受合法邻居节点的路由,仅传送合法路由到下游邻居节点。虽然非常有效,但网络管理员却必须时常维护更新合法节点列表。当网络(或客户网络)有很多冗余内部和外部路由时,管理员的工作就会变得相当复杂。不过,在安全非常重要的场合,还是值得为此付出努力的。

4. BGP:保护会话

因为BGP使用TCP进行传输,所以保护BGP会话也就意味着保护TCP会话,用于保护通用TCP的很多机制同样能用在保护BGP会话上。可以采用 RFC 2827 和 RFC 3704 中的建议,在网络边界处封锁明显的欺骗数据包。

有了数据包封锁,MD-5或TCP身份验证选项(TCP-AO)就可以提供有效防护了。

这些会话保护措施都会增加部署和维护上的开销。个人网络拥有者需衡量其安全收益与所花开销的性价比。不过,这四步走下来,就能让BGP更加安全而健壮。

5. NTP: NTPsec

保护NTP很重要,但这里面明显应该先用NTPsec替换掉“经典”的NTP。作为更安全的NTP,NTPsec直接兼容经典代码,且用户不应感觉到有什么变化。NTPsec仅仅是让该基础服务更难以被黑客利用而已。换成NTPsec,黑客就难以利用NTP来执行DDoS放大攻击了。另外,大家普遍认为,NTPsec还能清洁代码,并添加基本的管理和报告功能。

必须指出的是,NTP和NTPsec都是开源项目,吸引了很多志愿者和支持者。网上支持和反对NTPsec的人都不难找到,但权衡下来,该协议的基本功能还是值得企业认真考虑的。

6. NTP:更新很重要

作为攻击武器,NTP的主要价值在于:特定查询所返回的数据可以比从原始攻击系统发出的数据多上很多倍。NTP协议的一个问题是,该协议往往部署到系统上后再不更新了,让很多老版本的服务器面临攻击风险。

NTP服务器软件ntpd的每个版本,只要是4.2.7之前的,都可被黑客用于发起攻击。更新的版本也可能存在漏洞,但只要不是更改了默认配置,一般还是比较健壮的。为增强安全性,最好保证ntpd是最新版本。

7. NTP:注意Monlist指令

Monlist指令是ntpd可被利用成强力放大攻击武器的根源,该指令能返回最近连接NTP服务器的600个客户端的详细信息。

想要防止NTP被黑客武器化,必须限制monlist指令的执行。4.2.7之后的ntpd版本默认是限制monlist指令执行的;如果必须使用之前的版本,可以将该限制显式添加到其配置文件ntp.conf里。

8. FTP:别用标准版

FTP有用,但其基本形太过古旧僵化。该协议最根本的问题在于,从身份验证到文件传输,所有操作都没加密。如果应用程序或工作流需要文件传输功能,其替代版可以提供更加安全的功能执行。

最常见的两个替代版是FTPS和SFTP。这两个版本完成相同的功能:通过加密隧道传输文件(以及传输前的凭证)。不过,二者的实现方法并不相同。

SFTP是SSH中的FTP。FTPS是加了SSL的FTP。二者在安全上并无优劣之分,具体要实现哪一个,就看FTP在文件呈现和传输上的安全性需求了。或者,可以像很多团队选择的那样,两个都实现。

9. FTP:架在正确的网关后

很多情况下,FTP实现需允许合作伙伴、供应商或客户与公司之间互传文件。这意味着FTP服务器必须面对互联网,通常是架在网络中的非军事区(DMZ)。

直面互联网的服务器往往比隔离网络中的服务器更脆弱。所以,如果必须保留FTP功能,就得设置FTP网关来保护FTP服务器。大多数情况下,该网关就是另一种形式的反向代理:外部客户端先与网关发起会话,然后网关建立起从服务器到该外部客户端的安全隧道。

FTP网关可选范围很广:AWS、IBM、Barracuda、Ipswitch都是能提供多种实现方式的公司,还有其他很多公司也能提供该功能。

10. FTP:目录和文件安全

在网络时代早期,人们还很单纯的时候,公司企业有时候会通过FTP设置专用于发送和接收文件的子目录。匿名FTP也可以在该子目录中发送和接收文件,而且享有全部读写权限,文件保存时间还可以很长。

应采取一系列措施保护FTP服务器及其收发的文件:限制子目录读写权限,限制子目录中文件的读写权限,限制该子目录呈现的内容仅为刚刚上传或需要马上下载的文件。

公网上的任何活动都可能有风险。但运用恰当的技术和策略,公司企业可以让很多网络活动变得更安全。

上一篇:NetSpectre可利用芯片安全漏洞远程盗取信息(虽然很慢)

下一篇:Imperva:看好中国市场 做应用与数据安全领导者