智能主动防御系统(08-100)

  作者:赵宇宸 齐鹏 毛宁祥 胡建伟 西安电子科技大学 时间:2009-02-26来源:电子产品世界

  6. 将配置信息传递给NDIS中间层驱动

  智能防火墙的数据包过滤功能的实现放在系统核心层(NDIS中间层驱动),由于在驱动层中对硬盘上的数据操作不方便,因此程序在启动时,用户态程序需要将配置参数,入侵特征码,本机/网关IP,本机/网关MAC等信息发送给驱动程序。并且当程序的设置参数发生改变以及用户态程序捕获到新的入侵特征码时,也要将相应的数据送给驱动程序。

  7. 将NDIS中间层驱动反馈的信息提示给用户

  当驱动程序拦截到攻击时会给用户态层程序发出通知,用户态程序读取驱动发送的攻击信息后,以友好的托盘弹出式窗口提示用户。

  8. NDIS驱动的实现

  在学习和比较了当前的网络数据包拦截技术后,我们的智能防火墙采用了安全系统比较高的NDIS中间层驱动程序技术。由于基于NDIS中间层驱动模式的个人防火墙可截获较为底层的封包,从而可以完成更为低级的操作,例如实现拦截ARP欺骗,阻止ICMP木马通信。

  智能防火墙NDIS中间层驱动程序的编写是通过扩展Windows 2003 DDK中的Passthru完成的。Passthru是微软提供的一个用NDIS中间层驱动程序实现对网络封包的截获的程序,不过它直接将过往的数据包不做任何处理的转发,要实现我们的数据包过滤功能,需要对其进行进一步的扩展。

  9. 根据特征库,过滤到发给本机的数据

  由于在驱动程序中不便于直接对硬盘上的数据进行操作,因此智能防火墙没有采取直接读取入侵特征库的方式获取入侵特征码,而是在用户态程序启动时,通过用户态程序将入侵特征码传递进来的,并将特征码保存在一个便于进行查找操作的“哈希表”中。

  NDIS中间层驱动程序捕获发给本机的所有数据包。并计算每一个数据包的特征码,并在“哈希表”中查找该特征码,如果查找到,则说明该数据包是一个入侵数据包,直接将其丢弃。如果没有找到,则对该包进行放行。

  10. 传递攻击信息给用户态程序

  当NDIS中间层驱动拦截到入侵数据包时,会通知用户态程序,并将入侵数据包的相关信息(源IP,数据包类型,入侵时间)传递给用户态程序。用户态程序接收到通知后给用户以友好的提示并将该次入侵信息写入日志。

  2.2 病毒主动防御的原理与实现

  为了达到主动防御的目的,我们采取了拦截系统调用的方法,主要钩挂了SSDT表和Shadow SSDT表中的函数,把对这些函数的调用替换为调用我们自己定义的函数。

  以下是SSDT表中钩挂的函数:

  NtCreateSection,NtOpenProcess,NtTerminateProcess,NtCreateKey,NtDeleteKey,NtSetValueKey,NtDeleteValueKey,NtLoadDriver。

1 2 3 4 5

关键词: 防火墙 ARP

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版