15 октября 2015 г.

Спасаемся от Андроидлокеров (Trojan-Ransom)

    Вчера ко мне обратился знакомый с проблемой, которая была когда-то популярна в Windows, а затем пришла под Android. На смартфоне работал троян-вымогатель. Он запускался вместе с самой системой и в течении трёх секунд показывал свой экран поверх всех прочих, полностью блокируя доступ к интерфейсу Андроида. Картинка справа - это как раз скриншот с моего тестового телефона. Реализовано это было штатной возможностью Device Admin. В отличие от обычных полноэкранных приложений, экран вымогателя нельзя было убрать нажатием Home или свайпом от области уведомлений и вниз. Собственно, это одна из тех возможностей, которые есть у приложения, использующего права DA.

    Однако избавиться от подобных троянов можно, если только они не заблокировали доступ паролем (хотя и здесь есть самая последняя надежда). Сделать это можно несколькими способами, но все они связаны с работой в командной строке, с подключением устройства по adb. И это не так уж сложно, даже если вы не знаете, что такое adb. И, прежде чем мы начнём, сразу скажу, где взять adb (кроме Android SDK). Вот здесь.

    Наша задача номер один - перевести устройство в режим отладки. А это невозможно, пока троян блокирует доступ к интерфейсу самого Андроида. Значит нельзя дать ему запуститься!
    Запускаем телефон в безопасном режиме. Поищите инструкции для своих аппаратов, но обычно это делается так (на примере Nexus 5 под Android 4.4):
    1. Нажимаем кнопку Power, чтобы появилось системное меню выключения
      • Здесь вас будет поджидать засада. Меню будет подниматься ПОД экраном, который рисует блокировщик. Потому нужно сделать это до того, как троян успеет загрузиться. У нас в запасе несколько секунд после каждого выключения телефона, чем мы и воспользуемся:
        1. Зажимаем кнопку Power, но не отпускаем её. Через 5-10 секунд аппарат будет принудительно выключен. Это предусмотрено производителями на случай зависания устройства
        2. Включаем аппарат снова и, как только появился обычный интерфейс Android, НЕМЕДЛЕННО нажимаем кнопку Power, чтобы появилось обычное меню выключения. Кнопку Power отпускаем
    2. В меню НЕМЕДЛЕННО зажимаем и НЕ ОТПУСКАЕМ пункт Power off. Через пару секунд поднимется запрос (или не поднимется - смотрите инструкции ваших устройств) на загрузку в безопасном режиме
    3. НЕМЕДЛЕННО соглашаемся
      • В процессе выключения троян наверняка уже успеет запуститься и показать свой экран. Но пусть вас это не беспокоит
    В безопасном режиме пользовательские приложения не загружаются. У нас есть доступ к интерфейсу Андроида!

    Не пытайтесь удалить вредонос штатно. Права администратора устройства:
  • Защищают его от удаления
  • Поднимают трояна и в безопасном режиме со всеми его правами. Вам придётся загружаться обратно штатно, а затем снова переходить в безопасный режим
    Сейчас у вас несколько вариантов действия, но все они завязаны на работу с adb. А потому первое, что мы сделаем - подключим устройство в режиме отладки к компьютеру.
  1. Раздобудьте драйверы для вашего устройства. Пользователи Nexus устройств могут использовать те, что идут в составе Android SDK. Но если вы хорошо знаете, что такое Android SDK, то зачем вы читаете эту запись? :)
  2. Включите режим отладки на устройстве, если это ещё не сделано. Для Android 4.2 и выше режим по умолчанию скрыт и его нужно поднять наружу. Используйте инструкции для своих телефонов (особенно если у вас что-то очень плохое, например Samsung с их фирменной оболочкой):
    1. Заходим в Settings
    2. About phone
    3. Тапаем быстро 5 раз по Build number до появления надписи "You are now developer"
    4. Возвращаемся на уровень выше и видим, что над About phone появился пункт Developer options. Туда-то и заходим
    5. Находим пункт USB debugging и включаем его, подтвердив своё действие
      • Система не просто так сообщает, что этот режим сделан только для разработчиков. Включённая отладка по USB снижает общей уровень безопасности ОС. Но пока просто разрешаем
    6. Подключаем телефон по кабелю. Здесь нам очень пригодятся драйверы
    7. Дожидаемся, когда в Диспетчере устройств на компе появится наш аппарат именно в режиме отладки (ключевое слово - ADB):
    8. Если необходимо (а это необходимо в современных версиях Android) - разрешите своему компьютеру получить доступ к устройству. Для этого нажмите правильную кнопку на устройстве. Можете и галочку поставить, просто на будущее
    9. Теперь нужно убедиться, что устройство доступно по adb. Для этого нужно зайти в папку с adb.exe (используйте свои знания командной строки) и выполнить команду
      adb devices
      В ответ будет что-то вроде
      List of devices attached
      0b399bcb13d27b17        device
    Устройство доступно для управления. Не скажу, что позади самое сложное, но, возможно, самое нудное. Теперь же пришло время выбирать пути решения проблемы.

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

      adb shell pm list packages > d:\pack.txt

      Путь к файлу можете задать сами
    2. Открываем этот текстовик и на пару с Гуглом ищем всё подозрительное. Учтите, что троян, скорее всего, будет использовать имя нормального приложения. В моём случае это "com.ludia.dragons". Это имя принадлежит игре, которую я не устанавливал и её совершенно точно быть не должно: https://play.google.com/store/apps/details?id=com.ludia.dragons&hl=ru Очевидно, что это троян, который выдаёт себя за честное приложение
  2. Убиваем данные трояна:
    1. adb shell pm clear com.ludia.dragons
    2. Ответ должен быть Success
   Теперь мы можем перезагрузиться в обычный режим и продолжить работать там - троян не будет запущен вместе с системой. Однако я предлагаю следующее:
  1. Устанавливаем из Маркета Kaspersky Internet Security. Вы можете и не устанавливать, а попытаться забрать права администратора у трояна самостоятельно, но в антивирусе есть фоновый помощник, который упростит эту процедуру. Дело в том, что троян защищается от того, чтобы у него забрали права. При попытке снять права Администратора, он будет запущен и снова начнёт защищаться, даже в безопасном режиме. Более того, НАД диалоговым запросом системы вида "Забрать права?" он поднимет другой - "Сделать Администратором" и вы ткнёте на одобрение возврата прав администратора. Такие пироги. Антивирус же попытается противодействовать этому, увеличив время, за которое вы должны успеть одобрить отбирание прав и будет подавлять попытки вернуть права обратно
  2. Антивирус нельзя запустить в безопасном режиме, но можно запустить из командной строки. Первая строка не актуальна для последних версий, но пусть останется. Все последние версии отработают нормально для второй строки:
    adb shell am start -n com.kms.free/com.kms.KisMainActivity
    adb shell am start -n com.kms.free/com.kms.permissions.gui.PermissionsActivity
  3. Проходим мастер настройки, обновляем базы. Лицензии достаточно и бесплатной
  4. Запускаем проверку
  5. Если антивирус обнаружил трояна, удаляем его
  6. Начнётся свистопляска из запросов и подтверждений. Нужно игнорировать ненужные окна, даже если они на переднем плане и нажима на нужные, даже если они на заднем плане
    1. Будет запрос на удаления от самой системы, но на него плевать. Под ним, внизу, будет запрос на то, чтобы убрать права администратора устройства у трояна. Вот, что нам нужно. Целимся в кнопку Deactivate и жмём
    2. Появится самое важное - подтверждение, что права нужно забрать. Скорее всего троян подменит текст, якобы, данные будут удалены. На текст плевать, нам нужны кнопки. Так что РАЗРЕШАЕМ
    3. Всё, трояну больше нечем защищаться. Но антивирус будет продолжать рисовать свою информацию поверх всех экранов, в самом верху, потому что троян ещё не удалён
    4. Нажимаем кнопку показа последних приложений и находим там тот экран, который спрашивал, правда ли мы хотим удалить приложение. То, что было в шаге 1. 
    5. Переключаемся на него и подтверждаем удаление
    Всё это, в общем-то, можно проводить и без безопасного режима. Даже если в обычном режиме троян успеет снова заблокировать доступ, вы можете обратно убить ему данные командой  clear.

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

    Резюмируя всё это:
  • Запомните всего две команды. Первая позволит убить назойливое приложение в любой момент, вторая, гораздо более важная, сотрёт данные приложения:
    • adb shell am force-stop packname
    • adb shell pm clear packname
  • Делайте всё в безопасном режиме. Здесь у вас чуть больше возможностей
  • Успевайте нажимать. Не успели - повторяйте заново. Антивирус ваш друг, он будет всеми силами стараться поднимать важные окна выше всех прочих
  • Не все трояны пытаются отправлять SMS. В этом случае очень подозрительными разрешениями является возможность рисовать свои окна поверх других приложений и управление блокировкой (это уже явно говорит, что приложение будет просить права администратора устройства)


Ну и в завершение:
  1. Отключите режим отладки:
    • Settings -> Developer options -> Отключить (Переключатель вверху)
  2. Не включайте режим отладки, если вы не знаете, что это такое. Даже если вам это советуют в Интернете. Даже если это просит очень нужное приложение с 4pda. ОСОБЕННО ЕСЛИ ВАМ ЭТО СОВЕТУЮТ В ИНТЕРНЕТЕ И ЭТО ПРОСИТ ОЧЕНЬ НУЖНОЕ ПРИЛОЖЕНИЕ С 4PDA!
  3. Не разрешайте установку из недоверенных источников без крайней необходимости. А если разрешили - то запретите снова. Помните, что подавляющее большинство угроз под Андроид приходит вовсе не из Google Play

2 комментария: