• 当前位置:首页>>编程开发A>>安全防御>>IDS攻击分析
  • 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. 建立一个对照表对关键字进行翻译
    然后进行字符替换,例如,可以使用sed作字符替换。

    11.对指令加密
    例如,使用ssh,可以防止sniffer,网络IDS一般包括sniffer功能。

    这种方式仅对基于网络的IDS有用。基于主机的IDS在ssh下对用户行为可以进行完全的控制。

    12.发送时使用后缀符号,然后在其他地方再转换回来
    IDS不会理解这些符号。

    14.和目标机之间用全双工通信,大部分IDS理解不了附加的字符
    Dragon,T_Sight和所有版本的DoD NID程序可以对付这些情况。

    15.在一次入侵中交互使用一些已知的入侵技术。IDS可能不会全部分辨出
    很可能发现至少一种入侵。

    16.对daemons发送的结果编码,这样返回的格式将不会被IDS察觉
    例如,如果你利用 一个sendmail的bug发送一个password文件给你自己,可以通过管道用一个sed脚本将文件中的":"改变成"-"。这发生在入侵成功之后。在入侵成功后怎么处理password文件是很有意思的,但这不属于典型的攻击行为。

    17.通过管道用awk脚本对字符进行交换。可以躲过IDS
    这不是一种新的方法。从一张表里用行号选择命令,而目标执行相应的命令。例如,你可以键入"15 *.com",而目标却执行"dir *.com"。这只是加密shell命令的一种新办法。

    18.DOS IDS的sensor端口。使它失效
    许多基于网络的IDS产品经过安全的配置,可以在没有IP堆栈的情况下完成sensor的工作。一些IDS产品,例如Dragon,没有任何打开的udp或tcp端口。RealSecure,NetProwler,NetRanger同样可以释放ip堆栈来防止攻击。

    19.用pingflood来攻击IDS
    通过发送大的ping包,可以使许多运行IDS的系统崩溃,这样它就不会发现随后的攻击。还是DOS技术。许多网络IDS比周围的环境有更高的安全性。

    20.攻击IDS所运行的平台。
    许多IDS运行在常见的有漏洞的操作系统上。一旦攻击平台得手,对付IDS就轻而易举了。

    21.创造错误的审计纪录来迷惑IDS。
    例如,在攻击包和正常包之间发送包可以使攻击看起来无害。NFR和Dragon网络IDS可以避免这些攻击。一般来说,基于主机的IDS不会存在这些漏洞。

    25.消耗IDS系统的磁盘空间,然后进行攻击。
    用无害的数据填充磁盘空间,IDS将崩溃,随后的攻击就不会被发现。Ids系统什么时候崩溃呢?如果IDS系统记录所有的信息,它可能被管理员注意。攻击者所做的只是提高了管理员的警觉性。

    26.停止审计记录的生成或采集然后进行攻击。
    例如,创建数量很多的进程,那么,IDS系统就不能再创建审计进程。这是一个本地DOS攻击。许多unix操作系统可以抵抗这些本地攻击。主机IDS使用单独的进程,同样可以避免。当然,如果服务器负载过重,管理员会注意到过多的进程。

    27.攻击响应系统来中断通信。
    例如,一些IDS系统会切断从攻击发起处来的所有流量。伪造从特定主机发起的攻击,IDS系统将切断从那台主机来的所有连接,那时就可以攻击这台特定的主机了。这是我非常感兴趣的攻击。如果我理解正确的化,这意味着使用IDS的自动阻断攻击方IP地址的功能来阻断被保护网络主机。一些IDS产品,例如CMDS、NetRanger、NetProwler、RealSecure可以与防火墙或路由器联动。当特定的事件发生,路由器和防火墙将会限制特定主机的流量。这种技术有一个流量的问题,也就是防火墙和IDS系统协同工作的原因。当流量受限时,只限制由外向内的流量。那么由内向外就成了一个突破口。

    28.逆向输入。
    再使用一个转换工具转换。在发送和接受时作同样的事情。这只是一种伪装shell的新办法。

    29.输入时中间插入符号,再用awk转变成前缀符。
    IDS系统将不会中断连接。仅仅在网络IDS观察telnet或rlogin会话时才有用。这些技术很难轻易的在ftp,http,smtp等其他的协议上使用。

    30.使用"emacs"作为shell,使用wipes和yanks输入输出命令缓存代替手工键入。
    当在目标机执行攻击指令时IDS系统将只会看到类似于ctrl-W和ctrl-Y。NFR和RealSecure将察觉"emacs"的使用,因为不使用"vi"的人很明显的是hacker。同样,这也只是另一个隐藏命令的方法。通常只对telnet和rlogin有用。

    非常缓慢的输入(每条命令之间最好相隔几个小时)。因为缓存大小的限制,你的输入被一大堆IDS不得不看的东西冲掉了。网络IDS有这样的弱点。主机IDS没有。一些网络IDS,如NFR、Dragon等能够被配置的足够发现长时间的低带宽的网络会话。

    31.改变到目标的路由来躲过IDS
    如果有拓扑方面知识的话,这将是一种有效的攻击。为了进行这种攻击,必须进行一定的网络解析。这将很容易的被网络IDS系统发现。这种攻击同时要求对passive IDS系统了如指掌。

    32.改变从目标回来的返回路由来避免IDS
    33.用源路由包指定不同的路由到目标,可以躲过一些单一的IDS
    几乎所有的防火墙,路由器和服务器都会丢弃并且纪录源路由包。31、32、33都假设有备用的通道可以到达目标,但实际上,网络IDS可以配置成一个遏制点。

    34.从被保护网络上用modem拨号进行攻击,可以躲过网络IDS系统
    当然,我们有更多的办法来躲过IDS系统,先观察它们,再从他们不会察觉的地方入手。例如,我们可以向被Axent IA,BlackICE,甚至RealSecure保护的Windows NT系统释放一个病毒。这些IDS系统都不会察觉系统级的病毒。

    35.干扰目标和IDS之间的通信。对于网络IDS,可以采用改变路由器通信的办法
    网络IDS通过监听网络通信的办法来实现。如果通信没有被监听到,那么就不会有入侵察觉。这种攻击仅仅当攻击者可以改变内部网络路由,并且从通信到流量都有其他的存取点。许多网络IDS系统可以察觉到改变路由的企图。

    36.从跳板进行攻击。攻击将被察觉,但他们不会追踪到(除非它们特别擅长

  • 上一篇:在命令行下远程安装终端服务
    下一篇:怎样删除正在使用的文件