跳到正文

深入了解DDOS与DDOS追踪


      链级测试 (Link Testing)
  多数的追踪技术都是从最接近victim的路由器开始,然后开始检查上流数据链,直到找到攻击流量发起源。理想情况下,这种过程可以递归执行直到找到攻击源头。这种技术假设攻击一直保持活动直到完成追踪,因此很难在攻击结束后、间歇性攻击或对追踪进行攻击调整等情况进行追踪。包括下面两种链级测试:
  1、Input debugging
  很多路由器都提供Input debugging特性,这能让管理员在一些出口端过滤特定的数据包,而且能决定可以达到那些入口。这种特性就被用来作traceback:首先,victim在确定被攻击时,要从所有的数据包中描述出攻击包标志。通过这些标志,管理员在上流的出口端配置合适的Input debugging。这个过滤会体现出相关的input端口,这个过滤过程可以一直朝上流进行,直到能够到达最初的源头。当然这种工作很多依靠手工,一些国外的ISP联合开发的工具能够在它们的网络中进行自动的追踪。
  但是这种办法最大的问题就是管理花费。联系多个ISP并同他们合作需要时间。因此这种办法需要大量的时间,而且几乎不可能完成。
  2、Controlled flooding
  Burch和 Cheswick提出的方法。这种方法实际上就是制造flood攻击,通过观察路由器的状态来判断攻击路径。首先应该有一张上游的路径图,当受到攻击的时候,可以从victim的上级路由器开始依照路径图对上游的路由器进行控制的flood,因为这些数据包同攻击者发起的数据包同时共享了路由器,因此增加了路由器丢包的可能性。通过这种沿路径图不断向上进行,就能够接近攻击发起的源头。
  这种想法很有独创性而且也很实际,但是有几个缺点和限制。最大的缺点就是这种办法本身就是一种DOS攻击,会对一些信任路径也进行DOS,这个缺点也很难用程序实施。而且,Controlled flooding要求有一个几乎覆盖整个网络的拓扑图。Burch和 Cheswick也指出,这种办法很难用于DDOS攻击的追踪。这种方法也只能对正在进行攻击的情况有效。
  现在CISCO的路由器的CEF(Cisco Express Forwarding)实际上就是一种链级测试,也就是说,要用CEF追踪到最终源头的话,那么整个链路上的路由器都得使用CISCO的路由器,而且支持CEF。就得要Cisco 12000或者7500系列的路由器了。(不知道现在怎么样,没查最新的CISCO文档),但是要用这个功能是很费资源的。
  在CISCO路由器(支持ip source-track的路由器)上IP源追踪以下面的步骤实现:
  1、当发现目的被攻击,打开整个路由器上对目的地址的追踪,输入命令 ip source-track。
  2、每个Line Card为要追踪的目的地址创建特定的CEF队列。对于line card或者端口适配器用特定的ASIC作包转换,CEF队列用于将包置入line card或者port adapter的CPU。
  3、每个line card CPU收集关于要追踪目的的通讯信息。
  4、所产生的数据定时导出到路由器。要现实这些流信息的摘要,输入命令:show ip source-track summary。要显示每个输入接口的更多的细节信息,输入命令show ip source-track。
  5、统计被追踪的IP地址的细目表。这可用于上游路由器继续分析。可以在当前路由器上关闭IP source tracker,输入命令:no ip source-track。然后在上游路由器上再打开这个功能。
  6、重复步骤1到5,直到找到攻击源。
  Logging
  这种方法通过在主路由器上记录数据包,然后通过数据采集技术来决定这些数据包的穿越路径。虽然这种办法可以用于对攻击后的数据进行追踪,它也有很明显的缺点,比如可能要求大量的资源(或者取样),并且对付大量数据的综合问题。
ICMP追踪
  这种方法主要依靠路由器自身产生的ICMP跟踪消息。每个路由器都有很低的概率(比如:1/200000),数据包可能会把内容复制到一个ICMP消息包中,并且包含了到临近源地址的路由器信息。当flood攻击开始的时候,victim就可以利用这些ICMP消息来重新构造攻击者的路径。这种方式同上面介绍的比较,有很多优点,但是也有一些缺点。比如:ICMP可能被从普通流量中过滤掉,并且,ICMP追踪消息还要同input debugging特性(将数据包同数据包input端口和/或者要到达的MAC地址关联的能力)相关,但是,可能一些路由器就没有这样的功能。同时,这种办法还必须有一种办法来处理攻击者可能发送的伪造ICMP Traceback消息。也就是说,我们可以把这种方式同其他办法一起使用来让跟踪机制更有效。(IETF iTrace)
  这就是yawl说的IETF的工作组研究的内容,当时我给Bellovin提出一些意见,但是没有得到答案。比如:


  1、尽管是随机1/20000发送追踪包,但是,对于伪造TRACEBACK的包情况下,对路由器的效率将有一定的影响。
  2、追踪包的认证并不能解决伪造问题。因为要判别是否是伪造包,那么必须去认证,加大了工作量。
  3、即便使用NULL 认证,同样能够达到目的(有认证的情况下)。而且也不会有太大影响。
  4、Itrace的本来目的是去对付DOS的欺骗源问题,但是现在的设计仿佛让我们更关心的是路径而不是源头。难道路径比源头更对我们解决DOS问题有用么?
  等等,还有一堆问题,都是我觉得iTrace将会面临的很难处理的问题。
  数据包标记
  这种技术构想(因为现在没有实用)就是要在现有协议的基础上进行修改,而且修改很小,不象iTrace的想法,个人认为比iTrace更好一些。
  这种追踪技术有很多细节研究,形成多种标记算法,但是最好的还是经过压缩的边缘取样算法。
  这种技术原理就是修改IP头中,重载其中的identification域。也就是如果没有使用到identification域的话,将这个域定义为标记。
  将16bit的idnetification分成:3bit的offset(可允许8次分片),5bit的distance,以及8bit的边缘分片。5bit的distance可以允许31级路由,这对于目前的网络来说已经足够了。
  标记和重构路径的算法是:
  
Marking procedure at router R: let R' = BitIntereave(R, Hash(R)) let k be the number of  none-overlappling fragments in R' for  
each packet w let x be a random number from [0..1) if xlet o be a random integer from  [0..k-1] let f be the fragment of R' at  
offset o write f into w.frag write 0 into w.distance wirte o into w.offset else if  w.distance=0 then let f be the fragment of  
R' at offset w.offset write f?w.frag into w.frag increment w.distance Path reconstruction  procedure at victim v: let FragTbl  
be a table of tuples(frag,offset,distance) let G be a tree with root v let edges in G be  tuples(start,end,distance) let  
maxd:=0 let last:=v for each packet w from attacker FragTbl.Insert (w.frag,w.offset,w.distance) if w.distance>maxd then  
maxd:=w.distance for d:=0 to maxd for all ordered combinations of fragments at distance d  construct edge z if d!=0 then z:=  
z?last if Hash(EvenBits(z))=OddBits(z) then insert edge(z,EvenBits(z),d) into G  last:=EvenBits(z); remove any edge(x,y,d)  
with d!=distance from x to v in G extract path(Ri..Rj) by enumerating acyclic paths in G
  实验室情况下这种标记技术只需要victim能够抓到1000到2500个包就能够重构整个路径了,应该说结果是很好的,但是没有投入到实用中,主要是需要路由器厂商和ISP支持。
  差不多ip traceback的已经实用的技术和实验室技术,或者已经死掉的,就主要是这些,虽然还有其他的一些。


