用网络入侵检测系统来防范来自黑客的攻击

本文针对入侵检测系统的漏洞来了解一下黑客的入侵手法。一旦安装了网络入侵检测系统,网络入侵检测系统就会为你分析出网上出现的黑客攻击事件,而且你能用此入侵检测系统的反击功能,即时将这种联机猎杀或阻断。你也可以配合防火墙的设置,由入侵检测系统自动为你动态修改防火墙的存取规则,拒绝来自这个ip 的后续联机动作!”这种美好的“前景”,可能是许多入侵检测系统提供商的惯用销售手法,一般的企业或组织在建立自己的入侵检测系统时也会有这种预期目的。诚然,入侵检测系统可以具有很好的监视及检测入侵的能力,也可以对企业或组织的安全提供很好的协助。但是,正如小偷的手法会随着锁的设计而不断“更新”一样,随着入侵检测系统的出现,许多针对网络入侵检测系统的规避手法也随之不断“升级”。如今,黑客对于入侵检测系统已经有了一套较完整的入侵手法。下面我们将针对入侵检测系统的漏洞来了解一下黑客的入侵手法。

一、识别方式的设计漏洞

1.对比已知攻击手法与入侵检测系统监视到的在网上出现的字符串,是大部分网络入侵检测系统都会采取的一种方式。例如,在早期apache web服务器版本上的phf cgi程序,就是过去常被黑客用来读取服务器系统上的密码文件(/etc/password),或让服务器为其执行任意指令的工具之一。当黑客利用这种工具时,在其url request请求中多数就会出现类似“get /cgi-bin/phf?.....”的字符串。因此许多入侵检测系统就会直接对比所有的url request 中是否出现/cgi-bin/phf 的字符串,以此判断是否出现phf 的攻击行为。

2.这样的检查方式,虽然适用于各种不同的入侵检测系统,但那些不同的入侵检测系统,因设计思想不同,采用的对比方式也会有所不同。有的入侵检测系统仅能进行单纯的字符串对比,有的则能进行详细的tcp session重建及检查工作。这两种设计方式,一个考虑了效能,一个则考虑了识别能力。攻击者在进行攻击时,为避免被入侵检测系统发现其行为,可能会采取一些规避手法,以隐藏其意图。例如:攻击者会将url中的字符编码成%xx 的警惕6进值,此时“cgi-bin”就会变成“%63%67%69%2d%62%69%6e”,单纯的字符串对比就会忽略掉这串编码值内部代表的意义。攻击者也可以通过目录结构的特性,隐藏其真正的意图,例如:在目录结构中,“./”代表本目录,“../”代表上层目录,web服务器 可能会将“/cgi-bin/././phf”、“//cgi-bin//phf”、“/cgi-bin/blah/../phf?”这些url request均解析成“/cgi-bin/phf”,但单纯的入侵检测系统可能只会判断这些request是否包含“/cgi-bin/phf”的字符串,而没有发现其背后所代表的意义。

3.将整个request在同一个tcp session中切割成多个仅内含几个字符的小packet,网络入侵检测若没将整个tcp session重建,则入侵检测系统将仅能看到类似“get”、“/cg”、“i”、“-bin”、“/phf”的个别packet,而不能发现重组回来的结果,因为它仅单纯地检查个别packet是否出现类似攻击的字符串。类似的规避方式还有ip fragmentation overlap、tcp overlap 等各种较复杂的欺瞒手法。

二、“猎杀”及重调安全政策的漏洞

所谓“猎杀”,就是在服务器中设定一个陷阱,如有意打开一个端口,用检测系统对其进行24小时的严密盯防,当黑客尝试通过该端口入侵时,检测系统就会及时地将其封锁。网络入侵检测系统的“猎杀”及重新调整防火墙安全政策设置功能,虽然能即时阻断攻击动作,但这种阻断动作仅能适用tcp session,要完全限制,就必须依赖重新调整防火墙安全政策设置的功能,同时也可能造成另一种反效果:即时阻断的动作会让攻击者发现ids的存在,攻击者通常会寻找规避方式,或转向对ids进行攻击。重新设置防火墙的安全政策,若设置不当,也可能造成被攻击者用来做阻断服务(denial of service)攻击的工具:经过适当的设计,若网络入侵检测的检查不足,攻击者可以伪装成其他的正常ip来源进行攻击动作,入侵检测系统若贸然限制这些来源的ip,将会导致那些合法用户因攻击者的攻击而无法使用。论是识别方式的设计,还是所谓的“猎杀”及重新设置防火墙安全政策的设置功能,都有其利弊。能够实地了解入侵检测系统的识别方式,或进行其识别手法的调整,将有助于提高入侵检测系统运作的正确性。对“猎杀”及重新调整防火墙安全政策设置功能工具的使用,则应仔细评估其效益与相应的损失,这样才能有效地发挥网络入侵检测系统的功能。

