What is android malware

How to Check if Your Android is Among the 1 Billion+ Devices Vulnerable to Malware

According to recent research by Which?, more than 1 billion Android devices are vulnerable to malware (malicious software). If you are one of the 40% of Android users that is using an older device with an outdated version of Android, there is an increased risk of hackers stealing your personal data (such as your bank details). Here’s how to check if you have malware on your Android device, and how to prevent your device from getting infected.

If you are using an Android device running version 6.0 or earlier, you will not receive security updates. That means that you won’t receive patches that protect your device against new threats that hackers create.

Which? tested several Android phones and found that they were able to infect all of them with different malware strains, including BlueFrag, Joker, and Stagefight. Hackers can use these specific exploits to steal your contact information, register you for expensive services, or even take over your phone completely.

Google has since patched all of these exploits for users running the latest Android 9.0 and newer.

Signs that Your Android Device is Infected

While you can’t always tell if your Android device has been infected with malware, here are some of the signs that you should keep an eye out for:

  • You see an increase in data usage
  • Your phone bill has increased charges
  • Your phone and apps keep crashing
  • You see pop-up ads
  • There are unfamiliar apps on your phone
  • Your phone is overheating

If you have experienced any of these symptoms, or you are using an Android device that’s more than two years old, you might want to check for malware on your Android device.

How to Check for Malware on Android

To check for malware on your Android device, go to the Google Play Store app and click the three-line icon in the top-left left corner of your screen. Then Google Play Protect and tap the scan button.

Google Play Protect is an in-built service that automatically scans all the apps on your device to check for malware on your Android. Google Play Protect warns you about any detected potentially harmful apps that it finds, and it removes known harmful apps on your device.

  1. On your Android device, go to the Google Play Store app. You can find this app by tapping the Apps icon at the bottom of your home screen.
  2. Then tap the menu button. This is the three-line icon in the top-left corner of your screen.
  3. Next, tap on Google Play Protect. This will show you the status of your device and the results of the latest scan.
  4. Tap the scan button to force your Android device to check for malware.
  5. If you see any harmful apps on your device, you will see an option to remove it.

Once you have manually scanned for malicious software, you should also make sure that your device is set to scan your apps automatically. You can do this by tapping the gear icon in the top-right corner of your screen and making sure that both sliders are green.

How to Prevent Your Android Device from Getting Infected with Malware

One of the easiest ways to prevent your Android device from getting infected with malware is to make sure an app is verified by Google Play Protect when you download it. You can tell an app is safe to download when you see a green badge underneath the progress bar.

However, there are still apps in the Google Play Store that have been verified, but they still contain malware. This can also happen when you update the app. You can check if your updates are safe by going to the Google Play Store, and tapping Menu > My apps and games. From there, you can scan all your updates manually.

Читайте также:  Определить андроид как флешку

If you find a malicious app on your Android device, check out our guide on how to remove malware from your Android device.

Источник

Малварь для Android за полчаса. Отслеживаем местоположение, читаем SMS, пишем аудио и делаем фото

Содержание статьи

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

Возможности будут следующие:

  • сбор информации о местоположении;
  • получение списка установленных приложений;
  • получение СМС;
  • запись аудио;
  • съемка задней или фронтальной камерой.

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

WARNING

Важно! Создание и распространение вредоносных программ карается лишением свободы до четырех лет (статья 273). Мы не хотим, чтобы ты сломал себе жизнь в местах не столь отдаленных, поэтому публикуем статью исключительно в образовательных целях. Ведь лучший способ разобраться в работе зловредного ПО — это узнать, как оно создается.

Каркас

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

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

Начнем. Создай приложение, указав в манифесте следующие разрешения:

В build.gradle укажи compileSdkVersion 22 и targetSdkVersion 22 . Так ты избавишь приложение от необходимости запрашивать разрешения во время работы (22 — это Android 5.1, обязательный запрос разрешений появился в 23 — Android 6.0, но работать приложение будет в любой версии).

Создай пустую Activity и Service. В метод onStartCommand сервиса добавь строку return Service.START_STICKY . Это заставит систему перезапускать его в случае непреднамеренного завершения.

Добавь их описание в манифест (здесь и далее наше приложение будет называться com.example.app):

Всю злобную работу мы будем делать внутри сервиса, поэтому наша Activity будет очень проста:

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

Информация о местоположении

Теперь мы должны добавить в сервис код, который будет собирать интересующую нас информацию.

Начнем с определения местоположения. В Android есть несколько способов получить текущие координаты устройства: GPS, по сотовым вышкам, по Wi-Fi-роутерам. И с каждым из них можно работать двумя способами: либо попросить систему определить текущее местоположение и вызвать по окончании операции наш колбэк, либо спросить ОС о том, какие координаты были получены в последний раз (в результате запросов на определение местоположения от других приложений, например).

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

