Технологии обнаружения мобильных угроз. Немного об Origins Tracing™

    Уважаемые хабравчане, мы уже не раз вам рассказывали об угрозах для Android и, вероятно, уже плешь проели некоторым скептикам. Сегодня мы предложим вам поговорить, скорее, не о вредоносном ПО для этой мобильной платформы, а о технологиях, применяемых для его обнаружения. И начнем свой рассказ, пожалуй, с технологии Origins Tracing, реализованной в Dr.Web для Android.

    На все ваши вопросы по этой теме сегодня отвечают не какие-то там маркетологи, а аналитик «Доктор Веб» по мобильным угрозам Александр Горячев.

    Одной из изюминок Dr.Web для Android является технология Origins Tracing. Интересно то, что она появилась не одновременно с рождением продукта, а была перенесена в него позднее. Уникальная технология, созданная исключительно силами сотрудников «Доктор Веб», Origins Tracing позволяет значительно увеличить способности антивируса детектировать различные виды вредоносных программ. Суть технологии в том, что для каждой угрозы создается описание алгоритма поведения, которое добавляется в антивирусную базу. Одной такой записи может быть вполне достаточно для покрытия целого семейства вредоносных приложений, за счет чего может обеспечиваться детектирование новых модификаций и версий из этого семейства без их предварительного анализа в антивирусной лаборатории. При этом существенно сокращается объем вирусной базы, так как отпадает необходимость вносить запись для каждого конкретного семпла, а именно такой метод был и является основным для многих антивирусных вендоров. Мы не можем раскрыть все секреты, однако кое-что об основных особенностях Origins Tracing расскажем.

    Для начала вспомним, как выглядит базовое приложение Android: основной программный пакет, имеющий расширение apk (например, SuperGame.apk) — стандартный zip-архив, содержащий все компоненты приложения. Внутри него находится файл AndroidManifest.xml, в котором указывается имя приложения, его версия, используемые библиотеки, сервисы, а также необходимые для работы функции; имеется цифровая подпись приложения, а также dex-файл, classes.dex — основной исполняемый код (Dalvik Executable), скомпилированный для функционирования в виртуальной машине Dalvik (Dalvik VM). Именно dex-файл представляет основной интерес, так как большинство вредоносных программ так или иначе функционирует как стандартное приложение Android — в виртуальной машине Dalvik.

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

    Рассмотрим работу Origins Tracing на примере:

    Имеется два вредоносных приложения, предназначенные для отправки платных СМС-сообщений на премиум-номера (типичные представители Android.SmsSend). На скриншоте видно, что основной исполняемый файл у них отличается по размеру (194 424 и 233 728 байт соответственно):
    image

    Согласно AndroidManifest.xml, оба приложения имеют одинаковое имя rreh.nyur и версию 1.0. Теперь рассмотрим их непосредственно на мобильном устройстве.
    image
    image
    image
    image
    image
    Оформление и функционирование обоих приложений полностью совпадает. Теперь посмотрим, как реагирует на эти программы Dr.Web для Android:
    image

    Как мы видим, название угроз при детектировании содержит приставку .origin. Это означает, что технология Origins Tracing на основании заложенных в нее критериев обнаружила очередных представителей семейства Android.SmsSend 114-го подсемейства.

    Различия в размере исполняемого dex-файла (как мы видели на первом скриншоте) у похожих вредоносных программ, таких как рассмотренные СМС-троянцы, чаще всего обуславливаются попытками вирусописателей избежать детектирования антивирусами, использующими стандартный сигнатурный метод обнаружения. Для этого могут использоваться простые приемы, например изменение имен классов, функций и переменных в исходном коде приложения. После компиляции такого кода будет получен dex-файл с измененным содержимым, которое уже не будет соответствовать имеющейся сигнатуре в вирусной базе, что, в свою очередь, может предотвратить детектирование традиционным сигнатурным способом.

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

    Еще одним преимуществом технологии является возможность обнаружения не только модифицированного, но и внедренного кода.

    Такая ситуация характерна для троянцев Android.Gongfu, Android.DreamExploid, Android.Geinimi, Android.ADRD и других. В отличие от вредоносных программ наподобие Android.SmsSend или коммерческих программ-шпионов, которые являются самодостаточными, представители этих семейств распространяются путем их внедрения злоумышленниками в легитимные приложения. Origins Tracing также справляется и с рекламными модулями, например Adware.Airpush, Adware.Startapp и др., которые сознательно интегрируются в приложения разработчиками или нечистыми на руку личностями при их модификации.

    • –2
    • 5,3k
    • 4
    Доктор Веб
    86,78
    Компания
    Поделиться публикацией

    Комментарии 4

      +2
      Спасибо за обзор!

      Появилось несколько вопросов по данной технологии:
      1) Я правильно понимаю, что технология основывается только на информации, полученной с помощью статического анализа?
      2) Насколько это (декомпиляции в промежуточный байткод) ресурсоемкая задача в контексте того, что это выполняется непосредственно на устройстве?
      3) Для описания модели есть какие-нибудь признаки связанные с SMC кодом?

        0
        спасибо вам!

        1) Да, так и есть.
        2) По нашим измерениям, внедрение этого алгоритма никак не сказалось на потребелении энергии батарейки.
        3) Конечно есть!
          +1
          Понятно.
          И еще:
          1) Поддержка *.odex? (наверно глупый вопрос)
          2) А в связи с тем что используется только статический анализ, то получается проходят time-bomb и evil-update атаки? Если вы как-то этому противодействуете, то хотелось бы услышать)
            0
            1) Да, поддержка odex есть

            2) Если для конкретной вредоносной программы имеется соответствующая запись, то она и ее модификации будут детектироваться.

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

      Самое читаемое