更多相关文章
  • 模型视图控制器(Model View Controller)或MVC,MVC是俗称,是一种软件设计模式,用于开发Web应用程序.模型 - 视图 - 控制器模式是由以下三个部分组成: Model - 模型是负责维护数据最低级别. View - 这是负责向用户显示的全部或部分数据. Controller ...
  • 持续集成由以下环节组成: 代码版本库 (gitlab等)CI服务 (gitlab-ci/jenkins等 coordinator) CI Runner   当开发者将修改推送到版本库时,版本库会通知 CI服务,CI服务则会取出一份代码,交给 Runner进行检测,Runner将检测结果汇报给 CI服 ...
  • 免责声明:本站提供安全工具.程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! Droidjack是一款针对安卓手机远程管理工具,你可以利用它在PC上对手机进行远程操控,不仅功能强大,使用也很方便. 功能特性 1.可以生成一个APK,绑定在被控手机的任何APP上 2.可在电脑端控制手机, ...
  • (1) WAF实现WAF包括哪些组件,这些组件如何交互来实现WAF防御功能(2)WAF规则(策略)维护规则(策略)如何维护,包括获取渠道,规则测试方法以及上线效果评测(3) WAF支撑WAF产品的完善需要哪些信息库的支撑 一.WAF实现 WAF一句话描述,就是解析HTTP请求(协议解析模块),规则检 ...
  • Atom  编辑器在右键快捷菜单里有 Go to Declaration,但是点了不起作用.这是因为 Atom 自己并不扫描整个项目提供符号信息,这玩艺是要配合 tags 符号信息的,在目录里运行 ctags -R 一遍就有了. Atom 可以用 cmd-r 在当前文件里按符号查找,这个没有 tag ...
  • 内存中OLTP是关于内存中的一切.但那只是对了一半.在今天的文章里我想给你展示下,当你从内存读取数据时,即使内存中OLTP也会引起磁盘活动.这里的问题是执行计划里,不正确的统计信息与排序(sort)运算符的组合. 排序(sort)运算符问题 我们都知道,排序(sort)运算符需要所谓的内存授予(Me ...
一周排行
  • 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice  t.sina.com.cn/giantchen 陈硕关于分布式系统的系列文章:http://blog.csdn.net/ ...
  •  在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般来说都是做一些条件限制.在不修改标准Form的fmb文件的前提下,可以通过Custom.pll来实现. 一.Custom.pll的工作机制 在EBS中大 ...
  • 本节课的主要内容有:1.详细介绍了DDMS视图2.讲解如何创建Button控件3.讲解给Button控件添加事件的几种方法课程下载地址:http://u.115.com/file/f180ccff3d课件及源码下载地 ...
  • 1.首先,要有一张CentOS 的安装介质,使用介质启动电脑出现如下界面 界面说明 Install or upgrade an existing system 安装或升级现有的系统 install system wi ...
  • 文字是怎么显示的:字体的秘密 呵呵,天天看着显示屏上的文字,试曾想过文字是怎么显示的? 我们都知道,操作系统为了能显示各种形状.大小的字体,自带了很多字体.因为有了这些字体,我们才得以看到文字. 为了弄清字体是如何显 ...
  • 聚簇索引和聚簇索引介绍 一.    什么是索引和建立索引的好处 什么是索引 在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别,与书中的索引一样,数据库中的索引使您可以快速找到表中的特定信息.索引包含从表中 ...
  • oracle安全管理 实验目的 掌握Oracle的安全管理方法. 实验内容 (1) 概要文件的建立.修改.查看.删除操作. (2) 用户的建立.修改.查看.删除操作. (3) 权限的建立.修改.查看.删除操作. (4 ...
  • 下面小编就为大家介绍升级Win10后应用商店.应用打不开或闪退的解决方法,很多用户升级win10之后,都碰到这样的问题,下面就为大家介绍一下,下面我们一起来看看吧 可能有一些用户升级Win10之后遇到了应用商店.应用 ...
  • 学习linux离不开c语言,也离不开汇编,二者之间的相互调用在源代码中几乎随处可见.所以必须清楚地理解c语言背后的汇编结果才能更好地读懂linux中相关的代码.否则会有很多疑惑,比如在head.s中会看到调用main ...
  • 虚函数 虚函数就是用virtual来修饰的函数.虚函数是实现C++多态的基础. 虚表 每个类都会为自己类的虚函数创建一个表,来存放类内部的虚函数成员. 虚函数表指针 每个类在构造函数里面进行虚表和虚表指针的初始化. ...