教程篇(5.4) NSE4 09. 反病毒 ❀ 飞塔 (Fortinet) 网络安全专家

来源:互联网 发布:怎么加入淘宝网热卖 编辑:程序博客网 时间:2024/06/04 19:06


在这节课中将向你展示如何配置、使用和监视FortiGate上的反病毒扫描。

  反病毒扫描是UTM其中一种功能,根据你的配置和选择的签名数据库,会占用内存,我们还将向你展示如何解决保护模式。


在完成这一课程之后,你应该具备配置反病毒和优化你的FortiGate内存使用的技能。


恶意软件已经发展成许多类型。尽管我们经常把所有类型的恶意软件都称为病毒,但并非所有的恶意软件都像病毒一样,恶意软件并不总是自我复制,有时用户也愿意安装它。我们现在使用“恶意软件”这个词,指的是病毒、蠕虫、木马、间谍软件等。

  恶意软件可以分为两大类:

  • 病毒:通常未经用户同意而安装,并在计算机之间传播,通常是在用户不知情的情况下。

  • 灰色软件:可能需要某种用户交互。它使用户确信安装它的好处超过了成本,比如浏览器工具栏,它可以跟踪用户的活动并将广告插入到网页中。


不管病毒如何传播,一旦安装,病毒就会有恶意。一些常见的恶意软件威胁是:

  • 特洛伊木马,比如Zeus,欺骗用户,让他们放下防御并安装他们。一旦安装完毕,他们就可以监视用户的活动,窃取敏感数据,比如银行账户号码和密码。木马还可以在目标主机上设置后门控制,从而对恶意用户提供访问。

  • 蠕虫,比如Conficker和Code Red,通过连接到网络上的开放端口和利用错误配置或其他漏洞来传播。

  • 间谍软件,比如Zango,在用户的信息不知情的情况下收集用户的信息。

  • 勒索软件,如CryptoLocker,将计算机作为人质,通常用密码或秘密密钥对关键用户数据进行加密,直到支付某种形式的款项。

  • Rootkit支持在没有用户知情或同意的情况下对目标计算机进行管理级访问。

  • 密钥记录者记录击键并将其返回到一个远程位置,包括发送管理员登录和个人电子邮件地址。

  • 大型邮件服务器将计算机转换为僵尸网络的开放式中继邮件服务器,通常通过远程命令和控制进行管理。

  恶意软件都是病毒吗?根据定义是的。但是一些学者已经编写了一些有益的蠕虫类软件。它通过同样的漏洞传播,然后清除感染或者修补宿主。例如,Creeper之后的Reaper,从被感染的系统中移除Creeper。


正如病毒进化出许多传播的媒介一样,它们也进化出了许多躲避病毒引擎和人工分析的技术。

  病毒可以加密它们的有效载荷,或者改变代码。因此,当将签名与二进制样本进行比较时,这两者并不是精确的、逐位匹配的。因此,为了检测病毒,引擎必须能够做到:

  • 搭配灵活

  • 忽略代码的可变部分,只根据多态或变形引擎进行匹配。


现在你知道了一些不同的病毒传播和躲避检测的方法。在这一节中,你将学习FortiGate用来检测和阻止病毒的方法。


反病毒是一个病毒特征的数据库,用来识别感染。在反病毒扫描中,为了检测到病毒,病毒必须匹配一个称为签名的已定义模式。

  不同的供应商对同一种病毒有不同的名称。一些厂商使用模式来检测每种病毒一个模式。而另一些则使用更为灵活的模式,并且可以使用单一模式捕获多个病毒。所使用的模式依赖于供应商的引擎。

  攻击向量指派的标准是什么?它是以名字开头为准。例如,如果向量是W32,它表示32位的窗口。W64代表64位的Windows,JS表示JavaScript(它是跨平台的)。

  在主机级别,像FortiClient这样的基于主机的反病毒软件可以帮助我们。但是基于主机的反病毒软件不能安装在路由器上。客户的无线网络和网络服务提供商也可能没有安装反病毒软件。

  那么你如何保护他们和你自己的网络免受这些恶意软件的威胁呢?


