Mobile AppSec World
4.22K subscribers
141 photos
8 videos
19 files
670 links
Новости из мира безопасности мобильных приложений, а так же интересные статьи, обзоры инструментов, доклады, митапы и многое другое...

По всем вопросам - @Mr_R1p
Download Telegram
Очень часто приходится работать и анализировать обфусцированные приложения. Это не очень удобно, сложно определить дерево вызовов и, в принципе, некрасиво 😁

Ребята из силиконовой долины (шучу, конечно, кремниевой), записали 1,5 часовой вебинар по деобфускации приложений с подробным описанием, инструкциями, плагинами и скриптами. Очень полезный и качественный материал!

Если ты ещё ни разу не пробовал, но хочешь покопаться в декомпилированном коде приложений - смотреть обязательно :)
Или, если же ты профессиональный реверсер - всё равно можно глянуть, что-то новое можно почерпнуть.

#Android #reverse #deobfuscation #analisys

https://youtube.com/watch?v=lmHkfKXuN4A
Заметки на полях 😄

Простой способ, в одну команду запустить Frida Server на всех интерфейсах в iOS:

 /bin/bash -c "$(curl -fsSL https://t.co/e62WmfexgD)"

#frida #iOS #code
Как часто вас спрашивают про безопасность мобильных приложений и просят порекомендовать что-то почитать или с чего начать? 😁

Нашёл неплохой цикл из нескольких статей про безопасность Android для разработчиков. Затронут один из самых главных вопросов - как работает шифрование и как его можно реализовать?

Достаточно верхнеуровнево, на мой взгляд, но как отправная точка - то, что нужно!

#Android #Cryptography

Часть 1:
https://medium.com/knowing-android/modern-security-in-android-part-1-6282bcb71e6c

Часть 2:
https://medium.com/knowing-android/modern-security-in-android-part-2-743cd7c0941a

Часть 3:
https://medium.com/knowing-android/modern-security-in-android-part-3-bea8cc6f984f
Вопрос, что есть в Android и практически нет в iOS? 🤓

На самом деле много чего :) Но самое интересное, на мой взгляд, это межпроцессное взаимодействие (IPC - Inter-process communication). В системе Android кажется бесшовным общение между приложениями через вызовы сервисов, запуск Activity, отправку Intent'ов и широковещательных сообщений. И это безумно удобно!

Но, как мы знаем, Android построен на базе ядра Linux и использует большое количество инструментов безопасности этой платформы. И на самом деле, вызовы из одного процесса в другой запрещены. Так как же тогда работает межпроцессное взаимодействие?

Ответ прост - в Android есть очень интересный механизм под названием Binder IPC, который представляет собой системный процесс для обмена данными между приложениями.

Есть несколько статей и документов, посвященных описанию этого механизма. Одна из этих статей как раз подойдет для тех, кто хочет разобраться, как устроен IPC процесс в Android и на чем в принципе основан Android и как он работает.

#Android #Security #IPC #Linux #binder

Часть 1 (в основном про общее строение безопасности Android и как он работает):
https://blog.hacktivesecurity.com/index.php?controller=post&action=view&id_post=46

Часть 2 (больше информации именно про устройство Binder IPC):
https://blog.hacktivesecurity.com/index.php?controller=post&action=view&id_post=48
Deep Dive into Android Binder IPC.pdf
3.1 MB
Для тех, кому интересно почитать более подробно про Binder, механизм его работы и внутренности, есть замечательный материал, который в подробнейших деталях описывает все нюансы :)

А также подробно описан механизм AIDL (Android Interface Definition Language). В буквальном переводе – язык описания интерфейсов Android. Используется для описания композиции и декомпозиции Java объектов в примитивы ОС для непосредственно передачи между процесами.

Информации много, но это того стоит, поверьте.

#Android #Binder #Security #IPC
Норвежские исследователи безопасности мобильных приложений несколько дней назад опубликовали подробную информацию о второй версии уязвимости в Android, которая позволяет подменить абсолютно любое приложение на устройстве! Без специальных разрешений, без необходимости в root-доступе, без административных прав! То есть, используя только встроенные средства Android!

Выглядит страшно 😱

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

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

Подробное видео о том, как работает эта техника и пути, как от нее можно попробовать защититься.

#Android #Vulnerability #TaskHijacking #OldStuff
​​Продолжая тему различных malware под Android 🤓

Никогда не устареет техника полного копирования интерфейса приложения с добавлением некоторого количества "дополнительного" функционала. И ведь каждый раз Google Play пропускает эти приложения 🤦‍♂️

В Индии после выпуска официального приложения от правительства, в Google Play появились десятки клонов с вирусом на борту. Если я правильно помню, несколько раз фейковые приложения набирали больше скачиваний, чем оригинал, благодаря проплаченному продвижению в топ 😃

