教程篇(6.0) 10. 入侵防御和拒绝服务攻击 ❀ FortiGate 安全 ❀ Fortinet 网络安全专家 NSE 4

  • Post author:
  • Post category:其他



在这节课中,你将学习如何使用FortiGate来保护你的网络免受入侵和拒绝服务攻击。


在本次课程中,你将探讨以下主题:

  • 入侵防御系统
  • 拒绝服务攻击
  • Web应用防火墙
  • 最佳实践
  • 故障排查


在完成本节之后,你应该能够:

  • 区分漏洞利用和异常
  • 识别一个IPS包的不同组件
  • 管理FortiGuard IPS 更新
  • 选择一个适当的IPS签名数据库
  • 配置一个IPS传感器
  • 识别IPS传感器检测序列
  • 将IPS应用到网络流量

通过演示IPS的能力,你应该能够实现一个有效的IPS解决方案来保护你的网络不受入侵。


组织受到持续的攻击。网络犯罪分子,由于之前成功的高调黑客攻击和利润丰厚的窃取数据的黑市,继续增加他们对组织的攻击的数量和复杂性。许多组织鼓励BYOD和灵活的工作环境,这导致了任何时间、任何地方的数据消耗的爆炸式增长。这种消费增加了敏感数据将暴露在公司边界之外的未经授权的访问的风险。

今天的威胁环境要求IPS能够阻止更广泛的威胁,同时尽量减少误报。


理解异常和利用之间的区别是很重要的。同样重要的是要知道哪些FortiGate可以保护这些类型的威胁。

漏洞是已知的攻击,已知的模式可以通过IPS、WAF或反病毒签名来匹配。

异常是网络中的异常行为,例如高于通常的CPU使用率或网络流量。异常必须被检测和监测(在某些情况下,被阻断或减轻),因为它们可能是一种新的、从未发生过的攻击的症状。异常通常通过行为分析得到更好的检测,例如基于率的IPS签名、DoS策略和协议约束检查。


在FortiGate上的IPS使用签名数据库来检测已知的攻击。协议解码器也可以检测网络错误和协议异常。

IPS引擎负责本课程中所展示的大部分特性:IPS和协议解码器。它还负责应用控制、基于流的反病毒保护、网络过滤、电子邮件过滤和在单臂嗅探模式中基于流的DLP。


IPS引擎如何确定一个数据包是否包含攻击或异常?

协议解码器根据协议规范对每个包进行解析。一些协议解码器需要一个规范端口号(在CLI中配置),但是通常,协议是自动检测到的。如果流量不符合规范——例如,如果它向您的服务器发送畸形或无效的命令——那么协议解码器就会检测到错误。


默认情况下,在每个FortiGate的固件版本中都包含了一组初始的IPS签名。FortiGuard用新的签名更新IPS签名数据库。这样,IPS仍然可以有效地防止新的攻击。除非协议规范或RFC更改(通常不会经常发生),否则协议解码器很少更新。IPS引擎本身的变化更频繁,但仍然不经常。

FortiGuard IPS服务最常更新IPS签名。FortiGuard研究小组确认并建立新的签名,就像反病毒签名一样。所以,如果你的防御服务合同到期,你仍然可以使用IPS。然而,就像反病毒扫描一样,IPS扫描在你的签名未更新的时间越长,就会变得越来越无效——旧的签名不会防御新的攻击。


IPS签名数据库被划分为常规和扩展的数据库。常规的签名数据库包含用于常见攻击的签名,其签名会导致罕见的或没有假阳性。它是一个更小的数据库,它的默认操作是阻止检测到的攻击。

扩展的签名数据库包含额外的签名,用于攻击,这些攻击会造成显著的性能影响,或者由于其性质而不支持阻 止。事实上,由于它的大小,扩展的数据库对于带有较小磁盘或RAM的FortiGate型号来说是不可用的。但是,对于高安全性的网络,你可能需要启用扩展签名数据库。



在FortiGate下载了一个FortiGuard的IPS包之后,新的签名出现在签名列表中。在配置FortiGate时,您可以为使用签名的每个传感器更改Action设置。

默认的动作设置通常是正确的,除了以下情况:

  • 你的软件供应商将发布一个安全补丁。继续扫描漏洞将会浪费FortiGate的资源。
  • 你的网络有一个带有流量的自定义应用程序,无意中触发IPS签名。您可以禁用设置,直到您通知Fortinet,以便FortiGuard团队可以修改签名以避免误报。