已经很长时间没有搞DDOS防范这一块了,国内也有黑洞这样的产品,以前也了解一些国外的,比如floodguard、toplayer、radware等。受securitytest提示,又了解到riverhead的,我就立刻看了看他们的白皮书。
  因为前面bigfoot提出的主要是ip traceback的题目,securitytest也又到防御的问题。针对DDOS的问题ip traceback和Mitigation是不一样的,ip traceback主要是进行追踪,因为DDOS主要是spoof,而很难判别到真正的攻击源,而且如果能够很容易找到真正的攻击源,不仅仅对付DDOS,对付其他的攻击也很有帮助,比如法律问题等。而Mitigation是从受害者的角度,因为victim一般是没有能力去调查整个网络,找出source,而且,即便能够找到source,也得有法律或者一些沟通的手段来让source停下来(攻击的source并不是source的攻击者),这种意味着大量的沟通、跨ISP、跨过等类似的非技术问题,所以,通常很难处理。但是从victim的角度来说,必须得有所解决办法,所以就需要Mitigation。
 这又正好是我以前研究的范围,所以,又会说出一大堆。对于Mitigation,其实,技术的根本就是要能从众多的流量中将攻击包和合法包分离出来,把攻击包抛弃掉,让合法包通过就性了。这就是根本,所以实际运用的技术就是要如何尽可能识别出攻击包,而又尽可能小地影响正常包。这又得来分析DDOS(甚至DOS)的方式和原理。基本又下面几种形式:
  1、系统漏洞形成的DOS。这种特征固定,检测和防御也容易。
  2、协议攻击(一些跟系统处理相关,一些跟协议相关)。比如SYN FLOOD,碎片等。特征还好识别,检测和防御相对容易。比如SYN COOKIE、SYN CACHE,碎片可以抛弃。比如land攻击、smurf、teardrop等。
  3、bandwidth FLOOD。垃圾流量堵塞带宽,特征不好识别,防御不容易。
  4、基本合法的FLOOD。比3更难了,比如分布的Slashdot。
  实际的DDOS,一般都是多种方式结合的。比如SYNFLOOD,可能同时是bandwidth FLOOD。
  影响防御的主要因素就是看特征是否能得到,比如1、2就相对好解决,一些基本不影响的使用的FLOOD,则可以很好被抛弃,比如ICMP FLOOD。
  但是,攻击发包工具如果将数据包更能伪装成合法包,那么就很难识别出来了。
  一般的Mitigation方法也就是:
  1、Filter。对于特征明显的,比如一些蠕虫等,在路由器上就可以搞定。当然,过滤是最终解决办法,只要识别出了攻击包,就是要把这些包过滤掉。
  2、随机丢包。跟随机算法相关,好的算法可以让合法包受到更小影响。
  3、SYN COOKIE、SYN CACHE等特定防御办法。针对一些固定的攻击手段来防御和过滤。比如ICMP FLOOD、UDP FLOOD。SYN COOKIE等都是避免spoof问题,至少TCP还有三次握手,所以还好判断SPOOF。
  4、被动消极忽略。可以说也是一种确认是否被欺骗的办法。一般正常连接失败会重新尝试,但是攻击者一般不会尝试的。所以可以临时抛弃第一次连接请求而接受第二次或者第三次连接请求。
  5、主动发送RST。对付SYN FLOOD的,比如一些IDS上。当然,实际不是有效的。
  6、统计分析和指纹。这本来是研究的主要内容,但是最后陷入了算法牛角尖,因为主要是一个算法问题。通过统计分析的角度来得到指纹,然后根据指纹来抛弃攻击包,也是一种异常检测的技术。说得很简单,但是要不影响合法包也不容易,不至于变成了随机丢包。(其实当时考虑太过复杂,非得要详细分析出攻击包和合法包,实际不需要,只要过滤掉足够的攻击包,即便让攻击包通过,但只要不造成DOS就可以了。)这也是很多研究者研究的主要课题,目的也就是识别攻击包。
  现在在回到securitytest提到的riverhead。关于riverhead的技术,我都只是从他们的白皮书上了解到的,但根据我的分析技术方法都没有超出上面提到的范围。


  Riverhead的核心方案就是检测 Detection、转移 Diversion 和 缓解 Mitigation,也就是检测到攻击,然后将流量转移到他们的产品guard上,然后通过guard进行Mitigation。
  它的实现步骤,就是:
  因为没有图,所以先定义一下,才能说清楚:
  
#靠近分布式拒绝服务源头的路由器为 远端路由器 #靠近受害者的路由器为 近端路由器 #Riverhead的Guard设备附属安装的路由器为 附属路由器
  防御的步骤
  1、首先检测到有DDOS发生,并了解到victim。
  2、Guard发送BGP通告到远端路由器(在victim的BGP通告设置前缀,并得到比原始BGP通告更高的优先权),表示从远端路由器到victim有新的路由,并且路由到Guard的loopback interface,所有到victim的都经过附属路由器转移到了Guard上。
  3、Guard检查流量,并且清除其中的攻击流量,然后把安全的流量转发到附属路由器上,在回到victim其中核心就是Guard,技术就是白皮书中描述的MVP架构(Multi-Verification Process),也就是下面5个层次过滤(Filtering) :这个模块包含静态和动态的DDOS过滤。静态过滤,拦截non-esse ntial流量,可以是用户定义的,或者是riverhead默认提供的。动态过滤则基于行为分析和流量的细节分析,通过增加对可疑流量的确认或拦截已经确认的恶意流量,来进行实时更新反欺骗(Anti-Spoofing):这个模块验证进入系统的数据包是否被欺骗的。Guard使用了独有的、有专利的源验证机制来避免欺骗。也通过一些机制来确认合法流量,消除合法数据包被抛弃异常检测(Anomaly Recognition):该模块监视所有没有被过滤和反欺骗模块抛弃的流量,将流量同平常纪录的基线行为进行比较,发现异常。基本原理就是通过模式匹配,区别来自black-hat和合法通讯之间的不同。该原理用来识别攻击源和类型,而且提出拦截这类流量的指南。
  异常检测包括: 攻击流量速率大小 包大小和端口的分布 包到达时间的分布 并发流量数 高级协议特征 出、入的速率 流量分类: 源IP 源端口 目的端口 协议类型 连接量(每天、每周) 协议分析(Protocol Analysis):本模块处理异常检测中发现的可疑的应用方面的攻击,比如http攻击。协议分析也检测一些协议错误行为。
  流量限制(Rate Limiting):主要是处理那些消耗太多资源的源头流量。
  所以,实际上最主要的内容就是异常检测中的统计分析,但是从上面看似乎没有多少特别的地方,但是,一定有很好的算法。比如FILTER,实际是对付一些很熟悉的有明显特征的攻击,反欺骗,就是对付syn flood这样的,说不定也是一个syn cookie模块,,但也许有更专利的技术。
  协议分析其实应该来说就比较弱了,但可以针对一些常见协议中的特定攻击,检测识别一些协议错误行为只是协议校验,这个很简单。流量限制则就是一种随机丢包,最无奈的办法,所以也是最后一个层次了。
  因为这个产品主要是作Mitigation的,而不是ip traceback。但是可以判定还是有重要的问题,比如:
  1、如何对付真正的bandwidth flood。如果路由器是千兆的,但是,攻击流量已经占了90%,只流下10%让合法使用,路由器已经先与Guard开始进行随机丢包了。(没办法,这是所有防御技术的瓶颈)
  2、真正的攻击。真正的攻击是很难或者无法识别的。比如,基本跟正常形式一样的,如果和统计数据很接近,那么很难区别出来。还有一些攻击,比如反射式的邮件攻击等,这是完全合法的,但是很难分类出来。