#Android #malware #GooglePlay #Phishing
​​Решая задачу по обнаружению Jailbreak на устройствах iOS, нередко мы используем различные OpenSource проекты. Один из них, под названием IOSSecuritySuite предоставляет не только возможность определять Jailbreak, но и обнаружение отладчика (debugger), запуск приложения на эмуляторе и установленные на устройстве программы для reverse engineering.

При этом он написан на Swift, что намного более удобно для разработчиков и чуть сложнее для тех, кто эти приложения "ковыряет". 💃💃

Но что более интересно, при анализе этой библиотеки я нашел крайне занятную статью по обходу этих проверок с использованием Frida. Текст написан очень хорошо, с примерами кода и объяснением, что и зачем. Для тех, кто начинает знакомство с Frida или хочет обогатить свой набор способов обхода проверок - очень рекомендую.

#iOS #Frida #JailBreak #Swift
​​Вопрос, который нередко возникает, когда обнаружили JailBreak или root доступ на устройсте, а что дальше делать-то? 🤔

Первый вариант - запрещать работу приложения на таких устройствах.
Как мне кажется, это самый жестокий по отношению к пользователю путь. Во-первых, такой подход заставляет искать альтернативный вариант сборки этого приложения (где умельцами "отключена" проверка) на форумах и на разных сайтах в интернете. А это может повлечь за собой все, что угодно, от потери денег до 'окирпичивания" устройства. Во-вторых, это заставляет копаться в приложении более продвинутым пользователям и кто знает, что они еще там могут найти 😄

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

Третий вариант - отправлять информацию о возможной компрометации устройства на сервер.
На мой взгляд - оптимальный вариант, при котором на сервер передается статус. Но главное, чтобы он не только передавался, но и использовался. Как вариант - использовать его в системах антифрода, как один из факторов, определяющих, стоит ли подтвердить дополнительно у пользователя его действие или нет. Уведомлять ли пользователя, что он работает на взломанном устройстве или нет. Я еще для себя не пришел к какому-то окончательному выводу. Наверное, всё-таки стоит это делать, ведь пользователь может и не догадываться о наличии root или JailBreak.

Так, к чему это всё?
Вышла новая версия unc0ver, позволяющая заджейлить практически все устройства на iOS 11.0 - 13.5! 💃💃💃
И пожалуй, это лучшая новость об iOS за последнее время!

#iOS #Jailbreak #unc0ver #fraud
​​Apple продолжает радовать 🕺🕺

Простая и изящная атака на механизм аутентификации в сторонних сервисах через Apple ("Sign in with Apple"). Алгоритм очень похож на OAuth 2.0, но уязвимость позволяла войти под абсолютно любой учетной записью, зная только email 😱

За этот потрясающий в своей простоте баг исследователю заплатили 100 тысяч долларов 🤑

Пора идти ковырять Apple :)

#iOS #ZeroDay #Vulnerability
​​Ещё одна очень неплохая и динамично развивающаяся система для анализа мобильных приложений - Mobexler

Представляет собой виртуальную машину с предустановленным набором различного софта для пентеста мобильных приложений, как для Android, так и для iOS. Включает в себя такие утилиты, как Android Studio, BurpSuite, Frida, MobSF, Mara Framework, Objection, Drozer и многие другие.

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

Надеюсь, что это проект будет развиваться дальше и не загнется, как остальные попытки сделать что-то похожее.

#iOS #Android #Tools
​​Исправляешь найденный дефект в приложении, выпускаешь релиз, радуешься, отмечаешь успех 🥳🥳
Через какое-то время в этом же компоненте находят уже другой баг, ты его исправляешь и радуешься, но.. После фикса новой баги, снова повторяется предыдущая, о которой ты уже успел забыть!

Знакомая ситуация, правда? 😄

Вот и у компании Apple абсолютно так же, закрыв новую уязвимость, они переоткрыли уязвимость 2018 года 🙈

В этом посте обратите внимание на ссылки, которые ведут на первые статьи, подробно описывающие эксплуатацию и причину возникновения уязвимости, очень интересно! Еще занятно, что разработчики Jailbreak используют методы обфускации и защиты своих разработок, чтобы вендор не смог определить, что именно и как они эксплуатируют! Вот у кого нужно поучиться защите :D

#iOS #Jailbreak #Vulnerability #Apple
​​Недавно я рассказывал о чеклистах и стандартах по безопасности мобильных приложений от OWASP. К большому сожалению, они одни из немногих, кто выпускают подобные материалы. Если чеклистов по безопасности Web-приложений можно найти огромное количество на любой вкус, то в случае с мобильными приложениями всё несколько хуже.