有两种方法可以将预定义的签名添加到IPS传感器中。一种方法是单独选择签名。当你在列表中选择一个签名之后,该签名将被添加到传感器中,并带有默认动作。然后,你可以右键单击签名并改变动作。

在传感器中添加签名的第二种方法是使用过滤器。FortiGate将添加与过滤器匹配的所有签名。



当在配置的时间段内超过阈值时,你还可以添加基于率的签名来阻止特定的流量。你应该只对实际使用的协议应用基于率的签名。然后,配置Block Duration ,以阻止恶意客户的扩展。这样可以节省系统资源,并且可以阻止重复攻击。在临时封锁的时候,FortiGate不会跟踪那个客户的统计数据。



当IPS引擎将流量与每个过滤器中的签名进行比较时,顺序很重要。这些规则类似于防火墙策略匹配:引擎首 先对列表顶部的过滤器进行评估,并应用第一个匹配。引擎跳过后续的过滤器。

因此,在列表的顶部放置最可能匹配的过滤器或签名。避免使用太多的过滤器,因为这增加了评估和CPU的使 用。另外,避免在每个过滤器中创建非常大的签名组,从而增加RAM的使用。

如果出现假阳性的爆发,你可以将触发的签名添加为单独的签名,并设置动作为Monitor。这将允许你使用IPS日志监视签名事件,同时调查假阳性问题。



有时,有必要从特定的签名中豁免特定的源或目地IP地址。该特性在假阳性暴发期间是有用的。你可以暂时绕过受影响的端点,直到您调查并纠正假阳性问题。

你仅可以对单个签名配置IP豁免权。每个签名都可以有多个豁免。



在你选择要添加的过滤器或签名之后,右键单击过滤器或签名,然后选择动作。

选择Pass以允许流量继续到达它的目的地。选择Monitor,以允许流量继续到其目的地并记录活动。选择 Block以静默地删除与过滤器中包含的任何签名相匹配的流量。每当触发签名时,选择Reset来生成TCP RST 数据包。

Quarantine允许你在一个固定的时间内隔离攻击者的IP地址。你可以将隔离时间设置为任何天数、小时或分钟。

如果您选择了Packet Logging,FortiGate保存与签名相匹配的数据包的副本。



要应用一个IPS传感器,你必须启用IPS,然后在防火墙策略中选择传感器。默认情况下,FortiGate会记录所有安全事件。这意味着您可以看到任何被IPS阻止的流量。

如果你认为某些流量应该被阻止,但是正在通过策略,你应该将Log Allowed Traffic 更改为All Sessions。 这将记录由防火墙策略处理的所有流量,而不只是安全配置文件阻止的流量。这可以帮助你识别错误的负面事件。



如果你允许安全事件在应用IPS的防火墙策略中记录,那么你可以通过单击Log & Report > Intrusion Prevention来查看IPS事件,防止入侵。Intrusion Prevention 日志菜单只有在FortiGate与IPS签名相匹配时才会出现。

你应该经常检查IPS日志。日志是关于你的网络中攻击的攻击类型的宝贵信息来源。这将帮助你制定行动计划并关注特定的事件,例如,修补一个关键的漏洞。



小测验。



现在你已经了解了在FortiGate上的IPS。接下来,你将了解拒绝服务。



在完成本节之后,你应该能够:

  • 确定DoS攻击
  • 配置DoS策略

通过演示在DoS中的能力,你应该能够保护你的网络免受常见的DoS攻击。



到目前为止,你已经了解了与非法命令和无效协议实现相匹配的签名。这些都很容易被证实为攻击。

在客户端和服务器之间利用非对称处理或带宽的攻击,又如何呢?

DoS攻击的目标是压倒目标——消耗资源,直到目标无法响应合法的流量。有很多方法可以做到这一点。高带宽使用只是DoS攻击的一种类型。许多复杂的DoS攻击,比如慢速,不需要高带宽。



要阻止DoS攻击,请在攻击者和你想要保护的所有资源之间的FortiGate设备上应用一个DoS策略。

DoS过滤是在包处理过程的早期完成的,它是由内核处理的。



在TCP中,客户端发送一个SYN包来启动连接。服务器必须响应一个SYN/ACK数据包,并在RAM中保存连接信息,同时等待客户端用ACK数据包进行确认。正常的客户端会快速地发送,并开始传输数据。但是恶意客户 端继续发送更多的SYN包,半打开更多的连接,直到服务器的连接表变得满为止。一旦服务器的表满了,它就不能接受更多的连接,并开始忽略所有的新客户端。

