Русский
Русский
English
Статистика
Реклама

Мессенджер

Signal Взлом Cellebrite с атакованного устройства

25.04.2021 02:04:46 | Автор: admin

Компания Cellebrite производит программное обеспечение для автоматизации извлечения и индексирования данных с мобильных устройств. Они работают в "серой" зоне, где корпоративный брендинг идёт бок о бок с "цифровой разведкой", если конечно можно так называть воровство.

В список их клиентов входят авторитарные режимы в Беларуси, России, Венесуэле и Китае; отряды смерти в Бангладаше; военные хунты в Мьянме; а также те, кто жаждет насилия и гнёта в Турции, ОАЭ и других странах.

Несколько месяцев назад они объявили, что добавили в своё программное обеспечение поддержку Signal.

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

Предыстория

Во-первых, всё, что касается Cellebrite, начинается с того, что кто-то другой уже держит ваше устройство в руках. Cellebrite не осуществляет перехвата данных или удалённого наблюдения. Их основных программных продукта два (и оба для Windows): UFED и Physical Analyzer (физический анализатор).

UFED создаёт резервную копию вашего устройства на машине под управлением Windows (по сути, это фронтенд для adb backup на Android и резервной копией от iTunes на iPhone, с извлечением некоторых дополнительных данных). После создания резервной копии, Physical Analyzer затем разбирает файлы из резервной копии, чтобы отобразить данные в обозримом виде.

Когда компания Сellebrite объявила, что они добавили поддержку мессенджера Signal, это на самом деле означало то, что в Physical Analyzer они добавили поддержку для форматов файлов, используемых Signal. Это позволяет Physical Analyzer отображать данные мессенджера, которые были извлечены из разблокированного устройства, находящегося в физическом владении пользователя Cellebrite.

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

В нужное время, в нужном месте...

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

Внутри него мы нашли последние версии программного обеспечения Cellebrite, железный замочек, предназначенный для предотвращения пиратства (это кое-что говорит о их клиентах, наверное), и необычайно большое количество переходников и адаптеров для кабелей.

Кейс Cellebrite на обочине дороги.Кейс Cellebrite на обочине дороги.

Программное обеспечение

Любой, кто знаком с программной безопасностью, сразу поймёт, что основно задачей программного обеспечения Cellebrite является анализ "ненадёжных" ("untrusted") данных из самых разных форматов, используемых различными приложениями. То есть, данные, которые программное обеспечение Cellebrite должно извлекать и отображать, в конечном счёте, генерируются и контролируются приложениями на устройстве, а не "доверенным" источником, поэтому Cellebrite не может делать никаких предположений о "правильности" упорядоченных данных, которые он получает. Вот в этом месте возникают практически все уязвимости в безопасности.

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

Однако, глядя на UFED и Physical Analyzer, мы были удивлены, обнаружив, что, кажется, очень мало заботы было уделено безопасности собственного программного обеспечения Сellebrite. Отраслевые стандарты защиты от эксплойтов отсутствуют, и есть много разных возможностей для эксплуатации.

В качестве лишь одного примера (не связанного с тем, что следует далее), их программное обеспечение укомплектовано с библиотеками FFmpeg, которые были скомпилированы ещё в 2012 году, и в дальнейшем не менялись. За это время было выпущено более ста обновлений безопасности для FFmpeg, ни одно из которых не было применено в Сellebrite.

Уязвимости в FFmpeg по годам.Уязвимости в FFmpeg по годам.

Уязвимости

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

Например, таким образом можно выполнить код, который модифицирует не только созданный в этом сканировании отчёт Сellebrite, но и все предыдущие и будущие отчёты Cellebrite со всех ранее отсканированных устройств, а также со всех будущих устройств любым произвольным способом (вставляя или удаляя текст, электронную почту, фотографии, контакты, файлы или любые другие данные), без каких-либо обнаруживаемых изменений временных меток или сбоях в проверках контрольных сумм. Это даже может быть сделано случайным образом, что серьёзно подставит под сомнение целостность данных в отчётах Cellebrite.

