Page 28 - 大数据背景下网络安全问题研究
P. 28
大数据背景下网络安全问题研究
Research on Network Security Issues under the Background of Big Data
以是一个硬件设备。软件嗅探应用便利,针对不同的操作系统平台都有多种不同的软
件嗅探,而且很多都是免费的;硬件嗅探通常被称作协议分析器,其价格一般都很昂
贵。嗅探是一种常用的收集数据的有效方法,这些数据可以是用户的账号和密码,也
可以是一些商用机密数据等。内部网上,黑客要想快速获得大量的账号(包括用户名
和密码),最为有效的手段是使用“sniffer”程序。这种方法要求运行嗅探程序的主
机和被监听的主机必须在同一个以太网段上,在外部主机上运行嗅探程序是没有效果
的,再者必须以root身份使用嗅探程序,才能够监听到以太网段上的数据流。
在局域网中,以太网的共享式特性打算了嗅探能够成功。因为以太网是基于广播
方式传送数据的,全部的物理信号都会被传送到每一个主机节点,此外网卡可以被设
置成混杂接收模式(Promiscuous),这种模式下,无论监听到的数据帧的目的地址如
何,网卡都能予以接收。而TCP/IP协议栈中的应用协议大多数以明文在网络上传输,
这些明文数据中,往往包含一些敏感信息(如密码、账号等),因此使用嗅探可以悄
无声息地监听到全部局域网内的数据通信,得到这些敏感信息。同时嗅探的隐藏性
好,它学问“被动”接收数据,而不向外发送数据,所以在传输数据的过程中,很难
觉察到它在监听。
2.缓冲区溢出攻击技术
从上面的例子中不难看出,可以通过缓冲区溢出来转变在堆栈中存放的过程返
回地址,从而转变整个程序的流程,使它转向任何攻击者想要它去的地方,这就为攻
击者供应了可乘之机。攻击者利用堆栈溢出攻击最常见的方法是:在长字符串中嵌入
一段代码,并将函数的返回地址掩盖为这段代码的起始地址,这样当函数返回时,程
序就转而开始执行这段攻击者自编的代码了。当然前提条件是在堆栈中可以执行代
码。一般来说,这段代码都是执行一个Shell程序(如\bin\sh),因此当攻击者入侵一
个带有堆栈溢出缺陷印具有suid—root属性的程序时,攻击者会获得一个具有root权限
的Shell。这段代码一般被称为Shell Code。攻击者在要溢出的buffer前加入多条NOP指
令的目的是增加猜测Shell Code起始地址的机会。几乎全部的处理器都支持NOP指令
来执行null操作(NOP指令是一个任何事都不做的指令),这通常被用来进行延时操
作。攻击者利用NOP指令来填充要溢出的buffer的前部,假如返回地址能够指向这些
NOP字符串的任意一个,则最终将执行到攻击者的Shell Code。
另外,由于在编写Shell Code时并不知道这段程序执行时在内存中详细的位置,
所以使用一条额外的JMP和CALL指令。这是因为这两条指令编码使用的都是相对于
IP的偏移地址而不是肯定地址,这就意味着可以跳到相对于目前IP的某一位置而无
需知道这一位置在内存中的肯定地址。假如正好在字绳串“\bin\sh”之前放CALL指
令,而用JMP指令跳到CALL指令处,则当CALL指令执行时,字符串“kbin、sh”的
• 16 •

