Ваш сайт на Drupal взломали. Что делать?

Аватар пользователя Studio VIZA

 Эта информация полезна , если ваш сайт Drupal взломан - просим вас сообщать подробности в команде безопасности в @drupal.org">security@drupal.org . Команда безопасности не в состоянии помочь с отдельными сайтами, но хотела бы отслеживать взломанные сайты , чтобы увидеть образцы.

 Ваш сайт Drupal взломали. Что делать?

 Упс. Вы этого не хотели, но это произошло: дыра для негодяя (или бота,что вероятнее ), обнаружена. 

  •  Хорошая новость: вы заметили, что они сделали это. 
  •  Плохая новость: теперь вы должны всё это вычистить.

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

 Шаг 1: Сделайте копию сайта для анализа

 После того, как вы уверились, что были взломаны, вы должны остановить все работы и сделать копию сайта для анализа. Некоторые люди предпочитают буквально выдернуть сетевой кабель и кабель питания от сервера, что не всегда уместно,или не работает для всех сред (облака, прочее). Если имеете возможность, этой  копией может быть операционная система уровня свежего бэкапа (снимка) сервера (ов). В противном случае слейте копию базы данных и файлов сайта. Сохраните одну копию на носителях, которые не могут быть изменены, как CD или DVD.

 Шаг 2: Определите для себя дальнейшие действия: сохранить, откат, восстановление, или удалить сайт напрочь.

« Сохранение» сайта, это потребует много времени и усилий на рассмотрение. Вам нужно решить, в зависимости от важности и сложности сайта, что в Вашем случае проще, удалить или восстановить его. Возможно, потребности сайта сместились, и вы уже планировали откатить его на предыдущий вариант. Возможно, взлом произошел в видимый отрезок времени и Вы его знаете, в этом случае сделайте статическую копию или просто удалите все. Даже если вы решили восстановить или удалить сайт вы не поняли процесса взлома, но, по крайней мере, вы убрали много работы в реабилитации. Но всё это не подходит, если Вы решили сугубо вылечить сайт, найдя дыры.То есть - на данном этапе работа Вашей мысли может здорово сэкономить Ваше время. 

 Если же вы знаете конкретную дату, в  которую был взломан ваш сайт, вы можете  восстановить сайт легко, просто используя старую базу данных и файл резервной копии (вы же регулярно делаете бэкапы, и всегда трижды перестраховываетесь, верно? ).

 Документация и самообучение

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

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

 Шаг 3: Кого вы должны уведомить?

 Вы должны решить, кого вы должны уведомить об этой проблеме. Если на вашем сайте есть пользователи, и вы считаете, что посредством взлома было захвачено частное содержание, как их адреса электронной почты, IP-адрес и все остальное личное на сайте скомпрометировано. В некоторых странах вы по закону обязаны информировать людей об этом событии (например, в случае сайтов, требующих HIPAA или PCI Compliance), учитывая так же моральные обязательства .

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

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

 Шаг 4: Если вы переведёте сайт в режим обслуживания?

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

 Обратите внимание, что работа сайта в режиме обслуживания, вероятно,некоторым образом уведомит атакующих, что вы узнали об их недобром присутствии. 

 Если вы не имеете технической возможности включить режим обслуживания на сайте, ваши действия необходимы на уровне веб-сервера

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

 Если вы подозреваете, что пароли были изменены, вы можете установить их новые значения с помощью запроса, таким образом (для Drupal 7):

