Upload
codefest
View
362
Download
0
Embed Size (px)
Citation preview
Комбайны безопасности для
iOS и Android Дмитрий Евдокимов
Директор исследовательского центра
Digital Security
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security © 2002—2016, Digital Security
#whoami • Исследователь информационной безопасности в Digital Security
• Редактор рубрики в журнале Xakep
• Один из организаторов конференций DEFCON Russia и ZeroNights
• Специализируюсь на поиске уязвимостей в бинарных приложениях без исходного кода
• Анализ мобильных приложений для Android, iOS, WindowsPhone
• Докладчик на конференциях в Польше, Франции, Испании, Германии, ОАЭ, Мексики
2
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
План
• Взгляд на безопасность мобильных приложений
• Пентест мобильных приложений
• Инструменты для оценки безопасности мобильных приложений
• Комбайны безопасности
• Заключение
3
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Мобильные приложения в нашей жизни
4
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
…
Ломается там, где тонко
Безопасность системы определяется уровнем безопасности ее самого слабого звена.
5
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Когда нужно задумываться о безопасности?
6
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Безопасное программирование для Android • Android Secure Coding Standard from CERT
• https://www.securecoding.cert.org/confluence/display/android/Android+Secure+Coding+Standard
• The CERT Oracle Secure Coding Standard for Java
• 19 пунктов
• https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=111509535
• Analysis of Android Applicability: CERT's Java Coding Guidelines
• 75 рекомендаций • https://www.securecoding.cert.org/confluence/display/java/Analysis+of+Android+Applicability%3A+CERT%27s+Java+Coding+Guidelines
• Security Tips from Android • http://developer.android.com/training/articles/security-tips.html
7
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Безопасное программирование для iOS • Secure Coding Guide from Apple
– Для Mac и iOS
– https://developer.apple.com/library/ios/documentation/Security/Conceptual/SecureCodingGuide/SecureCodingGuide.pdf
• IOS Developer Cheat Sheet – Советы от OWASP для iOS
– https://www.owasp.org/index.php/IOS_Developer_Cheat_Sheet
8
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Server
Device/Emulator
Data channel App
3d party Server
App
Анализ безопасности мобильных приложений
9
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
WP7 (C#/VB)
WP8 (C#/VB/C/C++) iOS
(Objective-C)
Android
(Java)
Платформа независимые
уязвимости Платформа зависимые
уязвимости
Уязвимости WP vs. Android vs. iOS
10
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Проблемы frameworks
• А что там под капотом? Что там с безопасностью?
• Apache Cordova/PhoneGap • Cross-Application Scripting – выполнение вредоносного JS в контексте Cordova-based приложения
• http://cordova.apache.org/announcements/2014/08/04/android- 351.html
• Titanium • RCE + отсутствие проверки сертификата
• http://www.appcelerator.com/blog/2012/11/the-titanium-sdk-andcertificate-validation/
• Xamarin • Android <5.1 DLL Hijack Vulnerability
• http://seclists.org/fulldisclosure/2015/May/78
• …
11
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Пример: Кошмар Adobe AIR
• Adobe AIR’s EncryptedLocalStorage API
• На деле это Base64 …
• Это не шифрование!
12
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
OWASP Top 10 Mobile Risks
13
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
*список не полный Что делает* пентестр? 1) Настраивает приложение и окружение для анализа
1) Загрузка приложения 2) Расшифровка приложения (iOS) 3) Создание отладочной версии приложения
2) Статический анализ приложения 1) Декомпиляция 2) Поиск не безопасных участков кода 3) Реверс инжиниринг
• Анализ логики работы приложения 3) Динамический анализ приложения
1) Анализ сетевого трафика и IPC 2) Анализ серверной стороны 3) Фаззинг приложения
4) Создание PoC (Proof-of-Concept) эксплоитов для найденных проблем 5) Написание отчета (проблемы, угрозы, решения, рекомендации и т.д.)
14
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Pentest tools
• adb, fsmon, APKStudio, Droidbox, adbi, jeb, AndroidEagleEye, Lobotomy, bytecode-viewer, APKtool, Enjarify, Dex2jar, FlowDroid, smalisca, Inspeckage, radare2, Android Cluster Toolkit, Amandroid, Hooker, GikDbg, iRET, sira, APKinspector, Fino, android-ssl-bypass, itunnel_mux, otool, clutch, idb, Dumpdecrypted, class-dump-z, IPA, iNalyzer, gdb, cycript, Frida, trustme, keychaindumper, BinaryCookieReader, IDA Pro и т.д.
15
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security © 2002—2016, Digital Security
Специализированные ОС • Appie - https://manifestsecurity.com/appie/ - Android Pentesting Portable Integrated
Environment
• Android Tamer - https://androidtamer.com/ - Virtual/Live Platform for Android
• AppUse - https://appsec-labs.com/AppUse/ - VM for Assessing Android applications
• Androl4b - https://github.com/sh4hin/Androl4b - VM for Assessing Android applications, Reverse Engineering and Malware Analysis
• Mobisec - http://sourceforge.net/projects/mobisec/ - Live environment for security testing Android apps
• Santoku - https://santoku-linux.com/ - OS/VM for Mobile Forensics (+iOS), Mobile Malware Analysis, Mobile Security Testing for
• Vezir Project - https://github.com/oguzhantopgul/Vezir-Project - VM for Mobile Application Pentesting and Mobile Malware Analysis for Android
16
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Комбайны ?!
Комбайн безопасности – инструмент, который подсказывает, что и где в
приложении что-то не так с точки зрения информационной безопасности без особых первоначальных знаний в ИБ.
17
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Общие моменты • Все инструменты бесплатные
– Часто с открытым исходным кодом
• Большинство инструментов созданы для пентестеров – То есть без надежды, что будет исходный код
• Для iOS часто нужно устройство с Jailbreak – Порой с версией 8.x, а не 9.x
• Нацелены на клиентскую часть
• Не все делают статический и динамический анализ
18
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://labs.mwrinfosecurity.com/tools/drozer/
drozer • Клиент серверной приложение
• Win/Lin/Mac
• Устройство/эмулятор
• Написан на Python и Java
• CLI
• Динамические проверки
• Нацелен для проверки IPC
• Поддержка модулей
Очень мощный инструмент для динамического анализа, но требует много ручной работы, которую можно заскриптовать. Может помочь сделать PoC.
19
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://code.google.com/archive/p/asef
Позволяет быстро посмотреть на сетевой трафик и поведение программы. Больше подходит для анализа вредоносного кода.
Android Security Evaluation Framework • Клиент серверной приложение
– Mac/Linux
– Эмулятор
• CLI
• Написан на Perl и Bash
• Эмитирует нажатия
• Захват сетевого трафика
• Давно не обновлялся (2012)
20
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://github.com/LINKEDIN/QARK
Очень хороший инструмент с качественным результатом. Самое то для разработчика, заботящегося о безопасности своего приложения.
• CLI interactive
• Linux/Mac
• Написан на Python
• В основе много сторонних инструментов
• Хороший набор проверок (~17)
• Может работать с APK и исходным кодом
• Генерирует PoC
• Генерирует HTML отчет
Quick Android Review Kit
21
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://github.com/programa-stic/marvin-django
Очень хороший инструмент с хорошим результатом. Удобное средство для проверки, но не просто в разворачивании.
Marvin • Web интерфейс
• Ролевая модель
• Linux/Mac
• Набор эмуляторов
• Написан на Python
• В основе лежит SAAF и AndroGuard
• Большой набор проверок (~47)
• Есть проверки для PhoneGap
• Взаимодействие с GooglePlay
• Часть интерфейса на испанском ...
22
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://github.com/AndroBugs/AndroBugs_Framework
Очень хороший инструмент с качественным результатом. Самое то для разработчика, заботящегося о безопасности своего приложения.
AndroBugs Framework • Win/Lin/Mac
• Написан на Python
• CLI
• В основе AndroGuard
• Статические проверки
• Очень хороший набор проверок (~45)
• Нацелен на массовое сканирование
• Есть рекомендации по исправлению
• Хранит результаты в БД
• Легко расширяем
23
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://code.google.com/p/snoop-it/ или в Cydia (http://repo.nesolabs.de/)
Больше подходит для пентесетров, но есть ряд проверок, помогающий подтвердить проблему в динамике. Можно просто посмотреть на свое приложение глазами пентестера.
Snoop-it • Web интерфейс
• Win/Lin/Mac
• JB устройство
• Около 10 проверок
• Динамический анализ
• Профайлер
• Основан на MobileSubstrate
24
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://github.com/iSECPartners/Introspy-Analyzer/
https://isecpartners.github.io/Introspy-Android/ https://isecpartners.github.io/Introspy-iOS/
Хороший инструмент с небольшим количеством проверок.
Introspy • Web интерфейс
• Win/Lin/Mac
• JB/root устройство
• Около 20 проверок
• Динамический анализ
• Основан на MobileSubstrate и Cydia Substrate
• Легко расширяем
• Результат в БД
• Генерирует HTML отчет
25
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
https://github.com/ajinabraham/Mobile-Security-Framework-MobSF
Очень хороший, многофункциональный и удобный инструмент. Самое то для разработчика, заботящегося о безопасности своего приложения для двух ОС.
Mobile Security Framework (MobSF) • Web интерфейс
• Win/Linux/Mac
• VirtualBox VM
• Написан на Python
• Статические (iOS source code), динамические проверки (Android)
• Средний набор проверок (25 Android/13 iOS)
• Генерирует PDF отчет
26
https://github.com/ajinabraham/Mobile-Security-Framework-MobSF
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Резюме по комбайнам безопасности + Автоматизация проверок безопасности кода
+ Быстрый порог вхождения
+ Возможность расширяемости и улучшения кода
- Отсутствие полноты исследования
- Не ищут логические недостатки и т.д.
- Не проверяют серверную часть
- Есть ошибки как 1 (false positives) так и 2 рода (false negatives)
- Не понимает framework’и
- Только Java или Objective-C
27
Комбайны безопасности для iOS и Android
© 2002—2016, Digital Security
Выводы • Комбайнеры позволяют избежать детских ошибок в безопасности
– Снимаем “low dangling fruits”
• Комбайнера безопасности не заменят пентест, но очень быстро поднимут уровень безопасности вашего приложения
• Безопасность требует комплексного подхода на всех стадиях разработки
28
[email protected] @evdokimovds
Digital Security в Москве: (495) 223-07-86 Digital Security в Санкт-Петербурге: (812) 703-15-47
Спасибо за внимание! Вопросы?
29