反黑入门基础:搞懂特洛伊木马工作原理


      特洛伊木马是具有某些功能或仅仅是有趣的程序。但它通常会做一些令人意想不到的事情,如盗取口令或文件。

特洛伊木马是如何工作的

一般的木马程序都包括客户端和服务端两个程序,其申客户端是用于攻击者远程控制植入木马的机器,服务器端程序即是木马程序。攻击者要通过木马攻击你的系统,他所做的第一步是要把木马的服务器端程序植人到你的电脑里面。

目前木马入侵的主要途径还是先通过一定的方法把木马执行文件弄到被攻击者的电脑系统里,利用的途径有邮件附件、下载软件中等,然后通过一定的提示故意误导被攻击者打开执行文件,比如故意谎称这个木马执行文件,是你朋友送给你贺卡,可能你打开这个文件后,确实有贺卡的画面出现,但这时可能木马已经悄悄在你的后台运行了。一般的木马执行文件非常小,大部分都是几K到几十K,如果把木马捆绑到其他正常文件上,你很难发现,所以,有一些网站提供的软件下载往往是捆绑了木马文件的,你执行这些下载的文件,也同时运行了木马。

木马也可以通过Script、ActiveX及Asp.CGI交互脚本的方式植入,由于微软的浏览器在执行Senipt脚本存在一些漏洞。攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者电脑进行文件操作等控制。前不久献出现一个利用微软Scripts脚本漏洞对浏览者硬盘进行格式化的HTML页面。如果攻击者有办法把木马执行文件下载到攻击主机的一个可执行WWW目录夹里面,他可以通过编制CGI程序在攻击主机上执行木马目录。此外,木马还可以利用系统的一些漏洞进行植人,如微软著名的US服务器溢出漏洞,通过一个IISHACK攻击程序即可使IIS服务器崩溃,并且同时攻击服务器,执行远程木马执行文件。

当服务端程序在被感染的机器上成功运行以后,攻击者就可以使用客户端与服务端建立连接,并进一步控制被感染的机器。在客户端和服务端通信协议的选择上,绝大多数木马使用的是TCP/IP协议,但是也有一些木马由于特殊的原因,使用UDP协议进行通讯。当服务端在被感染机器上运行以后,它一方面尽量把自己隐藏在计算机的某个角落里面,以防被用户发现;同时监听某个特定的端口,等待客户端与其取得连接;另外为了下次重启计算机时仍然能正常工作。木马程序一般会通过修改注册表或者其他的方法让自己成为自启动程序。

          

          

            

          

          

详细解析Windows


      本文将详细描述用于手动配置全新的Windows防火墙的对话框集。与Windows XP(SP2之前的版本)中的ICF不同,这些配置对话框可同时配置IPV4和IPV6流量。
在Windows XP SP2中,Windows防火墙有了许多新增特性,其中包括:
默认对计算机的所有连接启用、应用于所有连接的全新的全局配置选项、用于全局配置的新增对话框集、全新的操作模式、启动安全性、本地网络限制、异常流量可以通过应用程序文件名指定对Internet协议第6版(IPV6)的内建支持
采用Netsh和组策略的新增配置选项
Windows XP(SP2之前的版本)中的icf设置包含单个复选框(在连接属性的“高级”选项卡上“通过限制或阻止来自Internet对此计算机的访问来保护我的计算机和网络”复选框)和一个“设置”按钮,您可以使用该按钮来配置流量、日志设置和允许的ICMP流量。
在Windows XP SP2中,连接属性的“高级”选项卡上的复选框被替换成了一个“设置”按钮,您可以使用该按钮来配置常规设置、程序和服务的权限、指定于连接的设置、日志设置和允许的ICMP流量。
“设置”按钮将运行全新的Windows防火墙控制面板程序(可在“网络和Internet连接与安全中心”类别中找到)。
新的Windows防火墙对话框包含以下选项卡:
“常规” “异常” “高级” “常规”选项卡
在“常规”选项卡上,您可以选择以下选项:
“启用(推荐)”
选择这个选项来对“高级”选项卡上选择的所有网络连接启用Windows防火墙。
Windows防火墙启用后将仅允许请求的和异常的传入流量。异常流量可在“异常”选项卡上进行配置。
“不允许异常流量”
单击这个选项来仅允许请求的传入流量。这样将不允许异常的传入流量。“异常”选项卡上的设置将被忽略,所有的连接都将受到保护,而不管“高级”选项卡上的设置如何。
“禁用”