就像病毒一样,有很多方法可以避免被发现,FortiGate有许多技术可以用来检测它们。它们包括:

  • 反病毒扫描:第一个最快、最简单的检测恶意软件的方法是在反病毒数据库中匹配一个签名。

  • 灰色软件:从技术上讲,它不是一种病毒。请记住,它通常与无害的软件捆绑在一起,但它确实有不受欢迎的副作用,因此它被归类为恶意软件。通常,使用一个简单的FortiGate灰色软件签名就可以检测到灰色软件。

  • 启发式:它们是基于概率的,因此增加了假阳性的可能性,但是它们也能检测到零日病毒,新的和未知的病毒,因此还没有信号存在。如果你的网络是一个频繁的目标,那么启用启发式可能是值得的,因为它可以帮助你在暴发开始之前检测到一个病毒。默认情况下,当反病毒扫描的启发式引擎检测到病毒样特征时,它会以可疑的方式记录文件,但不会阻止它。你可以选择是阻止还是允许可疑的文件。

  灰色和启发式是可选的功能,必须在CLI中启用。

  • 你可以在〖config antivirus setting〗命令下启用和禁用灰色软件。

  • 你可以使用〖config antivirus heuristic〗命令,将使启发式扫描的操作配置为通过、阻塞或禁用。

  由于这些都是单独的步骤,反病毒扫描也必须启用。如果启用了灰色软件和启发式,那么FortiGate就可以按照以下顺序应用扫描:反病毒扫描—灰色软件扫描—启发式扫描。


如果启发式也不确定怎么办?如果你需要一种更复杂、更确定的方法来检测恶意软件,并找到零日病毒,那该怎么办?


  你可以把你的反病毒扫描和FortiSandbox整合在一起。对于需要更多确定性的环境,在一个受保护的环境中,FortiSandbox会执行该文件,然后检查软件的影响,看它是否危险。

  例如,假设你有两个文件。两者都会改变系统注册表,因此会产生怀疑。一个是驱动程序安装,它的行为是正常的,但是第二个文件安装了一个连接到僵尸网络命令和控制服务器的病毒。Sandboxing将揭示这一差异,并可以被配置为从沙箱中获得补充的签名数据库。


你可以使用推送或定时两种方法升级你的FortiGate病毒数据库。计划的更新允许你定期地对计划的更新进行配置,例如每小时、每天或每周。你还可以启用接受推送更新,这允许你在发布FortiGuard时添加新的定义。这对于高安全性的环境是非常有用的,因为当它们被释放时,FortiGate将会收到紧急的安全更新。


  无论选择哪种方法,都必须在至少一个防火墙策略中启用病毒扫描。否则,FortiGate将不会下载任何更新。另外,你可以从Fortinet客户服务和支持网站(要求订阅)下载包,然后手动将其上传到你的FortiGate。你可以从GUI的FortiGuard页面上验证更新状态和签名版本,或者你可以在CLI运行〖diagnose autoupdate status〗和〖diagnose autoupdate version〗命令。

  有多个FortiGuard反病毒数据库,可以在〖config antivirus setting〗命令下配置,支持不同于FortiGate型号。

  • 所有的FortiGate都有标准数据库,它只包含了最近几个月由FortiGuard全球安全研究小组确定的病毒的签名。它是最小的数据库,因此扫描结果最快,但是没有检测到所有已知的病毒。

  • 一些型号支持扩展数据库,该数据库检测到不再活跃的病毒。脆弱的平台仍然很常见,并且这些病毒稍后可能会成为一个问题。

  • 极端数据库用于高安全性环境,并检测所有已知的病毒,包括不再广泛使用的遗留操作系统。

  【提示】FortiGate 反病毒数据库并非只有一个文件,可是包含标准数据库、扩展数据库和极端数据库。


FortiGuard移动安全订阅是一个独立的订阅服务。你还可以单击如何订阅以获得关于订阅的详细说明。


  随着越来越多的组织允许携带你自己的设备(BYOD),移动安全订阅可以确保针对针对移动平台的最新威胁的最新保护。你还可以查看移动威胁列表,在https://fortiguard.com/avmobilethreats 中可以查询。


在这一节中,我们将检查FortiGate的检查模式,包括:

  • 基于流

  • 基于代理

  检查模式决定了如何对不同的安全配置文件进行扫描。


