Перейти к содержанию
Вадим Волков

Червивые яблочки [БЕЗ JailBreak]

Recommended Posts

Вадим Волков

Лично у меня "яблочных" устройств нет, но их владельцам возможно будет интересно: 

 

Из блога компании "Digital Security"

 

Историями про вредоносное ПО для ОС Android никого уже сегодня не удивить, разве только про rootkit-технологии или про новые концепты, заточенные под новое runtime-окружение ART. C вредоносным ПО для iOS противоположная ситуация: о нем если кто и слышал, то, как правило, только в контексте jailbreak. В 2014 году был вообще бум таких программ (AdThief, Unflod, Mekie, AppBuyer, Xsser). Но в этой статье мы поговорим про вредоносное ПО и его возможности для iOS без jailbreak…
 
Давайте сразу договоримся о начальных условиях, касающихся нашего Apple-устройства:
Устройство с ОС iOS на борту;
ОС iOS последней версии;
Устройство без jailbreak.
 
....
 
Давайте рассмотрим, какие векторы атак теперь открываются перед атакующим (осведомлен – значит защищен) и вообще есть для неджейлбрейкнутых устройств.
1) Вредоносный подарочек. Просто дарят человеку устройство с предустановленным набором (дареному коню в зубы не смотрят) «полезных» программок: от безопасных мессенджеров до редакторов картинок. Для этого, как правило, берется любая хорошо известная программа из AppStore, распаковывается и расшифровывается, в нее вносится дополнительный функционал, подписывается соответствующим сертификатом и устанавливается на устройство. При этом, как вы понимаете, приложение продолжает нормально функционировать и выполнять свои первоначальные функции. Как бы ни был смешон и примитивен данный способ, нам уже известны случаи, когда подобные устройства дарили определенному кругу лиц в России.
2) Через зараженный компьютер. Устройство подключается к зараженному компьютеру, которому доверяет (с которым установлен pairing), и вредоносный код на системе устанавливает вредоносное приложение уже на мобильное устройство (например, с помощью библиотеки libimobiledevice). 
3) Пара секунд в чужих руках. Одолжить телефон злоумышленнику/недругу/ревнивой девушке на пару секунд также будет достаточно для установки на телефон вредоносной программы. Злоумышленник заранее размещает свое приложение где-нибудь в Интернете и, пока телефон у него в руках, через Safari заходит по ссылке и устанавливает его, при этом знание никаких паролей не нужно! 
4) Сам себе Буратино. Вы сами можете поставить себе приложение из какого-то стороннего источника, например, в стремлении сэкономить на покупке игры в AppStore. Насколько мне известно, так, например, в Китае (Tongbu) любят покупать, ломать игры и потом бесплатно (или дешевле) их распространять, переподписав своим сертификатом.
5) Взломанный разработчик. Вредоносный код может попасть в проект и спокойно распространиться на устройства через те же HockeyApp, Ubertesters, Fabric (Crashlytics), если они, конечно, используются. Ну или злоумышленник просто выкрадет нужные ему сертификаты у разработчика.
6) Инсайдер. Данный пункт актуален только для самих компаний, у которых есть внутренняя разработка и распространение корпоративных приложений. Проблема в том, что разработчик в такой ситуации волен использовать не только разрешенные Apple функции… но об этом чуть дальше.
7) Через уязвимость приложения. Самый красивый и самый сложный вектор атаки одновременно при минимуме подозрений. При этом приложение даже может распространяться через AppStore. Подобный концепт уже описывали в работе “Jekyll on iOS: When Benign Apps Become Evil”.
8) Благодаря уязвимости в iOS. Такое уже ранее находилось, например, исследователем Charlie Miller и позволяло ему динамически подгружать и выполнять неподписанный код на устройстве.
 
Подробнее на
 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин

Если никому не давать телефон, ставить приложения самому и только из App Store, то остаются вот эти два пункта всего:

 


7) Через уязвимость приложения. Самый красивый и самый сложный вектор атаки одновременно при минимуме подозрений. При этом приложение даже может распространяться через AppStore. Подобный концепт уже описывали в работе “Jekyll on iOS: When Benign Apps Become Evil”. 8) Благодаря уязвимости в iOS. Такое уже ранее находилось, например, исследователем Charlie Miller и позволяло ему динамически подгружать и выполнять неподписанный код на устройстве.

 

А это концепты или так и нереализованные еще вектора атаки. Поэтому пока можно не волноваться :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
bauhau2015

ненавижу Яблоки.

Дорого и бестолково!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин

Дорого и бестолково!

 

Дорого - да. А на счет бестолково можно много и безрезультатно спорить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Viktor

(7) более чем реален. Скажем, уязвимости во WebView находятся с завидной регулярностью. На WebView базируется масса приложений. Уязвимость в компоненте влечет уязвимость в приложении, построенном на нем.

 

(8): Уже не помню где, но видел данные по приблизительным стоимостям эксплойтов под различные платформы. iOS-ные были самыми дорогими. Ценник, если не изменяет память - сотни тысяч баксов. Понятно, что использовать такие эксплойты будут для большой истории, объектом атаки вряд ли будут рядовые пользователи

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин

(7) более чем реален. Скажем, уязвимости во WebView находятся с завидной регулярностью. На WebView базируется масса приложений. Уязвимость в компоненте влечет уязвимость в приложении, построенном на нем.

 

Вот хороший пример буквально в соседней ветке http://www.anti-malware.ru/forum/index.php?showtopic=30079 

http://www.anti-malware.ru/news/2015-04-22/16022

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Viktor

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

 