update users set pass = concat('ZZZ', sha(concat(pass, md5(rand()))));

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

 Шаг 5: Начните расследование нападения

 Не принимая во внимание ваши душевные волнения, сам факт взлома является первым шагом в расследовании атаки. 

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

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

 Если у вас есть список способов, предпочтителен тот, что потребует меньше всего времени, ибо время в вашем положении важно. Что требует меньше усилий? Какие шаги реальны на ваш взгляд?  Видите ли вы примеры таких действий? Считаете ли вы что был подключен творческий потенциал гениев, которые ломали голову целый год, как же сломать ваш сайт?

 Если есть сомнения, обратитесь за помощью к коллеге , который может иметь больше опыта работы с ИТ и безопасности веб - приложений. Иногда выручает простой навык, при обсуждении проблемы всплывают дополнительные идеи. Как это по-русски - "постучаться о дурачка" ).

  Кроме того, следует пересмотреть список OWASP Top 10 , чтобы убедиться , что вы в курсе всех различных типов атак. Возможно ваш коллега обладает талантом поиска в Интернете, он вам отметит, если есть другие товарищи по несчастью , которые претерпевают аналогичные проблемы.

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

 Если вам повезет, одним или двумя из возможных способов ворваться в окопы противника будет очевидной победой. Таким образом, блокировать эту проблему!

 Управление инструментами взлома

 Для создания сайта вы имеете совокупность навыков, инструментов, опыта, злоумышленники так же подобные совокупности. Как строитель может понять взрывника?

  Грубо говоря, первый шаг, который имеет важное значение для вас, когда они взломали сайт. В большинстве случаев это программное обеспечение - боты и / или группа людей, которые работают над этим "творением", и они не обязательно являются пользователями вашего сайта. После того, как они установили мину, следующий шаг может не наступить в течение нескольких дней или месяцев. Здесь нужно понимать, если акт заражения произошел в январе, а сама атака активизировалась в июне, была зафиксирована в июле, то откат на июнь не поможет от слова вообще, откат на любой месяц ранее июня активирует "спящий режим" и вопрос времени, когда мина опять проснётся. О том что нужно откатиться на декабрь вы же не в курсе, так ведь? Взломщики не имеют особых привычек прикладывать пояснительные записки в заражённые файлы.

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

 Может быть цель - ваш чистый IP приспособить для рассылки спама. Может быть, он получает много трафика и является хорошей отправной точкой, чтобы использовать для распространения вредоносного ПО. Если он получил высокий рейтинг поисковых систем это может быть местом для ссылки на другие сайты и заработка репутаций поисковых систем.

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

 Если вы видите признаки взлома, но нет каких-либо повреждений, возможно, вы остановили процесс, или, возможно, они использовали сайт таким образом, что не оставляют следов, а затем вы их действительно прервали.

 Где злоумышленники используют системы Drupal?

 index.php, или действительно любой файл кода

 Обычный hack просто подменяет index.php или любой другой файл кода в месте, например, файл шаблона. Методы различны:

  •  Вирус на компьютере используется для администрирования сайта, который использует сохраненные учетные данные в FTP-инструмент для редактирования и загрузки файлов (серьезно).
  •  Выполнение произвольного кода над правами доступа к файлам серверов серверов, используемых для редактирования или перезаписи файла.
  •  Произвольная загрузка файла, который был использован для загрузки оболочки команды, которая затем используется для изменения кода.

 Сравнить все файлы кода для известных хороших копий, либо в системе управления версиями или drupal.org ( взломан! Модуль выручит.)

 Искать файлы на сервере, которые не являются частью вашего известного в Drupal привычного вида, например,modules/system/qseboj.php

 Просмотрите файлы в «files» директории, чтобы увидеть чужаков.

 Так же, может быть полезно рассмотреть комбинированные метаданные владельца, групп, права доступа и временные метки как fingerprints файлов на сервере. Если большинство файлов имеют один fingerprints и один другой файл имеет другой fingerprints (например, отредактированный тогда, когда атака началась), это может помочь вам понять, что случилось.

 Код внутри контента или интерфейс администратора

 Php.module в ядре действительно удобен для администраторов сайта, чтобы поместить небольшой фрагмент кода в интерфейс Drupal сделать tweak на поведение узла или блока. Это также отличный способ для злоумышленника, чтобы запустить любой код, который они хотят.

 Просмотрите содержимое всех узлов, блоков, профилей пользователей, полей и т.д. Если вы не можете законно сделать это вручную, то ищите сканерами вредоносное содержимое.

 Модуль импорта Views UI или Rules, или CDN или Google Analytics или несколько десятков других очень популярных модулей все позволяют выполнять PHP через их интерфейсы

 Ох! Эти редко используемые вещи на сайте, но может быть полезным в плане выявления точки входа злоумышленника. Изучите способы выполнения PHP в интерфейсе сайта и посмотрите в логах веб-сервера информацию по посещению этих URL. Есть ли подозрительно знакомые IP-адреса? Являются ли они в норме обычной продолжительности рабочего времени? Зная время и IP вашего атакующего реально нарыть больше подсказок об атакующем, от поиска в базе данных на watchdog.hostname или comment.hostname.

 Новый пользователь и / или новая роль

 Исследуйте роли на вашем сайте. Какие права у них есть? Какие из них расширенные права , которые могут быть использованы , чтобы взять власть над сайтом? Может быть, это совершенно новая роль , которую вы точно не создавали. Есть один пользователь с этой ролью? Скорее всего он получил письмо и / или пароль , захваченный злоумышленником. 

 С вашим списком ролей , которые имеют дополнительные права, посмотрите среди пользователей на вашем сайте. Вы знаете поимённо всех, кто имеет расширенные права? 

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

 Изменение существующего пользователя

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

 Специальное примечание: Для поиска взлома в базе данных, следует понимать, злоумышленник мог изменить любую строку или столбец. Используйте для сравнения заведомо исправные резервные копии базы данных (если таковые имеется) для проверки теорий.

 Таблица сессий

 Многие атаки оставляют следы, но сеанс длится только до тех пор , пока пользователь не нажмет выход из системы. Используя список ролей с расширенными правами, обратите внимание на все сеансы , связанные с пользователями , у которых есть эти роли. IP - в их sessions.hostname логичный смысл для них? Видите ли вы открытую сессию для пользователя , который не уверен , что вообще участвует в организации? Видите ли вы сеанс для совершенно нового пользователя , которого вы очевидно не создавали? 

 Проверьте количество времени между моментом , когда пользователи вошли на сайт в значении users.login и их последняя страница визита в session.timestamp: выберите (s.timestamp - u.login) / 60/60 / 24 AS дней с момента Войти, u.uid из сеансов с внутренним соединением пользователей u on s.uid = u.uid; Злоумышленник может вставить сеанс для пользователя , который не входил в течение длительного времени, что даёт легко обнаружить их сессии.

 Таблица menu_router

 menu_router таблицы в Drupal, получает в начальном цикле запроса страницы и является отличным местом, чтобы вычислить некоторые атаки кода. Если вы случайно или намеренно очистили кэш меню с момента начала расследования вы, возможно, потеряли некоторую информацию из этой таблицы, как она будет перестроены из кода на Вашем сайте в этом процессе. Теперь не Вы теперь счастливы, что сделали судебную копию в начале?

 Простым решением этой кропотливой задачей является взять судебную копию, а затем сравнить его с версией таблицы menu_router после того, как вы перестроили эту таблицу. Если есть какие-либо новые строки, недостающие строки или строки с различным содержанием, которое заслуживают изучения? Вы можете также искать общие сигнатуры атак, такие как «file_put_contents» или «assert» в функции обратного вызова доступа.

 Атака других сайтов на одном сервере или же сети

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

 Шаг 6: Пересмотреть вопрос: исправлять, перестраивать или этот сайт всё же является мусором?

 В зависимости от того, что вы нашли, пройдёт время, и вы возможно пересмотрите ваше первоначальное решение. Если доступ злоумышленник получил был обширен и изменения, Which they MADE disperse ... то трудно быть уверенным в результате чего сайт ушел в ж*пу в Интернете.

 Оригинальная версия этого документа состоит из: https://github.com/greggles/cracking-drupal/blob/master/after-an-exploit.md

 Весьма и весьма вольный технический перевод,  выполнен пользователем aka director-cemetery