让我们先来谈谈基于代理的扫描。

  基于代理的扫描通常指的是透明代理。它被称为透明,因为在IP层,FortiGate不是目标地址,然后FortiGate总是拦截流量。

  在TCP连接中,FortiGate的代理生成了对客户端的SYN-ACK,并在创建与服务器的新连接之前完成了与客户机的三种方式的握手。如果有效载荷小于超大限制,则代理缓冲区将在继续传输之前传输文件或电子邮件进行检查。代理分析并可能更改诸如HTTP主机和web过滤的URL等头信息。如果一个安全配置文件决定阻止连接,代理可以向客户端发送一个替换消息。

  这增加了整个传输速度的延迟。

  基于流的扫描又有什么不一样呢?

  没有代理。如果你熟悉Wireshark的TCP流分析,那么这就是流引擎所看到的。在接收数据包时,会分析并转发数据包。原来的流量没有改变。因此,不支持修改内容的高级特性,比如安全搜索执行。


FortiGate支持两种类型的扫描模式:

  • 基于流优化了性能,支持较少的安全功能。

  • 基于代理对用户友好性进行了优化,并支持更多的安全性配置文件功能和更多的配置选项。例如,web过滤的web配置文件重写仅在代理模式中得到支持。


  默认的检查模式是代理,可以从FortiGate的仪表板上的系统信息小部件上进行切换。如果在FortiGate上启用了虚拟域,那么你可以在每个VDOM中从Global>System>VDOM切换到基于流和代理的检查模式。


你可以在基于代理和基于流的检查之间切换,这将导致受支持的安全性配置文件和相关配置被转换为基于流的或基于代理的。防火墙策略将根据所选择的检查模式显示安全性配置文件和相关设置。从代理到流再切换回代理最终导致原始配置改变,而一些配置元素将使用缺省配置设置。


在本节中,你将了解反病毒如何使用检查模式来扫描和检测恶意软件。


每个协议的代理获取一个连接,并在扫描之前首先缓冲整个文件(或者等待到达超大的限制)。客户端必须等待扫描完成。如果检测到病毒,则立即显示阻止替换页面。由于FortiGate必须缓冲整个文件,然后进行扫描,它需要很长时间才能扫描。此外,从客户端角度看,它必须等待扫描完成,并可能由于缺少数据而终止连接。

  你可以通过〖config firewall profile〗下的protocol-options命令树来配置客户端对HTTP和FTP的支持。这使得代理可以缓慢地传输一些数据,直到它能够完成缓冲区并完成扫描。这可以防止连接或会话超时。在第一次尝试中不会出现阻止替换消息,因为FortiGate正在将数据包发送到终端客户端。


使用基于代理的扫描,客户端发送一个请求,而FortiGate开始缓冲整个文件,然后将其发送到AV引擎进行扫描。如果文件是干净的(没有任何病毒),则FortiGate开始将文件传送到终端客户端。如果发现了一个病毒,就不会将数据包发送到终端客户端,代理会将替换的块消息发送给终端客户端。


基于流的完整反病毒扫描模式使用完整的反病毒数据库(紧凑的AVDB是完整的反病毒数据库的一个子集)和IPS引擎来检查网络流量。它不会在离散的协议阶段分析会话。基于流的引擎开始使用原始的IP+TCP包进行扫描,不一定是顺序的,并且必须提取有效负载以发现病毒有效负载,而不考虑周围的协议细节。当文件同时传输时,基于流的扫描会消耗更多的CPU周期,但是,根据你的型号,一些基于流的操作可能由一个专门的FortiASIC芯片来执行,进一步提高性能。基于流的扫描将本地包的副本存储在FortiGate上,同时将包转发到终端客户端。一旦接收到最后一个包,FortiGate也会缓存,但是将最后一个包挂起,对整个文件进行扫描。IPS引擎检查规则匹配,然后发送到AV引擎进行扫描。

  如果检测到病毒,可能有两种情况:

  • 如果扫描在TCP会话中检测到一个病毒,当它可能已经将数据包转发给客户端时,它会重新设置连接,但是不会插入阻止替换页面。因此,客户可能认为这是一个网络错误,并再次尝试。FortiGate的IPS引擎会缓存URL,在第二次尝试下载相同的文件时,该块替换页面会立即显示,而不需要加入反病毒引擎。即使客户端在第一次尝试中收到了大部分文件,这个文件也会被截断,客户端也无法打开一个被截断的文件。

  • 如果在流开始时检测到病毒,基于流的扫描可以在第一次尝试时插入阻止替换页面。


