网络通信 频道

IDS如何攻击

    入侵检测系统,能够实时监控网络传输,自动检测可疑行为,分析来自网络外部入侵信号和内部的非法活动,在系统受到危害前发出警告,对攻击作出实时的响应,并提供补救措施,最大程度地保障安全。 然而"道高一尺,魔高一丈",换个角度,如果你是一个名攻击者,你该如何去做呢? 当然,按道理来说,IDS发展方向是在保证足够优良的性能的同时,能够对抗相应的IDS攻击方法。

1.重新排列攻击次序

例如攻击顺序是"a;b;c",并且以"b;a;c"的顺序也能成功。许多IDS将检测不到第二种攻击。逻辑上这是一个吸引人的说法,但现代的攻击一步就能成功。这些攻击会被许多IDS发现。复杂的攻击中,它们中的一些步骤会被某些IDS发现。

2.将一个标准的攻击由一个以上的人进行

还使用"a;b;c"的例子,如果用户X进行"a:b",用户Y进行"c",那么攻击者几乎肯定不会被发现。同样,如果要求有步骤"a","b","c",那么IDS极有可能发现他们中的一步,不管是那个用户执行它。使用多个账号确实会迷惑管理员,但攻击还是会被发现。

3. 将一个标准的攻击分在多个会话中完成

第一次登陆进行"a;b",然后logout,再登陆到系统进行"c"。如同第五条。举例来说,得到root权限的溢出脚本可能有多行,但最关键的只有一行。例如,必然有一条命令,如"su"等,使非特权用户成为特权用户。

4. 用多个IP地址/系统进行攻击

登陆到X、Y,从X进行"a",从Y进行"b",再从X进行"c"。同样,随机的变换其IP,多出来的连接会引起小部分基于网络的IDS的注意。一些IDS会发现并记录短时间内从多个ip发起的远程连接。

这种方式在使用随机的代理列表进行网络DDOS攻击时非常显著,遗憾的是,很多国产的IDS并不能够有效的对此进行记录。

5. 为攻击中使用的命令定义一个宏

例如,为cp设置一个shell变量$ZZ,然后使用$ZZ代替cp。增加了复杂性,但是IDS必然会记录这次访问。想象一下,当IDS在"tprof"程序中触发时,记录了这一事件。类似的还有,为/etc/passwd定义一个shell变量也一样,IDS系统将会发现在一次telnet中对/etc/passwd文件的存取。

所以,此类技术在基于主机的IDS如Stalker,Tripwire中几乎不会有什么作用。

6. 为命令参数定义一个宏

例如,使用$P代替/etc/passwd。

7. 用脚本代替输入的命令

通常IDS不会注意到这个脚本。这是第一个确实很有威胁的攻击技术。但是没有提到在攻击成功后发生的事情。像CMDS这样的工具将记录异常的登录。Tripwire也会发现一些后门。如果给nmap、strobe这样的工具改名倒是一个好主意,但是一旦使用他们,基于网络的IDS就会发现他们。如果执行一个试图获得root权限的脚本,许多IDS产品都能够觉察攻击中的变化。

8. 使用不同的命令完成相同的功能

例如,通常在unix shell中 "echo *"等效于"ls"。当攻击系统的时候,仍然需要运行"tprof"。即使在另一个系统上把它编译成仅仅运行"trpof"的二进制程序,许多IDS系统如Stalker、SeOS也会发现从非特权用户向特权用户的转变。

9. 在攻击中改名

例如,攻击使用临时文件"xxx",你可以把它改名为"yyy"。这只是假定IDS只按照相应的关键字来判断只搜索指定的文件名。

10. 建立一个对照表对关键字进行翻译
0
相关文章