网络安全——网络安全防护技术(二)

网络安全防护技术

3、入侵检测与入侵防御

随着互联网及其应用技术的飞速发展,黑客入侵开始呈现泛滥之势,他们不断采用新的技术和手段去对抗网络安全技术的革新,并在网络上散布新发明的攻击手法,使安全防范变得越来越困难。在众多攻击事件中,许多与内部相关,攻击者有时也会来自组织内部。内部信息泄露已经成为网络安全问题中的一个新焦点。由于防火墙是设置在内部网和外部网之间的安全组件,无法解决内部人员对网络的破坏或资料盗窃等安全问题,因此在网络安全的实际应用中,仅依靠防火墙技术已无法满足需求。面对网络安全领域的新问题和新挑战,人们提出了新一代的动态安全防范技术,即入侵检测及入侵防御技术。

入侵检测及入侵防御被认为是防火墙之后的第二道安全防线,它们能够在不影响网络性能的情况下对网络进行检测和监控,从而为内部攻击、外部攻击和误操作提供实时保护。

3.1、入侵检测技术

入侵检测(Intrusion Detection, ID)是指通过对计算机与网络系统中的行为、安全日志、网络环境参数等数据进行一系列操作,发现非授权用户企图使用计算机系统或合法用户滥用其特权的行为,并对此做出反应的过程。常用的入侵检测技术主要分为基于特征的检测和基于异常的检测两大类。

3.1.1、基于特征的检测技术

特征检测对已知的攻击或入侵方式做出确定性的描述,形成相应的事件模式。当被审计的事件与已知的入侵事件模式相匹配时,即触发报警。目前,基于特征的检测主要包括模式匹配和协议分析两种方法。

模式匹配是将收集到的信息与已知的网络入侵和系统误用模式知识库进行比较,以发现入侵行为。这种检测方法只需收集相关的数据集合和维护一个知识库即可进行判断,检测准确率和效率较高,应用较为广泛。该方法对于无经验知识的入侵与攻击行为则无能为力。

协议分析相对于模式匹配技术是一种更新的入侵检测技术。它首先捕捉数据包,然后对数据包进行解析,包括协议分析和命令解析,在解析的代码中快速检测某个攻击特征是否存在。协议分析技术大大地减少了计算量,即使在高负载的高速网络上,也能逐个分析所有的数据包。

3.1.2、基于异常的检测技术

基于异常的检测技术包括多种方法,主要有统计检测和专家系统。它首先对系统的行为进行统计,获得系统正常使用时的统计性能,如访问次数、延时等。统计性能被用来与网络、系统的行为进行比较,当观察值超出正常值范围时,即判断为有入侵行为。异常检测的优点是可以检测到未知入侵和复杂的入侵行为,但缺点是误报率和漏报率较高。

统计检测的最大优点是它可以"学习"用户的使用习惯,从而具有较高的检出率与可用性。然而,其"学习"能力也可能被入侵者利用,通过逐步"训练"使入侵事件符合正常操作的统计规律,从而穿透入侵检测系统。统计检测的测量参数包括:事件的数量、间隔时间、资源消耗情况等。

专家系统是针对有特征的入侵行为进行检测。专家系统的建立依赖于知识库的完备性,而知识库的完备性又取决于审计记录的完备性与实时性。入侵特征的抽取与表达是入侵检测专家系统的关键。在系统实现中,将有关入侵的知识转化为if-then结构(也可以是复合结构)​,其中if部分为入侵特征,then部分为系统防范措施。运用专家系统防范有特征入侵行为的有效性完全取决于专家系统知识库的完备性。

3.2、入侵检测系统(IDS)

为完成入侵检测任务而设计的计算机系统称为入侵检测系统(Intrusion Detection System, IDS)​。IDS本质上是一种"嗅探设备"​,用于及时发现并上报当前系统环境下的未授权或异常行为,是一种检测网络中违反设定安全策略行为的技术手段。IDS是一种积极主动的安全防护机制,可以弥补被动式网络安全机制的不足,提高网络安全的整体水平。

3.2.1、IDS的基本组成

IDS是近几十年出现的一种网络安全技术。1980年,James P.Anderson第一次系统阐述了入侵检测的概念,并将入侵行为分为外部渗透、内部渗透和不法行为3种,还提出了利用审计数据监视入侵活动的思想。1986年,Dorothy E.Denning提出实时异常检测的概念,并建立起第一个实时入侵检测模型,命名为入侵检测专家系统。1990年,L.T.Heberlein等设计出监视网络数据流的入侵检测系统。为解决入侵检测系统之间的互操作性问题,国际上的一些研究组织开展了标准化工作。目前,对IDS进行标准化工作的组织包括IETF的Intrusion Detection WorkingGroup(IDWG)和Common Intrusion DetectionFramework(CIDF)​。IDWG负责定义IDS组件之间的通信格式,称为Intrusion Detection Exchange Format。CIDF提出了IDS的一个通用模型,将IDS分为事件产生器、事件分析器、响应单元和事件数据库4个组件,如图所示。

在这个通用组成模型中,事件产生器、事件分析器和响应单元通常以应用程序的形式出现,而事件数据库往往是文件或数据流的形式。在入侵检测系统中,IDS需要分析的数据统称为事件(Event)​,它可以是网络中的数据包,也可以是从系统日志等其他途径得到的信息。这4个组件只是逻辑实体,一个组件可能是某台计算机上的一个进程,甚至是一个线程,也可能是多台计算机上的多个进程。

  • (1)事件产生器(Event Generators)。事件产生器(也称为采集部件)从整个计算机或网络环境中获取事件,或者从日志文件中提取相关部分,并将这些事件传送给其他组件。
  • (2)事件分析器(Event Analyzers)。事件分析器根据事件数据库的入侵特征描述、用户历史行为模型等,解析事件产生器产生的事件,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。
  • (3)响应单元(Response Units)。响应单元(也称为控制台)是对事件分析器的输出做出反应的响应组件,它可以执行诸如切断连接、改变文件属性等操作,也可以是简单的报警。
  • (4)事件数据库(Event Databases)。事件数据库用于存放事件,包括入侵特征描述、用户历史行为模型或检测规则等。事件数据库可以是复杂的数据库,也可以是简单的文本文件。

简言之,入侵检测系统是指用于检测网络或系统中是否存在违反安全策略的行为和被攻击迹象的软件与硬件组合。与其他安全技术及产品不同,IDS需要具备更高的智能水平,它需要对获得的数据进行分析,并得出正确的结论。目前,入侵检测系统已成为常见的网络安全产品,并得到了极为广泛的应用。

3.2.2、IDS的类型

IDS主要分为实时入侵检测和事后入侵检测两种类型。实时入侵检测在网络连接过程中进行,IDS发现入侵迹象后,会立即断开入侵者与主机的连接,并实施数据恢复。事后入侵检测由网络管理人员定期或不定期进行。根据检测数据源的不同,IDS可以分为以下三种类型:基于网络的、基于主机的以及分布式入侵检测系统。

1)基于网络的入侵检测系统