正如你所看到的,客户端发送一个请求并立即开始接收数据包,但是FortiGate同时也在同时缓存这些包。当最后一个数据包到达时,FortiGate会将其缓存并将其搁置。然后,它将整个缓存的文件发送到IPS引擎,在那里检查规则匹配并将其传递到AV引擎进行扫描。如果AV扫描没有检测到任何病毒,结果返回干净,最后一个缓存的包将被重新生成并交付给客户端。但是,如果发现了病毒,最后一个数据包就会被丢弃。即使客户端收到了大部分文件,文件也会被截断,客户端将无法打开一个被截断的文件。

  不管你使用哪种模式,扫描技术都会给出相似的检测率。你如何在扫描引擎之间做出选择?如果性能是你的首要任务,那么基于流的则更合适。如果安全性是你的优先级,那么基于代理的客户端舒适禁用,是更合适的。


基于流的快速扫描使用一个IPS引擎和一个嵌入的紧凑的反病毒数据库,其中包含较少的签名。IPS引擎检查病毒、蠕虫、木马和恶意软件的网络流量,而不需要缓冲被检查的文件。它提供了更好的性能,但检测率较低。

  与基于流的扫描和基于代理的扫描相比,快速扫描确实有一些限制。快速扫描不能将文件发送到FortiSandbox进行检查,不能使用先进的启发式,不能使用移动恶意软件包。低端的FortiGate型号不支持基于流程的快速扫描。


这张表显示了三种反病毒扫描模式的比较。


那么什么是推荐的缓冲区限制呢?它因型号和配置而异。你可以为你的唯一网络调整大小限制,以获得最佳性能。一个较小的缓冲区可以最小化代理延迟和(对于两种扫描模式)RAM的使用,但是这种方式有可能允许病毒通过而未被发现。如果缓冲区太大,客户机可能会注意到传输超时。你需要平衡两者。

  如果你不确定需要多大的缓冲区,你可以临时启用超大号的日志,以查看大型文件是否经常出现,并且非常重要。

  不能对最大缓冲区大小的文件进行扫描。默认情况是允许文件通过。这是因为大型文件通常是无害的,而且许多网络都在端点上安装了反病毒软件,这可以最小化不必要的帮助呼叫。但是,如果你需要一个非常安全的环境,或者如果你的端点没有反病毒软件,那么你可以从CLI中更改这个设置,以每一个协议为基础,这样就可以阻止超大号的文件。

  如果过大的文件被阻塞,那么你的端点是安全的。你不需要关于大型文件的日志来进行取证,因此你可以通过禁用超大号日志来提高性能。


大文件通常被压缩。当压缩文件经过扫描时,压缩就像加密一样,签名是不匹配的。因此,为了扫描它,FortiGate必须对文件进行解压。

  在对文件进行解压之前,必须首先识别压缩算法。一些存档类型可以只使用header进行正确的标识。此外,FortiGate必须检查文件是否有密码保护。如果存档是用密码保护的,那么FortiGate不能对它进行解压,因此不能扫描它。

  然后将文件解压到RAM中。与其他大文件一样,RAM缓冲区的最大大小是在uncompress-oversize-limit范围内配置的。增加这个限制可能会降低性能,但是它允许你扫描更大的压缩文件。

  如果一个存档是嵌套的,例如,如果一个攻击者试图通过在ZIP文件中放置ZIP文件来绕过你的扫描,那么FortiGate将尝试撤销所有的压缩层。默认情况下,FortiGate尝试解压并扫描到12层深度,但你可以配置它来扫描多达200层的深度。通常,你不应该增加这个设置,因为它增加了RAM的使用。


