Проверка безопасности - взлом или повреждение? Joomla вредоносный код


Как помешать злоумышленникам разместить вредоносный код на своем сайте

  • Используйте надежное программное обеспечение.

    • Загружайте дистрибутивы веб-приложений и расширения/плагины для CMS из проверенных источников.
    • Регулярно обновляйте CMS и серверное ПО, следите за новостями об уязвимостях используемой CMS.
    • Регулярно проводите аудит безопасности серверов.
    • После установки CMS удаляйте установочные и отладочные скрипты.
  • Используйте сложные пароли от веб-серверного ПО (FTP, SSH, административные панели хостинга и CMS).

    • Сложный пароль содержит не менее 11 символов и включает в себя буквы в разных регистрах, цифры, и специальные символы.
    • Не используйте одинаковые пароли для доступа к разным сервисам.
    • Даже самые надежные пароли рекомендуется менять раз в три месяца, чтобы обезопаситься от случайной утечки.
    • Не сохраняйте важные пароли в веб-браузерах, файловых менеджерах, а также FTP-, SSH- и прочих клиентах.
  • Следите за безопасностью рабочих компьютеров.

    На всех компьютерах, с которых ведется работа с сервером (машины вебмастера, администратора, контент-менеджера, менеджера по продажам и т.д.) должны быть установлены антивирусы с поддержкой регулярных обновлений. Также необходимо своевременно обновлять операционную систему и прикладные программы.

  • Контролируйте данные, вводимые пользователями.

    • Фильтруйте HTML-разметку во вводимых пользователями данных, которые могут встраиваться в код страниц сайта.
    • Получая данные от пользователя, проверяйте на сервере, допустим ли их размер, входят ли переданные значения в допустимые списки и интервалы.
    • Никогда не вставляйте полученные от пользователей данные напрямую в вызовы eval(), SQL-запросы или в преобразование типов. Всегда проверяйте и очищайте полученную информацию от потенциально опасных элементов.
    • Не оставляйте в рабочей версии кода параметры, введенные для отладки, эксперименты с новой или отключенной функциональностью.
    • Используйте WAF (Web Application Firewall).
  • Контролируйте права доступа пользователей, в частности, предусмотрите защиту от межсайтовой подделки запросов (CSRF).

    Ограничьте доступ к панелям администрирования CMS и БД (например, phpMyAdmin), а также:

    • к резервным копиям кода;
    • к конфигурационным файлам;
    • к метаданным систем контроля версий (например, к каталогам .svn или .git).
  • По возможности скрывайте версии серверного ПО (CMS, веб-сервера, интерпретатора сценариев, СУБД).
  • Настраивайте файрволы и сетевую инфраструктуру так, чтобы были разрешены только соединения, необходимые для работы.
  • Старайтесь избежать кликджекинга. Простейшие проверки, предназначенные для этого:

  • joomlan.ru

    Появились порно-ссылки на сайте Joomla. Удаление вредоносного кода на Joomla

    История довольно простая — захожу как-то на сайт клиента, а там внизу ссылки на всякие нехорошие сайты и прочее. P.s. сайт работает на CMS Joomla 2.5.*

    Блок очень похож на саповский, но никаких признаков sape.ru и других бирж на сайте не обнаружено

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

    1. Файл index.php в кроне сайта
    2. Файл configuration.php в корне сайта
    3. Файл index.php шаблона
    4. Файл .htaccess в корне сайта

    Данная проверка не принесла абсолютно никаких результатов и нужно было думать дальше. Первое, что пришло в голову — выкачать сайт себе на компьютер и посмотреть, будут ли там ссылки показываться или нет. Так и сделал, используя описанную мной ранее методику создания бэкапов на Joomla. После того как я развернул сайт у себя локально случилось самое печальное, что могло произойти — ссылки не показывались локально и стало понятно, что через обычный поиск их не найти, но все же я проверил и этот способ (а вдруг)

    1. Через Total Commander искал текст, используемый в ссылках, во всех файлах
    2. Так же ссылочный текст искал и в базе данных через phpMyAdmin

    Результат очевиден — ничего не найдено.

    Что же, идем дальше. Решил я посмотреть исходный код и вот что увидел

    Что тут интерсное, так это то, что все ссылки находятся в <div>. Тогда через Total Commander я решил поискать следующий кодsmiley" src="http://iwsm.ru/bundles/ivoryckeditor/plugins/smiley/images/regular_smile.png" title="smiley"/>. И тем более проблема у нас 100% идентичная. Поэтому источник заражения нужно искать где-то в другом месте.

    1. В папке /modules/mod_banners есть какие-то файлы, которых не было, когда я создавал сайта (слева — файлы на FTP, справа — файлы на моем локальном компьютере). Давайте удалим эти лишние файлы, чтобы осталась структура как справа
    2. В файле /include/application.php у меня на где-то 270 строке есть код, отличный от оригинального файла, который на локальном компьютере. В дальнейшем я просто заменил данный файл оригиналом.
      Как видим, знакомый <div> со стилем, который надо было искать по font-size: 10px;

    Вот и все, почистив данный мусор проблема пропала. Проблема-то пропала, а вот вопросов еще осталось много.

    Вопросы, которые остались без ответа

    1. Сайт я запустил на хостинге 6 марта. Этим же числом отмечено и последнее изменение файла /include/application.php и создание вредных файлов в mod_banners. Тогда как быстро появились эти файлы, в какой момент? Неужели это могло произойти в момент восстановления бэкапа?! Нет, не могло, т.к. я только что это проверил и восстановил бэкап, а так же я это проделывал и с другими сайтами — там таких проблем нет.
    2. Может быть это какое-то расширение? Давайте посмотрим, что я устанавливал, может вы сможете ответить на данный вопрос
      • Akeeba — для создания бэкапов
      • Attachments for Joomla 2.5+ — для создания вложений в материал
      • Rapid Contact — для создания формы контактов
      • mavik Thumbnails — для создания превьюшек в статьях
      • Редактор JCE — для редактирования статей Где их скачивал я не помню, поэтому варез это или не варез я сказать сейчас не могу.
    3. Скорее всего ссылки стали появляться где-то через месяц после запуска сайта, т.к. ссылки сейчас на страницах есть, а в кэше яндекса от 5 апреля их еще нет. Но пустой блок <div></div> все же за это число есть. Может быть стоит пауза на месяц, чтобы ссылки только спустя это время появлялись?!

    Если у вас есть какая-то информация по тому, как эта пакость попала на сайт — буду рад выслушать, может быть и другим людям это поможет.

    iwsm.ru

    Удаление вредоносного кода в Джумле

    Удаление вредоносного кода в Джумле

    Категория: С пользой для дела Создано: 22.02.2016 08:01

     Ну, вот и я подхватил заразу у себя на хостинге! Сначала короткая история, как я смог так лохануться. Мой хороший клиент заказал у одной московской фирмы услуги по продвижению своего сайта. Фирма надежная, проверенная. Вообще то я ни кому и ни к чему доступ не открываю, но тут канун Нового Года (я, к стати, его не отмечаю) суета. Вставил я эту яндекс метрику куда следует, но мне пишут, что этого мало и присылают целый список своих пожеланий, коды бы они хотели понавтыкать этих счетчиков. Вот, скажите, мне оно надо? Люди деньги зарабатывают, вот пусть и работают. Тянулась эта переписка до 29 декабя и я делаю ФТП для них, голову ломать не стал, пробежал по цифрам на клавиатуре - это стал пароль. Ну, думаю, на часик-два можно. Потом грохну всё и поминай, как звали. И забыл... А вспомнил, когда 4 января мне сначала пришло письмо от них, что у них ни чего не получилось, а следом писмо от хостинга, что почту мне отключили. Спам рассылка. К тому же, сайт пополз во все стороны. 

     Расстроился я не сильно. А зря! Правильное отображение страниц сайта я восстановил довольно быстро, найти кусок запоротого кода не сложно. Поржал в душе над горе-хакером. Скинул сайт на локалку, прогнал антивирусом - нашел он там заразу, всего один файлик. Поменял пароли-явки, отписался в тех.поддержку и мне сняли ограничения на почту. И всё. 

     Через пару недель пришло осознание своей тупости.

     И вот новое письмо, за час 90 000 писем! Бессонные ночи, опухшие глаза и сотни страниц текста. Спасибо тем людям, кто делиться своим опытом с такими дураками как я! Сейчас понимаю, что надо бы назвать этих людей поименно, но мне тогда было не до имен. 

     После сканирования Ai-Bolit'том стало ясно, что это будет маленькая жопа. Слишком много ручной работы для одного человека. Я связался с разработчиками, отправил им Логи и мне сообщили цену - 3800 рублей. Немного, конечно, но у меня было на тот момент на карте как раз 3800 и всё. А жить еще надо было как то. Кризис и до конца января работы не предвиделось. К тому же, зараза сидела уже на 4 доменах и лишь на одном мне удалось всё почистить на 100%, а вот с оставшимися я не был уверен. А 11 штук у меня не было. А если бы и было? 

     Я, как наверное и большинство неопытных в этом деле людей, совершил массу ненужных движений пытаясь решить эти проблемы. Если говорить коротко, то я проделал путь от сложного к простому, а надо было делать всё наоборот. Это и подтлкнуло меня к написанию этой статьи. Вам не придется ковырятся в коде (ну, может, совсем чуть-чуть), что бы решить подобную задачу. По счастью, по друкой есть все инструменты. Начнем по порядку.

     Сканирование на вирусы. 

      Начинать делать что либо на с доменом можно только если вы на 100% уверены, что там нет вирусов. Иначе вы просто не будете поспевать за этой гадиной. Меняем все пароли от всего. Я даже сменил пароли на БД. Хлопотно, конечно, но тут лучше перебздеть, чем недобздеть! Если у вас Джумла, то после смены паролей к БД нужно поменять их в configuration.php  в корне вашего сайта. И не помешает проверить его на наличие лишних записей. Мне, конечно, стыдно писать об этом, но мой опыт поможет вам избежать ошибок и не быть столь самоуверенными как я. В configuration.php обратите внимание на это место:

    public $ftp_enable = '0';public $ftp_host = '';public $ftp_pass = '';public $ftp_port = '21';public $ftp_root = '';public $ftp_user = ''; 

     Убедитесь, что в конфигурации вашего сайта доступ по FTP отключен. Я слегка удивился, что в самих настройках сайта FTP выключен (вы сами всё понимаете), а в configuration.php, как говорится, заходи, бери, что хочешь. Ну, хотя бы стало ясно, как развивались события. Глупо? Увы, да.

     Вы уже скопировали файлы сайта на себе на комп? Ну, значить и просканировали. Скажу только, что Касперский и, например, DrWeb, дают разные результаты. Не поленитесь использовать не один, а два, а лучше как я, три антивирусных программы. Возможно, в вашем случае это избыточно, но в моем это оказалось более, чем оправданно! Ну и бэкапы, само собой. На этом этапе нужно быть наиболее внимательным, работа кропотливая, ошибки неизбежны, но от того, как вы сделаете эту работу зависит как быстро вы решите оставшиеся проблемы. Все зараженные файлы придется сверять с исходниками, в которых вы уверены, что они чистые. Для этого я использовал Total Commander. Я не буду описывать работу в этой программе, вы можете сами найти в интернете как сравнить файлы по содержимому. 

    Теперь лечим сайт.

    После того, как вы проделали эту грандиозную работу и залили "чистую" версию вашего сайта можно приступать к самому лечению. Сканируем сайт Ai-Bolit'том и открываетм отчет. Подробную инструкцию о том, как это делается можно найти на сайтеразработчика, но, скорее всего, у вашего хостера есть подобная прграммулина и вы можете запустить её из вашего аакаунта. К стати, я не настаиваю на использовании именно этого сканера, но из своего опыта замечу, что несмотря на самое блольшое (просто огромное) количество ложных срабатываний, этот сканер так же не пропустил и ни одного! файла с вредоносным кодом.

     Теперь, когда у вас есть отчет сканнера, можно приступить к лечению. Тут всё очень просто. Нам понадобиться вот этот сервис https://www.virustotal.com, куда мы будем загружать наши файлы по очерди и смотреть на результат проверки. Я делал так: по очереди из отчета сканнера загружал файлы и те, что содержали вредоносный код удалял, либо заменял на чистые. Например, файл с именем xxx_db.php в папке asset лежит рядом с файлом asset.php - такое я даже не сканировал, потому, что и так ясно, что это за гусь. Для успокоения совести я несколько раз загружал его в сканнер, что бы убедиться, что это зло. Файлы типа sql_76 можно удалять не глядя. Внимательно следите за тем, что бы не удалитьь родные файлы Джумлы, в них нужно либо удалить фрагмент вредоносного кода дибо, если вы не уверены, то заменить на здоровый файл из дистрибутива. Так же нужно будет удалить кампоненты и плагины Джумлы и за тем установить их заново, разумеется только последних версий. К стати, обновление компонентов не всегда помогает, это проверил и убедился, что в некоторых случаях лучше снести компонент напроч и установить его по новой с сата разработчика либо через JED. 

     Мне пришлось перелопатить тонну кода, но это было лишнее, я лишь хотел убедиться, что всё чисто и этому простому способу можно доверять. После того, как вы убедитесь, что ваш сайт чист и работает как часы я вам советую установить компонетн, который бы отслеживал изменения на сайте и вы были бы всегда в курсе того, что там происходит. Попробуйте, например, вот этот сервис https://watchful.li или еще более продвинутый https://www.centrora.com. В бесплатной версии они будут отлично мониторить ваш сайт, а за денежку даже лечить. К сожалению, при нынешнем курсе рубля их услуги стоят заоблачных денег для таких мелких пользователей как я.

    Итог.

     Тут, конечно, должна быть неудержимая река нецензурной лексики, потому, что еще всего пару лет назад трудно было себе представить, что зло примет такие масштабы. По моему субъективному мнению как минимум половина вредоносного кода - это услуги по продвижению в поисковых системах за счет вот таких наивных дураков, как я. Рынок SEO настолько востребован, что "специалисты" не гнушаются ни чем, вплоть до вот таких гадких методов. По этому сегодня защита вашего сайта возможно даже важнее, чем его соджержимое, потому, что угодить в блэклист Гугла или Яндекса - это значить лишиться как минимум 90% совей аудитории. А то и всей. Про репутацию я молчу. 

     

    Закрепленные

    Понравившиеся

    10sekund.ru

    Проверка безопасности - взлом или повреждение?

    Список действий Онлайн

    Переведите сайт в режим оффлайн (рекомендуется метод htaccess)

    Запустите ассистент записей форума и утилиту безопасности

    В архиве содержатся более подробные инструкции. Вам потребуется распаковать архив и загрузить файл fpa-en.php в корень сервера Joomla.

    Сканируйте все машины через FTP, суперадмина Joomla и доступ Joomla на вредоносный софт, вирусы, трояны, шпионов и т.д.

    Убедитесь, что у вас последняя версия Joomla. Оповестите вашего хостера и попросите помощи для чистки сайта, убедитесь, что нет никаких скрытых путей на сайт.

    Просмотрите список уязвимых расширений, чтобы узнать пользуетесь ли вы какими либо из них. Существует файл log, он расскажет о том какие расширения были подвергнуты атаке. Вот пример того, что нужно искать:

    //administrator/components/com_extension/admin.extension.php?mosConfig.absolute.path=http:

     

    или

    ../../../../../../../../../../../../../../../../proc/self/environ

     

     

    chmod и cron

    Если у вас есть доступ к SSH (secure shell) вы можете исправить файлы и папки с помощью chmod. Если у вас нет доступа к командной оболочке, меняйте настройки, запустив временный режим cron. Скопируйте команды в cron, подождите около 2х минут перед сохранением. При использовании этих методов рекомендуется использовать полный физический путь к public_html.

    Для использования с файлами найдите:

     

    find /home/xxxxxx/domains/xxxxxxx.com/public_html -type f -exec chmod 644 {} \;

     

    с папками:

     

    find /home/xxxxxx/domains/xxxxxxx.com/public_html -type d -exec chmod 755 {} \;

     

    Для проверки последних изменений в файловой системе за последний день можете использовать эти команды SSH или cron. 

     

    find /home/xxxxxx/domains/xxxxxxx.com/public_html -type f -ctime -1 -exec ls -ls {} \;

     

    Обратите внимание на то, что файлы могут быть расположены в public_html, httpdocs,www, или других местах и физический путь к ним будет отличаться от пути в примерах. Отрегулируйте его в соответствии с расположением файлов.

     

    Права 777

    Если сервер на котором вы находитесь требует прав 777, чтобы Joomla работала корректно, попросите перенести сайт на другой, с обновлёнными apache, php и т.д. на вашем хостинге, либо на другом.

    Чтобы защитить директории используйте этот код в файле .htaccess в открытой папке.

     

    # secure directory by disabling script execution

    AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

    Options -ExecCGI

     

    особенно в папках с изображениями

     

    Безопасный маршрут

    Чтобы сделать это понадобится 15 минут. Чтобы узнать взломан ваш сайт или повреждён html код понадобятся часы, а может и больше.

     

    Локальная безопасность

     

    Другие советы

     

    Вредоносный код или незнакомые ссылки на сайте

    Убедитесь, что исходный файл шаблона не содержит неизвестного кода или вредоносного JavaScript или проверьте не был ли шаблон скачан с непроверенного сайта

    iFrames

    В последнем iFrame вредоносный код был обнаружен только в файлах с наиболее распространёнными именами (index.html, index.php и т.п.)

     

    Проверьте себя

     

    Когда ваш хост провайдер использует PHP как модуль Apache, он выполняется как пользователь/группа веб сервера, отображаемая обычно как “nobody”, “httpd” или “apache”. В соответствии с этим режимом, файлам и каталогам, которые будут прописаны в php скриптах понадобятся права 777 (чтения/создания/удаления в группах/пользователях/на всём сайте). Такое развитие событий абсолютно недопустимо для безопасности сайта. Права 777 не только допускают веб сервер переписывать файлы, но и позволяют редактировать, добавлять и удалять файлы любому пользователю. Если ваш провайдер не в силах этого изменить, настоятельно рекомендуем сменить хостинг!

     

    Журналы

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

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

     

    Несовместимые версии

    Этот документ подходит для всех версий Joomla. Чтобы восстановить ваш сайт используйте версию совместимую с нынешней. Некоторые версии требуют миграции и переход на другую выведет ваш сайт из строя. Например не переписывайте сайт на 1.5.х.х версией 2.5.х.х. Неподготовленная переустановка просто напросто выведет сайт из строя если не сразу, то со временем.

    joomla.ru


    Prostoy-Site | Все права защищены © 2018 | Карта сайта