Mais conteúdo relacionado
Semelhante a Дмитрий Евдокимов (20)
Дмитрий Евдокимов
- 2. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security© 2002—2016,Digital Security
#whoami
• Исследователь информационной безопасности в Digital Security
• Редактор рубрики в журнале Xakep
• Один из организаторов конференций DEFCON Russia и ZeroNights
• Специализируюсь на поиске уязвимостей в бинарных приложениях
без исходного кода
• Анализ мобильных приложений для Android, iOS, WindowsPhone
• Докладчик на конференциях в Польше, Франции, Испании,
Германии, ОАЭ, Мексики
2
- 3. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
План
• Взгляд на безопасность мобильных приложений
• Пентест мобильных приложений
• Инструменты для оценки безопасности мобильных приложений
• Комбайны безопасности
• Заключение
3
- 5. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
…
Ломается там, где тонко
Безопасность системы
определяется уровнем
безопасности ее самого
слабого звена.
5
- 7. Комбайны безопасности
для 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
- 8. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Безопасное программирование для iOS
• Secure Coding Guide from Apple
– Для Mac и iOS
– https://developer.apple.com/library/ios/documentation/Security/Conceptual/SecureCodingGuide/SecureC
odingGuide.pdf
• IOS Developer Cheat Sheet
– Советы от OWASP для iOS
– https://www.owasp.org/index.php/IOS_Developer_Cheat_Sheet
8
- 9. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Server
Device/Emulator
Data channelApp
3d party Server
App
Анализ безопасности мобильных
приложений
9
- 10. Комбайны безопасности
для 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
- 11. Комбайны безопасности
для 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
- 12. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Пример: Кошмар Adobe AIR
• Adobe AIR’s EncryptedLocalStorage API
• На деле это Base64 …
• Это не шифрование!
12
- 13. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
OWASP Top 10 Mobile Risks
13
- 14. Комбайны безопасности
для 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
- 15. Комбайны безопасности
для 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
- 16. Комбайны безопасности
для 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
- 17. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Комбайны ?!
Комбайн безопасности – инструмент, который подсказывает, что и где в
приложении что-то не так с точки зрения информационной безопасности без особых
первоначальных знаний в ИБ.
17
- 18. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Общие моменты
• Все инструменты бесплатные
– Часто с открытым исходным кодом
• Большинство инструментов созданы для пентестеров
– То есть без надежды, что будет исходный код
• Для iOS часто нужно устройство с Jailbreak
– Порой с версией 8.x, а не 9.x
• Нацелены на клиентскую часть
• Не все делают статический и динамический анализ
18
- 19. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
https://labs.mwrinfosecurity.com/tools/drozer/
drozer
• Клиент серверной приложение
• Win/Lin/Mac
• Устройство/эмулятор
• Написан на Python и Java
• CLI
• Динамические проверки
• Нацелен для проверки IPC
• Поддержка модулей
Очень мощный инструмент для динамического анализа,
но требует много ручной работы, которую можно
заскриптовать. Может помочь сделать PoC.
19
- 20. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
https://code.google.com/archive/p/asef
Позволяет быстро посмотреть на сетевой трафик и поведение программы.
Больше подходит для анализа вредоносного кода.
Android Security Evaluation Framework
• Клиент серверной приложение
– Mac/Linux
– Эмулятор
• CLI
• Написан на Perl и Bash
• Эмитирует нажатия
• Захват сетевого трафика
• Давно не обновлялся (2012)
20
- 21. Комбайны безопасности
для 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
- 22. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
https://github.com/programa-stic/marvin-django
Очень хороший инструмент с хорошим результатом. Удобное
средство для проверки, но не просто в разворачивании.
Marvin
• Web интерфейс
• Ролевая модель
• Linux/Mac
• Набор эмуляторов
• Написан на Python
• В основе лежит SAAF и AndroGuard
• Большой набор проверок (~47)
• Есть проверки для PhoneGap
• Взаимодействие с GooglePlay
• Часть интерфейса на испанском ...
22
- 23. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
https://github.com/AndroBugs/AndroBugs_Framework
Очень хороший инструмент с качественным результатом. Самое то
для разработчика, заботящегося о безопасности своего приложения.
AndroBugs Framework
• Win/Lin/Mac
• Написан на Python
• CLI
• В основе AndroGuard
• Статические проверки
• Очень хороший набор проверок (~45)
• Нацелен на массовое сканирование
• Есть рекомендации по исправлению
• Хранит результаты в БД
• Легко расширяем
23
- 24. Комбайны безопасности
для 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
- 25. Комбайны безопасности
для 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
- 26. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Очень хороший, многофункциональный и удобный инструмент. Самое то для
разработчика, заботящегося о безопасности своего приложения для двухОС.
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
- 27. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Резюме по комбайнам безопасности
+ Автоматизация проверок безопасности кода
+ Быстрый порог вхождения
+ Возможность расширяемости и улучшения кода
- Отсутствие полноты исследования
- Не ищут логическиенедостатки и т.д.
- Не проверяют серверную часть
- Есть ошибки как 1 (false positives) так и 2 рода (false negatives)
- Не понимает framework’и
- ТолькоJava или Objective-C
27
- 28. Комбайны безопасности
для iOS и Android
© 2002—2016, Digital Security
Выводы
• Комбайнеры позволяют избежать детских ошибок в безопасности
– Снимаем “low danglingfruits”
• Комбайнера безопасности не заменят пентест, но очень быстро поднимут уровень
безопасности вашего приложения
• Безопасность требует комплексного подхода на всех стадиях разработки
28