在故障排查过程中使用ICMP:设备响应成功或错误消息。然而,攻击者可以使用ICMP来探测网络,以获得有 效的路由和响应性的主机。通过执行ICMP扫描,攻击者可以在制作更严重的攻击之前获得关于你的网络的信息。

攻击者使用端口扫描来确定系统上哪个端口是活动的。攻击者将TCP SYN请求发送到不同的目的地端口。根据这些回复,攻击者可以映射出系统上运行的哪些服务,然后继续利用这些服务。



DoS攻击是来自单个地址的大量流量。它可以来自互联网,甚至来自你的内部网络。通常,单个设备可以进行许多连接或会话,并且可能使用大量的带宽来连接到单个位置。这种情况的一个变体是分布式拒绝服务攻击或DDoS攻击。它有许多与DoS攻击相同的特征,但主要的区别在于,多个设备都在同时攻击一个目的地。



你可以将DoS保护应用到四种协议:TCP、UDP、ICMP和SCTP。而且,你可以应用四种不同类型的异常检测协议:

  • 洪水传感器检测到该特定协议的大量内容,或协议中的信号。
  • 打扫/扫描检测到探测主机的端口响应的探测尝试,因此可能是脆弱的。
  • 源签名寻找来自单个IP的大量流量。
  • 目的签名寻找为单个IP发送的大量流量。

当你第一次实现DoS时,如果您的网络没有一个准确的基线,请注意不要完全阻止网络服务。为了防止这种情 况发生,首先配置DoS策略来记录日志,而不是阻止。使用日志,您可以分析和识别每个协议的正常和峰值级 别。然后,在应用适当的过滤时,调整阈值以允许正常的峰值。

洪水、清扫和扫描传感器的阈值被定义为每秒会话或数据包的最大数量。源和目标传感器的阈值被定义为并发 会话。在DoS策略触发之前,过高的阈值会耗尽您的资源。太低的阈值将导致FortiGate丢掉正常的流量。



小测验。



现在你已经了解了如何保护您的网络免受DoS攻击。接下来,你将了解web应用程序防火墙。



在完成本节之后,你应该能够:

  • 确定在FortiGate上的WAF的目的
  • 识别常见的web攻击
  • 配置一个WAF配置文件

通过演示WAF的能力,你应该能够应用正确的WAF检查来保护你的网络中的服务器。



什么是WAF,为什么你需要它?

一些FortiGate的功能是为了保护客户,而不是服务器。例如,FortiGuard web过滤会根据服务器的web页面的 类别来屏蔽请求。反病毒防止客户意外下载间谍软件和蠕虫。这两种方法都不能保护服务器免受(它不会发送 请求——它接收它们)来自恶意脚本或SQL注入攻击。保护web服务器需要一种不同的方法,因为它们受到其 他类型的攻击。这就是WAF所应用的地方。

WAF特性仅在代理检查模式下可用。



让我们看一些针对web应用程序的攻击示例。

一种类型的攻击称为跨站点脚本(XSS)。如果web应用程序没有对其输入进行消毒,并拒绝JavaScript,那 么它最终会将XSS攻击存储在其数据库中。然后,当其他客户端请求重新使用该数据的页面时,JavaScript就 会嵌入到页面中。

JavaScript可以用一个页面做很多事情,包括重写整个页面并发出自己的请求。这是异步JavaScript和XML (AJAX)应用程序的基本机制。在这种情况下,XSS会导致无辜的客户端发送到由攻击者控制的另一台服务 器。例如,这可以将信用卡信息或密码从HTTP表单发送给攻击者。



另一个常见的web攻击是SQL注入。就像XSS攻击一样,SQL注入的根本原因是web应用程序没有对输入进行 消毒。如果攻击者将SQL查询输入到诸如HTML表单之类的输入中,web应用程序就会接受它,并将其传递给 数据库引擎,后者会意外地运行查询。

SQL语言可以对数据做任何事情。例如,它可以下载用户的表,这样攻击者就可以运行一个密码破坏者。查询可以在尝试中为新的管理员日志添加新的条目,或者在尝试中修改日志,阻止管理员登录。



