自建入侵检测系统与防火墙联动策略的实现方法研究

来源 :科学与财富 | 被引量 : 0次 | 上传用户:justdoitterry
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:由于小型商业或自用网络中心无法投入大量财力物力对其进行全部防御,本文提出了一种自建入侵检测系统与防火墙联动策略的实现方法来实现该类网站中心的基本防护。利用Libnids库进行二次开发实现了自建入侵检测系统与防火墙联动,该策略在进行监听网络通信期间,当察觉到可疑的活动,系统就会自动设置新的防火墙规则,阻止与可疑IP主机间的全部连接。实验证明,通过硬件、软件的配合,可以有效对不符合规定的行为进行即时阻断和记录。
  关键词:入侵检测;防火墙联动策略;Libnids;主动防御
  1  引言
  目前,在全球信息化的同时,各种攻击、防护技术和方法(如对工业控制系统的攻击、无界浏览器、网络刷票、免杀、网络身份证、云安全等)层出不穷。这些攻击和防护技术所带来的安全问题尤其突出,而对网络进行实时安全问题检测,识别不同信息安全攻击手段的威胁程度,并迅速做出解决方案,使其对网络信息安全所带来的风险和影响降到最低,是一种十分必要的网络安全防护措施之一。国内外围绕网络信息安全的研究十分活跃,其重要性不言而喻[1] [2]。
  本文提了一种自建入侵检测系统与防火墙联动策略实现方法是一种将被动式入侵检测系统变为主动式防御方法,其弊端较主动式防御技术无论在风险方面还是其技术被不法分子利用方面都是极低的,且其十分灵活,造价及部署成本极低。
  2  技术概述
  防火墙可以比喻为办公室门口的警卫,用来检查进出者的身份。而入侵检测系统就像是网上的警报器,当发现入侵者时,指出入侵者的来历、他们正在做什么。入侵检测系统被视为防火墙之后的第二道安全闸门。
  2.1  防火墙技术
  防火墙技术,最初是针对 Internet 网络不安全因素所采取的一种保护措施。顾名思义,防火墙就是用来阻挡外部不安全因素影响的内部网络屏障,其目的就是防止外部网络用户未经授权的访问。它是一种计算机硬件防火墙件和软件的结合,使Internet與Intranet之间建立起一个安全网关(Security Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问政策、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信均要经过此防火墙。
  防火墙的工作原理是按照事先规定的策略规则,监控所有通过防火墙的数据信息,严格按照策略执行通、断动作,同时保存日志信息,记录其五元组(通常是指由源IP地址,源端口,目的IP地址,目的端口,和传输层协议号这五个量组成的一个集合),以便方便网络管理员的检测和跟踪[3]。
  防火墙的优点是策略性强,通过执行人为定制的安全策略,能过滤掉管理员知识体系中已有的不安全服务,拒绝可疑的访问,大大降低非法攻击的风险,提高网络安全系数[4]。
  2.2  入侵检测系统
  入侵检测系统是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录IP网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,很多入侵检测系统都是开源的,例如snort,具有很好的扩展性和可移植性,本文这事利用开源入侵检测系统进行二次设计实现与防火墙联动[5] [6]。入侵检测系统基本体系结构如图1所示:
  如上图所示,入侵检测系统基本体系结构由4大软件模块组成,它们分别是:
  (1)数据包嗅探模块——负责监听网络数据包,对网络进行分析;
  (2) 预处理模块——该模块用相应的插件来检查原始数据包,从中发现原始数据的“行为”,如端口扫描,IP碎片等,数据包经过预处理后才传到检测引擎;
  (3)检测模块——该模块是核心模块。当数据包从预处理器送过来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块;
  (4) 报警/日志模块——经检测引擎检查后的数据需要以某种方式输出。如果检测引擎中的某条规则被匹配,则会触发一条报警,这条报警信息会通过网络、UNIX socket、Windows Popup(SMB)、SNMP协议的trap命令传送给日志文件,甚至可以将报警传送给第三方插件(如SnortSam),另外报警信息也可以记入SQL数据库。
  3  自建入侵检测系统与防火墙联动
  本文使用Libnids(Library Network Intrusion Detection System)库进行二次编程实现自建入侵检测系统与防火墙联动。Libnids是一个用于网络入侵检测开发的专业编程接口。它实现了基于网络的入侵检测系统的基本框架,并提供了一些基本的功能。使用Libnids可以快速地构建基于网络的入侵检测系统[7] [8],并可以在此基础上进一步扩展开发。
  3.1  开发实现TCP数据流重组
  (1)TCP数据流重组
  TCP报文在网络传输过程中会有失序,重复,还会有丢包的情况发生,在进行上层协议分析之前,需要对TCP报文进行重组以进行TCP报文的重新排序,丢弃重复的数据,并指示数据的丢失。简单的讲,重组仅关心TCP序号、应答号及数据,还有几个特殊的TCP标志(SYN,ACK,RST,FIN需特别处理) [9]。重组需要从SYN包获取一个启始序号,ACK标志表示应答序号有效,RST、FIN将设置数据流的结束标志,待所有数据接收完成,数据流才关闭[10]。
  (2)利用Libnids二次开发实现TCP数据流重组
  Libnids提供了TCP数据流重组的功能,它可以显示任何基于TCP协议的应用层协议。利用Libnids可以很好地实现显示TCP的连接过程,并对它们的传输数据进行详细的分析。Libnids的TCP数据流重组开发流程如下:   (a) 首先用函数nids_init()进行初始化;
  (b) 调用函数nids_register_tcp()注册用于分析TCP连接和TCP连接状态的回调函数,主要的工作在此回调函数中实现;
  (c) 调用函数nids_run()进入循环捕获数据包的状态。
  Libnids的TCP数据流重组开发流程示意图如图2所示:
  (3)回调函数tcp_dialog
  对TCP流重组的回调函数的类型定义如下:
  void tcp_dialog(struct tcp_stream* tcp_connection, void** arg);
  其中参数tcp_connection描述的是一个TCP连接的所有信息。
  下面提供了对其几个基本成员信息提取的方法,这些基本信息也是tcp_dailog所要实现完成的。
  (a) 获取TCP连接的地址和端口对。
  提取tcp_stream地址端口对成员:
  struct tuple4 ip_and_port = tcp_connection->addr。
  将目的ip地址转换为点式地址:
  libnet_addr2name4( ip_and_port.saddr, 0 )。
  获取TCP源/目的端口:
  ip_and_port.source/ip_and_port.dest。
  (b) 判断libnids状态。
  switch( tcp_connection->nids_state )
  {
  case NIDS_JUST_EST:
  // 表示TCP客户端与服务器建立连接状态
  tcp_connection->client.collect++;
  tcp_connection->server.collect++;
  case NIDS_CLOSE:
  // 表示TCP连接正常关闭
  case NIDS_RESET:
  // 表示TCP连接被RST关闭
  case NIDS_DATA:
  // 表示有新的数据到达,对新到达的数据进行解析
  // 调用自定义函数
  parse_newdata(struct tcp_stream* tcp_connection,char * AddBuf )
  }
  3.2  开发实现TCP端口扫描检测
  (1) 实现端口扫描检测
  在Libnids中提供了一些基本的检测技术,如对网络扫描攻击的检测(包括端口扫描攻击),以及对异常IP数据包、异常TCP数据包和异常UDP数据包的检测。Libnids针对端口扫描攻击的开发流程如下:
  (a) 首先通过Libnids的全局参数对Libnids的一些环境参数进行设置,就端口扫描检测而言,此步骤完成的是注册端口扫描检测攻击的函数,方法如下:
  nids_params.syslog = portscan_ids
  其中nids_params为Libnids全局变量,成员syslog是一个函数指针,默认值为nids_syslog()函数。
  在syslog函数中可以检测入侵攻击,如端口扫描攻击,也可以检测一些异常情况,如无效TCP标记。此处注册的是回调函数portscan_ids,其定义类型如下:
  void portscan_ids(int type, int errnum, IPV4_HEADER* iph,struct host* hostinfo)
  入口参数说明如下:
  参数type为Libnids报警类型;
  参数errnum为IP、TCP报警类型;
  参数iph为IP数据包头结构,需要自定义,见common/pt_header.h;
  参数hostinfo为扫描主机数据结构。
  设置之后的环境参数对整个Libnids都有效。
  (b) 完成检测攻击函数的注册后,接下来用函数nids_init()进行Libnids初始化。
  (c) 最后用函数nids_run()进入循环捕获数据包的状态。
  Libnids针对端口扫描攻击的开发流程示意如图3所示。
  \
  (2)扫描主机数据结构
  struct scan
  {
  unsigned int addr;/* 被掃描者的IP(网络字节顺序)*/
  unsigned short port;/* 被扫描端口号*/
  unsigned char flags;/* TCP扫描类型(SYN、FIN、NULL扫描)*/
  }
  struct host
  {
  struct host* next;/* 下一个主机结点*/
  struct host* prev;/* 前一个主机结点*/
  unsigned addr;/* 扫描源IP地址*/
  unsigned modtime;/* 时间*/
  unsigned n_packets;/* 扫描次数*/
  struct scan* packets;/* 扫描信息*/
  }
  (3) 端口扫描检测回调函数   通过Libnids的全局参数注册端口扫描检测函数portscan_ids,对该函数内部实现的伪码说明如下。
  void portscan_ids(int type, int errnum, IPV4_HEADER* iph, struct host* hostinfo)
  {
  switch(type)
  {
  case NIDS_WARN_IP:
  // 做IP数据包异常检测处理。
  ……
  case NIDS_WARN_TCP:
  // 做TCP数据包异常检测处理。
  ……
  case NIDS_WARN_UDP:
  // 做UDP数据包异常检测处理。
  ……
  case NIDS_WARN_SCAN:
  // 做端口扫描检测处理,对hostinfo进行解析,自定义函数parse_host,见/opt/ExpNIS/NetAD-Lab/Projects/libnids/ids_portscan.c
  }
  }
  3.3开发实现特征匹配的NIDS
  (1)特征匹配
  一个IDS通常保存着已知攻击特征的特征库中,并把其所监视的网络流量,行为等和特征库的内容作模式匹配。当所监视的数据和日志中有内容特征库的内容匹配时,IDS能发出警报信息。
  特征匹配的工作原理类似于防病毒软件包对进入一个系统的文件所作的检查:它检查网络流量中的数据包内容,寻找可能的攻击行为,正如一个防病毒软件检查系统中的文件、电子邮件附件,动态的网页内容等,寻找病毒特征(匹配已知的病毒特征)或可能的恶意行为[13]。
  (2)基于Libnids开发特征匹配IDS
  基于Libnids开发特征匹配IDS开发流程如下(开发流程是多种的,您可以不必局限于下面的流程):
  (a) 首先用函数nids_init()进行初始化;
  (b) 注册用于检测分析IP数据包的回调函数,主要的工作在此回调函数中实现;
  (c) 调用函数nids_run()进入循环捕获数据包的状态。
  基于Libnids开发特征匹配IDS流程如图4所示。
  4  自建入侵检测系统与防火墙联动策略测试
  自建入侵检测系统与防火墙联动策略作为一种以主动方式工作的入侵检测系统,在进行监听网络通信期间,一旦察觉到可疑的活动,系统就会采取相应的措施,最为直接的方法就是启动防火墙,设置新的防火墙规则,阻止与可疑IP主机间的全部连接。如下图所示检测到的TCP包情况:
  当网络数据通信数据与模式特征匹配时,该自建系统自动以该网络数据通信的源IP地址为参数,在防火墙的规则列表中添加一条新规则,此规则阻断了源IP地址与本机的任何后续通信。测试其可疑IP地址为96.207.101.5,该自建系统自动将防火墙的规则列表中添加了如下规则:
  iptables -A INPUT --src 96.207.101.5 -j DROP
  5  小结
  网络安全的技术是随着网络攻击技术发展而发展的,所以对网络攻击的理解认识对在其防护中有着很大的帮助。正所谓知己知彼,百战不殆。然而很多有针对性地有效防御方法绝大多是都是在发现被攻击后才研发出来的,而对于网络信息安全防范是每个网络都需要部署的一件重要任务,但目前商用或自用的很多小型网络中心,因各种情况或经费问题,本文提出的自建入侵检测系统与防火墙联动策略的实现方法十分适合该类型的网络中心,部署快速、费用极低、使用简单、操作方便,并能够自动完成对部分检测出的威胁进行屏蔽。
  参考文献:
  [1]林果园,黄皓,张永平.入侵检测系统研究进展[J],计算机科学,2018,35(2) :69-75.
  [2]吴庆佺.入侵检测和防火墙联动技术研究[D].重庆 :重庆大学,2016 :1-73.
  [3]张瑞.计算机网络安全及防火墙技术分析[J].电脑知识与技术,2012,8(24) :5787-5788.
  [4]曹建文,柴世红.防火墙技术在计算机网络安全中的应用[J].信息技术,2015,34(6) :39-40.
  [5]李秀婷.基于snort的网络入侵检测系统实现及其改进研究[D].2008 :1-62.
  [6]Fabio A, Gonzalez, Dipankar Dasgupta. Anomaly detection using real-valued ngative selection [J].Genetic Programming and Evolvable Machines.2003, 4(4): 383-403.
  [7]徐平均.基于Libnids分布式入侵檢测系统的研究与实现[D].2012 :1-62.
  [8]Denning DE. An Intrusion Detection Mode[J].IEEE Transaction on Software Engineering,2017,12(2):222-232.
  [9]刘静菠,刘嘉勇,唐龙.基于应用层特征的TCP数据流重组方法研究[J].信息安全与通信保密,2014,1009(3) :111-114.
  [10]何兴高,车明明,张凤荔.入侵防御系统中TCP数据流重组的设计与实现[J].计算机光盘软件与应用,2012,1007(17) :195-196.
  [11]蒋一川,郭东伟,曹岩等,网络信息安全教学实验系统实验教程[M],吉林:吉林中软吉大信息技术有限公司,2010.04
  作者简介:
  辛苗,(1985.6-)女,汉族,陕西咸阳人,学士 研究方向:网络中数据传输的可靠性
其他文献
摘 要:电力计量是电力日常管理中的重要工作,贯穿于电能的生产、传输及使用的整个过程。保障电力计量的准确性,是促进电力市场公平、公正、有序进行的关键。传统的电力计量装置,在检验的过程中,由于工作量较大,所需时间较长,无法保障结果的精准度。为了解决上述的问题,本文对大数据的电力计量装置故障智能化诊断技术进行研究,对电力计量装置的运行状态进行实时监测,利用大数据计算故障出现的概率,实现对故障的智能化诊断
期刊
摘 要:电力是人们日常生活中必不可少的能源之一,在国家的经济发展中起着至关重要的作用,同时,生产电能也需要消耗较高的能源。所以,为了保证电厂的经营效益,降低能源消耗,就要对汽轮机进行节能降耗的研究,以便在降低能源消耗的前提下,提升能源转换率,让电厂在竞争激烈的市场中占据有利发展条件,为电厂的未来发展打好基础。  关键词:电厂;汽轮机;节能降耗  1.电厂汽轮机运行的概况  汽轮机通常有将蒸汽热能转
期刊
摘 要:为了满足人们日益增长的物质文化的需求,采取扩大总需求的办法可以有效地解决当前的矛盾,进一步加深供给侧结构性的改革,这项改革的实施,能够进一步加快正度部门的内部治理结构,也能够更好地明确政府部门的职责和工作效率。比如,在降低企业的制度性交易成本方面,政府部门承担着重要的作用,有利于成本的降低。本文分析了企业制度性交易成本的内涵、阻力,最终得出可行性的建议和对策。  关键词:制度性交易成本;结
期刊
摘 要:在这样一个新时代之中,高速发展究竟会带来什么,我们不得而知。随着时代的发展,新媒体行业逐渐发展起来,一切都是不可预知的。新媒体给我们带来了更加便捷的生活,但与此同时,新媒体与传统媒体产生碰撞,产生不一样的火花,也给人们带来了不一样的体验。只有将它们互相融合、共同发展才能将利益最大化,产生一种彼此双赢的场面,在高速发展的信息化时代,不随波逐流,拥有一个稳固的属于自己的地位。  关键词:新媒体
期刊
摘 要:近年来,许多农村年轻人为了生计向城镇流动,造成农村“空心化”,孤寡老人群体不断扩大,也引发了很多社会问题。本文通过社会调查法,运用社会支持系统理论,研究了农村孤寡老人社会支持缺失的原因。政府政策制度支持缺乏,社会关注度不够,家庭结构断裂,缺乏互助等造成社会支持系统的崩溃。要想重建孤寡老人社会支持系统,应以政府为主导,建立社会保障体系并提供供养场所;以社会组织支持为补充,增强社会组织支持;以
期刊
摘 要:本文主要结合PT断线在实际调试中遇到问题进行探讨,并对调试方法进行改进,通过对比和实际调试结合,验证了方法的可行性。  在电气故障中,PT断线是一种常见的故障,它是由电压互感器一次或二次回路接头松动、断线、接触不良等现象引起的一种常见故障,它一般分成PT一次侧断线和二次侧断线,无论是哪一侧断线,都将会导致二次回路的电压异常,进而使低电压保护误动。  在我厂保护中,对于PT断线执行的判据为:
期刊
摘 要:倒闸操作是变电站日常工作的重要内容,它在变电运行工作中最容易出现问题。文章首先对变电站倒闸操作危险点与预控现状进行了分析,其次介绍了变电站倒闸操作中危险点与预控的一般步骤,并在此基础上提出了具体的预控方法,最后对变电站倒闸操作中危险点的分析与预控工作中应注意的问题进行了总结。  关键词:变电站;倒闸操作;危险点;预控措施;变电运行  随着经济的发展和社会的进步,人们的生活水平在逐步提高,对
期刊
摘 要:现今时代,新一轮农网改造升级正在进行,涉及范围较广,所存在施工危险点较多,对安全管控水平具有较高的要求。因此,文章以甲农网改造升级工程为例,阐述了其在安全管理过程中所做的努力,并对农网改造升级工程安全管理效益进行了进一步分析。  关键词:农网;改造升级;安全管理  前言:安全管理是农网改造升级工程的重中之重。在农网改造升级工程全方位实施的背景下,供电企业面临着更重的工作任务、更紧张的工作时
期刊
摘 要:经济与管理类专业大学生的就业力是高校毕业生就业规模和就业质量的关键因素,是高等院校发展的核心竞争力。高等院校经济管理类专业学生的人才培养模式必须以学生就业力提升为基点,市场需求为导向,合理规划人才培养目标,适时调整人才培养方案,扎实落实人才培养政策,优化专业教师队伍,使人才培养与社会需求相匹配,以全面提高人才培养质量。  关键词:就业力;经济管理类人才;人才选用标准;人才培养模式  大学生
期刊
摘 要:本文就铜陵有色铜冠铜材分公司SMS连铸连轧生产线出现的铸机塞棒电机出现的通讯电缆故障,简要介绍了其控制原理等,并对此故障处理进行了探讨及总结。  关键词:塞棒电机;通讯电缆;故障  一、控制系统简介  铜陵有色金属集团股份有限公司铜冠铜材分公司,2013年引进引进德国SMS Meer公司的CR3500连铸连轧铜杆生产线,其中配套美国Hazelett 双带铸机。  铸机中的塞棒电机(西门子1
期刊