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

Какой самый надежный способ отправить zip-файл по электронной почте?

Security

Какие существуют векторы атак на пароли, передаваемые по http?

Security

Зачем нужен брандмауэр, если сервер и так хорошо настроен?