Оригинальная версия
Русский рерайт

ВложениеРазмер
Иконка изображения vzlom.png268.75 КБ
Ключевые слова:
Тип материала:
Форумы:
1 Спасибо

Комментарии

Аватар пользователя bsyomov
bsyomov 6 месяцев назад

Судебная копия - rly? Виевс UI или Рулес - просто слов нет цензурных-то.
Чем так переводить, лучше не переводить совсем. Кроме отвратительного качества текста на выходе, не согласованных терминов, ещё и верность передачи идеи под большим вопросом.

0 Спасибо
Аватар пользователя Studio VIZA
Studio VIZA 6 месяцев назад
bsyomov написал:
Чем так переводить, лучше не переводить совсем

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

Лично я нашел полезное в статье, и получил разрешение на работы, да вот платная моя переводчица сгинула, пришлось бесплатно самому всю ночь почти погонять к доморощенному слэнгу, Борис- лан Вьюхи и Рулесы это не айс, а судебные копии как посолиднее могут звучать, не на западе, а у нас?

0 Спасибо
Аватар пользователя bsyomov
bsyomov 6 месяцев назад 1

Views и Rules, в таком контексте, лучше вообще не переводить, и относиться к ним как к названиям.
Forensic это не суд, это экспертиза/расследование/анализ. Лучше перевести, как "копии для анализа" - так будет хоть смысл понятен.

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