Иногда всё-таки мне встречаются альтернативные списки требований для мобильных приложений, которые я буду выкладывать по мере нахождения, надеюсь, они пригодятся кому-то :) Из всех доступных стандартов можно составить список требований, который будет адресован именно вашим приложениям 🤓

#MASVS #OWASP #Checklist #Standart
​​И еще немного в копилку Malware под Android...

Несколько приложений для сканирования QR-кодов с более чем миллионом скачиваний 🙈🙈 были заражены трояном, который раз в 15 минут запрашивал информацию с сервера и показывал рекламу.

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

Так что не стоит забывать, что из магазина Google Play тоже можно заразиться вирусом (Google Play Protect, к сожалению, далёк от идеала) и количество скачиваний приложения не всегда является показателем того, что приложение безопасно.

#Android #Malware #Report
​​Продолжая тему вредоносов, как определить, что на самом деле содержит в себе Android-приложение, которое вы скачали?

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

Для Android-приложений есть похожие вещи и они даже доступны в OpenSource. Первый из них, основанный на очень популярной системе, в простонародье называемой "Кукушка" (Cuckoo). Этот инструмент имеет ответвление в виде специального дистрибутива для анализа Android-приложений - CuckooDroid. К сожалению, он достаточно давно не развивается, но до сих пор показывает неплохие результаты и им можно пользоваться.

Судя по разговорам в комьюнити и некоторых заметках в документации, вполне возможно, что в ближайшее время возможность анализа Android-приложений появится в основном продукте. Очень жду этого, чтобы потестировать 😁

Про второй продукт расскажу в следующих постах, оставайтесь с нами 🤓
Второй инструмент - Quark. Он использует совершенно другой принцип, не запускает анализируемое приложение, а пытается декомпилировать и по собственным правилам (которые можно дописывать или украсть подглядеть на просторах интернета) определяет, насколько приложение похоже на вредонос.

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

quark -a sample/14d9f1a92dd984d6040cc41ed06e273e.apk -r rules/ -s

И буквально через несколько минут получить результат.

Кстати, есть еще одна форма этого инструмента - для поиска уязвимостей в приложении, но уже совсем другая история и, может быть, я когда-то о нём напишу 😃

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

#Android #Malware #Research #Tools
​​Мир захватили QR-коды 😬
Они везде, даже в виде пропуска на выход из дома)

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

При анализе приложений мы всегда исследуем этот функционал и достаточно часто находим там проблемы. Помогает в этом несколько open source решений для генерации зловредных кодов: QRGen и Scansploit

Всего в несколько команд можно сгенерировать пачку QR или Barcode, содержащих любые пейлоады.

Очень удобно, единственное, сканировать их потом устаешь :))

#Android #iOS #Tools #analisys
Сейчас практически все мобильные приложения, которые хоть как-то оперируют важной для пользователя информацией, защищены паролем и, для удобства использования, pin-кодом.

Но вечный вопрос безопасности и удобства, какую длину pin-кода выбрать,чтобы было и удобно и безопасно? И нужно ли запрещать использование простых кодов, вроде 0000?

Наткнулся на интересное исследование, которое пытается эти вопросы разрешить 🤓 Ребята проверили, какой список запрещенных пинов использует Apple, соорудив конструкцию из айфона, лего и распберри с камерой, и как подобные списки влияют на безопасность.

Выводы очень неоднозначные, но точно интересные. Согласно результатам исследования, использование 6-значных pin-кодов вместо 4-значных практически не повышает безопасность и более того, может даже снизить ее. В статье можно скачать само исследование, все участвовавшие черные списки, а так же посмотреть выступление.

#Pin #Security #Research

https://this-pin-can-be-easily-guessed.github.io/
​​Обожаю ElcomSoft за их статьи. Спасибо, ребята! Вы правда крутые 😄

Во многих, конечно, есть реклама их продуктов, но при уровне полезности материала это можно простить)

Отличная статья с детальным разбором секьюрного мессенджера "Confide". Как он хранит данные, каким способом и что шифрует, какие способы защиты использует. Всё это описано с примерами кода, конкретными функциями и алгоритмами!

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

Ну, и, конечно, очень классный вывод в конце: "Если говорить о балансе между удобством и безопасностью, Confide - это примерно 110% безопасности и минус 10% удобства". 😂

#iOS #Applications #Messenger #Analysis
​​Уже несколько лет внутри Google разрабатывается проект новой операционной системы - Fuchsia. Вокруг этого проекта огромное количество слухов, есть мнение, что он заменит собой Android или что это просто развлечение для разработчиков, что бы им не было скучно. Что это будет на самом деле, не ясно, так как Google хранит таинственное молчание 🤔

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

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

И что еще интересно - в процессе разработки для повышения безопасности практически каждый модуль проверяется не только юнит тестами, но и фаззингом (libfuzzer и syzkaller). 😎

#Android #Fuchsia #Vulnerabilities #Research