Любое приложение может содержать такой файл, и до тех пор, пока Cellebrite не сможет точечно устранить все уязвимости в своём программном обеспечении, с чрезвычайно высокой степенью уверенности можно сказать, что единственное средство, которое есть у пользователя Cellebrite - это не сканировать устройства. Cellebrite может снизить риск для своих пользователей, обновив их программное обеспечение, чтобы прекратить сканирование приложений, которые Сellebrite посчитает очень рискованными для такого типа проблем целостности данных, но даже это не является гарантией.

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

Ниже приведён пример видео эксплойта для UFED (аналогичные эксплойты существуют и для Physical Analyzer). В видео, UFED достигает файла, который выполняет произвольный код на машине Cellebrite. Этот эксплойт использует MessageBox в Windows API, чтобы отобразить диалоговое окно с сообщением. Это делается в демонстрационных целях; можно выполнить любой код, и реальный эксплойт, скорее всего, попытается скрытным образом изменить предыдущие отчёты, подорвать целостность будущих отчётов (возможно, случайным образом!) или извлечь данные с машины Cellebrite.

Авторское право

Ещё, из интересного, установщик для Physical Analyzer содержит два пакета установщиков MSI под названием AppleApplicationsSupport64.msi и AppleMobileDeviceSupport6464.msi. Эти два пакета MSI имеют цифровую подпись Apple и, кажется, были извлечены из установщика для Windows программы iTunes версии 12.9.0.167.

MSI-пакеты.MSI-пакеты.

Программа установки Physical Analyzer устанавливает эти MSI-пакеты на C:\Program Files\Common Files\Apple. Они содержат библиотеки (DLL), реализующие тот функционал, который iTunes использует для взаимодействия с iOS устройствами.

DLL-библиотеки, установленные в систему.DLL-библиотеки, установленные в систему.

Cellebrite iOS Advanced Logical Tool загружает эти библиотеки Apple и использует их функциональность для извлечения данных с мобильных устройств на базе iOS. На скриншоте ниже показано, что библиотеки от Apple загружаются в процесс UFED iPhone Logical.exe, который является именем для процесса iOS Advanced Logical Tool.

DLL-библиотеки, загруженные в процесс.DLL-библиотеки, загруженные в процесс.

Нам кажется маловероятным, что Apple предоставила Сellebrite лицензию на повторное распространение и включение собственных библиотек в продукты Cellebrite, так что этот факт может понести за собой определённые юридические риски для Сellebrite и их пользователей.

Совершенно не связанное

По странному совпадению, будущие версии мессенджера Signal будут периодически загружать файлы для размещения в хранилище приложения (App Storage). Эти файлы никогда не используются ни для чего внутри Signal и никогда не взаимодействуют с самим мессенджером или данными, но они просто выглядят эстетично, а эстетика в программном обеспечении важна.

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

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

Подробнее..

Недоумение про ещё один корпоративный чат или как сделать приятно всем

21.06.2021 12:17:59 | Автор: admin

На рынке мессенджеров сейчас есть примерно всё, как на Привозе. Есть решения на открытом коде, есть мессенджеры с миллиардом пользователей (или даже двумя). Но четкого понимания, что же взять с прилавка, чтоб все сотрудники огромного банка (и его 300+ дочек) с улыбкой открывали какой-то один и это всё проходило бы под требования по безопасности, у меня не сложилось.

Но жаловаться на несовершенство этого мира, недостижимость идеалов и тщетность бытия бесполезно. Поэтому перейдём к требованиям. Что хочет очень большая организация?

Чтоб было безопасно. Т.е. чтоб не просто data scientist модный в шортиках из одной американской/китайской/российской компании не мог в рамках своих задач узнать что-то полезное, а даже рядовой админ банка не смог увидеть или унести переписку одного уважаемого человека с другим. Даже в качестве картинки. Даже на свой админский супер-защищённый комп. Следовательно, оно должно быть self-hosted разворачиваемо отдельно и полностью контролируется исключительно теми, кому положено следить и зарплату за это платят. Ещё нужно подключиться к системам, отвечающим за безопасность передаваемого контента. Ещё нужно иметь в руках команды сопровождения все возможные рычаги, чтобы нерадивого пользователя можно было ограничить в желании другому пользователю передавать то, что не положено.