基于网络的入侵检测系统(Network-based IDS, NIDS)一般用于对网络体系中的重要网段实施防护。当被保护的子网与外部网络进行通信时,NIDS通过网络嗅探技术从网络接口中获取分组报文。随后,事件分析器对截获的报文数据进行处理,通过解析数据包包头和数据载荷,提取出用户行为的特征模式,并由入侵规则库通过一系列规则描述攻击行为的特征。入侵行为的判定标准是提取出的行为特征模式与规则库的匹配情况,如果正确匹配,则判定为入侵行为;反之,则判定为用户正常行为。响应单元接收到判定信息后,会发出警报等响应动作,并对当前行为进行监控,帮助管理员了解实时状况。

常见的基于网络的入侵检测系统包括:Snort、ISSRealSecure Network Sensor、CA e-Trust IDS、Axent的NetProwler,以及国内北方计算中心NISDetector、中 科威"天眼"等。

2)基于主机的入侵检测系统

基于主机的入侵检测系统(Host-based IDS, HIDS)与部署在网络中的关键节点处的NIDS不同,HIDS部署在受保护的系统上,只对本地主机或服务器进行安全防护。HIDS的检测目标主要是主机系统和本地用户,其源数据来自主机系统的审计日志或操作系统,例如用户操作命令、应用程序资源占用情况、注册表访问情况等。检测数据的来源和底层资源的调用决定了HIDS对主机系统的高度依赖性。

HIDS部署简单、配置灵活,适用于加密环境,对于内部人员的越权操作等入侵行为具有较好的检测效果。然而,当攻击者入侵成功后,可能会在系统日志中抹去攻击痕迹,导致HIDS难以发现。此外,由于检测模块驻留在被保护的主机上,会占用部分系统资源,从而降低系统运行效率。

常见的基于主机的入侵检测系统包括:ISS RealSecureOS Sensor、Emerald Expert-BSM、金诺网安KIDS等。

3)分布式入侵检测系统

分布式入侵检测系统(Distributed Intrusion DetectionSystem, DIDS)是一种基于混合数据源的入侵检测系统(IDS)​。它由多个组件构成,采用分布式结构,通过检测多种数据源来提高检测性能。DIDS的数据源同样来自网络中的数据包,但与传统IDS不同的是,它采用分布式检测与集中管理相结合的方式,即在每个网段安装一个黑匣子,该黑匣子相当于一个无用户操作界面的基于网络的入侵检测系统。黑匣子负责监测其所在网段的数据流,依据安全管理中心制定的安全策略和响应规则分析网络数据,并将安全事件信息反馈给安全管理中心。安全管理中心作为整个分布式入侵检测系统面向用户的界面,具备较大的数据保护范围,但可能对网络流量产生一定影响。

除了上述分类方式外,IDS还可以根据其检测原理分为误用入侵检测系统和异常入侵检测系统。值得注意的是,许多常用的入侵检测系统综合运用了多种技术,因此不能简单地将其归类为基于网络、基于主机或分布式IDS。事实上,许多入侵检测系统不仅具备入侵检测与响应功能,还拥有强大的网络管理和通信统计功能。

3.2.3、IDS的工作过程

入侵检测的核心任务是识别入侵者及其入侵行为,具体包括以下内容:监视并分析用户及系统活动;审计系统的结构以及可能存在的漏洞;检测已知的入侵行为并进行告警;统计用户正常行为,界定异常行为;评估系统关键资源和数据文件的完整性;操作系统的审计跟踪管理,并识别用户违反安全策略的行为。因此,IDS需要收集网络或主机的运行数据,对这些数据进行分析,发现异常行为,并在适当位置制止入侵行为。IDS的入侵检测工作通常分为信息收集、数据分析和响应处理3个步骤。

1)信息收集

信息收集是入侵检测的第一步,其内容涵盖系统、网络、数据及用户活动的状态和行为,并且需要在不同关键点(不同的网段和不同的主机)收集信息。入侵检测一般从以下4个方面收集信息:

  • 系统和网络日志;
  • 目录以及文件中的异常改变;
  • 程序执行中的异常行为;
  • 物理形式的入侵信息,包括对网络硬件连接和对物理资源的未授权访问。

2)数据分析

对收集到的数据信息进行分析是IDS的核心任务。按照数据分析的方式,一般有3种手段:

  • 模式匹配。模式匹配的方法就是将收集到的数据与已知的网络入侵和系统误用模式数据库进行比较,从而发现违背安全策略的行为。这种分析方法也称为误用检测。
  • 统计分析。统计分析需要首先给系统对象(如用户、文件、目录和设备等)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、操作失败次数和延时等)。把测量属性的平均值与网络系统的行为进行比较,当观察值超出正常范围时,即认为有入侵发生。这种分析方法也称为异常检测。
  • 完整性分析。完整性分析主要关注某个文件或对象是否被更改,包括文件和目录的内容及属性的变化。

3)响应处理

当通过数据分析发现入侵迹象时,IDS会采取预案措施进行防护(如切断网络、记录日志等)​,并保留入侵证据以便日后调查,同时向管理员报警。例如,在系统管理员的桌面上生成一个告警标志位,向系统管理员发送警报或电子邮件等。控制台按照告警预先定义的响应,采取加固措施,或者重新配置路由器、防火墙,或者终止进程、切断连接,改变文件属性等;也可以只是简单的报警。

3.3、典型IDS的构建与应用

网络安全需要多种安全设备协同工作并正确部署,因此,在构建网络入侵检测系统时,需要对整个网络有全面的了解,确保自身环境的正确性和安全性。在实际应用IDS时,一般可以在以下位置安装用于检测分析入侵行为的传感器或检测引擎:

  • 对于基于主机的IDS,通常直接将检测代理安装在受监控的主机系统上。
  • 对于基于网络的IDS,情况较为复杂,IDS检测引擎可以部署在网络的外网、DMZ、内网入口和内网等多个位置。

IDS在网络中的配置和安装取决于IDS的种类,不同类型的IDS有不同的安装与配置步骤,对于有硬件支撑的IDS,需要首先确保线路连接和硬件设备的正确性,然后配置相应的软件并执行对应的操作。一个比较常用的入侵检测系统是轻量级(意指使用方便、配置简捷、主要针对中小规模网络)的开源网络入侵检测系统Snort。

3.3.1、Snort软件简介

Snort是一款开源的轻量级入侵检测软件,属于基于网络的误用检测系统,其源代码可以从Snort官方网站下载使用。Snort具有跨平台特点,支持常见的操作系统,能够完成实时流量分析。它可以进行协议分析和内容查找/匹配,能够探测多种攻击和嗅探行为,如缓冲区溢出、秘密端口扫描、指纹采集等。

简单地说,Snort是一个基于Libpcap的数据包嗅探器。在报警机制方面,Snort提供了丰富的选项,例如可以将报警信息发送到syslog、用户指定的文件、UNIX套接字,甚至可以通过SAMBA协议向Windows客户机发送WinPopup消息。Snort还支持数据库输出插件,能够将日志记录到数据库中,支持的数据库包括MySQL、Oracle等。Snort 2.x版本提供了21类共1271条检测规则。而现已推出的Snort 3.x版本是一个基于规则的网络入侵检测和预防软件(NIDS/NIPS)​。此外,Snort支持插件,可以通过插件扩展其功能。