选择这个选项来禁用Windows防火墙。不推荐这样做,特别是对于可通过Internet直接访问的网络连接。
注意对于运行Windows XP SP2的计算机的所有连接和新创建的连接,Windows防火墙的默认设置是“启用(推荐)”。这可能会影响那些依赖未请求的传入流量的程序或服务的通信。在这样的情况下,您必须识别出那些已不再运作的程序,将它们或它们的流量添加为异常流量。许多程序,比如Internet浏览器和电子邮件客户端(如:outlook eXPress),不依赖未请求的传入流量,因而能够在启用Windows防火墙的情况下正确地运作。
如果您在使用组策略配置运行Windows XP SP2的计算机的Windows防火墙,您所配置的组策略设置可能不允许进行本地配置。在这样的情况下,“常规”选项卡和其他选项卡上的选项可能是灰色的,而无法选择,甚至本地管理员也无法进行选择。
基于组策略的Windows防火墙设置允许您配置一个域配置文件(一组将在您连接到一个包含域控制器的网络时所应用的Windows防火墙设置)和标准配置文件(一组将在您连接到像Internet这样没有包含域控制器的网络时所应用的Windows防火墙设置)。这些配置对话框仅显示当前所应用的配置文件的Windows防火墙设置。要查看当前未应用的配置文件的设置,可使用netsh firewall show命令。要更改当前没有被应用的配置文件的设置,可使用netsh firewall set命令。
“异常”选项卡
在“异常”选项卡上,您可以启用或禁用某个现有的程序或服务,或者维护用于定义异常流量的程序或服务的列表。当选中“常规”选项卡上的“不允许异常流量”选项时,异常流量将被拒绝。
对于Windows XP(SP2之前的版本),您只能根据传输控制协议(TCP)或用户数据报协议(UDP)端口来定义异常流量。对于Windows XP SP2,您可以根据TCP和UDP端口或者程序或服务的文件名来定义异常流量。在程序或服务的TCP或UDP端口未知或需要在程序或服务启动时动态确定的情况下,这种配置灵活性使得配置异常流量更加容易。
已有一组预先配置的程序和服务,其中包括:
文件和打印共享、远程助手(默认启用)、远程桌面、UPNP框架,这些预定义的程序和服务不可删除。
如果组策略允许,您还可以通过单击“添加程序”,创建基于指定的程序名称的附加异常流量,以及通过单击“添加端口”,创建基于指定的TCP或UDP端口的异常流量。
当您单击“添加程序”时,将弹出“添加程序”对话框,您可以在其上选择一个程序或浏览某个程序的文件名。
当您单击“添加端口”时,将弹出“添加端口”对话框,您可以在其中配置一个TCP或UDP端口。
全新的Windows防火墙的特性之一就是能够定义传入流量的范围。范围定义了允许发起异常流量的网段。在定义程序或端口的范围时,您有两种选择:
“任何计算机”
允许异常流量来自任何IP地址。
“仅只是我的网络(子网)”
仅允许异常流量来自如下IP地址,即它与接收该流量的网络连接所连接到的本地网段(子网)相匹配。例如,如果该网络连接的IP地址被配置为 192.168.0.99,子网掩码为255.255.0.0,那么异常流量仅允许来自192.168.0.1到192.168.255.254范围内的 IP地址。
当您希望允许本地家庭网络上全都连接到相同子网上的计算机以访问某个程序或服务,但是又不希望允许潜在的恶意Internet用户进行访问,那么“仅只是我的网络(子网)”设定的地址范围很有用。
一旦添加了某个程序或端口,它在“程序和服务”列表中就被默认禁用。
在“异常”选项卡上启用的所有程序或服务对“高级”选项卡上选择的所有连接都处于启用状态。
“高级”选项卡


“高级”选项卡包含以下选项:
网络连接设置、安全日志、ICMP、默认设置
“网络连接设置”
在“网络连接设置”中,您可以:
1、指定要在其上启用Windows防火墙的接口集。要启用Windows防火墙,请选中网络连接名称后面的复选框。要禁用Windows防火墙,则清除该复选框。默认情况下,所有网络连接都启用了Windows防火墙。如果某个网络连接没有出现在这个列表中,那么它就不是一个标准的网络连接。这样的例子包括Internet服务提供商(ISP)提供的自定义拨号程序。
2、通过单击网络连接名称,然后单击“设置”,配置单独的网络连接的高级配置。
如果清除“网络连接设置”中的所有复选框,那么Windows防火墙就不会保护您的计算机,而不管您是否在“常规”选项卡上选中了“启用(推荐)”。如果您在“常规”选项卡上选中了“不允许异常流量”,那么“网络连接设置”中的设置将被忽略,这种情况下所有接口都将受到保护。
当您单击“设置”时,将弹出“高级设置”对话框。
在“高级设置”对话框上,您可以在“服务”选项卡中配置特定的服务(仅根据TCP或UDP端口来配置),或者在“ICMP”选项卡中启用特定类型的ICMP流量。
这两个选项卡等价于Windows XP(SP2之前的版本)中的icf配置的设置选项卡。
“安全日志”
在“安全日志”中,请单击“设置”,以便在“日志设置”对话框中指定Windows防火墙日志的配置,
在“日志设置”对话框中,您可以配置是否要记录丢弃的数据包或成功的连接,以及指定日志文件的名称和位置(默认设置为systemrootpfirewall.log)及其最大容量。
“ICMP”
在“ICMP”中,请单击“设置”以便在“ICMP”对话框中指定允许的ICMP流量类型。
在“ICMP”对话框中,您可以启用和禁用Windows防火墙允许在“高级”选项卡上选择的所有连接传入的ICMP消息的类型。ICMP消息用于诊断、报告错误情况和配置。默认情况下,该列表中不允许任何ICMP消息。
诊断连接问题的一个常用步骤是使用ping工具检验您尝试连接到的计算机地址。在检验时,您可以发送一条ICMP ECHO消息,然后获得一条ICMP ECHO reply消息作为响应。默认情况下,Windows防火墙不允许传入ICMP ECHO消息,因此该计算机无法发回一条ICMP ECHO reply消息作为响应。为了配置Windows防火墙允许传入的ICMP ECHO消息,您必须启用“允许传入的ECHO请求”设置。
“默认设置”
单击“还原默认设置”,将Windows防火墙重设回它的初始安装状态。
当您单击“还原默认设置”时,系统会在Windows防火墙设置改变之前提示您核实自己的决定。

后门技术及rootkit工具-Knark分析及防范


      本文讨论了Linux环境下攻击者入侵成功以后常常使用的一些后门技术,并且对最著名的rootkit工具之一?knark进行了详细的分析,并且指出了在发现系统被入侵以后如何发现是否是kark及如何恢复。 注意:本文是用于管理员学习之用,不可用于进行网络攻击否则带来的任何法律后果自行负责。本文作者不对由于本文导致的任何后果负任何责任。 一、什么是"rootkit"? 入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、netstat等原本属于系统本身的程序,这样的话,程序员在试图通过这些命令查询系统状况的时候,就无法通过这些假的系统程序发觉入侵者的行踪。 在一些黑客组织中,rootkit (或者backdoor) 是一个非常感兴趣的话题。各种不同的rootkit被开发并发布在internet上。在这些rootkit之中, LKM尤其被人关注, 因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。 入侵者通过:设置uid程序, 系统木马程序, cron后门等方法来实现入侵者以后从非特权用户使用root权限。 *设置uid程序。 黑客在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。 *系统木马程序。黑客替换一些系统程序,如"login"程序。因此, 只要满足一定的条件,那些程序就会给黑客最高权限。 *Cron后门。黑客在cron增加或修改一些任务,在某个特定的时间程序运行,他们就可以获得最高权限。 具体可能通过以下方法给予远程用户以最高访问权限: ".rhost" 文件, ssh认证密钥, bind shell, 木马服务程序。 *".rhosts" 文件。一旦 "   "被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。 *ssh认证密钥。黑客把他自己的公共密钥放到目标机器的ssh配置文件"authorized_keys"里, 他可以用该账号来访问机器而不需要密码。 *Bind shell。黑客绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。 *Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。 在入侵者植入和运行后门程序之后, 他会设法隐藏自己存在的证据,这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。 为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如"ls", "du", "fsck"。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。 为了隐藏进程, 他可以替换 "ps"程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。 RootKit-Knark的历史


