网络安全课程笔记十:Firewall and IDS/IPS

Network Security Lecture 10: Firewall and IDS/IPS

10.1 防火墙

防火墙设置在驻地网和互联网之间,建立起二者之间的可控连接。它将可信域(trusted domain)不可信域(untrusted domain)隔离开来,为可信域提供保护,并使用访问控制协议来指定合法的流量类型。

10.1.1 防火墙的模式

路由模式:在主机看来,防火墙就像一个路由器。它的每个接口(interface)都被作为网关分配到一个不同的逻辑子网中,在它们之间转发数据报。

透明模式:这时候防火墙就像一个透明的网桥一样,基于第二层(数据链路层)的信息来转发数据报。

10.1.2 防火墙的类型

  • 无状态的防火墙:又称为包过滤防火墙。往往只检查 TCP/UDP/IP 的报头。

  • 有状态的防火墙:又称为状态检测防火墙。它在包过滤的基础上,还将有关 TCP 连接的信息记录在一个连接状态表中。对于每个已建立的连接,都有一个入口与之对应。仅当一个数据报符合这个目录里某个条目的时候,才允许其通过。

  • 应用层防火墙:又称为代理服务器,起到了应用层流量缓冲器的作用。它会解析应用层的报文类型,对其进行内容过滤。

10.1.3 防火墙的部署

根据需求类型,可以分为以下几类:

保护内部需要访问 Internet 的用户:

  • 防火墙策略定义了哪种类型的数据包是合法的
  • 通行情况下,入流量只有对应于状态表中的某个入口,才允许其通过

保护提供 Internet 服务的服务器:

  • 将所有外界可访问的服务器(比如 Web 服务器,DNS 权威服务器)放到停火区(Demilitarized Zone,DMZ)中
  • 防火墙策略定义了每个 DMZ 主机应该对外界提供何种服务
  • 防火墙监控 DMZ 区域的所有连接
  • 通常情况下,防火墙不允许 DMZ 主机对外发起一个新连接

保护电子商务过程:

由于电子商务往往采用三层架构:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。因此针对电子商务的防火墙系统会在层与层之间加入独立的防火墙。

10.2 防火墙策略

基本策略:全部允许、全部拒绝(更安全)
基于服务:定义何种服务允许通过防火墙,以及其方向(入、出)
避免哄骗:过滤入流量,避免明显的 IP 哄骗

10.2.1 处理策略的顺序

通行情况下防火墙中会定义很多条策略,组成一个策略表。并且对于某个数据报,可能有多条策略与之匹配。

  • 按顺序处理:防火墙自顶向下遍历策略表,一旦遇到匹配的策略则执行操作,不理会剩下的策略
  • 拒绝优先:如果既有允许策略,又有拒绝策略,则优先拒绝
  • 最佳适配:范围更小的策略优先(比如 10.0.1.2/32 范围比 10.0.1.0/24 范围小)

通常情况下,防火墙按顺序进行处理。

10.2.2 设计策略的原则

  1. 统一性:由于策略冲突经常出现,因此要保证策略表的顺序不能错
  2. 完整性:每个数据报都要有与之匹配的规则
  3. 紧凑性:避免冗余规则的出现(冗余规则指:删了这个规则对整个防火墙的功能没有任何影响)

10.2.3 结构化防火墙策略设计

使用防火墙策略图(Firewall Decision Diagram, FDD)来表示策略。

设计过程通常分为以下几步:

  1. 用户定义一个 FDD f
  2. FDD Reduction –> Reduced FDD f1
  3. FDD Marking –> Marked FDD f2
  4. Firewall Generation –> Generated firewall f3
  5. Firewall Compaction –> Compact firewall f4
  6. Firewall Simplification –> Simple firewall f5 (final version)

https://web.cse.msu.edu/~alexliu/publications/FDD/fdd.pdf

10.3 入侵检测

入侵 Intrusion:任何试图暗中破坏数据的机密性、完整性,或资源可用性的活动
入侵检测 Intrusion detection:在一个系统中监控各类事件,判断入侵是否已经发生
入侵检测系统 Intrusion detection system (IDS):监控并发出警告
入侵防御系统 Intrusion prevention system (IPS):防御攻击

10.3.1 IDS/IPS 的部署

IDS、IPS、防火墙往往结合起来使用:

  • 防火墙根据其策略,只允许合法的流量通过
  • IPS 部署在防火墙内侧,只检查通过防火墙的合法的流量,并进行分析
  • IDS 部署在防火墙外侧,只用来监控网络中的其他活动

最后的决策往往会综合防火墙、IPS、IDS 的报告。

10.3.2 IDS 的类型

根据其部署位置,IDS 可以分为两种:

  • 基于主机的 IDS(Host-based IDSs, HIDSs):安装在特定主机上,为特定的操作系统过滤流量
  • 基于网络的 IDS(Network-based IDSs, NIDSs):安装在网络中,用来检测传统防火墙不能检测到的有害流量和资源使用等

根据其检测方式,IDS 也可以分为两种:

  • 基于特征的 IDS:基于特征的 IDS 维护了一个范围广泛的攻击特征数据库,而特征描述了攻击一个系统的通用方法(比如 SYN 洪泛的特征就是大量不完整的 TCP 连接)
  • 基于异常的 IDS:基于异常的 IDS 在运行时会生成一个流量概况文件,然后它寻找统计上不寻常的分组流(比如端口扫描和 ping 掠过导致 ICMP 分组不寻常百分比指数式增长)

10.3.3 IDS 举例

Snort: https://www.snort.org/

Bro: https://www.bro.org/

10.3.4 蜜罐

蜜罐(Honeypot)是一个诱骗系统,用来把潜在的攻击者从重要系统中引诱开。蜜罐系统中填满了看起来很有价值的虚假信息,但系统的合法用户不会访问这些信息。因此任何访问蜜罐的行为都是可疑的。

蜜罐可以分为两类:

  • 低交互(Low-Interaction)蜜罐:模拟了一些网络服务(比如 FTP),牵制攻击者与这些模拟的服务交互。其优点是易于安装维护,缺点是过于简单、易被察觉
  • 高交互(High-Interaction)蜜罐:用实际的操作系统来充当蜜罐。其优点是可以获得更多关于攻击者的信息,缺点是难以维护、易被攻击者利用来攻击其他主机

10.3.5 针对 IDS 的攻击

插入攻击(Insertion Attack):利用 IDS 在处理某些数据包时不如端系统严格的漏洞,即 IDS 会接受该数据包,而端系统会拒绝该数据包,从而未能对整体内容进行检测

逃避攻击(Evasion Attack):利用端系统在处理某些数据包时不如 IDS 严格的漏洞,即端系统会接受该数据包,而 IDS 会拒绝该数据包,从而未能对整体内容进行检测