Snort采用基于规则的入侵检测机制,通过内容模式匹配对数据包进行分析,以发现入侵和探测行为,即通过匹配已知攻击的特征来判断当前网络行为是否正常。用户可以将需要监测的攻击行为类型写入配置文件,一旦匹配成功,Snort将采取入侵预警或记录措施。Snort软件主要由以下4大模块组成。

  • 数据包嗅探模块:该模块负责捕获网络原始数据包,并按照TCP/IP的不同层次解析数据包,然后提交给检测引擎进行规则匹配。它依赖的网络抓包Libpcap库可以为应用程序提供直接从链路层捕获数据包的接口函数,并可以设置数据包的过滤函数,用于捕获指定的数据包。捕获到数据包后,根据协议类型调用相应的解析函数逐步解析数据包。
  • 预处理模块:该模块通过相应的插件来检查原始数据包,从中发现原始数据的"行为",如端口扫描、IP碎片等,预处理后的数据包将被传递到检测引擎。
  • 检测引擎模块:该模块是Snort的核心。当数据包从预处理器传过来后,检测引擎将依据预先设置的规则检查数据包。一旦发现数据包中的内容与某条规则匹配,就会通知报警模块。
  • 报警/日志模块:经检测引擎检查后的Snort数据可以根据用户指定的方式输出。如果检测引擎中的某条规则被匹配,则会触发报警。报警信息可以通过网络、UNIX套接字、Windows Popup(SMB)、SNMP协议的trap命令传送给日志文件,甚至可以将报警信息传送到第三方插件(如SnortSam)。此外,报警信息也可以记录到SQL数据库中。报警/日志模块可以在运行Snort时通过命令行交互的方式选择使用。
3.3.2、Snort的安装及配置

Snort支持Linux、Windows等多个平台,安装和使用都非常方便。随着版本的不断更新,安装方法也有所不同。

在Linux平台上,可以采用源码包和RPM包两种方式安装。源码包按照标准开源软件的安装步骤(./configure;make; make install)进行安装,但需要解决源码包的依赖问题,例如必须安装libcap、libpcre等源码包。如果需要开启MySQL输出插件,则必须安装MySQL源码包。此外,Snort的"./configure"支持一些配置脚本参数,例如支持MySQL数据库输出等。从RPM包安装Snort则比较方便,可以通过命令行模式,输入"rpm-Uvh snort-2.x...x.rpm"即可完成安装。

在Windows操作系统中安装、配置Snort的主要步骤如下。

  • (1)安装Npcap,默认选项一直单击"下一步",直至安装完成。Npcap是一种新型的Windows网络数据包截获软件。如果系统中已经安装Npcap,可以忽略这一步。在某些情况下,Windows7系统可能需要先安装KB4474419补丁(64位+32位)。
  • (2)从Snort官方网站下载并安装Snort。Snort有多个版本可供选择,例如,可以选用Snort_2_9_20_Installer。安装时直接双击"Snort_2_9_20_Installer.x64.exe"文件,Snort将自动使用默认安装路径"c: \Snort"进行安装,直至安装完成并弹出"Snort has Successfully be installed"的对话框。建议将Snort安装在默认的C盘根目录下,以便使用默认的Snort.conf文件,避免发生错误。
  • (3)修改完善Snort配置文件snort.conf。安装Snort后,需要根据需求对snort.conf配置文件进行修改。该文件包含了每次运行Snort时的参数配置,配置文件较长,但系统提供的配置样例涵盖了设置网络变量、配置动态加载库、配置预处理器、配置输出插件、增加任意的运行时配置向导和自定义规则集等内容。具体使用可以参考用户手册了解Snort的各种运行参数选项。由于Snort最初是为Linux系统编写的,因此文件路径默认为相对路径。在Windows系统下必须要使用绝对路径,因此需要对Snort规则文件中的路径进行修改,主要修改以下几处配置:
    • 修改规则文件路径:
    • 修改动态预处理器和动态加载库的路径:
    • 修改与规则的报警级别相关的配置文件路径:
    • 实验性规则配置:
  • (4)配置Snort规则。从Snort官方网站下载Snort规则(或者自己定义),例如选用snortrules-snapshot-2983.tar.gz。将下载的规则包解压后,把规则文件(.rules)复制到Snort安装目标下的rules文件夹中。
  • (5)运行Snort。打开Windows命令窗口(执行cmd命令),进入Snort安装目录的bin文件夹并运行"snort.exe"。执行"snort--help"命令可以查看帮助信息。Snort的命令选项和参数较多,具体使用方法可以参考Snort用户手册或从互联网上查找相关资料。Snort的通用命令格式如下:

其中,options为各种选项与参数,filter options为过滤器选项及参数。作为安装测试示例,可以输入以下命令:

如果配置成功,执行该命令的运行结果如图4.14所示(部分截屏)​,图中左侧有一个小猪图案。使用Ctrl+C组合键停止Snort运行。这表明成功构建了基于Snort的入侵检测系统。

  • (6)尝试简单攻击检测。例如,用nmap进行端口扫描,或利用自行设计的端口扫描器进行端口扫描,并通过控制台查看检测结果。若检测不出,需检查Snort规则配置是否正确。具体方法如下:在命令行中输入ipconfig指令,查看本机当前连接的网卡信息,假设对应的主机IP地址为192.168.184.153,可在另一台主机(IP地址为192.168.184.128)上使用以下nmap命令对该主机进行扫描:

    扫描结束后,在log文件夹下的alert.ids文件(文本文件,可用记事本打开)中查看扫描日志信息。通过分析日志结果,可判断Snort是否成功识别出扫描主机对机器(192.168.184.153)进行了TCP连接请求、端口号等信息。
3.3.3、Snort的工作模式

Snort有嗅探器(Packet Sniffer)​、数据包记录器(Packet Logging)​、入侵检测系统(IntrusionDetection System)3种工作模式。按照要求正确配置Snort后,便可在这些模式下对整个网络进行监视检测。

1)嗅探器模式

在嗅探器模式下,Snort从网络上捕获数据包,并将其显示在系统终端控制台上。在命令行中输入以下命令:

即可将Snort设置为嗅探器模式,其中,v表示使用Verbose模式,将显示IP、TCP、UDP、ICMP的包头信息;​"i N"表示监听系统中的第N块网卡。若需要查看应用 层的数据,命令格式为:

这条命令使Snort在输出包头信息的同时显示包的数据信息。如果还需要显示数据链路层的信息,可使用以下命令:

例如,在嗅探器模式下,执行以下命令:

在Kali Linux系统(192.168.184.128)上对Windows7实验机(192.168.184.153)进行ping操作。捕获结束后,可以看到捕获了各种协议的数据包,并在屏幕上输出了ICMP数据包头在数据链路层的信息,如图所示。

2)数据包记录器模式

在数据包记录器模式下,Snort将数据包存储到存储介质(如硬盘)中。若要将所有数据包记录到硬盘上,需预先建立一个日志目录(log)​,Snort将自动记录数据包,命令格式如下:

当然,/log目录必须存在,否则Snort会报告错误信息并退出。当Snort在此模式下运行时,它会将所有捕获的数据包记录到一个目录中,该目录以数据包目的主机IP地址命名,例如192.168.184.153。

如果仅指定了-l命令开关而未设置目录名,Snort有时会使用远程主机的IP地址作为目录名,有时会使用本地主机的IP地址作为目录名。为了仅对本地网络进行日志记录,需指定本地网络地址:

其中,-l选项指定存放日志的文件夹;-h选项指定目标主机,此处是局域网段内的所有主机,若不指定,则默认检测本机。该命令指示Snort将进入C类网络192.168.1.0的所有数据包的数据链路、TCP/IP以及应用层数据记录到/log目录中。

如果所在网络速度很快,或者希望日志更加紧凑以便后续分析,可使用二进制的日志文件格式。所谓二进制日志文件格式,就是tcpdump程序使用的格式。使用以下命令可以将所有网络数据包记录到一个单一的二进制格式文件中:

请注意,此处命令格式与前面有所不同。无须指定本地网络,因为所有内容都被记录到一个单一文件中;也不必使用冗余模式或者使用-d、-e功能选项,因为数据包的所有内容都会被记录到日志文件中。可以使用任何支持tcpdump二进制格式的嗅探器程序(如tcpdump或者WireShark)从该文件中读出数据包。使用-r功能开关,Snort也可以读取包的数据。

Snort在所有运行模式下都能处理tcpdump格式的文件。例如,如果希望在嗅探器模式下将tcpdump格式的二进制文件中的数据包输出到屏幕上,可以输入以下命令:

在日志包和入侵检测模式下,通过BPF(BSD PacketFilter)接口,可以使用多种方式维护日志文件中的数据。例如,如果只想从日志文件中提取ICMP包,只需输入以下命令:

3)入侵检测系统模式

入侵检测系统模式最为复杂且可配置性高。在此模式下,Snort可对捕获的数据包进行分析,并根据预设规则判断是否存在网络攻击行为。这也是Snort最重要的用途之一,使用以下命令行可以启动此模式:

其中,-c参数指定Snort使用snort.conf中的规则集文件。在规则集文件snort.conf中定义了Snort检测内外网的IP地址范围,它会对每个数据包和规则集进行匹配,如果符合规则,就执行规则所指定的动作。如果不指定输出目录,Snort将输出到/var/log/snort目录。

注:如果让Snort长期运行,建议不要使用-v选项。因为使用该选项会使Snort向屏幕输出一些信息,不仅会降低处理速度,还可能在向显示器输出过程中丢弃一些数据包。此外,在多数情况下,也没有必要记录数据链路层的包头,因此-e选项也可以省略。

把Snort作为NIDS(网络入侵检测系统)最基本的形式运行时,可以将符合规则的日志包以ASCII格式保存在具有层次的目录结构中,其命令格式如下:

在入侵检测系统模式下,Snort提供多种输出配置方式。默认情况下,Snort以ASCII格式记录日志,并使用full报警机制。如果使用full报警机制,Snort会在包头之后打印报警信息。如果不需要日志包,可以使用-N选项。

Snort提供了6种报警机制:full、fast、socket、syslog、smb(winpopup)和none。其中4种可以在命令行状态下使用-A选项设置。

使用-s选项可以使Snort将报警消息发送到syslog,默认设置为LOG_AUTHPRIV和LOG_ALETRT。

Snort还可以使用SMB报警机制,通过SAMBA将报警消息发送到Windows主机。在使用该报警机制运行.../configure脚本时,必须使用---enable-smbalerts选项。以下是一些输出配置示例。

  • 使用默认的日志方式(以解码的ASCII格式)并将报警消息发送到syslog:
  • 使用二进制日志格式和SMB报警机制:
3.3.4、编制Snort规则

入侵检测系统基于规则,通过模式匹配来发现网络攻击行为。Snort的规则使用一种简单、轻量级的描述语言编写。编制Snort规则时需遵守以下原则:

大多数Snort规则可以写在单行上,或者在多行之间,行尾用符号"/"分隔。Snort规则分为两个逻辑部分,一部分称为规则头(rule header)​,另一部分称为规则项(ruleoptions)​。规则头包含规则的动作、协议、源和目的IP地址、子网掩码,以及目的端口和通信方向等。规则选项包 含所要检测的数据内容、标识字段、匹配时的告警消息等内容。一条规则可以有多个规则选项,规则选项之间用分号"​;​"分隔。规则选项支持多种关键字,每个关键字都指明需要检查的消息内容。与关键字相对应的选项参数指明关键字与何种信息进行匹配。关键字与参数之间用冒号"​:​"分隔。例如,一条对来自本地网络以外的流量进行报警的规则如下:

在该示例中,规则头的内容为"alert tcp any any->192.168.1.0/24 80"​,规则选项的内容为"​(content:"|000186a5|";msg:"mount access";​)​"​。其中,alert表示规则动作,这是一个警告;tcp表示要检测所有使用TCP协议的包,第一个any表示源IP地址,第二个any表示源端口,表示主机从任何IP地址、任何端口发送的包都会被检测;->为方向标志,表示检测包的传送方向,

从源IP传向目的IP;下一个字段表示目的IP和目的端口,80为IIS对主机的访问端口。在Snort的规则结构中,规则选项并不是必需的,其主要作用是精确定义需要处理的数据包类型以及采取的动作。规则头与规则选项是逻辑与的关系,数据包只有与所有限定条件都匹配,才会触发规则指定的动作。

Snort中有一个规则文件夹,其中记录了snort运行的检测规则。通常情况下,可以从Snort官网下载并使用规则库。若需要添加自定义规则,需将相关规则放到指定目录,例如c: \Snort\rules,也可以将自行编写的规则保存在local.rule文件夹中。编写规则后,还需要修改配置文件snort.conf,将对应规则添加进去。例如,在c:\Snort\rules下新建规则文件new.rules,并添加以下两条规则:

启动运行Snort的命令如下:

启动Snort后,进入入侵检测模式。为测试效果,在另一台机器(192.168.184.128)上对实验机(192.168.184.153)进行ping操作,从而获得与报警相关的数据包信息(文件名为snort.log.1697253165)​。alert.ids为报警日志。打开该报警日志文件,可以看到所有报警数据包均为192.168.184.128对实验机进行ping操作时产生的ICMP数据包,如图所示。

3.4、入侵防御系统

绝大多数IDS都是被动防御而非主动防御。也就是说,在攻击实际发生之前,IDS往往无法预先发出警报。如果希望提供主动防御,应当预先拦截入侵活动和攻击性网络流量,避免其造成损失,而不是仅在恶意流量传输时或传输后才发出警报,这就需要入侵防御系统(Intrusion PreventionSystem, IPS)​。

IPS是在IDS基础上发展起来的一种网络安全产品,Network ICE公司在2000年最早提出这一概念,并推出了业界第一款IPS产品BlackICE Guard。与传统的防火墙及IDS提供的被动防御不同,IPS是一种主动的、积极的入侵防御系统。它整合了防火墙技术和入侵检测技术,能够即时中断、调整或隔离一些异常或有害的网络行为,在发生 攻击时及时发出警报,并记录网络攻击事件及其采取的措施和结果。

3.4.1、IPS工作原理

IPS向受保护目标提供主动防御,直接嵌入网络流量中,通过网络端口接收来自外部的流量,经检查确认流量不包含异常或可疑内容后,再由另一端口将流量传送到内部网络系统。这样,所有有问题的数据包以及来自同一数据流的后续数据包,都能在IPS中被彻底清除。IPS的工作原理是:根据报头和流信息,对所有流经IPS的数据包进行分类;由多种过滤器负责分析相对应的数据包;通过过滤器检查的数据包可以继续前进,包含恶意内容的数据包将被丢弃,而被怀疑的数据包需要接受进一步的检查。

