任何使用flock()或fcntl()函数的程序,或者可以由其他用户读取的文件使用了这两个函数的apis(比如带o_exlock与o_shlock的"open()"),都容易受到本地的拒绝服务攻击。 由于这种攻击需要用户用自己的帐号来锁定文件,所以很容易可以找出攻击的用户,一般情况系统用户都不会使用此方法对系统进行本地的拒绝服务攻击。
【相关文章:Juniper收购华3 华为完全不知情】 【扩展阅读:有备无患,企业网数据备份不可缺】问题简介 【扩展信息:51CTO存储专家:如何选择存储解决方案】 这两种锁定方法都可以打开一个文件并对文件进行读取锁定。这样其他的进程就不能对这个文件进行写入锁定。另外,flock()方法允许用户对那些他可以打开来读取的文件进行写入锁定。而fcntl()锁定的方法首先需要文件被打开,这样从某程度上说安全性会好一点。当一个进程对一个文件进行了写入锁定的时候,其他任何的进程都不可以对同一个文件进行读取或写入锁定。虽然flock()与fcntl()函数都存在一些安全问题,但他们的锁定特性注定他们一定会被很多软件所使用。 检查 利用工具读取进程文件的描述列表就可以找出正在利用锁定的进程。其他中一个这样的工具叫做lsof,可以在下面地址找到: ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/ 用这个工具你可以找出一个或多个正在对文件进行读取或写入锁定的进程。 # lsof /etc/settings command pid user fd type device size/off node name lockit 25472 badguy 3rw vreg 116,131072 1841 292 /etc/settings 在上面的例子里,用户badguy的lockit进程(pid 25472)打开了/etc/settings进行读取,并对它进行了写入锁定(从fd项可看到)。如果这是一个攻击,管理员可以杀掉这个恶意的进程来解开锁定。 ... 下一页