Привет, Хабр!
Меня зовут Юрий Шабалин, я один из основателей компании "Стингрей Технолоджиз" (входит в группу компаний Swordfish Security), мы разрабатываем платформу анализа защищенности мобильных приложений iOS и Android.
По долгу службы мы подписаны на большое количество ресурсов и прорабатываем все статьи и материалы, которые относятся к теме мобильной безопасности. Самым главным и интересным мы хотим поделиться с вами. Материал будет полезен всем, кто следит за появлением новой информации о способах поиска уязвимостей, о разработке новых инструментов, и в целом интересуется безопасностью мобильных приложений.
Оглавление
Вступление
Здесь собраны материалы, которые могут быть полезны с практической точки зрения. Из них можно узнать о новых способах атак на приложения, прочитать о новых уязвимостях, изучить, как работают механизмы операционной системы и т.д. Для удобства все материалы, которые есть на русском языке, выделены в подпункты. Для простоты навигации есть оглавление, все ссылки спрятаны под раскрывающиеся элементы.
iOS Security Awesome
В этой подборке - материалы по безопасности iOS-приложений, различные статьи, исследования, инструменты анализа и полезные библиотеки для обеспечения безопасности.
Инструменты анализа
Все, что может пригодиться при анализе приложений: различные библиотеки, модули для поиска уязвимостей, целые фреймворки и системы.
Ссылки
Инструменты защиты
Библиотеки, которые могут помочь при разработке приложения.
Ссылки
EllipticCurveKeyPair - библиотека для удобной работы с SecurityEnclave
Уязвимые приложения
Здесь - о различных CTF и о том, как их проходить. Все это поможет попрактиковаться и понять, какие уязвимости могут быть в iOS-приложениях и как их искать. Пока что и сами задания, и прохождения объединил в один пункт. Когда их станет больше, можно будет разделить (как это сделано для Android).
Ссылки
Видео
Здесь собраны все видео, имеющие отношение к безопасности iOS. Пока что я нашел только англоязычные материалы, но надеюсь, что в дальнейшем добавятся и на русском языке.
En
Ссылки
Статьи
В этом блоке - разнообразные статьи и материалы по iOS. Русскоязычные и англоязычные - отдельно. Блок со статьями, относящимися к Frida, - в отдельном разделе, поскольку сегодня это, наверное, самый распространенный фреймворк для тестирования. Наверняка полезно посмотреть, как он применяется на реальных приложениях.
Ru
Ссылки
En
Ссылки
Frida
Прочее
Return of the ios sandbox escape: lightspeeds back in the race
Extracting and Decrypting iOS Keychain: Physical, Logical and Cloud Options Explored
Tales of old: untethering iOS 11-Spoiler: Apple is bad at patching
Messenger Hacking: Remotely Compromising an iPhone through iMessage
Trust in Apple's Secret Garden: Exploring & Reversing Apple's Continuity Protocol-Slides
Mobile security, forensics & malware analysis with Santoku Linux
ASLR & the iOS Kernel — How virtual address spaces are randomised
Jailbroken iOS can't run macOS apps. I spent a week to find out why.
Reverse Engineering Starling Bank
Proxying is not the only way to monitor network traffic on your iOS mobile apps
Forensic guide to iMessage, WhatsApp, Telegram, Signal and Skype data acquisition
Reverse Engineering Snapchat (Part I): Obfuscation Techniques
Reverse Engineering Snapchat (Part II): Deobfuscating the Undeobfuscatable
Instagram_RCE: Code Execution Vulnerability in Instagram App for Android and iOS
Pentesting Non-Proxy Aware Mobile Applications Without Root/Jailbreak
Android Security Awesome
В данном разделе собраны материалы по безопасности Android-приложений, включая различные статьи, исследования, инструменты анализа и полезные библиотеки для обеспечения безопасности приложений.
Инструменты анализа
Этот блок разбит на несколько частей. Сначала можно увидеть общие решения для анализа и поиска уязвимостей. Некоторые из них пересекаются с инструментами для iOS, потому что среди них встречаются универсальные фреймворки (но таких немного).
После идут инструменты, применяемые для динамического анализа (необходимо запускать приложение на реальном устройстве или эмуляторе).
Ну и последним пунктом - инструменты, доступные online, используя которые, можно загрузить файл приложения и получить через некоторое время результат.
Общие
Ссылки
Pithus (github) - free and open-source platform to analyze Android applications
QARK - An Obfuscation-Neglect Android Malware Scoring System
InjectFakeSecurityProvider - print the key, key size, algorithm parameters, keystore password in logcat
fridroid-unpacker - Defeat Java packers via Frida instrumentation
CheckKarlMarx - Security проверки для релизных сборок
Droid Hunter – Android application vulnerability analysis and Android pentest tool
Find Security Bugs – A SpotBugs plugin for security audits of Java web applications.
Vector Attack Scanner – To search vulnerable points to attack
Android Check – Static Code analysis plugin for Android Project
Setup for i0S and Android Application Analysis - This is a cheatsheet to install tools required for i0S and Android application pentesting
Динамический анализ
Ссылки
Android Hooker - Opensource project for dynamic analyses of Android applications
AppAudit - Online tool ( including an API) uses dynamic and static analysis
Marvin - Analyzes Android applications and allows tracking of an app
PATDroid - Collection of tools and data structures for analyzing Android applications
AndroL4b - Android security virtual machine based on ubuntu-mate
Radare2 - Unix-like reverse engineering framework and commandline tools
Cutter - Free and Open Source RE Platform powered by radare2
ByteCodeViewer - Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger)
Онлайн-анализаторы
Инструменты защиты
Библиотеки, которые могут помочь при разработке приложения.
Ссылки
Уязвимые приложения
Различные уязвимые приложения, на которых можно потренироваться в анализе и посмотреть, какие проблемы безопасности вообще бывают.
CTF
Здесь - большая подборка всевозможных CTF-приложений. Как правило, они намного сложнее, чем уязвимые приложения из предыдущего раздела, и используются на различных соревнованиях на конференциях по безопасности.
Очень полезно бывает самому проходить такие CTF или повторять действия, описанные в прохождении, чтобы набить руку и подсмотреть несколько новых приемов анализа.
Ссылки
Прохождение CTF
Описания прохождения различных CTF очень полезны с точки зрения механики анализа. В некоторых статьях присутствуют и сами приложения, на которых можно потренироваться.
Ru
En
Ссылки
Solving CTF with Frida
H@cktivityCon 2021 CTF
Cellebrite 2021 CTF – Investigating Heisenberg’s Android Device
H@cktivitycon 2021 — Mobile challenge writeup
STACK the Flags 2020: Mobile Challenges Write Up
Google CTF 2020: Android
Reverse engineering and modifying an Android game (.apk) — CTF
BsidesSF CTF - Challenge
8st SharifCTF Android WriteUps:
Видео
Большая подборка различных видео, начиная от обучающих, заканчивая докладами с различных конференций. Там, где это актуально, сразу приложены ссылки на материалы (слайды, репозитории и т.д.).
Ru
Ссылки
En
Ссылки
Подкасты
В отдельную категорию выделил подкасты. В некоторых по Android мне даже удалось принять участие.
Ru
Ссылки
En
Статьи
Это самый большой раздел из всех. Здесь представлены статьи по различным темам, касающимся безопасности Android. Отдельно собраны все русскоязычные материалы, а также статьи с использованием Frida.
Ru
Ссылки
En
Ссылки
Frida
How to hook Android Native methods with Frida (Noob Friendly)
Android Root Detection Bypass Using Objection and Frida Scripts
Другие
OWASP Top 10: Static Analysis of Android Application & Tools Used
Why dynamic code loading could be dangerous for your apps: a Google example
Arbitrary code execution on Facebook for Android through download feature
Evernote: Universal-XSS, theft of all cookies from all sites, and more
TikTok: three persistent arbitrary code executions and one theft of arbitrary files
Oversecured automatically discovers persistent code execution in the Google Play Core Library
Android: arbitrary code execution via third-party package contexts
24,000 Android apps expose user data through Firebase blunders
Android IPC: Part 2 – Binder and Service Manager Perspective
Towards Discovering and Understanding Task Hijacking in Android
Reversing an Android app Protector, Part 1 – Code Obfuscation & RASP
Reversing an Android app Protector, Part 2 – Assets and Code Encryption
Reversing an Android app Protector, Part 3 – Code Virtualization
MMS Exploit Part 1: Introduction to the Samsung Qmage Codec and Remote Attack Surface
Dynamic analysis of apps inside Android Cloning apps
Tik-Tok App Analisys
Exploiting Android Messengers with WebRTC
quark-engine - An Obfuscation-Neglect Android Malware Scoring System
GEOST BOTNET - the discovery story of a new Android banking trojan
Zero to Hero - Mobile Application Testing - Android Platform
Hack crypto secrets from heap memory to exploit Android application
A Special Attack Surface of the Android System (1): Evil Dialog Box
Android Application Testing Using Windows 11 and Windows Subsystem for Android
Forensic guide to iMessage, WhatsApp, Telegram, Signal and Skype data acquisition
Reverse Engineering Snapchat (Part I): Obfuscation Techniques
Reverse Engineering Snapchat (Part II): Deobfuscating the Undeobfuscatable
Instagram_RCE: Code Execution Vulnerability in Instagram App for Android and iOS
Pentesting Non-Proxy Aware Mobile Applications Without Root/Jailbreak
Android 13 deep dive: Every change up to DP2, thoroughly documented
Заключение
Наиболее интересные материалы я публикую в своем Telegram-канале Mobile AppSec World. Но нередко приходится искать в истории канала, чтобы повторно прочитать или ответить на чей-то вопрос. Это не очень удобно и бывает непросто найти нужный пост. В связи с этим, я решил оформить все материалы в несколько репозиториев Awesome Android Security и Awesome iOS Security. К сожалению, нельзя уследить за всем, что происходит в мире. Поэтому, если я что-то пропустил и у вас есть, что добавить, смело отправляйте Pull Request!
Основная проблема таких подборок - в том, что они не обновляются. Мне хотелось бы избежать подобной участи, поэтому все материалы, что я прорабатываю, будут появляться в репозиториях в конце недели.
Также, я планирую делать подборку материалов в режиме новостей, что было интересного за неделю в мире мобильной безопасности. Посмотрим, насколько такой формат покажется интересным и полезным.
Всем хорошей недели и полезного чтения!