Knark是第二代的新型rootkit工具-其基于LJM(loadable kernel module)技术,使用这种技术可以有效地隐藏系统的信息。作者在代码和README文件中都标注有不承担责任的声明,声明该代码不可以被用作非法活动。然而该软件可以容易地被用于这种目的。 Knark是由[email protected]编写的,主要基于http://www.dataguard.no/bugtraq/1997_4/0059.html中Runar Jensen编写的代码heroin.c,设计思想主要来自于Phrack 52中plaguez发表的文章Weakening the Linux Kernel"。在重新编写了heroin.c的大部分代码以后,Creed决定重新命名为"Knark",在瑞典语中是指吸毒者。Creed编写的其他软件可以在www.sekure.net/~happy-h/得到,但是由于该站点只有瑞典语版本,因此应用并不广泛。 Knark的第一个公开版本是0.41,发布于June, 1999。可以在B4B0 #9中索引到它:http://packetstorm.securify.com/mag/b4b0/b4b0-09.txt。随后0.50和0.59被发布,当前版本是0.59。可以从这里下载0.59版。 Knark特性 Knark0.59具有以下特性: *隐藏或显示文件或目录 *隐藏TCP或UDP连接 *程序执行重定向 *非授权地用户权限增加("rootme") *改变一个运行进程的UID/GID的工具 *非授权地、特权程序远程执行守护进程 *Kill ?31来隐藏运行的进程 联合使用程序执行重新定向和文件隐藏,入侵者能提供各种后门程序执行。由于执行重定向是在内核级别进行的,因此文件检测工具不会发现程序文件被修改-原始的执行程序并没有被修改,因此配置检测工具在路径环境中也不会发现任何异常。 如果Knark结合另外一个用来隐藏系统当前加载的模块的LKM工具modhide,就可能实现甚至通过lsmod命令也不能发现knark的存在。 Knark软件包的安装和使用 该软件包的核心软件是knark,c,它是一个Linux LKM(loadable kernel-module)。运行命令"make"来编译knark软件包,通过"insmod knark"命令来加载该模块。当knark被加载,隐藏目录/proc/knark被创建,该目录下将包含以下文件: author 作者自我介绍 files 系统中隐藏文件列表 nethides 在/proc/net/[tcp|udp]隐藏的字符串 pids 被隐藏的pids列表,格式类似于ps命令输出 redirects 被重定向的可执行程序入口列表 该软件包编译以后将有下面这些工具软件(它们都依赖于被加载的模块knark.o。除了taskhack.c,其用于直接修改/dev/kmem) hidef 用于在系统中隐藏文件 在/usr/lib目录下创建子目录hax0r,然后运行命令"./hidef /usr/lib/.hax0r",则该目录会被隐藏,"ls"或"du"等命令都不能显示该目录及其子目录。 unhidef 用来恢复被隐藏的文件 你可以通过访问"cat /proc/knark/files"来察看你隐藏了哪些文件。通过"./unhidef /usr/lib/.hax0r"命令来解除对隐藏文件的隐藏。但是这里有个小小的bug,使得被隐藏的目录在/proc/knark/files中显示的是其加载开始的路径,也就是说如果系统有一个文件系统加载在/mnt,你隐藏了/mnt/secret,则在/proc/knark/files中显示的被隐藏的目录为/secret。因此不会影响根文件被隐藏的目录。 ered 用来配置重定向程序的执行 拷贝特洛伊木马版本的sshd为/usr/lib/.hax0r/sshd_trojan,然后运行"./ered /usr/local/sbin/sshd /usr/lib/.hax0r/sshd_trojan",这样当/usr/local/sbin/sshd被运行时,实际上运行的特洛伊木马版本的sshd。可以通过命令./ered -c来清楚所有的可执行程序重定向。 nethide 用来隐藏/proc/net/tcp和/proc/net/udp中的某些字符串 netstat命令就不会得到指定的链接信息。通过命令/nethide ":ABCD "可以隐藏和端口号ABCD(十六进制)相关的连接(43981 dec)。也就是对/proc/net/[tcp|udp]读取时进行"grep -v"操作。 你必需理解使用该程序从/proc/net/[tcp|udp]得到的输出的意义。假设系统运行有sshd,那么连接到本地22端口以后,运行"netstat -at",则输出可能包含:


Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:ssh localhost:1023 ESTABLISHED 现在我们来检测文件/proc/net/tcp: cat /proc/net/tcp 则输出可能包含入下内容: local_address rem_address blablabla... 0:0100007F:0016 0100007F:03FF 01 00000000:00000000 00:00000000 00000000 若我们希望隐藏和地址127.0.0.1相关的任何信息,我们必须使用如上面所示的十六进制的格式。因此如果希望隐藏地址127.0.0.1的22号端口相关的内容就要使用0100007F:0016来标识该链接。因此 ./nethide "0100007F:0016" 将隐藏to/from localhost:22相关的链接信息。 ./nethide ":ABCD " 来去除隐藏。 rootme 用来实现非特权用户获得root访问权限 ./rootme /bin/sh 就可以实现以root身份运行/bin/sh。 ./rootme /bin/ls -l /root 则是仅仅以root身份运行单个命令。 taskhack 用来改变某个运行着的进程的uid和gid ./taskhack -alluid=0 pid 该命令将进程pid的所有*uid@#s (uid, euid, suid, fsuid)为0 (root). ps aux | grep bash creed 91 0.0 1.3 1424 824 1 S 15:31 0:00 -bash 现在来改变该进程的euid为0: ./taskhack -euid=0 91 ps aux | grep bash root (!) 91 0.0 1.3 1424 824 1 S 15:31 0:00 -bash rexec 用来远程执行knark-server的命令: ./rexec www.microsoft.com haxored.server.nu /bin/touch /LUDER 这命令将从www.microsoft.com:53发送一个伪装的udp数据包到 haxored.server.nu:53,来运行haxored.server.nu的命令"/bin/touch /LUDER" 入侵者入侵以后往往将knark的各种工具存放在/dev/某个子目录下创建的隐藏子目录,如/dev/.ida/.knard等等。 检测系统是否被安装了Knark Knark的作者Creed,发布了一个工具:knarkfinder.c来发现Knark隐藏的进程。 检查系统是否安装有Knark的最直接有效的方法是以非特权用户身份来运行Knark的一个软件包如:rootme,看该用户是否能获得root权限。由于目前Knark目前没有认证机制,因此入股系统被安装了Knark任何一个本地用户运行这个程序都能获得root权限。 还有一个最有效的发现系统是否被knark或者类似的rootkit所感染的方法就是使用kstat来检测,具体参考本站的Nexeon写的解决方案文章:检测LKM rootkit。 Knark防范 防止knark最有效的方法是阻止入侵者获得root权限。但是在使用一切常规的方法进行安全防范以后,防止knark之类的基于LKM技术的rootkit的方法是: *创建和使用不支持可加载模块的内核,也就是使用单块内核。这样knark就不能插入到内核中去了。 *使用lcap (http://pweb.netcom.com/~spoon/lcap/)实现系统启动结束以后移除内核LKM功能,这样可以防止入侵者加载模块。然而这种方法存在一定的问题,入侵者可以在获得root权限以后修改启动脚本,在lcap启动之前来加载knark模块从而逃避lcap的限制。