IPS能够实现实时检查和阻止入侵,其原理在于拥有大量过滤器,能够防止各种攻击。当发现新的攻击手段时,IPS会创建新的过滤器。针对不同的攻击行为,IPS需要不同的过滤器。每种过滤器都设有相应的过滤规则,这些规则的定义非常广泛,以确保准确性。在对传输内容进行分类时,过滤引擎还需要参照数据包的信息参数,并将其解析至一个有意义的域中进行上下文分析,以提高过滤准确性。

3.4.2、IPS的类型

1)主机入侵防御系统(HIPS)

主机入侵防御系统(Host Intrusion Prevention Systems,HIPS)通过在主机或服务器上安装软件代理程序,防止网络攻击入侵操作。HIPS可以根据自定义的安全策略以及分析学习机制,阻断对服务器或主机发起的恶意入侵。它可以阻断缓冲区溢出、修改登录口令、改写动态链接库以及其他试图从操作系统夺取控制权的入侵行为,从而整体提升主机的安全水平。

在技术层面,HIPS采用独特的服务器保护方式,构建了由包过滤、状态包检测和实时入侵检测组成的分层防御体系。这种体系能够在确保合理吞吐率的前提下,最大程度地保护服务器的敏感内容。HIPS既可以以软件形式嵌入到应用程序对操作系统的调用中,通过拦截针对操作系统的可疑调用,为宿主提供安全防护;也可以通过修改操作系统内核程序的方式,提供比操作系统更加严谨的安全控制机制。

由于HIPS部署在受保护的主机/服务器上,它不但能够利用特征和行为规则检测并阻止诸如缓冲区溢出等已知攻击,还能够防范未知攻击,防止针对Web页面、应用和资源的任何未经授权的非法访问。

2)网络入侵防御系统(NIPS)

网络入侵防御系统(Network Intrusion Prevention Systems, NIPS)通过检测流经网络的流量,为网络系统提供安全保护。由于其采用在线连接方式,一旦识别出入侵行为,NIPS就可以中断整个网络会话,而不仅仅是重置会话。同样,由于实时在线的特性,NIPS需要具备高性能,以免成为网络的瓶颈。因此,NIPS通常被设计成类似于交换机的网络设备,提供线速吞吐速率以及多个网络端口。

为了实现千兆级网络流量的深度数据包检测和阻断功能,NIPS必须基于特定的硬件平台。这些硬件平台通常分为3类:网络处理器(网络芯片)​,专用的FPGA编程芯片和专用的ASIC芯片。在技术上,NIPS吸取了当前NIDS的所有成熟技术,包括特征匹配、协议分析和异常检测。

3)应用入侵防御(AIP)

应用入侵防御(Application Intrusion Prevention, AIP)是NIPS产品的一个特例,它将基于主机的入侵防御扩展为位于应用服务器之前的网络设备。AIP被设计为一种高性能设备,配置在应用数据的网络链路上,以确保用户遵守设定好的安全策略,保护服务器的安全。与NIPS相似,AIP在网络层面直接对数据包进行检测和阻断,与具体的主机/服务器操作系统平台无关。

3.5、入侵容忍

入侵检测是入侵防御的基础,而入侵防御是入侵检测的升级。然而,它们主要依赖于"堵"和"防"来保障网络安全。由于入侵检测和入侵防御系统(IPS)存在局限性,难以准确、及时地检测出所有入侵行为,因此很难保障网络空间中信息系统的机密性、完整性、可用性和不可否认性。此外,它们也无法提升网络信息系统的"自身免疫力"​。着眼于网络信息系统的可生存性,美国卡内基梅隆大学提出了一种生存技术:即使网络空间的信息系统遭受攻击入侵、故障和偶然事故,也能够在限定时间内完成既定的业务功能和使命。

入侵容忍技术是由容错技术发展而来的。容错技术最初针对的是计算机系统,尤其是分布式系统的计算结果一致性问题。20世纪80年代,容错技术开始应用于恶意漏洞的防御,从"容错"发展为"容侵"​,由此产生了"入侵容忍"的概念。

基于入侵容忍技术构建的系统被称为入侵容忍系统(Intrusion Tolerance Systems, ITS)​。虽然入侵容忍系统没有明确且广泛采用的定义,但可以概括为:即使部分组件被成功攻击,系统仍能持续正确地工作并向用户提供预期服务。入侵容忍系统的实现主要分为3种类型:检测触发型、算法驱动型和混合型。检测触发型的入侵容忍系统主要通过入侵检测发现入侵行为,随后触发系统的恢复操作以清除入侵,从而实现入侵容忍。算法驱动型的入侵容忍系统多通过大数表决及其衍生算法和拜占庭表决算法来掩盖部分组件的失效或故障。也存在混合型的入侵容忍系统,如SITAR,它既进行表决,也对系统的内部错误进行检测。入侵容忍的目标是保证系统的可用性和弹性,即当系统受到破坏时,能够继续维持正常服务,或在最短时间内切换服务器以确保服务持续,尽可能减少平均故障时间。

由于入侵容忍系统在设计思路上受限于当时网络威胁的特点,具有一定的局限性,目前已较少应用。然而,入侵容忍技术的提出及其设计方案为主动防御技术提供了研究起点和基础。

4、主动防御技术

目前,网络系统攻防态势基本上处于"易攻难守"的状态,这造成了攻击和防御在诸多方面的不对称。网络信息系统在设计链、生产链、供应链及服务链等环节存在可信度或安全风险不受控的情形,使得难以从根本上消除信息系统或网络基础设施的安全漏洞。攻击者只需发现并成功利用其中一个漏洞,就可能给系统带来难以预估的安全风险。尽管大部分防御技术与防御产品(如防火墙、基于特征的入侵检测技术等)得到了广泛使用,但这些技术以阻挡和检测为主要手段,具有一定的被动性和滞后性,属于静态的被动防御方法,尤其难以很好地应对未知漏洞和后门的威胁,存在防御缺陷。

在被动防御技术难以应对未知漏洞、后门问题的困境下,主动防御技术逐步发展起来。主动防御是指能够在攻击的具体方法和步骤被防御者知悉之前实现防御部署,有效抵抗未知攻击的破坏。相对于被动防御技术,主动防御能够降低攻击对系统的破坏性,最大限度地防范攻击的发生或继续进行,尤其是针对未知的攻击,能够实施更加主动的前摄防御。典型的主动防御技术包括沙箱、拟态防御、移动目标防御、类免疫防御等。

简言之,主动防御技术强调网络系统在受到攻击前能够主动发现并应对随时可能发生的网络攻击。以下是几种常见的主动防御技术及方法。

4.1、沙箱

沙箱(Sandbox)是一种安全机制,作为主动防御技术的辅助手段,能够为运行不受信任的代码提供安全的环境,从而减少恶意代码对系统和应用程序的潜在威胁。

4.1.1、沙箱机制