WAF特征的一个组成部分是WAF签名。WAF签名的工作方式与IPS签名相同。FortiGate可以在与他们任何一 种相匹配的流量上采取行动。一些WAF签名被归类为扩展。它们更有可能导致误报,但有时在高安全性环境中是必需的。

HTTP约束可以监视和控制许多HTTP头的数量、类型和长度,这也是输入。这可以防止恶意客户端故意的输入, 从而破坏您的服务器。这些限制可能因服务器的软件而异,但也会因其硬件而异。例如,如果一台服务器的 RAM有限,那么它可能更容易超载或崩溃,因为过多的头信息会导致超载,因为解析头文件并将它们存储在缓 冲区中需要RAM。

在配置WAF配置文件之后,它将被分配给一个或多个防火墙策略。



FortiWeb是一种特殊的WAF设备。对于那些保护web服务至关重要的环境,你可以使用一个FortiWeb设备来补充一FortiGate。

FortiWeb提供了更完整的HTTP协议理解和状态攻击保护。它可以执行漏洞扫描和渗透测试。它还可以重写 HTTP数据包,并基于HTTP内容路由流量。



在大多数情况下,FortiWeb都是作为独立的设备安装的,通常位于FortiGate和受保护的web服务器之间。可以在线上安装FortiWeb(网络流量通过设备)或离线(设备被连接为单臂嗅探器)。

或者,您可以配置FortiGate,将web流量转发到外部的FortiWeb,在那里发生WAF检查。这是很有用的,例如, 当您需要保护位于多个站点的服务器时,仅使用一个单独的FortiWeb。有了这个设置,FortiGate将把所有的 web流量转发到FortiWeb,如果流量匹配一个防火墙策略,它配置了一个WAF配置文件,可以进行外部检查。

关于FortiWeb的详细信息,请参阅NSE 6 FortiWeb 培训材料



小测验。



现在你已经了解了如何在FortiGate上使用WAF来保护你的服务器。接下来,您将了解IPS最佳实践。



在完成本节之后,你应该能够:

  • 确定IPS实施方法
  • 为IPS检查的流量启用全SSL检查
  • 识别IPS的硬件加速组件

通过展示识别IPS实现最佳实践的能力,你应该能够在FortiGate上部署一个IPS解决方案,这将是高效和有效的。你还应该能够对被检查的流量进行全面的SSL检查,并确定IPS的硬件加速组件。



在实现IPS之前,您必须分析您的网络的需求。在所有策略中启用缺省配置文件将很快导致问题,其中最不重 要的是误报。对所有网络流量进行不必要的检查会导致资源利用率高,这可能会妨碍FortiGate处理常规流量的能力。

你还必须评估适用的威胁。如果你的组织只运行Windows,那么就不需要扫描Mac OS的漏洞。同样重要的是要考虑到流量的方向。有许多IPS签名只适用于客户端,以及许多只适用于服务器的签名。创建特定于你想要保护的资源的IPS传感器。这将确保FortiGate不会用无关的签名扫描流量。

最后,IPS并不是一个设置-遗忘的实施。你必须定期监视异常的流量模式,并根据你的观察调整你的IPS配置文件配置。你还应该定期审计你的内部资源,以确定某些漏洞是否仍然适用于你的组织。



某些漏洞只适用于加密连接。在某些情况下,如果无法解析有效负载,FortiGate无法可靠地识别威胁。出于这 个原因,如果您想从IPS和WAF特性中获得最大的好处,你必须使用SSL检查配置文件。

这张幻灯片上的示例展示了为保护服务器的SSL检查配置文件的配置。当应用于入站通信时,该策略将能够可 靠地对加密通信进行IPS和WAF检查,因为FortiGate将能够解密加密的会话并检查数据包的所有部分。

需要注意的是,DoS策略没有能力分配SSL检查配置文件。这是因为DoS不需要SSL检查来最大化它的探测能 力,因为它不检查数据包的负载。DoS只检查某些会话类型及其相关卷。



通常情况下,需要检查的流量,如反病毒或IPS,都是由位于FortiGate的CPU处理的。然而,在特定的 FortiGate型号上有专门的芯片可以卸载这些检查任务。这释放了CPU周期来管理其他任务,并且加速了需要安 全检查的会话。

支持一种名为NTurbo的功能的FortiGate型号可以将IPS处理卸载到NP4、NP6或SoC3处理器。如果在配置系 统全局下可以使用命令np-accel-mode,那么FortiGate型号就支持NTurbo。

