Security

Меня взломали. Хочу определить, как это было сделано?

Кто-то уже второй раз добавляет кусок javascript на сайт, который я программирую. Этот javascript перехватывает Google adsense, вставляя свой собственный номер счета и внедряя повсюду рекламу.

Код всегда добавляется, всегда находится в одном определенном каталоге (используемом сторонней рекламной программой), затрагивает множество файлов в нескольких каталогах внутри одного рекламного каталога (около 20) и вставляется примерно в одно и то же ночное время. Итак, как они могли добавить текст в эти файлы? Это связано с правами доступа, установленными на файлы (от 755 до 644)? С пользователем веб-сервера (он находится на MediaTemple, поэтому должен быть безопасным, да?)? Я имею в виду, что, если у вас есть файл с правами 777, я все равно не могу просто добавить в него код по своему усмотрению... как они могут это сделать?

Вот пример фактического кода:

<script type="text/javascript"><!--

google_ad_client = "pub-5465156513898836";

/* 728x90_as */

google_ad_slot = "4840387765";

google_ad_width = 728;

google_ad_height = 90;

//-->

</script>

<script type="text/javascript"

src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

</script>

Вот что я проверил — под проверкой я имею в виду, что я осмотрел время, когда файлы были изменены, на предмет каких-либо странностей, а также проверил файлы на наличие POST-запросов и обращений к каталогам:

  1. access_log (ничего по времени, кроме обычного (т. е. чрезмерного) трафика msn бота);

  2. error_log (ничего, кроме обычных ошибок «файл не существует» для безобидных на вид файлов);

  3. ssl_log (ничего, кроме обычного);

  4. messages_log (здесь нет доступа к FTP, кроме моего).

Ответ 1

Прежде всего, chmod 744 это НЕ то, что вам нужно. Смысл chmod в том, чтобы отозвать доступ к другим учетным записям в системе. Chmod 700 гораздо более безопасен, чем chmod 744. Однако Apache нужен только бит execute для запуска вашего php-приложения.

chmod 500 -R /ваш/webroot/

chown www-data:www-data -R /your/webroot/

www-data обычно используется в качестве учетной записи Apache, которая используется для выполнения php. Вы также можете выполнить эту команду, чтобы увидеть учетную запись пользователя:

'<?php

print system("whoami");

?>'

FTP ужасно небезопасен, и вполне вероятно, что вас взломали этим методом. Используя FTP, вы можете сделать файлы доступными для записи. Убедитесь, что вы запустили антивирус на всех машинах с FTP-доступом. Существуют вирусы, которые прослушивают локальный трафик на предмет имен и паролей пользователей FTP, а затем входят в систему и заражают файлы. Если вы заботитесь о безопасности, используйте SFTP, который шифрует все данные. Передавать исходный код и пароли по каналам связи открытым текстом недопустимо.

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

 Ответ 2

Мои учетные записи Media Temple Grid Server были «взломаны» подобным образом несколько раз. Их безопасность очень слабая... началось с ПРОСТЫХ ТЕКСТОВЫХ ПАРОЛЕЙ в прошлом году и продолжается до сих пор (вы можете позвонить в техподдержку, а они спросят: «Какой у вас пароль?»). Я знаю, потому что ежемесячно получаю электронные письма о том, что они изменили все пароли моих учетных записей, и они действительно идут и меняют пароли баз данных за вас каждый раз, когда взламывают их. Внешне эта компания выглядит нормально, но на сервере сети царит полный хаос. Я рекомендую немедленно перейти на другой сервер.

Ответ 3

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

Другой компонент отслеживание того, как именно они изменяют ваши файлы. Для начала стоит проверить журналы доступа веб-сервера. Проверьте время последнего входа для различных пользователей. Вы также можете установить скрипт, который будет отслеживать изменение файлов и уведомлять вас, чтобы вы могли попытаться поймать преступников с поличным!

Ответ 4

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

Далее, это может быть скрипт на вашем веб-сервере, который внедряет этот код. В сценарии виртуального хостинга, я думаю, можно сделать cat /web/malicious.com/script.js >> /web/innocent.com/index.php. Это может сработать при определенных условиях, например, команда выполняется пользователем httpd и файл index.php также принадлежит/записывается этим пользователем. В этом случае вы должны попросить вашего хостинг-провайдера отследить учетную запись, используемую для внедрения скриптов.

Ответ 5

Большинство файлов сайта должны быть доступны для чтения веб-сервером. На сайте, доступном только для чтения, только журналы должны быть доступны для записи веб-сервером. Установите владельцем не того, кто пользуется веб-сервером. Установите защиту 640 на все файлы, кроме скриптов. Установите для скриптов и каталогов защиту 750. Для файлов или каталогов, которые должны быть записаны веб-сервером, вы можете изменить владельца на веб-сервер или установить chmod g+2 для соответствующих файлов или каталогов.

Схожие статьи

Security

Может ли виртуальная машина (ВМ) «взломать» другую ВМ, работающую на той же физической машине?

Security

Какой есть относительно простой способ заблокировать весь трафик из определенной страны?

Security

Существует ли способ аудита AD для определенного пароля?

Security

Насколько полезен mounting/tmp noexec?