沙箱是一种能够拦截系统调用并限制程序执行违反安全策略的轻量级虚拟机,主要为运行中的恶意代码提供安全隔离环境。所谓沙箱机制,就是将Java代码限定在虚拟机(JVM)特定的运行范围内,并严格限制代码对本地系统资源的访问。具体方法是:在Java中将程序分为本地代码和远程代码,本地代码默认是可信任的,而远程代码则被视为不可信任的。受信任的本地代码可以访问所有本地资源,而对不可信的远程代码则依据安全策略,由用户指定其对资源的访问权限。无论是本地代码还是远程代码,都要按照安全策略设定,由类加载器加载到不同的空间,实现差异化的代码执行权限控制。沙箱机制原理示意如图所示。进一步地,可以通过增加代码签名来改进沙箱机制。

例如,某Java小程序(Java Applet)是一种小型的Java程序,已被编译成一种面向栈的机器语言,即Java虚拟机(JVM)的字节码。Java小程序可以嵌入到Web页面中,连同Web页面一起被下载到用户机器中。当Web页面被加载到浏览器中时,该Java小程序也被插入到浏览器内部的JVM解释器中,如图所示。

在解释器执行每一条指令之前,可以先对指令进行检查。这使解释器有机会检查每一条指令的地址是否有效。此外,系统调用也可以被捕获并进行解释。如何处理这些调用取决于安全策略。例如,如果一个Java小程序是可信的(例如它来自本地硬盘)​,则解释器可以毫不犹豫地执行它的系统调用;如果一个Java小程序是不可信的(例如它来自互联网)​,则解释器会将其封装到一个沙箱中,限制其行为,并捕捉其使用系统资源的意图。

4.1.2、沙箱的特点

沙箱作为一种重要的安全机制,主要用于限制应用程序或代码的访问权限,并确保其运行在隔离的环境中,不会对系统或其他应用程序造成任何损害,因此,沙箱需具备以下三个特性。

  • 隔离性。沙箱为运行中的程序提供一个隔离环境,限制其对系统和其他应用程序的访问权限。这种隔离可以阻止恶意代码对系统的破坏和信息的泄露。
  • 受控性。在所提供的隔离环境中,沙箱中运行的程序受到监控和限制。这些限制包括对文件系统、网络和操作系统功能的访问,以及对硬件资源的使用。
  • 安全性。沙箱通常使用安全策略和控制机制,以确保被运行的代码不会对系统和其他应用程序造成危害。这些策略和机制包括权限控制、访问限制和行为监视等。
4.1.3、沙箱的应用场景

沙箱通常用于对一些来源不可信、具有破坏力或无法判定意图的程序进行分析和测试,其核心在于建立一个行为受限的执行环境,将样本程序放入该环境中,依据安全策略限制程序执行不安全的操作,从而防止恶意程序可能对系统造成的破坏。

  • 测试和开发。沙箱可以用于测试新的应用程序或代码,以确保其在隔离的环境中运行,并不会对开发人员的机器或其他应用程序造成损害。
  • 恶意代码检测。沙箱可以帮助检测和分析恶意代码的行为,而不会对真实系统产生潜在的安全威胁。
  • 网络安全。沙箱可以用于分析和隔离来自未知来源的文件和链接,以防止恶意代码的传播和攻击。
4.1.4、典型沙箱的安装及应用

一种比较典型的沙箱是布谷鸟沙箱(CuckooSandbox)​,它是一个开源的恶意软件自动分析系统。布谷鸟沙箱得益于其模块化设计和强大的脚本功能,既可以作为一个独立的应用程序使用,也可以集成到更大的框架中。Cuckoo通常用于在隔离的环境中运行和收集恶意软件的信息,可以用来分析Windows可执行文件、DLL文件、Office文件、URL和HTML文件,以及Visual Basic(VB)脚本、Python脚本等其他类型的文件。

布谷鸟沙箱的具体安装及应用可以参见其官网。布谷鸟沙箱由一个宿主机(核心管理组件)加上多个沙箱(物理机或虚拟机)组成。每次分析都是在隔离的虚拟机或物理机环境中执行,通过隔离程序的运行环境,防范恶意代码对系统环境的破坏。

4.2、拟态防御

拟态是指自然界中一种生物伪装成另一种生物,或伪装成环境中其他物体以获取生存优势的能力。受此生物现象启发,2008年,中国工程院院士邬江兴率先提出和创建了网络空间拟态防御(Cyber Mimic Defense, CMD)理论,简称拟态防御。拟态防御为对抗网络空间中基于未知漏洞、后门、病毒或木马等未知威胁,提供了一种具有创新意义的防御理论和方法。

4.2.1、拟态防御的核心思想

拟态防御是一种网络安全策略,旨在使系统或网络资源看起来表现得与正常的行为模式相似,以混淆攻击者并降低潜在攻击的风险。拟态防御在技术上以融合多种防御要素为宗旨,以异构性、多样性或者多元性改变目标系统的相似性、单一性,以动态性、随机性改变目标系统的静态性、确定性,以异构冗余多模裁决机制识别和屏蔽未知缺陷与未明威胁,以高可靠性架构增强目标系统服务功能的柔韧性或弹性,以系统的不确定属性防御或阻止针对目标系统的不确定性威胁。一般说来,可通过基于动态异构冗余(Dynamic Heterogeneous Redundancy, DHR)的一体化技术架构集约化实现这个目标。

拟态防御的核心在于通过模仿合法通信的行为和流量模式,使攻击者难以区分系统中真实的活动和恶意活动。这种拟态防御可以在多个层面上实施,包括网络流量、系统行为和应用程序层。一些常见的拟态防御技术包括:

  • 网络流量拟态:通过修改网络流量特征,如源地址、目的地址、端口号和数据包大小等,使网络流量模式看起来正常。这可以通过使用网络流量混淆工具或特定的网络设备来实现。
  • 系统行为拟态:通过对系统行为进行模拟或生成假数据,使系统的运行看起来与正常行为相似。例如,模拟用户登录、文件读写和系统调用等活动,以误导攻击者。
  • 应用程序层拟态:在应用程序层面上实施拟态防御,可以通过虚假的应用程序接口(API)响应或生成假数据来欺骗攻击者。这可以使攻击者难以区分真实的应用程序活动和模拟的活动。

拟态防御可以与其他网络安全措施结合使用,如入侵检测系统(IDS)​、入侵防御系统(IPS)和防火墙等。其目标是增加对抗攻击的复杂性,提高攻击者在系统中进行侦测和渗透的难度。

总而言之,拟态防御是一种通过模仿正常行为和数据流量模式来混淆攻击者的网络安全策略。它可以提高网络系统的安全性,并增强对攻击行为的检测和防御能力。

4.2.2、拟态防御的基本实现方式

简而言之,拟态防御作为一种网络安全防御策略,主要是通过模拟和欺骗攻击者,使其产生误导、误解或浪费攻击资源。拟态防御的目标是消耗攻击者的时间和资源,降低攻击成功的概率,并获取有关攻击者的信息。其实质是模仿和伪装,让攻击者无法识别和区分真实系统和虚假系统,从而使其陷入困境或不确定性。因此,拟态防御可以通过以下几种方式来实现。

  • 蜜罐(Honeypot):构建虚假的系统、应用程序或网络资源,吸引攻击者进行攻击。蜜罐通常包含有诱饵数据,攻击者进入后,可以监测他们的行为、获取攻击技术和情报,并将其与真实系统隔离开来,保护真实系统的安全。
  • 虚假信息和陷阱文件:在系统中创建一些看似重要的文件、账户或信息,吸引攻击者的注意力并尝试将其利用。这些虚假信息可以触发警报,获取攻击者的IP地址或其他相关信息。
  • 迷惑性和错误信息:通过在系统中故意引入错误或故障,让攻击者误以为他们已经进入了目标系统。这可以使攻击者浪费时间和资源,暴露其攻击手段和技术。
  • 计时和资源限制:在网络环境中设置限制,如限制登录尝试次数、限制请求速率等,使攻击者在尝试攻击时遇到困难,降低其攻击成功的概率。