一些FortiGate型号也支持将IPS模式匹配卸载到CP8或CP9的内容处理器。如果命令cp-accel-mode在配置IPS global下可用,那么FortiGate型号支持IPS模式匹配加速到它的CP8或CP9处理器。




​  小测验。




​  现在你已经了解了在FortiGate上实现IPS的一些最佳实践。接下来,你将了解IPS故障排查。




​  在完成本节之后,你应该能够:

  • 排除FortiGuard IPS 更新故障
  • 解决IPS高CPU使用问题
  • 管理IPS打开故障事件
  • 调查假阳性检测

通过演示故障排查能力,你应该能够识别、调查和管理在FortiGate上的IPS部署的一些常见问题。




​ 在TCP端口443上,FortiGate发送更新请求到update.fortiguard.net。您还可以配置FortiGate通过web代 理连接以进行更新。通常,连接到web代理的客户端不会联系DNS服务器来解析名称,因为它是执行该操作的 web代理。但是,在FortiGuard的情况下,FortiGate总是需要DNS访问,即使是通过Web代理连接。

你应该定期检查最新的更新时间戳。你可以在GUI中验证它。如果有任何迹象表明IPS定义没有更新,您应该进 行调查。一定要确保FortiGate有正确的DNS解析连接到update.fortiguard.net。如果有机会,在 FortiGate和互联网之间有任何中间设备,确保正确的防火墙规则允许在443端口上进行通信。任何对这种流量 进行SSL检查的中间设备也会导致更新的问题。

最后,你可以使用FortiGuard更新调试来实时监控更新事件。




​ IPS进程的CPU使用量的短期峰值可能是由防火墙策略或配置文件更改引起的。这些峰值通常是正常的。当 FortiGate有数百个策略和配置文件,或者许多虚拟域时,可能会出现峰值。IPS引擎的连续高CPU使用是不正 常的,您应该对此进行调查。这里显示的命令,以及显示选项可用于解决这些问题。

如果由IPS引起的高CPU使用问题,您可以使用诊断测试应用程序IPSmonitor命令和选项5来隔离问题可能在哪 里。选项5支持IPS旁路模式。在这种模式下,IPS引擎仍在运行,但它并没有检查流量。如果CPU使用率在此 之后有所下降,那么它通常表明被检查的流量对于该FortiGate型号来说太高了。

如果在启用了IPS旁路模式之后,CPU使用率仍然很高,那么它通常会在IPS引擎中显示出一个问题,您必须向 Fortinet的支持团队报告。您可以使用选项2完全禁用IPS引擎。如果您希望在您完成故障排查后恢复IPS检查, 请再次使用选项5。

另一个需要记住的建议是:如果您需要重新启动IPS,请使用选项99,如这张幻灯片所示。这保证了所有与IPS 相关的进程都能正确地重新启动。




​  当IPS套接字缓冲区中没有足够的可用内存用于新数据包时,IPS就会进入失败的打开模式。在那个状态下会发 生什么取决于IPS配置。如果启用了故障打开设置,一些新的数据包(取决于系统负载)将在不被检查的情况 下通过。如果它被禁用,新的数据包将被丢弃。

经常的IPS打开故障事件通常表明IPS无法满足流量需求。所以,试着识别模式。最近的流量增加了吗?吞吐量 需求增加了吗?在白天的特定时间,是否会打开fail open触发器?

调和和优化你的IPS配置。为被检查的流量类型创建专门的IPS配置文件,并在不需要IPS保护的策略上禁用IPS 配置文件。




​  如果出现假阳性检测,首先要确定是哪个签名产生了它们。您还应该验证流量是否达到了正确的策略和IPS传 感器。在您验证了这些因素之后,您应该收集流量的样本。在签名上使用Packet Logging操作。为FortiGuard 团队进一步的调查提供流量样本和匹配的IPS日志。




​  小测验。




​  你已经完成了这一课。现在你将回顾你在这节课所讲的目标。




​  这一课涉及以下主题:

  • 管理FortiGuard IPS 更新
  • 配置一个IPS传感器
  • 将iIPS应用于网络流量
  • 确定DoS攻击
  • 配置DoS策略
  • 识别常见的web攻击
  • 配置一个WAF配置文件
  • 确定IPS实施方法
  • 解决常见的IPS问题

通过掌握本课程所涵盖的目标,你已经获得了配置、维护和排除你的FortiGate的IPS解决方案所需的技能和知识。