SlideShare a Scribd company logo
Android Application
Security Assessment
Антонишин Михаил
Informational security specialist
m.antonishyn@hacken.io
Вид уязвимости по OWASP Top
10 Mobile
M1. Обход архитектурных ограничений
(Improper Platform Usage)
M2. Небезопасное хранение данных
(Insecure Data Storage)
M3. Небезопасная передача данных
(Insecure Communication)
M4. Небезопасная аутентификация
(Insecure Authentication)
M5. Слабая криптостойкость (Insufficient
Cryptography)
M6 Небезопасная авторизация (Insecure
Authorization)
M7 Контроль содержимого клиентских
приложений (Client Code Quality)
M8 Модификация данных (Code
Tampering)
M9 Анализ исходного кода (Reverse
Engineering)
M10 Скрытый функционал (Extraneous
Functionality)
Инструменты тестирования
 Apktool
 Adb
 Dex2jar
 VCG scanner
 JD-GUI
 Genymotion
 Pidcat
 Drozer
 BurpSuite
 MobSF
Декомпиляция приложения
1. Apktool
2. Dex2Jar
3. MobSF
Декомпиляция приложения
1. Apktool
2. Dex2Jar
3. MobSF
Декомпиляция приложения
1. Apktool
2. Dex2Jar
3. MobSF
M1.Обход архитектурных
ограничений (Improper Platform
Usage)
Файл манифеста
M1.Обход архитектурных
ограничений (Improper Platform
Usage)
Уязвимость в WEBVIEW - ПОТЕНЦИАЛЬНАЯ
$ grep -nr 'setAllowUniversalAccessFromFileURLs' java_source
java_source/com/facebook/react/views/webview/ReactWebViewManager.java:227: public void
setAllowUniversalAccessFromFileURLs(WebView webView, boolean bl2) {
java_source/com/facebook/react/views/webview/ReactWebViewManager.java:228:
webView.getSettings().setAllowUniversalAccessFromFileURLs(bl2);
$grep -nr 'setJavaScriptEnabled' java_source
java_source/com/facebook/react/views/webview/ReactWebViewManager.java:242: public void
setJavaScriptEnabled(WebView webView, boolean bl2) {
java_source/com/facebook/react/views/webview/ReactWebViewManager.java:243:
webView.getSettings().setJavaScriptEnabled(bl2);
M2. Небезопасное хранение
данных (Insecure Data Storage)
M2. Небезопасное хранение
данных (Insecure Data Storage)
Вывод чувствительной
информации в лог
M2. Небезопасное хранение
данных (Insecure Data Storage)
Место, которое
выводит в лог
чувствительную
информацию
M3. Небезопасная передача данных
(Insecure Communication)
OTP возвращается в Response
M3. Небезопасная передача данных
(Insecure Communication)
Выполнение транзакций от имени
другого пользователя
M4. Небезопасная аутентификация
(Insecure Authentication)
Эта категория относится к аутентификации конечного пользователя или
неверное управление сеансами. Включает следующие пункты:
• Отсутствие требования проверки идентификации пользователя ;
• Отсутствие проверки контроля сеанса;
• Недостатки управления сессиями.
M5. Слабая криптостойкость
(Insufficient Cryptography
Слабый алгоритм хеширования
M5. Слабая криптостойкость
(Insufficient Cryptography
Хранение пароля в хешированном виде
M5. Слабая криптостойкость
(Insufficient Cryptography
Подбор значения хэш-суммы
M5. Слабая криптостойкость
(Insufficient Cryptography
Использование уязвимой библиотеки
M6. Небезопасная авторизация
(Insecure Authorization)
Категория описывает недостатки авторизации (проверка (валидация) на стороне
клиента, принудительный просмотр и т.д.). Такие события отличаются от проблем
аутентификации (например, устройства регистрации, идентификации пользователей и
т.д.).
Если приложение не проходит проверку подлинности пользователей при
необходимости (например, предоставление анонимного доступа к некоторым ресурсам
или службам, при отсутствии проверки подлинности и запрета несанкционированного
доступа), это является ошибкой проверки подлинности, а не сбоем авторизации.
M7. Контроль содержимого
клиентских приложений (Client
Code Quality)
Статический анализ VCG scanner
Проверка на потенциальную инъекцию в БД
M8. Модификация данных (Code
Tampering)
Попытка модифицировать данные
M8. Модификация данных (Code
Tampering)
M8. Модификация данных (Code
Tampering)
Исходники реализации метода
M9. Анализ исходного кода
(Reverse Engineering)
Реализации метода проверки на включение
Developer mode
Реализации метода проверки на включение
Developer mode
grep -nr "development_settings_enabled"
********_v_0.9.2
Binary file: ********_v_0.9.2/build/apk/classes.dex
matches
********_v_0.9.2/smali/o/xZ$1.smali:49: const-
string v1, "development_settings_enabled"
M9. Анализ исходного кода
(Reverse Engineering)
Место проверки в коде Модифицируем
M9. Анализ исходного кода
(Reverse Engineering)
Developer mode - включён Запуск приложения
M10. Скрытый функционал
(Extraneous Functionality)
Часто разработчики включают в код приложений скрытые функциональные
возможности, бэкдоры или другие механизмы, функциональность которых
предназначена для общего использования. Под эту категорию подходит известное
определение «security through obscurity». Разработчик может случайно
оставить пароль в качестве комментария в гибридном приложении. Либо это может
быть отключение двухфакторной аутентификации во время тестирования.
Выводы
1. OWASP Mobile TOP 10 позволяет в цифрах проанализировать колличество
потенциальных и реальных уязвимостей.
2. Некоторые уязвимости можно одновременно отнести к разным категориям, что
усложняет присвоение статуса критичности.
3. Наглядно продемонстрировал соотношение уязвимостей и инструментов
тестирования
Any questions?
Антонишин Михаил
Informational security specialist
m.antonishyn@hacken.io

More Related Content

PPT
Vypolnenie trebovanij zakonodatel'stva po zawite personal'nyh dannyh pri ih o...
PDF
«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
PPTX
Продуктовая линейка компании «Код Безопасности»
PPTX
Угрозы ИБ - retail edition (2016)
PPTX
Stonesoft: Безопасный удаленный доступ - это просто!
PPT
введение в проблематику Pa dss
DOC
PT Penetration Testing Report (sample)
PDF
тест на проникновение
Vypolnenie trebovanij zakonodatel'stva po zawite personal'nyh dannyh pri ih o...
«Android Activity Hijacking», Евгений Блашко, Юрий Шабалин (АО «Сбербанк-Тех...
Продуктовая линейка компании «Код Безопасности»
Угрозы ИБ - retail edition (2016)
Stonesoft: Безопасный удаленный доступ - это просто!
введение в проблематику Pa dss
PT Penetration Testing Report (sample)
тест на проникновение

What's hot (19)

PPTX
Электронная аутентификация в государственных системах
PDF
ИБ Стратегия обороны. Серия №4 ч.2
PPTX
дмитрий кузнецов (2)
PPTX
24may 1200 valday дмитрий кузнецов 'жизненный цикл банковских приложений'
PPTX
ТОИБАС. Семинар 2. Идентификация и аутентификация
PDF
Secure bank-brochure-rus
PDF
Подход CTI к информационной безопасности бизнеса, Максим Лукин
DOC
Pentest Report Sample
PPTX
Анализатор событий для предотвращения событий. Р. Мустафаев.
PPTX
PHDays 2012: Future Now
PDF
Trust screen и mac токен как элементы доверенной среды для противодействия хи...
PPTX
Услуги PT для банков
PDF
Kaspersky Endpoint Security and Control - RUSSIAN
PDF
InfoWatch. Алексей Воронко. "Защита от внутренних угроз и утечек данных"
PPTX
PPT
Безопасность CMS
PDF
BYOD и решения для контроля мобильных устройств (MDM).
PDF
M2M to IoT - standartization_and_security #iotconfua
PDF
ИБ Стратегия обороны. Серия №1
Электронная аутентификация в государственных системах
ИБ Стратегия обороны. Серия №4 ч.2
дмитрий кузнецов (2)
24may 1200 valday дмитрий кузнецов 'жизненный цикл банковских приложений'
ТОИБАС. Семинар 2. Идентификация и аутентификация
Secure bank-brochure-rus
Подход CTI к информационной безопасности бизнеса, Максим Лукин
Pentest Report Sample
Анализатор событий для предотвращения событий. Р. Мустафаев.
PHDays 2012: Future Now
Trust screen и mac токен как элементы доверенной среды для противодействия хи...
Услуги PT для банков
Kaspersky Endpoint Security and Control - RUSSIAN
InfoWatch. Алексей Воронко. "Защита от внутренних угроз и утечек данных"
Безопасность CMS
BYOD и решения для контроля мобильных устройств (MDM).
M2M to IoT - standartization_and_security #iotconfua
ИБ Стратегия обороны. Серия №1
Ad

Similar to Android Application Security Assessment (20)

PPTX
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
PDF
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
PPTX
Certifi-Gate: атака в теории и на практике
PPTX
Мобильная «безопасность»
PPTX
Угрозы ИБ мобильным устройствам (2014)
PDF
Выставка трофеев: итоги «охоты за ошибками» в мобильных приложениях, Юрий Лео...
PDF
10 уязвимостей в мобильном ПО
PPTX
Безопасность мобильных приложений. Что тестировать?
PPTX
Mobile security testing
PPTX
Тестирование безопасности мобильных приложений
PDF
Mobile 123'"><banking security_2012
PPT
Оценка защищенности Web-приложений
PPT
Sergey Gordeychik SQADays 2008
PDF
Уязвимое Android-приложение: N проверенных способов наступить на грабли
PDF
Уязвимое Android-приложение: N проверенных способов наступить на грабли
PPTX
Мобильные устройства + BYOD + Критичные данные = ?
PDF
2013 09 21 безопасность веб-приложений
PPT
Sergey Gordeychik, Application Security in real word
PPTX
Уязвимости мобильных коммуникаций (2012)
PDF
бешков андрей. сравнение безопасности мобильных платформ
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
Certifi-Gate: атака в теории и на практике
Мобильная «безопасность»
Угрозы ИБ мобильным устройствам (2014)
Выставка трофеев: итоги «охоты за ошибками» в мобильных приложениях, Юрий Лео...
10 уязвимостей в мобильном ПО
Безопасность мобильных приложений. Что тестировать?
Mobile security testing
Тестирование безопасности мобильных приложений
Mobile 123'"><banking security_2012
Оценка защищенности Web-приложений
Sergey Gordeychik SQADays 2008
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Мобильные устройства + BYOD + Критичные данные = ?
2013 09 21 безопасность веб-приложений
Sergey Gordeychik, Application Security in real word
Уязвимости мобильных коммуникаций (2012)
бешков андрей. сравнение безопасности мобильных платформ
Ad

More from ITEM (20)

PPTX
Тестирование искусственного интеллекта: с какой стороны подступиться?
PPTX
Сделать свой продукт, или убить в себе перфекциониста
PPTX
Upwork as a service company incubator
PPTX
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
PDF
Внедрение локационных сервисов: теория vs практика
PDF
Automated Vulnerability Assessment and Management
PDF
Как понять в кого вкладывать деньги?
PDF
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
PDF
Внутренние стартапы. Долго, дорого, никогда.
PDF
First steps in digitalization and modernization of (huge) non-IT company
PDF
Redesign of management methodologies
PDF
Through Trial and Error: How to Prepare a Trainee to the Wild World of Custom...
PDF
Тернистый путь к самоорганизации
PDF
Lessons learned scrum mastering distributed teams
PPTX
Превращая риски в продажи
PPTX
Internet marketing for IT companies
PPTX
Success of foreign investment attraction by outsource/service companies.
PPTX
Outsourcing is a dead-end
PDF
Communication with clients
PDF
Harnessing the creative genius within your organization
Тестирование искусственного интеллекта: с какой стороны подступиться?
Сделать свой продукт, или убить в себе перфекциониста
Upwork as a service company incubator
Как глобальные тренды и инновации повлияют на аутсорсинг в Украине
Внедрение локационных сервисов: теория vs практика
Automated Vulnerability Assessment and Management
Как понять в кого вкладывать деньги?
Как аутсорсинговые компании свои продукты разрабатывали и что из этого вышло.
Внутренние стартапы. Долго, дорого, никогда.
First steps in digitalization and modernization of (huge) non-IT company
Redesign of management methodologies
Through Trial and Error: How to Prepare a Trainee to the Wild World of Custom...
Тернистый путь к самоорганизации
Lessons learned scrum mastering distributed teams
Превращая риски в продажи
Internet marketing for IT companies
Success of foreign investment attraction by outsource/service companies.
Outsourcing is a dead-end
Communication with clients
Harnessing the creative genius within your organization

Android Application Security Assessment

  • 1. Android Application Security Assessment Антонишин Михаил Informational security specialist m.antonishyn@hacken.io
  • 2. Вид уязвимости по OWASP Top 10 Mobile M1. Обход архитектурных ограничений (Improper Platform Usage) M2. Небезопасное хранение данных (Insecure Data Storage) M3. Небезопасная передача данных (Insecure Communication) M4. Небезопасная аутентификация (Insecure Authentication) M5. Слабая криптостойкость (Insufficient Cryptography) M6 Небезопасная авторизация (Insecure Authorization) M7 Контроль содержимого клиентских приложений (Client Code Quality) M8 Модификация данных (Code Tampering) M9 Анализ исходного кода (Reverse Engineering) M10 Скрытый функционал (Extraneous Functionality)
  • 3. Инструменты тестирования  Apktool  Adb  Dex2jar  VCG scanner  JD-GUI  Genymotion  Pidcat  Drozer  BurpSuite  MobSF
  • 8. M1.Обход архитектурных ограничений (Improper Platform Usage) Уязвимость в WEBVIEW - ПОТЕНЦИАЛЬНАЯ $ grep -nr 'setAllowUniversalAccessFromFileURLs' java_source java_source/com/facebook/react/views/webview/ReactWebViewManager.java:227: public void setAllowUniversalAccessFromFileURLs(WebView webView, boolean bl2) { java_source/com/facebook/react/views/webview/ReactWebViewManager.java:228: webView.getSettings().setAllowUniversalAccessFromFileURLs(bl2); $grep -nr 'setJavaScriptEnabled' java_source java_source/com/facebook/react/views/webview/ReactWebViewManager.java:242: public void setJavaScriptEnabled(WebView webView, boolean bl2) { java_source/com/facebook/react/views/webview/ReactWebViewManager.java:243: webView.getSettings().setJavaScriptEnabled(bl2);
  • 10. M2. Небезопасное хранение данных (Insecure Data Storage) Вывод чувствительной информации в лог
  • 11. M2. Небезопасное хранение данных (Insecure Data Storage) Место, которое выводит в лог чувствительную информацию
  • 12. M3. Небезопасная передача данных (Insecure Communication) OTP возвращается в Response
  • 13. M3. Небезопасная передача данных (Insecure Communication) Выполнение транзакций от имени другого пользователя
  • 14. M4. Небезопасная аутентификация (Insecure Authentication) Эта категория относится к аутентификации конечного пользователя или неверное управление сеансами. Включает следующие пункты: • Отсутствие требования проверки идентификации пользователя ; • Отсутствие проверки контроля сеанса; • Недостатки управления сессиями.
  • 15. M5. Слабая криптостойкость (Insufficient Cryptography Слабый алгоритм хеширования
  • 16. M5. Слабая криптостойкость (Insufficient Cryptography Хранение пароля в хешированном виде
  • 17. M5. Слабая криптостойкость (Insufficient Cryptography Подбор значения хэш-суммы
  • 18. M5. Слабая криптостойкость (Insufficient Cryptography Использование уязвимой библиотеки
  • 19. M6. Небезопасная авторизация (Insecure Authorization) Категория описывает недостатки авторизации (проверка (валидация) на стороне клиента, принудительный просмотр и т.д.). Такие события отличаются от проблем аутентификации (например, устройства регистрации, идентификации пользователей и т.д.). Если приложение не проходит проверку подлинности пользователей при необходимости (например, предоставление анонимного доступа к некоторым ресурсам или службам, при отсутствии проверки подлинности и запрета несанкционированного доступа), это является ошибкой проверки подлинности, а не сбоем авторизации.
  • 20. M7. Контроль содержимого клиентских приложений (Client Code Quality) Статический анализ VCG scanner
  • 21. Проверка на потенциальную инъекцию в БД M8. Модификация данных (Code Tampering)
  • 22. Попытка модифицировать данные M8. Модификация данных (Code Tampering)
  • 23. M8. Модификация данных (Code Tampering) Исходники реализации метода
  • 24. M9. Анализ исходного кода (Reverse Engineering) Реализации метода проверки на включение Developer mode Реализации метода проверки на включение Developer mode grep -nr "development_settings_enabled" ********_v_0.9.2 Binary file: ********_v_0.9.2/build/apk/classes.dex matches ********_v_0.9.2/smali/o/xZ$1.smali:49: const- string v1, "development_settings_enabled"
  • 25. M9. Анализ исходного кода (Reverse Engineering) Место проверки в коде Модифицируем
  • 26. M9. Анализ исходного кода (Reverse Engineering) Developer mode - включён Запуск приложения
  • 27. M10. Скрытый функционал (Extraneous Functionality) Часто разработчики включают в код приложений скрытые функциональные возможности, бэкдоры или другие механизмы, функциональность которых предназначена для общего использования. Под эту категорию подходит известное определение «security through obscurity». Разработчик может случайно оставить пароль в качестве комментария в гибридном приложении. Либо это может быть отключение двухфакторной аутентификации во время тестирования.
  • 28. Выводы 1. OWASP Mobile TOP 10 позволяет в цифрах проанализировать колличество потенциальных и реальных уязвимостей. 2. Некоторые уязвимости можно одновременно отнести к разным категориям, что усложняет присвоение статуса критичности. 3. Наглядно продемонстрировал соотношение уязвимостей и инструментов тестирования
  • 29. Any questions? Антонишин Михаил Informational security specialist m.antonishyn@hacken.io