一:什么是sniffer.
sniffer用英文翻译的意思为"嗅探器",想必大家都看过"无间道"吧,其中刘德华和梁朝伟两个人做的是什么职业?卧底.而sniffer也可以这样比喻.它就象进入敌人内部的卧底一样.不断地将敌方的情报送出来.
sniffer一般运行在路由器或有路由器功能的主机上.这样就可以达到监控大量数据的目的.它的运行平台也比较多.如Linux.Lanpatrol.Lanwatch.netmon等.sniffer属于第二层次(即数据链路层)的攻击.一般是攻击者进入目标系统.然后利用sniffer来得到更多的信息.(如用户名.口令.银行帐户.密码等等)它几乎能得到以太网上传送的任何数据包.通常.sniffer程序只需要看到一个数据包的前200到350个字节的数据.就可以得到用户名和密码等信息.由此可见这种攻击手段是非常危险的.
二:如何防范sniffer.
实际上.在网络上很难发现sniffer.因为它根本就不会留下任何痕迹.我们可以通过查看进程的方法来发现它.
在Unix系统下我们使用这个命令:
pa -aux 或者是:pa -augx
(这两个命令是列出当前正在运行的所有进程(类似windows2000下的任务管理器).我们来看看启动这些进程的用户.占用内存的大小.占用CPU的时间和大小等等.)
在windowsNT系统下.我们只要按下ctrl+alt+del键,就可以通过任务管理器来查看一下进程列表.但是.一般编程技巧高的sniffer.它根本就不会在进程里出现.
防范sniffer并不难.问题就在花费上了.嗬嗬.谁都知道现在的¥¥很难赚的.我们常用的防范sniffer的方法有:
1:传输加密.
比较安全的方法就是加密,即对传输的数据在传送之前加密.对方收到后再解迷.就算被sniffer监听.但它看到的仅仅的加密后的数据.这样数据包在传输的过程中.就算被sniffer程序截获.它也得不到什么可以利用的信息.不幸的是.传统的TCP/IP协议并没有采用加密的方法来进行数据传输.数据都是明文方式的.因此,要想彻底解决被sniffer程序监听的问题.最根本的方法是增强TCP/IP协议.而目前就只能通过打补丁来解决了.(如SSH协议,它是在应用程序中提供安全通信的协议.建立在客户机/服务器模型上.SSH服务器的服务断口是22.采用RSA算法来验证用户并建立连接.通信数据是采用IDEA技术来加密的.这种加密方法只适合一般的通信)
2:采用安全拓扑结构.
采用安全拓扑结构要遵循一个原则就是一个网络段必须要有足够的理由才能相信另外一个网络段.网络段的设计考虑数据之间的信任关系.而不是硬件需要.我们做个说明.
一个网络段仅由能相互信任的计算机组成.象公司的财务系统.它是固定在某个办公室的.
所有的问题都归结到信任上了.一台计算机为了和其他计算机进行通信.就必须信任那台计算机.作为系统管理员.我们要做的就是用某种方法让计算机之间的信任关系变小.
局域网和internet连接.仅仅只靠防火墙是不够的.入侵者已经可以从防火墙后面扫描.并探测正在运行的服务.要考虑入侵者进入系统后.他想得到或者说能得到什么信息.就必须先考虑一条路径.即信任关系有多长.在信任关系中.任何计算机都可以对确定最小信任关系的那台计算机进行攻击.我们要做的就是保证出现的sniffer程序只对最小范围有效.
总结:sniffer程序一般是入侵者在侵入系统后才会使用它来收集有用的信息.因此.防范系统被入侵才是解决问题的关键.,系统管理员要定期的对所管理的网络进行安全测试.以便即使发现和防止安全隐患.安全隐患随处可见,并不仅仅出现在sniffer的问题上.我们只是借这个来讨论一下.希望大家都能够保护好自己的计算机.