拟态防御的优点在于其能够提供一种主动防御策略,使攻击者陷入困境,从而保护真实系统的安全。然而,进行拟态防御需要在欺骗攻击者和不影响正常用户之间找到平衡,同时也需要定期评估和调整拟态防御措施的有效性。

4.2.3、蜜罐技术

蜜罐(Honeypot)是一种由网络管理员精心布置的"黑匣子"​,是专门为吸引并诱骗那些试图非法入侵网络主机而设计的一种包含漏洞的诱骗系统。它通过模拟一个或多个易受攻击的主机,为攻击者提供一个容易攻击的目标。简单来说,蜜罐就是一个诱捕攻击者陷阱。网络蜜罐技术是一种基本的主动防御技术。

1)蜜罐的关键技术

蜜罐的价值在于其被探测、攻击和损害。其主要作用包括:诱骗非法入侵者,监控、记录并分析他们的行为和手法;拖延攻击者对真正目标的攻击,让攻击者在蜜罐上浪费时间,减少攻击者对实际系统的威胁。这些功能主要通过以下四项关键技术实现:

  • 诱骗技术。蜜罐的欺骗性越强,就越能吸引攻击者的注意力,使入侵者相信存在有价值的、可利用的安全弱点。网络诱骗技术是蜜罐技术体系中最为关键的核心技术,常见的诱骗技术包括模拟服务端口、模拟系统漏洞和应用服务、IP空间欺骗、流量仿真等。
  • 数据捕获。数据捕获的目标是捕获和记录黑客、木马、病毒、蠕虫的扫描、攻击、入侵成功后的操作,直至事后退出的每一动作。数据捕获技术包括虚拟主机的防火墙、网络服务日志记录,以及网络防火墙的日志、入侵检测系统的日志等。数据捕获通常分三层实现:
    • 最外层:由防火墙对出入蜜罐系统的网络连接进行日志记录。
    • 中间层:由入侵检测系统(IDS)完成,抓取蜜罐系统内所有的网络数据包。
    • 最里层:由蜜罐主机完成,捕获蜜罐主机的所有系统日志、用户击键序列和屏幕显示。这些数据既可以存储在本地设备上,也可以存储在异地设备上。
  • 数据分析。从大量网络数据中提取攻击行为的特征和模型是相当困难的,数据分析是蜜罐技术中的难点。数据分析包括网络协议分析、网络行为分析、攻击特征分析和入侵报警等。通过对捕获的各种攻击数据进行融合与挖掘,分析黑客的工具、策略及动机,提取未知攻击的特征,为研究人员或管理人员提供实时信息。
  • 数据控制。数据控制是蜜罐的核心功能,用于保障蜜罐自身的安全。即使蜜罐被攻陷,攻击者也无法从中得到任何有价值的信息。虽然允许对蜜罐的所有访问,但需要对从蜜罐发出的网络连接进行控制,防止其成为攻击者的跳板,进而危害其他系统。

2)蜜罐的类型

根据蜜罐的技术类型,蜜罐可以分为以下3种。

  • 牺牲型蜜罐。所谓牺牲型蜜罐,就是一台为某种特定攻击设计的计算机系统,放置在易受攻击的地方,为攻击者提供一个极具吸引力的攻击目标。牺牲型蜜罐提取攻击数据比较困难,且容易被攻击者利用来攻击其他机器。
  • 外观型蜜罐。外观型蜜罐通过仿真网络服务,不会导致机器被真正攻击,本身是安全的。它可以迅速收集入侵者的信息。
  • 测量型蜜罐。这类蜜罐具有牺牲型蜜罐和外观型蜜罐的特点。攻击者可以轻易访问测量型蜜罐,但很难绕过其防御机制,因此可以避免被利用来攻击其他机器。

若按照部署目的分类,蜜罐可以分为产品型蜜罐和研究型蜜罐两类。产品型蜜罐旨在为组织的网络提供安全保护,包括检测攻击、防止攻击造成破坏及帮助管理员对攻击做出及时、正确的响应。产品型蜜罐通常易于部署,且不需要管理员投入大量工作。较具代表性的产品型蜜罐包括DTK、honeyd等开源工具,以及KFSensor、ManTraq等商业产品。研究型蜜罐专门用于捕获和分析黑客攻击行为。通过部署研究型蜜罐,可以追踪和分析黑客攻击,捕获黑客的击键记录,了解其使用的攻击工具和方法,甚至监听黑客之间的交流,从而掌握其心理状态。研究型蜜罐需要研究人员投入大量时间和精力进行攻击监视和分析。

蜜罐还可以根据其交互度的等级划分为低交互蜜罐和高交互蜜罐。交互度反映了黑客在蜜罐上进行攻击活动的自由度。低交互蜜罐通常仅模拟操作系统和网络服务,易于部署且风险较小,但黑客在低交互蜜罐中能够进行的攻击活动有限,因此通过低交互蜜罐能够收集的信息也比较有限。由于低交互蜜罐通常是模拟的虚拟蜜罐,可能包含一些容易被黑客识别的指纹(Fingerprinting)信息。产品型蜜罐一般属于低交互蜜罐。高交互蜜罐则完全提供真实的操作系统和网络服务,没有任何模拟。从黑客的角度看,高交互蜜罐是极具吸引力的"活靶子"​,因此在高交互蜜罐中能够获得大量黑客攻击的信息。然而,高交互蜜罐在提升黑客活动自由度的同时,也增加了部署和维护的复杂度及风险性。研究型蜜罐通常属于高交互蜜罐,例如ManTrap就是一种高交互蜜罐。

3)蜜罐主机的部署应用

通过恰当部署蜜罐主机,可以有效帮助组织识别和了解攻击模式、攻击技术、攻击工具和目标。通常,蜜罐主机被配置成看似有吸引力的目标,例如虚假的服务器、数据库或其他关键系统。具体说来,蜜罐主机有以下4种不同的配置方式:

  • 诱骗服务。侦听特定端口,当出现请求时做出相应的响应。例如,当攻击者侦听25号端口时,蜜罐会响应邮件系统(如sendmail或Qmail)的版本号。
  • 弱化系统。配置一个已知弱点的操作系统,诱使攻击者入侵,以便收集攻击数据。
  • 强化系统。这是弱化系统的改进版本,不仅可以收集攻击数据,还可以进行取证。
  • 用户模式服务。模拟运行应用程序的用户操作系统,以迷惑攻击者并记录其攻击行为。

值得注意的是,蜜罐主机的部署需要谨慎,因为攻击者可能利用它发起攻击、入侵其他网络或进行恶意破坏。因此,蜜罐主机应该独立于组织的正式网络环境,以隔离蜜罐主机系统和真实系统之间的风险。几种常见的蜜罐主机部署方式如表所示。