Аватар пользователя Studio VIZA
Studio VIZA 6 месяцев назад

Когда человека поломают, и у него будет реальная паника, эта статья послужит сильным утешением и успокоением. Люди поймут что их надёжно защитили, наши российские мощные технические переводчики.
bsyomovесть у меня ещё сомнения в качестве перевода из Step 4: Should you take the site offline?
в
Шаг 4: Если вы переведёте сайт в режим обслуживания?

Насколько верно я пальцем в небо попал?

В общем то мне не жаль утащить статью в мусорку, что я регулярно и делаю ))

0 Спасибо
Аватар пользователя bsyomov
bsyomov 6 месяцев назад 1

Должно быть там так:
«Должны-ли вы перевести сайт в offline режим?»

Далее там по тексту: «и устанавливая заставку» наверное всё же «заглушку»

Но там ещё полно откровенных ляпов, даже в заголовках, например: «Где злоумышленники используют системы Drupal?» и «Where do attackers exploit Drupal systems?» имеет ну уж совсем разное значение.

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

Аватар пользователя Van'Denis
Van'Denis 6 месяцев назад

Статья нужная. Статья алмаз. Осталось отшлифовать и сделать бриллиант.

0 Спасибо
Аватар пользователя bsyomov
bsyomov 6 месяцев назад

К сожалению, по мне, оригинальная-то статья это так - стеклянные бусы, а перевод, так вообще, китайская пластиковая подделка на них...

0 Спасибо
Аватар пользователя Van'Denis
Van'Denis 6 месяцев назад

Согласен. Допилим :)

0 Спасибо
Аватар пользователя Studio VIZA
Studio VIZA 6 месяцев назад

Кто обещал ишью поднять по совместной допилке топиков? Это важно более чем мы считаем, господа.

Рвение без желания ничто, как и желание без рвения, так давайте сообща, сообщество сообщать-развивать-инвестировать-экстраполировать. Да здравствует мир-дружба- и жвачка https://www.img.studioviza.com/Shotk3q1z.png

0 Спасибо
Аватар пользователя Van'Denis
Van'Denis 6 месяцев назад 1

И пиво с с закусью в хорошей компании :)

Аватар пользователя multpix
multpix 6 месяцев назад
Studio VIZA написал:

МНОГАБУКВ!
где тлдр?

вопще прблема по сабжу,
на практике, по моим наблюдениям,
постоянно решается следующим методом:
rand( 'расплакаться', 'взять у мамаки денег и раздать в классе долги пользователям', 'поиграть в синегокита')

0 Спасибо