完全基于流和基于代理的扫描缓冲区可以达到指定的文件大小限制。默认值是10 MB。除了电影之外,它对于大多数文件来说都足够大了。如果你的FortiGate型号有更多的RAM,你可以提高这个阈值。

  如果没有限制,非常大的文件可能会耗尽扫描内存。因此,这个门槛可以平衡风险与表现。这种权衡是针对FortiGate还是针对特定的型号?不,无论供应商或型号,你都必须做出选择。这是由于理论上的扫描和没有限制的扫描,以及对具有有限RAM的现实设备的扫描。为了检测到100%的恶意软件,不管文件大小如何,防火墙都需要无限大的RAM,这在现实世界中是不存在的。

  大多数病毒都很小。这个表显示了一个典型的折衷。你可以看到,在默认的10MB阈值中,只有0.01%的病毒通过。


反病毒开始缓冲文件,检查超大尺寸和未压缩的超大文件限制。如果缓冲区满了,那么反病毒扫描就有一个简单的行为:根据你的设置,或者是阻塞,或者是通过文件。默认的操作是传递大于缓冲区的大文件。这是因为,FortiGate没有完整的文件,也不可能确定文件是否包含病毒。

  如果文件已经完全被传输了,也就是说,FortiGate到达了标记文件结束的字节(EoF),然后,FortiGate就以这种顺序使用这些扫描。

  首先是病毒扫描,因为结果有很高的确定性,而且计算速度很快。启发式,不那么确定,最后被应用。

  如果你将所有这些设置考虑在一起,那么这就是用于反病毒扫描的完整决策树。


在本节中,你将学习如何在FortiGate和相关的组件上配置反病毒配置文件。


反病毒配置文件可以从反病毒页面配置。基于流和基于代理的反病毒配置文件提供了相同的检查选项,其中包括:


  • 包括移动恶意软件保护:移动恶意软件的保护包括android设备等移动恶意软件的签名。值得一提的是,移动恶意软件的保护需要一个单独的许可证。

  • 在电子邮件附件中把Windows可执行文件看作病毒:默认情况下,这个选项是启用的,文件(包括压缩文件)被识别为Windows可执行文件,可以作为病毒处理。

  从反病毒档案中,你可以定义如果它检测到一个被感染的文件,它应该做什么。

  一旦配置了反病毒配置文件,它就会被应用到防火墙策略中。

  但加密协议又如何呢?加密是攻击者规避安全性的一种流行方法。正如你所期望的,FortiGate可以扫描加密的协议,我们稍后会对此进行检查。


协议选项提供了更细粒度的控制,允许你配置协议端口映射、公共选项、web和电子邮件选项。

  还值得一提的是,在基于代理的VDOM中,这些设置可以从GUI中的代理选项页面进行配置。代理选项设置不仅适用于基于代理的VDOM,还适用于基于流的VDOM,并且可以在〖config firewall profile-protocol-options〗命令下配置。

  协议选项被反病毒和其他安全配置文件使用,如web过滤、DNS过滤和DLP传感器等。

  一旦配置了协议选项,就会在防火墙策略中应用它。


要扫描安全协议,请在流量匹配的防火墙策略中选择SSL/SSH检查配置文件。有两个层次的检查:

  • 仅证书

  • 完整的内容检查

  仅证书只检查在加密开始前发送的未加密的头文件。FortiGate不会打断握手。因此,当只对证书进行检查时,反病毒不能扫描内容,并被有效地绕过。什么时候只有证书模式有效?只有当你需要在网站的证书或URL上采取行动。在这种情况下,客户端在加密握手之前发送未加密的头信息。

  如果你想要扫描数据包的有效负载,该怎么办?

  在完整的检查级别中,在到达服务器之前,防御层在其自己的接口上终止SSL/TLS握手。当交换证书和私钥时,它使用的是FortiGate,而不是服务器。接下来,FortiGate启动与服务器的第二个连接。

  因为在它的接口之间传输时,流量是未加密的,所以FortiGate可以检查内容,并查找与反病毒签名数据库匹配的内容,然后再对包进行重新加密,并将其转发。

  由于这些原因,全面的检查水平是使反病毒扫描有效的最佳选择。


SSL/SSH配置文件允许你配置检查方法、协议端口映射,以及从SSL/SSH检查中获得的豁免权。


  如果你将检查方法设置为完整的SSL检查,那么FortiGate就会验证证书,同时也会解密用于反病毒扫描的有效负载。由于该方法使用的是授权的中间(MITM)攻击,客户端将检测到检查。用户可能需要重载SSL验证失败或安装你的证书权威(CA)证书。

 一旦配置了SSL/SSH配置文件,就会在防火墙策略中应用它。