Чтобы было удобно. Сейчас на дворе 2021 год. Но даже закачать справочник пользователей или синтегрить с корпоративной телефонией банка что-то это уже подвиг на грани фантастики. И удивлению моему не было предела тот же slack обладает пользовательским интерфейсом, который физически невозможно объяснить курьеру из доставки подавай ему пользовательский интерфейс ala telegram. И желательно с видео конференциями встроенными. И прям очень нужен голосовой виртуальный ассистент, голосом удобнее. Ещё невозможно объяснить человеку, у которого есть одновременно два телефона, планшет и два компьютера почему ему нужно выбрать, где же можно работать с этим мессенджером, а где остаться без мессенджера. Ну и зачем каждый раз свой номер телефона светить не ясно.

Чтобы было удобно для внутренних коммуникаций. Тут приходят умные люди из разных отделов, департаментов и цельных предприятий и говорят нам возможность узконаправленных рассылок нужна. Таргетированных, как это модно называть. По полу, по городу, по региону, по подразделению, по должности и т.д. И в этот момент все open-source решения для чатов (а их только на github больше 2100 штук) куда-то деваются. Остаются те, кто реально зарабатывает. Но первый пункт не выполняется.

Чтобы развитие продукта помогало бизнесу, а не мешало всем подряд. Удивительно, но с этой точки зрения почти никто не смотрит. Сколько времени сотрудник тратит на поиск телефона в адресной книге где-то там, потом нужно найти телефон, чтобы позвонить и на этом телефоне набрать 11 заветных цифр. И выяснить, например, что номер с ошибкой. Гораздо удобнее нашёл ФИО, посмотрел фото и сразу набрал. Нужно ещё двоих подключить аналогично набрал и добавил. И никакой музыки от абонента, которому кто-то в это время позвонил, портящей всем 114 остальным участникам совещания не только настроение. 2021 на дворе. И чтоб если нужно любой модуль за месяц прикрутить можно было. Ну хорошо, иногда за два

Отсутствие зависимости от вендора и его капризов. Если ты маленькая организация из 50 человек (а по статистике таких ох как много), тебе нужно решение готовое. Даже когда 3000 человек нужно обслужить вопрос даже не стоит идёшь и выбираешь решение. Можно даже покапризничать и тендер объявить. А если у тебя 400 000 сотрудников? А если миллион планируется? Тут и вендоров вечных с хорошим SLA мало, и возможности их контролировать тоже не велики. Или вендор маленький и может случайно помереть при очередном кризисе или принятии закона/уехать ему понадобится всей командой, или вендор большой, но его мало интересуют проблемы конкретного клиента у него самого может быть 40 000 сотрудников и 1000 таких же клиентов по миру.

Казалось бы каждое из этих пяти требований по отдельности легко покрывается тысячами продуктов. Если взять и выкинуть одно тоже есть десятки. А вот всё вместе и сразу можно только самим мучительно делать. Чем и занимаемся. И вас зовём.

Ну и на всякий случай сошлюсь на бородатые требования одного habrовода (http://personeltest.ru/aways/habr.com/ru/post/405887/ - их мы тоже учли и удовлетворили): кроссплатформенность. Чтоб я наконец-то мог сидя на обеде, или в транспорте, или в отпуске кому-то что-то написать с телефона, да и узнать, что мне кто-то написал. И чтоб мой коллега, у которого Линукс, не делал каждый раз печальное лицо при слове чат. заточенный под общение в компаниях. Чтоб у меня был чат, где есть все мои коллеги и только мои коллеги живой активный проект. Чтобы баги, как застывшие в янтаре насекомые, не висели в продукте до конца времён передача файлов. Ну зачем мне заливать эту картинку в общую папку, если я просто могу кинуть её через чат! нормальная синхронизация уведомлений / непрочитанного. Чтобы не как в Скайпе словил сообщение, и потом в течение 24 часов находишь уведомление о нём на каждом своём девайсе.

Продолжение следует.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru