29
Комбайны безопасности для iOS и Android Дмитрий Евдокимов Директор исследовательского центра Digital Security

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

Embed Size (px)

Citation preview

Page 1: Дмитрий Евдокимов

Комбайны безопасности для

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

Директор исследовательского центра

Digital Security

Page 2: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security © 2002—2016, Digital Security

#whoami • Исследователь информационной безопасности в Digital Security

• Редактор рубрики в журнале Xakep

• Один из организаторов конференций DEFCON Russia и ZeroNights

• Специализируюсь на поиске уязвимостей в бинарных приложениях без исходного кода

• Анализ мобильных приложений для Android, iOS, WindowsPhone

• Докладчик на конференциях в Польше, Франции, Испании, Германии, ОАЭ, Мексики

2

Page 3: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

План

• Взгляд на безопасность мобильных приложений

• Пентест мобильных приложений

• Инструменты для оценки безопасности мобильных приложений

• Комбайны безопасности

• Заключение

3

Page 4: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Мобильные приложения в нашей жизни

4

Page 5: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Ломается там, где тонко

Безопасность системы определяется уровнем безопасности ее самого слабого звена.

5

Page 6: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Когда нужно задумываться о безопасности?

6

Page 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

Page 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/SecureCodingGuide.pdf

• IOS Developer Cheat Sheet – Советы от OWASP для iOS

– https://www.owasp.org/index.php/IOS_Developer_Cheat_Sheet

8

Page 9: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Server

Device/Emulator

Data channel App

3d party Server

App

Анализ безопасности мобильных приложений

9

Page 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

Page 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

Page 12: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Пример: Кошмар Adobe AIR

• Adobe AIR’s EncryptedLocalStorage API

• На деле это Base64 …

• Это не шифрование!

12

Page 13: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

https://www.owasp.org/index.php/OWASP_Mobile_Security_Project

OWASP Top 10 Mobile Risks

13

Page 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

Page 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

Page 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

Page 17: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Комбайны ?!

Комбайн безопасности – инструмент, который подсказывает, что и где в

приложении что-то не так с точки зрения информационной безопасности без особых первоначальных знаний в ИБ.

17

Page 18: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Общие моменты • Все инструменты бесплатные

– Часто с открытым исходным кодом

• Большинство инструментов созданы для пентестеров – То есть без надежды, что будет исходный код

• Для iOS часто нужно устройство с Jailbreak – Порой с версией 8.x, а не 9.x

• Нацелены на клиентскую часть

• Не все делают статический и динамический анализ

18

Page 19: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

https://labs.mwrinfosecurity.com/tools/drozer/

drozer • Клиент серверной приложение

• Win/Lin/Mac

• Устройство/эмулятор

• Написан на Python и Java

• CLI

• Динамические проверки

• Нацелен для проверки IPC

• Поддержка модулей

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

19

Page 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

Page 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

Page 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

Page 23: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

https://github.com/AndroBugs/AndroBugs_Framework

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

AndroBugs Framework • Win/Lin/Mac

• Написан на Python

• CLI

• В основе AndroGuard

• Статические проверки

• Очень хороший набор проверок (~45)

• Нацелен на массовое сканирование

• Есть рекомендации по исправлению

• Хранит результаты в БД

• Легко расширяем

23

Page 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

Page 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

Page 26: Дмитрий Евдокимов

Комбайны безопасности для 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

Page 27: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Резюме по комбайнам безопасности + Автоматизация проверок безопасности кода

+ Быстрый порог вхождения

+ Возможность расширяемости и улучшения кода

- Отсутствие полноты исследования

- Не ищут логические недостатки и т.д.

- Не проверяют серверную часть

- Есть ошибки как 1 (false positives) так и 2 рода (false negatives)

- Не понимает framework’и

- Только Java или Objective-C

27

Page 28: Дмитрий Евдокимов

Комбайны безопасности для iOS и Android

© 2002—2016, Digital Security

Выводы • Комбайнеры позволяют избежать детских ошибок в безопасности

– Снимаем “low dangling fruits”

• Комбайнера безопасности не заменят пентест, но очень быстро поднимут уровень безопасности вашего приложения

• Безопасность требует комплексного подхода на всех стадиях разработки

28

Page 29: Дмитрий Евдокимов

[email protected] @evdokimovds

Digital Security в Москве: (495) 223-07-86 Digital Security в Санкт-Петербурге: (812) 703-15-47

Спасибо за внимание! Вопросы?

29