Ну а насчет фактических доказательств и низкого риска – кому мы с вами нужны?! Подобные уязвимости будут использоваться для целевых атак на большие организации и страны. Так что, если вас зовут не Владимир Владимирович или Дмитрий Анатольевич – не парьтесь, все-равно кроме включения мозга и использования специализированных MDM с сильной секьюрити составляющей на iOS вам ничего не поможет.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • demkd
      Иногда спрашивают, как загрузиться в командную строку без диска, я постоянно забывают дополнить Общий FAQ.
      И вот наконец-то я про это вспомнил:
      Q: Как запустить uVS с командной строки Windows без использования загрузочного диска/флешки для работы с НЕактивной системой.
         (!) Для текущей версии uVS работа с командной строки доступна только для 32-х битных систем. (что бы работало в x64 системах, нужно делать uVS x64 и это запланировано).
         1. Если у вас Windows 8 и старше, то запустите start.exe и нажмите кнопку "Перезагрузить систему в меню дополнительных параметров загрузки".
         2. Далее в меню "Поиск и устранение неисправностей->Дополнительные параметры->Командная строка"
         3. Выберите админскую учетную запись и введите для нее пароль.
         4. Запустите start.exe из каталога uVS с командной строки.
            (!) Обычно система расположена на диске D.
                Например: uVS лежит в каталоге С:\uvs (в командной строке это будет D:\uvs)
                Для запуска uVS необходимо последовательно набрать 3 команды, завершая каждую нажатием клавиши Enter.
                1. d:
                2. cd d:\uvs
                3. start.exe
         5. Выбрать каталог Windows (обычно D:\Windows).
         Если у вас Windows 7 и младше, то в меню вы можете попасть только нажав F8 при перезагрузке системы
         (!) Использовать msconfig для этого не рекомендуется, система может не загрузиться после его использования.
         Для младших систем доступен только безопасный режим с поддержкой командной строки, т.е. система будет активна.
       
    • demkd
      ---------------------------------------------------------
       4.15.5
      ---------------------------------------------------------
       o Обновлена функция трансляции переменных окружения USERPROFILE, HOMEPATH, LOCALAPPDATA, APPDATA.
         Значения этих переменных теперь зависят от того где физически находится lnk файл.
         Теперь с разбором lnk файлов будет меньше проблем, но я все же рекомендую удалять ссылки
         на отсутствующие объекты только под текущем пользователем.

       o Исправлена функция разбора путей не содержащих букву диска.

       o Исправлена функция разбора аргументов rundll32.

       o Обновлен start.exe.
         o Обновлен интерфейс.
         o Изменена кнопка по умолчанию, теперь это "запуск под текущим пользователем".
         o Исправлена ошибка: при определенных параметрах повторный запуск uVS в режиме "до запуска эксплорера" был невозможен.
         
    • Ego Dekker
      Домашние антивирусы для Windows были обновлены до версии 17.1.13.
    • demkd
      ---------------------------------------------------------
       4.15.4
      ---------------------------------------------------------
       o Обновлен интерфейс.

       o Из Ф портировано окно "История запуска процессов" для комфортного распутывания цепочек запуска и взаимодействия
         процессов с задачами.
         Доступ к окну можно получить через меню "Дополнительно->История процессов и задач".
         В первом списке отображается история запуска процессов с момента старта системы (по данным журнала Windows).
         В списке доступен фильтрующий поиск по имени, PID и фильтрация по родительскому процессу (см. контекстное меню).
         В нижнем списке отображается история воздействия процессов на задачи с момента запуска системы, а если установлен
         фильтр родительского процесса то отображаются лишь те задачи с которым взаимодействовал родительский процесс.
         (!) История доступна лишь при активном отслеживании процессов и задач (Твик #39).
         (!) История не доступна для неактивных систем.

       o Обновлен формат образа автозапуска, образы созданные v4.15.4 не будут читаться старыми версиями uVS.
         Добавлено:
          o Мгновенный срез активности процессов на момент завершения создания образа (Запустить->Просмотр активности процессов [Alt+D])
          o История процессов и задач (Дополнительно->История процессов и задач)
            (!) История доступна лишь при активном отслеживании процессов и задач (Твик #39).
          o Защита образа от повреждений.

       o Утилита cmpimg обновлена до версии 1.04 для поддержки нового формата образов автозапуска.

       o Утилита uvs_snd обновлена до версии 1.05 для поддержки нового формата образов автозапуска.

       o Теперь при подключении к удаленной системе всегда запускается "v" версия uVS, если клиентская система не младше Vista.
         На удаленной системе всегда запускается обычная версия uVS для совместимости с системами младше Vista.

       o Исправлена ошибка отображения имени процесса при работе под Win2k в окне "Активность процессов".
         (!) Английская версия uVS НЕ_совместима с Win2k, с Win2k работает только русская версия.

       o Исправлена ошибка разбора состояния TCPIPv6 соединений.
       
    • demkd
      Если пишет что файлов нет то так оно и есть, по пути в принципе видно, что их там точно быть не может.
      Проблема же в том что при запуске под SYSTEM, API windows не способен правильно разбирать некоторые ярлыки, где не указан абсолютный путь, такие ярлыки меняют цель в зависимости от того под каким пользователем работает конкретный процесс, зачем это сделал microsoft для меня загадка.
      Единственное решение - это написать api для разбора любых ярлыков с нуля и добавить еще нехилую надстройку для анализа относительных путей в них, но это довольно сложная задача и на данный момент реализована лишь в малой части и скорее всего никогда не будет реализована на 100%.
      Потому если хочется удалить ссылки на отсутствующие объекты имеющие ярлыки то нужно запускаться под текущим пользователем, проблем будет меньше... если пользователь один Все системные файлы имеют внешнюю эцп и вполне определенные имена.
×