系统安全 小技巧让浏览器远离流氓软件


      微软的 IE7 已经出了一段时间,通过这段时间的使用,发现 IE7 在各个方面都有不少的进步。

自从出现了流氓软件后,IE的工具栏就是各个流氓软件抢夺的重要地盘,IE6 经常体无完肤。现在,IE7 的出现终于可以还给浏览器一个干净的天空。  

IE7不加载任何插件启动

当你不希望使用任何插件时,你可以右键点击桌面上的IE图标,选择“Start Without Add-ons(不加载插件启动)”,使用这种方式启动的浏览器就不会加载任何插件了。

恢复IE7的最初设置

上面的方法虽然简单,但没次启动都要如此就有些麻烦了。其实,IE7的最新功能中,我们可以通过选项使IE7恢复到最初设置,告别所有插件。  

右键点击IE7的标签栏,选择“Menu Bar(主菜单)”  

选择主菜单中的“Tools(工具)”下的“Internet Options(Internet 属性)”

在“Internet Options”中选择Advanced→Reset...,这样我们就可以将IE浏览器恢复到最初设置。

总的来说,微软在IE7的功能和安全性上改进了很多,看得出在火狐等浏览器的压力下,微软终于开始用心了。

          

          

            

          

          

帮您轻松封杀不良站点


      [zt]   欲善其事,必先利其器。先给大家讲一点Windows的知识,在Windows中有个叫Host的文件(如果你的操作系统是Windows 98,就到c:\Windows目录中去找,如果是Windows 2000,就到c:\Windows\System32\DRIVERS\etc目录中查找),“host”这个英文单词本身就是主机的意思,这个文件保存的是域名与IP地址之间的映射内容,也就是某个IP地址与某个域名的一一对应关系。   举个例子说吧,当你的在IE浏览器的地址栏中输入“http://www.yesky.com”(不包括引号的)回车后,IE就会先到本机的这个HOST文件中查找有无与“www.yesky.com”这个域名相对应的IP地址,有的话就直接将其解析为类似于“219.239.88.233”格式的IP地址并访问其上的index.htm文件,其实仔细的看的话,你就会IE左下角看到这个IP地址,不过是一闪而过。如果HOST文件中没有这个映射的话,IE就会向DNS进行进一步的查询。  在Internet上有成千上万个DNS,他们的作用都一样,即都保存着类似于HOSTS这样的文件群,查到后就与刚才说的一样了,查不到的话就说明你所输入的域名还未申请,IE就会返回“Http 404”错误,就是网页找不到那个提示。  好,说了这么多基础知识,我们就开始正式的讲今天的主题了,就是利用本机的HOSTS文件的功能来实现对不良站点的屏蔽作用,进而把不良站点引入黑名单里。首先我们在刚才找到的HOSTS文件上右击鼠标,选择“打开”,在“打开方式”对话框里选择“记事本”程序(因为HOST文件的图标是Windows所不认识的,但其实质是文本文件,这样做的目的是防止用户随意更改)上面的一大堆就不用细看了,观察下面的一行,有一行是这样写的:“127.0.0.1 Localhost”(要注意中间必须用空格的啊),开头的“127.0.0.1”就是一个IP地址,不过它很特殊的,代表的意义是“localhost”,就是“本机”的意思,也就是操作者当前使用的机器,然后我们在这行后面回车,并按照这个格式再输入“127.0.0.1 www.xxx.com”,并存盘退出,再到IE地址栏中输入“http://www.xxx.com”这个地址并回车,想想,会出现什么事情呢?也许你猜对了 ,是的,就是此时IE就不能再把你带到这个域名所对应的真正IP地址中去了,而是把你拐带到“127.0.0.1”这个IP地址中去了,就是说你转了一个圈子又跑了回来了,是不是知道了?这样操作不就把不良站点给屏蔽掉了吗?  好的,再起一行,接着输入“127.0.0.1 www.yyy.com”等映射,就会把所有的不良站点域名统统的都映射成一个IP地址---127.0.0.1了 ,这样的话,以后不管你在本地计算机用IE浏览器访问已经被你列入了黑名单的哪个站点,IE都会叫你在自己家门口转,进不去是肯定的。  笔者把自己知道的不良站点域名一一加入到了HOSTS文件后,再把它COPY至每一个工作站的响应目录中并严格保护。事实证明,效果十分好。  这个法子很适合家庭,学校,或者网吧,希望各位家长,老师,网管能管理好自己的“一亩三分地”,因为现在的不量站点实在是太可恶了 ,所以必须制止住。不过吗,这个也有一点不好的地方,就是我们不可能一次把所有的不良站点都给屏蔽了,因为我们谁都办法知道所有不良站点的域名。但我认为瑕不掩瑜,只要大家时刻更新,勤动手,时刻更新HOSTS这个文件就行了。因为毕竟这个不需要我们花费银子就可以达到目的的啊。

          

          

            

          

          

网络安全应用不求人


      DNS代理故障