4)典型蜜罐的安装使用

目前,一种比较典型的蜜罐是github上的蜜罐开源项目Cowrie。Cowrie是一种中到高交互性的SSH和Telnet蜜罐,旨在记录暴力攻击和攻击者执行的shell交互。Cowrie安装在Linux系统中,可以获取攻击者用于暴力破解的字典、输入的命令以及上传或下载的恶意文件。攻击者在上传恶意文件后,执行恶意文件的操作均会失败,因此对蜜罐本身来说比较安全。可以在Cowrie官方GitHub仓库上下载并使用Cowrie。

总的来说,蜜罐是一种用于吸引攻击者并收集有关攻击行为的工具,可以帮助组织更好地了解网络威胁并改进防御措施。然而,蜜罐的使用需要谨慎,并应与其他网络安全措施结合使用,以确保网络的安全和稳定。

4.2.4、陷阱网络

陷阱网络(也称为蜜网)是指有意识地设置并用于欺骗、攻击或引诱黑客上当的网络环境。陷阱网络通常由多个蜜罐主机、防火墙、路由器、IDS等构成,具有较大的欺骗性,能更好地帮助研究攻击者的行为。

4.2.5、匿名网络

匿名网络(The Onion Router, TOR)是指通过一系列技术手段来隐藏用户的真实身份和位置的网络。它提供了用户在互联网上匿名操作和通信的能力。匿名网络通常采用多层加密、中继节点等方式混淆用户的通信流量,以增加匿名性。

4.3、移动目标防御

在网络攻防对抗中,攻击者一般是通过扫描网络系统,分析找出系统中存在的各种缺陷和可能的漏洞来实施攻击;而防御者则通过建立访问控制机制、加密等手段来监测与防范。当系统遭受攻击或发现漏洞时,防御者通常采用阻止、修复、发布补丁或制定新的安全策略来保护系统。显然,这种攻防模式使防御者处于被动状态,疲于应对攻击、修复漏洞和加固系统。由于网络系统的静态性、确定性和同构性,攻击者在网络攻防博弈中往往占据优势,网络安全处于"易攻难守"的局面,而现有的防御技术难以改变这种被动局面。为提升网络系统的抗攻击能力和弹性,许多国家在战略规划层面提出了一系列的革命性的研究课题,其中最重要的一个研究项目就是移动目标防御(Moving Target Defense, MTD)​。

MTD是基于动态化、随机化、多样化思想改造现有网络系统防御缺陷的一种理论和方法,其核心在于构建一种动态、异构、不确定的网络空间目标环境,增加攻击者的攻击难度,以系统的随机性和不可预测性来对抗网络攻击。MTD改变了长久以来的静态设计,是主动防御的重要理念之一。

MTD是一种网络安全策略,旨在通过增加攻击者攻击目标的难度和成本来保护系统和数据的安全。MTD的核心在于以一种不确定的方式不断"转移变换"​,使攻击者难以探测清楚系统内部的变化规律,无法找到攻击的突破口。换言之,MTD通过不断改变和随机化网络和系统的某些关键属性来打乱攻击者的侦察和攻击过程。这些关键属性可能包括IP地址、端口号、网络拓扑、系统配置等。通过频繁地改变这些属性,攻击者很难获取系统的固定状态和漏洞信息,从而降低攻击成功的概率。

MTD技术旨在设计能够在非安全环境中可靠工作的弹性系统,能够在多个不同的系统维度上,开发、分析和部署防御者可控的、随时间动态迁移和变化的安全机制与策略,以限制自身脆弱性的暴露,降低被攻击的机会,并大幅增加攻击者的成本。MTD技术和方法包括以下几种:

  • IP地址随机化:改变网络中的IP地址分配方式,使攻击者难以确定特定主机的位置和身份。
  • 端口号随机化:随机化网络上的服务端口号,使攻击者无法准确预测特定服务所使用的端口。
  • 操作系统和应用程序随机化:通过频繁更新和随机化操作系统和应用程序的版本、配置和补丁,阻止攻击者利用已知漏洞实施攻击。
  • 虚假数据和虚假网络:将虚假的数据和网络引入系统,误导攻击者的侦察和攻击行为,增加攻击复杂度。
  • 行为分析和自动响应:利用机器学习和行为分析技术,及时监测和检测异常行为,并采取自动响应措施,阻止攻击。

MTD技术在网络层、平台层、运行环境、软件层和数据层都具有广泛的应用场景,其共同特点是通过动态改变系统的配置、组成或状态,使系统具有动态性、随机性和难以预测性,从而使攻击者难以发现攻击目标,或难以针对目标的漏洞实施有效攻击。

MTD可以有效防御网络攻击,对攻击目标起到一定的隐蔽作用。由于攻击行为一般具有较强的针对性,通过动态变化来弱化系统的静态性,使攻击者难以定位攻击目标,从而增大攻击难度。显然,为了保持系统的动态性和防御的有效性,需要系统具有较高的变化频率。然而,这可能会对系统性能产生一定影响。因此,在使用MTD技术时,需要权衡安全需求与实际可行性。

4.4、类免疫防御

网络空间已经成为国家力量的重要组成部分,也是经济、社会和整个国家安全体系的重要一环。例如,从智能手机到物联网、人工智能,通过不同领域的技术融合和交织,网络技术已经发生了质的突破。然而,网络攻击形式和方法也在不断升级换代,攻击目标开始转向虚拟端,包括软件定义网络(SDN)及关键信息基础设施。攻击方法也在不断升级演化,从原来的入侵式袭击(如拒绝服务、网络钓鱼、网站嫁接等)​,发展到高级持续性威胁(APTs)或多阶段黑客间相互协调进攻,进一步拓展到全新的分布式拒绝服务(DDoS)类型,其破坏性和危害性正变得越来越大。借鉴生物学领域中的免疫机制,网络防御系统应与人类的免疫系统类似,具备免疫防御机制。

类免疫防御的目标是使网络空间的信息系统像生物系统一样,具有发现和消灭外来安全威胁的能力,通过设计安全机制检测、识别和消除安全威胁,让网络系统对安全威胁"免疫"​,从而实现网络空间信息系统的安全。

相关推荐
深圳恒讯1 小时前
乌克兰服务器的网络延迟、机房现状与稳定性情况
运维·服务器·网络
dogstarhuang1 小时前
实战:用 API 网关统一接入 GPT-5.6,多模型路由怎么省下 80% 成本
网络·gpt·大模型·api网关·ai推理·模型选型·按量计费
星夜夏空991 小时前
网络编程(5)—— Reactor实现(v1)
服务器·javascript·网络
数据知道2 小时前
网络安全实战:信息收集实战——子域名、端口、指纹、社工信息聚合
网络·安全·web安全·网络安全·servlet
超级赛博搬砖工2 小时前
什么是原生IP与广播IP?如何区分?原生IP有什么优势?
网络
fiveym12 小时前
01 - iPXE + Clonezilla 网络装机原理解析
linux·运维·服务器·网络
虎头金猫12 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
dog25012 小时前
网络优化,还是降低各阶矩
服务器·网络·php
liuqs33213 小时前
nat123安卓和nat123全端口选型指南,映射工具怎么挑
网络·笔记