Комбайны безопасности для
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/SecureC
odingGuide.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 channelApp
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
Очень хороший, многофункциональный и удобный инструмент. Самое то для
разработчика, заботящегося о безопасности своего приложения для двухОС.
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 danglingfruits”
• Комбайнера безопасности не заменят пентест, но очень быстро поднимут уровень
безопасности вашего приложения
• Безопасность требует комплексного подхода на всех стадиях разработки
28
d.evdokimov@dsec.ru
@evdokimovds
DigitalSecurity в Москве: (495) 223-07-86
DigitalSecurity в Санкт-Петербурге: (812) 703-15-47
Спасибо за внимание!
Вопросы?
29

Дмитрий Евдокимов

  • 1.
    Комбайны безопасности для iOSи Android Дмитрий Евдокимов Директор исследовательского центра Digital Security
  • 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
  • 4.
    Комбайны безопасности для iOSи Android © 2002—2016, Digital Security Мобильные приложения в нашей жизни 4
  • 5.
    Комбайны безопасности для iOSи Android © 2002—2016, Digital Security … Ломается там, где тонко Безопасность системы определяется уровнем безопасности ее самого слабого звена. 5
  • 6.
    Комбайны безопасности для iOSи Android © 2002—2016, Digital Security Когда нужно задумываться о безопасности? 6
  • 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
  • 29.
    d.evdokimov@dsec.ru @evdokimovds DigitalSecurity в Москве:(495) 223-07-86 DigitalSecurity в Санкт-Петербурге: (812) 703-15-47 Спасибо за внимание! Вопросы? 29