读者KAIX:公司网络内有一台拨号服务和一台域管理服务器,在拨号时使用ping命令,总是发生丢包现象。取消DNS代理后,情况马上恢复正常。QQ连接使用正常,但网页打不开。请问,这可能是什么原因造成的?既然取消DNS代理后问题得以解决,估计是DNS代理或选择的DNS服务器有问题。实际上,不管使用何种代理服务器或防火墙,只要允许DNS端口通讯,就可以直接使用外网的DNS服务器,而无须使用DNS代理。另外,既然QQ可以连接,只是不能访问Web网站,说明Internet连接没有问题,而故障的原因,自然就是DNS解析故障。事实上,QQ可以直接指定服务器的IP地址,而无需经过DNS解析。上网导致死机 读者风光:我的电脑是ADSL上网。不上网时工作正常。只要一上网,电脑很快就会死机。只能按Reset重启。电脑是TCL锐翔K3681。Modem是华为SmartAX MT800。系统是Windows XP,用星空极速2.0客户端,重装系统和网卡驱动也没用。应当如何解决?导致电脑死机有很多种原因。
建议采用以下方法进行判断:
第一、先让ADSL拨号连接到ISP,但不打开IE,也不运行QQ之类的Internet应用软件。如果能够稳定运行,而不会死机,说明Internet连接没有问题。
第二、如果只要ADSL拨号就死机,说明是ADSL与计算机不兼容。可能是网卡或ADSL硬件故障,也有可能是PPPoE协议或驱动程序软件故障。可以采取的措施包括:
* 卸载星空极速2.0客户端,使用Windows XP内置的ADSL拨号程序。
* 将ADSL设置为路由方式,而不采用虚拟拨号方式。
* 更换网卡插槽,或更换新的网卡。
* 更换ADSL Modem。
第三、如果在打开Internet Explorer并浏览网页时死机,说明是Internet Explorer或操作系统有问题,建议重新安装或修复系统。
第四、也有可能是感染了蠕虫病毒,建议安装系统补丁和病毒防火墙。
无法显示自定义表情
读者ajksd:我的QQ在发送或接收自定义表情时会出现“卡机”现象,过几分钟后就好了。不过,自定义表情和图片对方仍然收不到,别人发过来的也打不开。将天网和Windows自带的防火墙关掉以后,再试仍然不行。可能是什么原因?应当如何解决?导致该故障的原因可能是Internet连接速度太慢,建议更换Internet接入方式或者Internet共享方式。当经过2级以上的代理服务器或宽带路由共享Internet连接时,将无法收到并显示图片。可以更换ADSL或小区宽带等宽带Internet接入方式,或者取消2级以上代理的连接共享方式,甚至试着直接拨号上网。如果问题解决,说明是上网方式的问题。
被恶意网站修改主页
读者diker:有一次通过搜索链接到了某个网站后,该网站就自动成了我的主页,连Internet选项中的主页项也变成了这个网站,并且灰化了。我用QQ聊天时,每次开始和人聊,就会现有这么一段话“你为什么要骂我?我哪里惹你了?我希望你对你的留言负责。你自己来给我解释,hxxp://恶意网站的URL”。后来,采用手动修改注册表的方法,修改了