Данная функция спрашивает систему о последних координатах, полученных с помощью определения местоположения по сотовым вышкам и по GPS, затем берет самые свежие данные и возвращает их в форме объекта Location.

Далее можно извлечь широту и долготу и записать их в файл внутри приватного каталога нашего приложения:

Когда придет время отправлять данные на сервер, мы просто отдадим ему этот и другие файлы.

Список установленных приложений

Получить список установленных приложений еще проще:

Метод получает список всех приложений и сохраняет его в файл apps внутри приватного каталога приложения.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Источник

Иследование современного Malware Cerberus под Android

На носу 2020 год и сегодня мы имеем уже версию Android 9.0 Pie, где компания Google бьет себе в грудь и говорит что их продукт защищен. Но злодеи не дремлют и создают свои вредоносы для Android.

Случайным образом мне попался на руки обфусцированный apk файл, который является банковской малварью под названием «Cerberus», и появился он в 2019 году.

Читайте также:  Лучшие блокировки для android

APK файл данного ботнета попал мне с недействительным адресом соединения с сервером, по этому часть логики работы и функционала осталась неизученной, так как данный ботнет использует «модульную» систему, и подгружает функционал напрямую со своего сервера.

Анализ apk пакета

После анализа apk-пакета, я составил структуру троянской программы:

  1. Receiver, autorun + alarm;
  2. Service, работает в цикле с интервалом 8 секунд, он отвечает за показ всплывающего сообщения для включения Accessibility Service, активации функции блокировки экрана и отключения прав администратора;
  3. Service, собирающий данные с датчиков девайса, таким образом малварь получал физическое активность девайса;
  4. Service, в цикле блокирует экран девайса;
  5. Service, отвечает за обмен данных с сервером;
  6. Activity, подгружает html код в WebView, и показывает содержимое, служит для подмены активити приложения банка;
  7. Activity, запрашивает опасные разрешения.
  8. Class, хранит в себе основные строки(String) проекта

Начнём с манифеста

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

Например рассмотрим разрешения для приложения:

Тут можно заметить, что приложение получает доступ к СМС, контактам, звонкам, интернету, работа приложения в спящем режиме.

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

Ну и конечно Ресивер, он служит для автозапуска сервисов, и перехвата СМС.

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

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

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

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

Google надо бы ограничить некоторые возможности API для приложений не из плей маркета.

Receiver

Код данного класса обфусцирован, но это не мешает его изучить.

А теперь немного пояснений по коду.

Настройки малвари хранятся XML файле, файл находится в директории /data/data/имя_пакета/shared_prefs/Settings.xml

  • public String ReadXML — метод для чтения настроек
  • public String SaveXML — метод для сохранения настроек
  • public boolean DozeMode — Проверяет включен ли режим Doze Mode
  • public class Service_fa extends Service — Сервис для сборки физической активности девайса (шаги, тряска телефона и прочее)
  • public class Service_server extends Service — Сервис для соединения с сервером
  • public class Service_event_loop extends Service — Сервис работающий в беcконечном цикле для выполнений некоторых функций малвари
  • public void startOffDozeMode — запрос для отключения режима Doze Mode
  • public void startAlarm — Запуск ресивера каждые 10 секунд
  • public void interceptionSMS — Метод для работы с перехатом СМС
  • public boolean isAccessibilityService — метод для проверки включен ли Accesibility Service или нет
  • public boolean cis — метод, который блокирует работу малвари по странам, входящим в СНГ, а конкретно это: ua, ru, by, tj, uz, tm, az, am, kz, kg и md (сокращённые названия стран)

Я постарался привести обфусцированный код выше, в более читаемый и нормальный вид:

Так думаю код стал более понятен многим читателям.

У Receiver есть 3 триггера на срабатывание, а это при перезагрузке устройства, получении СМС или при запуске Alarmon.

Так же Receiver запускает 3 сервиса:

  • Cбор физической активности девайса(Service_fa)
  • Сервис для соединения с сервером(Service_server)
  • Сервис работающий в беcконечном цикле для выполнений некоторых функций малвари(Service_event_loop)

В первую очередь запускается Service_fa и только после проявления активности устройства (если владелец телефона ходит, и трясёт телефон), запускаются Service_server и Service_event_loop. Они являются основным процессом малвари, таким методом малварь может отъсеять реальный девайсы от эмуляторов и девайсов ресёчеров, ав и прочих.

Так же Receiver запускает запрос отключения Doze Mode и запрос подтверждения прав администратора.

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

Права администратора

Давайте рассмотрим какие возможности мы имеем благодаря Admin Device.

элемент force-lock отвечает за права блокировки экрана девайса, а wipe-data за удаление раздела DATA, CACHE, и всей памяти на устройстве (его полный сброс).

Service_fa