对于基于代理的扫描(客户端舒适启用),如果检测到病毒,就会立即显示一个阻止替换页面。对于基于流的扫描,如果在流开始时检测到一个病毒,则在第一次尝试时插入阻止替换页面。但是,如果在传输几个数据包后检测到病毒,则不会插入阻止替换页面。但是,FortiGate可以缓存URL,并且可以在第二次尝试时立即插入替换页。

  请注意,如果启用了深度检查,所有基于HTTPS的应用程序也将提供此替换消息。

  这个页面包含了关于这个问题的信息:

  • 文件名

  • 病毒名称

  • 网站主机和网址

  • 源和目的IP

  • 用户名和组(如果启用了身份验证)

  • 链接到FortiGuard百科全书,它提供分析,推荐的行为(如果有的话)和发现可用性

  你可以直接去FortiGuard百科全书网站(http://fortiguard.com/encyclopedia)来查看信息。你也可以在http://submission.fortinet.com扫描或者提交疑似恶意软件。


你可以通过仪表板上的高级威胁保护统计小部件找到病毒扫描统计信息。


  如果你的FortiGate正在提交用于sandboxing的文件,那么它将保留所提交文件的数量和这些扫描结果的统计信息。这些统计数据与在FortiGate上进行本地扫描的文件是分开的。


如果启用了日志记录,你可以在反病毒日志页面中找到有关它们的详细信息。


  当反病毒扫描检测到病毒时,在默认情况下,它会创建一个关于被检测到的病毒的日志,以及动作、策略ID、反病毒配置文件名称和检测类型。它还提供了一个链接,可以在FortiGate网站上提供更多的信息。

  你还可以在转发流量日志页面中查看日志详细信息,在此页面中,防火墙策略记录活动。你还可以找到一个关于流量的总结,在这里,FortiGate应用了一个反病毒的行动。同样,这是因为反病毒应用于防火墙策略。


在本节中你将了解内存保护模式。


如果你的FortiGate内存使用率很高,那么应该检查事件日志。寻找与保护模式相关的信息。当FortiGate没有足够的RAM来处理流量时,就会出现内存保护模式。

  UTM检查(特别是基于代理的)增加了内存的使用,超出了简单的防火墙策略。换句话说,当反病毒被启用时,FortiGate有可能使用更多的内存,这可能导致FortiGate进入保护模式。你可以通过运行CLI命令〖diagnose sys top〗来确定反病毒或其他进程是否使用了太多的内存。

  有两种类型的内存保护模式:内核和系统。


当FortiGate进入和退出内核保护模式时,两个边缘或阈值确定。对于所有最新的FortiGate型号(有64位cpu),内核保护模式的边缘依赖于总的内存。

  当一个FortiGate处于内核保存模式时,任何代理检查都会被绕过,管理员不能执行配置更改。


就像内核保护模式一样,两个不同的阈值决定了何时进入和退出系统保护模式。利润率也取决于总体内存的总量。


av-failopen是CLI(仅)设置,它在系统保护模式下控制了FortiGate的行为。


该命令用于确定当前的防御系统是否处于系统保护模式。


这些是在事件日志中生成的条目,当一个FortiGate进入内核和系统保存模式时。


一个与故障开放会话相关的选项是av-failopen session。这个设置不是在高内存情况下启动的,而是在FortiGate的一个代理耗尽了可用的会话来处理流量。

  如果启用了av-failopen session,那么FortiGate将根据av-failopen设置操作。否则,默认情况下,它将阻塞新会话,直到代理连接可用。


复习一下我们在这节课上所讨论的主题。我们讨论了:

  • 恶意软件的术语

  • 可以在FortiGate上启用的不同类型的扫描

  • 三种反病毒数据库

  • 如何使用沙盒

  • 阻止僵尸网络连接

  • 基于代理和基于流程的病毒扫描的区别

  • 不同的反病毒数据库

  • 超大文件的行为

  • 病毒扫描引擎内的操作顺序

  • 如何处理未被发现的恶意软件

  • 病毒扫描加密流量

  • 如何读取病毒检测日志

  • 内存保存模式是什么


飞塔技术 - 老梅子   QQ:57389522


阅读全文
0 0