HKEY_LOCAL_USER\Software\Microsoft\InternetExplorer\Main中的StartPage键值名(用来设置默认首页),仍然无法解决。应当如何处理?
导致该故障的原因是感染了脚本漏洞病毒,可以使用新版本的Symantec、KV2005来清除,或者借助3721的上网助手(hxxp://www.3721.com)来解决。由于许多病毒都在自动运行键值中设置了注册表恢复,因此,仅仅修改上述键值是不够的,还必须查看并修改HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项,删除不必要的应用程序。另外,建议将Internet Explorer升级至6.0 SP1,并且更新系统的补丁。需要注意的是,如果系统是Windows 98,一定要升级到Internet Explorer6.0 SP1,如果系统是Windows2000/XP,则一定要及时升级系统补丁。作为一个临时解决方案,可以用“记事本”程序修改c:\WINDOWS\system32\drivers\etc\hosts文件,在里面添加如下一行:127.0.0.1 恶意网站的URL 或者把其中的127.0.0.1换为其他默认主页的IP地址。

实例介绍以太网MAC地址的获取更改应用


      

                        以太网MAC地址唯一地标识了世界上的每个以太网设备。每一个生产网络设备的厂商都要将MAC地址预先写进其设备中(如:以太网网卡,路由器,交换机等)。各种媒体已有很多文章介绍获得MAC地址的方法。今天我们主要讨论怎样在Cisco的IOS获得、改变MAC地址,并使用MAC地址进行网络通信过滤。



获得MAC地址

在交换机的命令输入窗口,输入“show mac-address-table”可以获得MAC地址表,例如:











Switch# show mac-address-table

          Mac Address Table

-------------------------------------------



Vlan    Mac Address       Type        Ports

----    -----------       --------    -----

All    0014.1c40.b080    STATIC      CPU

All    0100.0ccc.cccc    STATIC      CPU

All    0100.0ccc.cccd    STATIC      CPU

All    0100.0cdd.dddd    STATIC      CPU

   1    000f.1fd3.d85a    DYNAMIC     Fa0/14在思科路由器上,可以使用“show interfaces”来查看MAC地址。例如:











RouterB# show interfaces

Ethernet0/0 is up, line protocol is up

Hardware is AmdP2, address is 0003.e39b.9220 (bia 0003.e39b.9220)

Internet address is 1.1.1.1/8在第二行,可以看到:“bia 0003.e39b.9220”,bia即“烧录地址”(burned in address),MAC地址即0003.e39b.9220。



改变MAC地址



改变MAC地址实质上其否定含义就是MAC欺骗。特别是对于无线网络的攻击,改变MAC地址是常用的方法。改变MAC地址也可以用于合法的用途,如测试MAC过滤。



要改变设备在路由器上的MAC地址,需在Interface Configuration Mode(界面配置模式)下,使用“mac –地址”命令。例如:











RouterB# conf t

Enter configuration commands, one per line.  End with CNTL/Z.

RouterB(config)# int e0/0

RouterB(config-if)# mac-address 0000.0000.0001

RouterB(config-if)#^Z

RouterB#

RouterB# show int e0/0

Ethernet0/0 is up, line protocol is up

Hardware is AmdP2, address is 0000.0000.0001 (bia 0003.e39b.9220)

Internet address is 1.1.1.1/8在改变MAC地址以后,可以使用show interface命令来查看新的地址。



基于MAC地址的通信过滤



通过协议分析仪,可以发现一些网络中某些设备非正常的数据通信。例如,某设备通过多个IP地址发送数据包。

这种情况,可以使用show mac-address-table命令来查看它所使用的交换机端口,并可以关闭此端口。但是,如果此端口连接的是一个集线器,而集线器又连接了许多其它设备那该怎么办呢?

有一个方法便是使用MAC地址过滤来对路由器或交换机的数据通信进行过滤。下面是一个例子:











Cat3750Switch(config)# mac access-list ext filtermac

Cat3750Switch(config-ext-macl)# deny host 0000.0000.0001 any

Cat3750Switch(config-ext-macl)# permit any any

Cat3750Switch(config-ext-macl)# exit

Cat3750Switch(config)# int g1/0/40

Cat3750Switch(config-if)# mac access-group filtermac in此命令在Cisco Catalyst 3750 Gigabit Ethernet switch交换机上完成。我们创建了一个名为“filtermac”的ACL(访问控制表)。这个ACL拒绝了与源地址为0000.0000.0001(十六进制非二进制)的所有数据通信,但是却允许其它地址的数据通信。将这个ACL运用到界面1/0/40,这就防止了拥有这个MAC地址的设备与本端口的数据通信,而不管它的IP地址是什么。

但是,不管怎么说,MAC地址过滤并非安全措施,因为他人可以轻易地改变MAC地址。

严守七道关口 保证Web数据库的安全性


      

                        关于网络数据库里一些商业数据被盗窃后公布于网上;公司商业网站的产品价格数据又被恶意修改……类似这样的案例,在网上搜索了一下,实在不少。其原因只有一个,就是来自网络上对Web数据库攻击。那么,在Web环境下的数据库是否能有足够的安全为企业服务呢?答案是肯定的。

Web数据库是基于Internet/Intranet的应用系统,由于互连网开放性和通信协议的安全缺陷,以及在网络环境中数据存储和对其访问与处理的分布性特点,网上传输的数据容易受到破坏、窃取、篡改、转移和丢失。这些危害通常是对网络的攻击引起的。到现在,针对Web数据库的应用级入侵已经变得越来越猖獗,如SQL注入、跨站点脚本攻击和未经授权的用户访问等。所有这些入侵都有可能绕过前台安全系统并对数据库系统攻击。如何保证Web数据库的安全性已成为新的课题。

第一关、对用户安全管理

Web数据库是个极为复杂的系统,因此很难进行正确的配置和安全维护,当然,必须首先要保证的就是数据库用户的权限的安全性。当用户通过Web方式要对数据库中的对象(表、视图、触发器、存储过程等)进行操作时,必须通过数据库访问的身份认证。多数数据库系统还有众所周知的默认账号和密码,可支持对数据库资源的各级访问。因此,很多重要的数据库系统很可能受到威协。用户存取权限是指不同的用户对于不同的数据对象有不同的操作权限。存取权限由两个要素组成:数据对象和操作类型。定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作。权限分系统权限和对象权限两种。系统权限由DBA授予某些数据库用户,只有得到系统权限,才能成为数据库用户。对象权限是授予数据库用户对某些数据对象进行某些操作的权限,它既可由DBA授权,也可由数据对象的创建者授予。

第二关、定义视图

为不同的用户定义不同的视图,可以限制用户的访问范围。通过视图机制把需要保密的数据对无权存取这些数据的用户隐藏起来,可以对数据库提供一定程度的安全保护。实际应用中常将视图机制与授权机制结合起来使用,首先用视图机制屏蔽一部分保密数据,然后在视图上进一步进行授权。

第三关、数据加密

数据安全隐患无处不在。一些机密数据库、商业数据等必须防止它人非法访问、修改、拷贝。如何保证数据安全?数据加密是应用最广、成本最低廉而相对最可靠的方法。数据加密是保护数据在存储和传递过程中不被窃取或修改的有效手段。数据加密系统包括对系统的不同部分要选择何种加密算法、需要多高的安全级别、各算法之间如何协作等因素。在系统的不同部分要综合考虑执行效率与安全性之间的平衡。因为一般来讲安全性总是以牺牲系统效率为代价的。如果要在Internet上的两个客户端传递安全数据,这就要求客户端之间可以彼此判断对方的身份,传递的数据必须加密,当数据在传输中被更改时可以被发觉。

第四关、事务管理和故障恢复

事务管理和故障恢复主要是对付系统内发生的自然因素故障,保证数据和事务的一致性和完整性。

故障恢复的主要措施是进行日志记录和数据复制。在网络数据库系统中,分布事务首先要分解为多个子事务到各个站点上去执行,各个服务器之间还必须采取合理的算法进行分布式并发控制和提交,以保证事务的完整性。事务运行的每一步结果都记录在系统日志文件中,并且对重要数据进行复制,发生故障时根据日志文件利用数据副本准确地完成事务的恢复。

第五关、数据库备份与恢复

计算机同其他设备一样,都可能发生故障。计算机故障的原因多种多样,包括磁盘故障、电源故障、软件故障、灾害故障以及人为破坏等。一旦发生这种情况,就可能造成数据库的数据丢失。因此数据库系统必须采取必要的措施,以保证发生故障时,可以恢复数据库。数据库管理系统的备份和恢复机制就是保证在数据库系统出故障时,能够将数据库系统还原到正常状态。加强数据备份非常重要,数据库拥有很多关键的数据,这些数据一旦遭到破坏后果不堪设想,而这往往是入侵者真正关心的东西。不少管理员在这点上作得并不好,不是备份不完全,就是备份不及时。数据备份需要仔细计划,制定出一个策略测试后再去实施,备份计划也需要不断地调整。

第六关、审计追踪机制

审计追踪机制是指系统设置相应的日志记录,特别是对数据更新、删除、修改的记录,以便日后查证。日志记录的内容可以包括操作人员的名称、使用的密码、用户的IP地址、登录时间、操作内容等。若发现系统的数据遭到破坏,可以根据日志记录追究责任,或者从日志记录中判断密码是否被盗,以便修改密码,重新分配权限,确保系统的安全。

第七关、重点在服务器

Web数据库的三层体系结构中,数据存放在数据库服务器中,大部分的事务处理及商业逻辑处理在应用服务器中进行,由应用服务器提出对数据库的操作请求。理论上,既可以通过Web页面调用业务处理程序来访问数据库,也可以绕过业务处理程序,使用一些数据库客户端工具直接登录数据库服务器,存取操作其中的数据。所以,数据库服务器的安全设置至关重要。用IDS(入侵检测系统)保卫数据库安全逐步普及,这种安全技术将传统的网络和操作系统级入侵探测系统(IDS)概念应用于数据库。应用IDS提供主动的、针对SQL的保护和监视,可以保护预先包装或自行开发的Web应用。

木马最新趋势 从大面撒网到重点攻击


      

                        有报告称,木马已不再漫无目的的大量散发蠕虫和病毒邮件,而开始更有针对性的攻击。

英国国家底层安全中心(NISCC)在一份报告中声称:有超过300个政府部门和公司成为邮件病毒攻击的热门目标。这些邮件似乎专门针对商业或经济部门,并收集敏感或有价值的信息,而不是到处蔓延,仅仅为了自我炫耀。这些攻击以木马程序为主,也有指到含木马文件网页的链接。安装后,木马在后台收集用户名、密码、系统信息、并扫描硬盘,向远程黑客的电脑传送数据和文件。“这些带毒邮件的主题通常是收件人感兴趣的新闻。”报告说,“这事实上是个骗局,使收件人误以为病毒来源于值得信任的新闻社或政府部门。” 电子邮件安全公司MessageLabs的马克·森内指出,该报告透露出木马的新趋势,即从发送大量无目的带毒邮件,到向某些特定的有价值目标集中下手。“在以前,人们发现的病毒通常漫无目的的散布大量蠕虫。”森内说,“但是现在的趋势是,病毒开始集中进攻特定的组织,并试图种木马。”去年,MessageLabs发现该类邮件的数量成倍增长。

另一个值得注意的信息是,“窃取信息正在成为木马的主要目的”。杀毒公司Sophos的经理里查德·王说:“NISCC提到的病毒中,一大部分的目的是窃取用户信息。”但是有关方面表示,这种新趋势并没有任何新的技术成分。只要及时升级病毒包,使用最新的杀毒软件,就能有效避免攻击。