На этом мы закончим рассматривать Receiver, и рассмотрим другие сервисы. Сервис который снимает данные с сенсорных датчиков используя класс SensorManager, этот сервис просто получает данные активности и сохраняет их в файл XML.

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

Читайте также:  Использование рут прав андроид

Service_server

Этот поток создан для общения с сервером, данные передаются на сервер в зашифрованном виде используя алгоритм шифрования RC4 кодируя после него все в base64.

При запуске сервиса первый запрос на сервер выглядит так:

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

«, то малварь останавливается на этом домене и начинает работать с ним.

Мы определились с каким доменом работаем, теперь смотрим остальные ответы.

Если возвращается Response == «||youNeedMoreResources||» то сразу идет запрос на сервер для получения дополнительного модуля малвари:
gate_url?action=getModule&data=
Идем дальше, Response == «||no||»
отравляет на сервер запрос gate_url?action=registration&data=JSON:

Этот запрос служит для регистрации нового пользователя в админ панели, на этом запросы к серверу закончились.

Но ниже есть условие которое проверяет наличие файла «system.apk».

если файл присутствует, формируется JSON в виде:
В параметр response передается ответ с сервера, далее json передается в метод который находится модуле «system.apk» и с помощью класса DexClassLoader он выполняется.

Service_event_loop

Данный сервис работает в цикле и ждет команды на блокировку девайса. Девайс блокируется в цикле при помощи прав администратора.

Данный сервис умеет отключать права администратора, видимо автор малвари это решил сделать для «самоуничтожения» малвари, чтобы не оставлять следов на телефоне жертв.

Так же цикл имеет 2 скорости работы, 1 секунда и 8 секунд, если Accessibility Service отлючен, то работает на 1-й секунде и просит включить данный сервис, просто открывая Activity и заставляет включить специальные возможности, на практике подробно это рассмотрим.

В конце цикла также есть реализация как и в Service_server, а конкретне отправка команд в метод, который находится внутри подгруженного модуля «system.apk», но параметры не много другие, смотрим JSON:

tick — секунды которые считает цикл сервиса, accessibility — проверяет включен ли Accesibility Service.

Класс String(s)

Все строки внутри класс зашифрована алгоритмом RC4, после чего закодированы в base64.

зашифрованный строка: yyshybiwijujYzdkZDdkMjRlYjJmYjU5Y2Qw
где первые 12 символов страки это ключь расшифрования алгоритма RC4
Ключи: yyshybiwijuj
Зашифрованный текст: YzdkZDdkMjRlYjJmYjU5Y2Qw

Вот часть кода класса String(s)

Я написал скрипт, для преобразования данных строк в нормальный вид, это помогло мне скоротать немного времени.

Так же видим что в этом классе хранится:

URL сервера указан твиттер ресечера Lukas Stefanko(@LukasStefanko), видимо автор хотел пошутить или что-то сказать Лукасу (Это аналитик из NOD32), так же тут хранится имя Accessibility Service + то же название хранится в манифесте android:label=«Flash Player Service», и список стран, по которым не работает малварь.

Остальное

Кратко опишу работу инжектов. Она реализована просто, если включен Accessibility Service, то данный сервис просто ловит событие о запуске банковского приложения и запускает поверх активити банка свое активити, где оно имеет объект WebView который прогружает html-фейк банка, после чего получает данные с помощью JavaScript и отправляет данные на сервер малвари.

Так же в этом сервисе реализован Keylogger, блокировки удаления малвари и автоклик по подтверждениями. Было обнаружено взаимодействие отключения безопасности в приложение «com.miui.securitycenter». Это приложение называется «Безопасность» которые используется на девайсах Xiaomi, его основные задачи следить за безопасностью ваших конфиденциальных данных. Так же был обнаружен код для автоматического отключения «Google Play Protect» методом автоклика.

Перейдем к практике

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

Устанавливаю apk-пакет на эмулятор с API 27.

На рабочем столе появилась иконка флеш плеера с названием «Flash Player»

Ждем по иконке, и у нас запускается малварь.

После запуска малвари, автоматический запускается Активити с требованием включения Accessibility Service, если свернуть ее, она появится снова и это происходит в цикле до тех пор пока я не включил сервис.

После включения галочки Accessibility Service, выполнился автоматический переход с настроек на рабочий стол, и больше у меня не получилось попасть в настройки Accessibility Service, также исчезла иконка с рабочего стола, через несколько секунд появился запрос отключения Doze Mode, он автоматически отключился благодаря автоклику специальных возможностей.

Cледом таким же образом было авто подтверждения прав администратора. Удалить малварь в ручном режиме не удалось так как при открытие настроек данного приложение был автоматический выход назад (GLOBAL_ACTION_BACK).

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

Реверс малвари был реализован совместно с keklick1337

Источник

Оцените статью