Безопасность мобильных приложений:
специфика нападения и защиты
Чемёркин Юрий
ЗАО «Перспективный мониторинг»
Основы доверия
• Безопасная платформа
• Безопасный софт
• Безопасность данных
• Безопасные инструменты
управления платформой
2
Анализ кросс-платформенного ПО
3
Проблемы безопасности обработки данных
• Защита кода
• Защита передаваемых данных
• Защита хранимых локально данных
• Криптографическая защита
4
Dropbox
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<data>
YnBsaXN0MDDUAQIDBAUIYWJUJHRvcFgkb2JqZWN0c1gk
dmVyc2lvblkkYXJjaGl2ZXLRBgdUcm9v
dIABrQkKNztCRUlPUlVYW1xVJG51bGzfEBYLDA0ODxARE
hMUFRYXGBkaGxwdHh8gISIjJCUkJCgp………
5
App in the Air
<array>
<string>user_education_history</string>
<string>basic_info</string>
<string>user_work_history</string>
<string>installed</string>
<string>user_location</string>
<string>user_friends</string>
<string>user_about_me</string>
<string>public_profile</string>
<string>email</string>
<string>user_birthday</string>
</array> <key>aita_achievement_aircrafts5</key><true/>
<key>aita_achievement_airports5</key><true/>
<key>aita_achievement_country_russia</key><true/>
<key>aita_achievement_country_usa</key><true/>
<key>aita_achievement_earlybird</key><true/>
<key>aita_achievement_newbie</key><true/>
<key>aita_achievement_premium</key><true/>
<key>facebook_email</key>
<string>yury.chemerkin@gmail.com</string>
<key>facebook_nick</key>
<string>Yury Chemerkin</string>
<key>facebook_username</key>
<string>100001827345335</string>
<key>first_session</key>
<string>Researcher at Перспективный
Мониторинг</string>
6
App in the Air
<key>com.crashlytics.insights.lastmaintenancedate</key>
<date>2014-09-20T08:48:45Z</date>
<key>com.crashlytics.insights.lastsessionidentifier</key>
<string>541D3EEF038E-0001-01BA-
666463653832</string>
<key>com.crashlytics.insights.lastsessionmetadata</key>
<data>
eyJqYWlsYnJva2VuIjpmYWxzZSwidmVuZG9yX2lkIjoiNjM2Q0RENTAtMjI4Ri
00QTlCLTk1MTYtQjY0Qzc1MEZFQzYwIiwiaW5zdGFsbF9pZCI6IjMyNjFGNTF
BLURDN0YtNEM3MS1CMTRBLUQzOTE4ODcxMUFBOSIsIm9zX21pbiI6MCw
icGxhdGZvcm1fY29kZSI6MSwiYnVuZGxlX3ZlcnNpb24iOiI0LjAuMS41Iiwic3R
hcnRlZF9hdCI6MTQxMTIwMjc5OSwibG9jYWxlIjoiZW5fVVMiLCJjb21waWxl
ciI6InVua25vd24iLCJidW5kbGVfaWQiOiJjb20uYWl0YS5hcHAiLCJtYWNoaW
5lIjoiTjQ5QVAiLCJvc192ZXJzaW9uIjoiOC4wIiwibW9kZWwiOiJpUGhvbmU1L
DQiLCJvc19idWlsZCI6IjEyQTM2NSIsIm9zX21heCI6MCwiYnVuZGxlX3Nob3J
0X3ZlcnNpb24iOiI0LjAuMSIsImFwaV9rZXkiOiJmZGM3YzFhNDhiNWJmOGI3
ZDcxNjg4Y2ZkOTg2ZGQ3ZTg4YjJlMTBjIiwiY29yZXMiOjIsImdlbmVyYXRvciI6I
kNyYXNobHl0aWNzIGlPUyBTREtcLzIuMi40Iiwic2Vzc2lvbl9pZCI6IjU0MUQz
RUVGMDM4RS0wMDAxLTAxQkEtNjY2NDYzNjUzODMyIiwicGxhdGZvcm0iO
iJpT1MiLCJhcmMiOmZhbHNlLCJjb25maWciOiJ1bmtub3duIiwiZGVidWciO
mZhbHNlfQ==
</data>
{"jailbroken":false,"vendor_id":"636CDD5
0-228F-4A9B-9516-
B64C750FEC60","install_id":"3261F51A-
DC7F-4C71-B14A-
D39188711AA9","os_min":0,"platform_c
ode":1,"bundle_version":"4.0.1.5","starte
d_at":1411202799,"locale":"en_US","co
mpiler":"unknown","bundle_id":"com.ait
a.app","machine":"N49AP","os_version":
"8.0","model":"iPhone5,4","os_build":"12
A365","os_max":0,"bundle_short_version
":"4.0.1","api_key":"fdc7c1a48b5bf8b7d7
1688cfd986dd7e88b2e10c","cores":2,"ge
nerator":"Crashlytics iOS
SDK/2.2.4","session_id":"541D3EEF038E
-0001-01BA-
666463653832","platform":"iOS","arc":fal
se,"config":"unknown","debug":false}
7
Особенности платформо-зависимого ПО
• Безопасность хранимых данных в keychain
• Безопасность данных приложений
• Доверие к системным механизмам данных
• Доверие к PC/Mac-устройству, где установлен iTunes
8
Snapshots in iOS
9
Особенности платформо-зависимого ПО
• Системное защищённое хранилище? N/A
• Проблема хранения данных
• Недоверенная среда
• Доступ к данным приложений с PC
10
Aeroexpress
/data/data/ru.lynx.aero/shared_prefs/activities.main.MainActivity.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="phone">9xxxxxxxx2</string>
<long name="cardExpiryDate" value="1472723015507" />
<long name="scheduleChangesDate" value="1411638096257" />
<long name="scheduleLastUpdateDate" value="1411638096692" />
<string name="password">XXXXXXX</string>
<string name="cardHolder">Yury Chemerkin</string>
<string name="email">xxxxxxxxxxxxxx@gmail.com</string>
<string name="userId">7-7011656</string>
<string name="layout">phone</string>
<string name="login">xxxxxxxxxxxxxx</string>
<string name="language">ru</string>
<string
name="deviceId">bEBDPM1dCdDAPA9……K7iF9_lnAFKLgEE7VHdDCXbyww</string>
<string name="cardNumber">1234567890123456</string>
</map>
11
Особенности платформо-зависимого ПО
• WinRT-приложения популярны больше,
чем сама платформа
• jailbreak/root ?
• Windows 8 Pro + WinRT
для исследования кода
• Windows 8 Pro и доступ к данным
12
Viber (WinRT) / Viber (PC)
13
Проблемы криптомеханизмов мобильного ПО
• Пароли
• Защита vs. Шифрование
• Криптография
• Хеширование
• Артефакты
• Секретная часть ключа
14
Проблемы сетевого взаимодействия
• Отсутствие защиты
• MITM
• Self-signed сертификаты
• Неправильное управление ключами
• Известные технологии защиты данных
15
MITM
16
Sberbank
Регистрация приложения (запрос)
operation=register&appVersion=5.1.2%20%28142%29&logi
n=4xxx1xxxx5&devID=xxxxxxxx-2xxF-xxxxx-xxxxx-
xxxxxxxx6&deviceName=iPhone5%2C4&version=7.00&app
Type=iPhone
Регистрация приложения (ответ)
<response>
<loginCompleted>false</loginCompleted>
<confirmRegistrationStage>
<mGUID>xxxxxxx758xxxxxxx53b4exxxxx</mGUID>
</confirmRegistrationStage>
<confirmInfo>
<type>smsp</type> <smsp>
<lifeTime>597</lifeTime>
<attemptsRemain>3</attemptsRemain>
</smsp>
</confirmInfo>
<registrationParameters>
<minimumPINLength>5</minimumPINLength>
</registrationParameters>
</response>
Проверка пароля из смс (запрос)
appType=iPhone&operation=confirm&smsPassw
ord=60206&mGUID=
xxxxxxx758xxxxxxx53b4exxxxx&version=7.00
Проверка пароля из смс (ответ)
<response>
<status>
<code>0</code>
</status>
<loginCompleted>false</loginCompleted>
</response>
Установка пин-кода (запрос)
operation=createPIN&appVersion=5.1.2%20%28
142%29&password=47098&isLightScheme=false
&devID=xxxxxxxx-2xxF-xxxxx-xxxxx-
xxxxxxxx6&deviceName=iPhone5%2C4&version=
7.00&appType=iPhone&mGUID=
xxxxxxx758xxxxxxx53b4exxxxx
Проверка пин-кода
operation=check&password=44444
17
Yandex.Disk
Регистрация приложения (запрос)
client_id=6cxxxxxxxxxxxxxxxxxxxxxx16&client_secret=8xxxx
xxxxxxxxxxx0&grant_type=password&password=R%40mf0r
D%23&username=xxxxxxxxxxxxxxxx%40yandex.ru
Регистрация приложения (ответ)
{"token_type": "bearer", "access_token":
"5xxxxxxxxxxxxxxxxxxxae", "expires_in": 31536000, "uid":
1xxxxxxxxxxxx24}
Авторизация (запрос)
access_token=5xxxxxxxxxxxxxxxxxxxxxxe&client_
id=f6xxxxxxxxxxxxxxxxxxxxxxxxx65&client_secret
=2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe&g
rant_type=x-token
Проверка пароля из смс (ответ)
{"token_type": "bearer", "access_token":
"41xxxxxxxxxxxxxxxxb", "expires_in": 31536000,
"uid": 1xxxxxxxxxxx24}
18
• Поставщик платформы
– Статический анализ?
– Оперативность работы по отзывам и жалобам?
– Контроль источника APK, IPA, etc?
• Автор приложения
– Безопасная разработка?
– Безопасность аккаунта и инфраструктуры
разработки?
– Воровство/взлом приложения?
• Внешний арбитр
– Необходимость верификации ПО
– Актуализация угроз данных
– Итеративный процесс работ
Рекомендации
19
Спасибо за внимание!
Вопросы?
20

More Related Content

PDF
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
PDF
Вадим Дробинин. Защищаем себя и пользователей: руководство по безопасности
PPTX
Угрозы ИБ мобильным устройствам (2014)
PDF
Андрей Беленко
PPTX
Классификация мобильных угроз
PPTX
Kaspersky Security для мобильных устройств. Почему это необходимо
PPT
IOS security and hacking
PDF
Ярослав Воронцов - Security
Защищаем себя и пользователей — Вадим Дробинин (iOS Security Guide by Vadim D...
Вадим Дробинин. Защищаем себя и пользователей: руководство по безопасности
Угрозы ИБ мобильным устройствам (2014)
Андрей Беленко
Классификация мобильных угроз
Kaspersky Security для мобильных устройств. Почему это необходимо
IOS security and hacking
Ярослав Воронцов - Security

More from Yury Chemerkin (20)

PDF
YURY_CHEMERKIN__NullCon_2013_Conference.pdf
PDF
YURY_CHEMERKIN__ITA_2013_Proceedings.pdf
PDF
YURY_CHEMERKIN__I-Society-2013_Proceedings.pdf
PDF
YURY_CHEMERKIN__CYBER_CRIME_FORUM_2012.pdf
PDF
YURY_CHEMERKIN__CONFidence_2013_Conference.pdf
PDF
Security_Compliance_Challenges_On_Clouds.pdf
PDF
DefCamp_2017_Conference_Chemerkin_Yury_-_full.pdf
PDF
YURY_CHEMERKIN__ICITST_2012_Conference.pdf
PDF
YURY_CHEMERKIN__AthCon_2013._Conference.pdf
PDF
YURY_CHEMERKIN_InfoSecurityRussia_2012.pdf.pdf
PDF
YURY_CHEMERKIN__ICITST-2012_Proceedings.pdf
PDF
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
PDF
OWASP_Russia_2016_-_Yury_Chemerkin_--_run.pdf
PDF
DefCamp_2015_Conference_Chemerkin_Yury.pdf
PDF
YURY_CHEMERKIN_NotaCon_2014_Conference.pdf
PDF
YURY_CHEMERKIN_HackMiami_2014_Conference.pdf
PDF
Mobile_Security_Challenges_On_Compliance.pdf
PDF
Mobile_Security_From_The_BYOD_Viewpoint.pdf
PDF
INFOSEC_UAB_2016_Conference_Chemerkin_Yury.pdf
PDF
DefCamp_2019_Conference_Chemerkin_Yury.pdf
YURY_CHEMERKIN__NullCon_2013_Conference.pdf
YURY_CHEMERKIN__ITA_2013_Proceedings.pdf
YURY_CHEMERKIN__I-Society-2013_Proceedings.pdf
YURY_CHEMERKIN__CYBER_CRIME_FORUM_2012.pdf
YURY_CHEMERKIN__CONFidence_2013_Conference.pdf
Security_Compliance_Challenges_On_Clouds.pdf
DefCamp_2017_Conference_Chemerkin_Yury_-_full.pdf
YURY_CHEMERKIN__ICITST_2012_Conference.pdf
YURY_CHEMERKIN__AthCon_2013._Conference.pdf
YURY_CHEMERKIN_InfoSecurityRussia_2012.pdf.pdf
YURY_CHEMERKIN__ICITST-2012_Proceedings.pdf
DefCamp_2016_Chemerkin_Yury_--_publish.pdf
OWASP_Russia_2016_-_Yury_Chemerkin_--_run.pdf
DefCamp_2015_Conference_Chemerkin_Yury.pdf
YURY_CHEMERKIN_NotaCon_2014_Conference.pdf
YURY_CHEMERKIN_HackMiami_2014_Conference.pdf
Mobile_Security_Challenges_On_Compliance.pdf
Mobile_Security_From_The_BYOD_Viewpoint.pdf
INFOSEC_UAB_2016_Conference_Chemerkin_Yury.pdf
DefCamp_2019_Conference_Chemerkin_Yury.pdf
Ad

InfoSecurityRussia-_2014_Conferences.pdf

  • 1. Безопасность мобильных приложений: специфика нападения и защиты Чемёркин Юрий ЗАО «Перспективный мониторинг»
  • 2. Основы доверия • Безопасная платформа • Безопасный софт • Безопасность данных • Безопасные инструменты управления платформой 2
  • 4. Проблемы безопасности обработки данных • Защита кода • Защита передаваемых данных • Защита хранимых локально данных • Криптографическая защита 4
  • 5. Dropbox <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <data> YnBsaXN0MDDUAQIDBAUIYWJUJHRvcFgkb2JqZWN0c1gk dmVyc2lvblkkYXJjaGl2ZXLRBgdUcm9v dIABrQkKNztCRUlPUlVYW1xVJG51bGzfEBYLDA0ODxARE hMUFRYXGBkaGxwdHh8gISIjJCUkJCgp……… 5
  • 6. App in the Air <array> <string>user_education_history</string> <string>basic_info</string> <string>user_work_history</string> <string>installed</string> <string>user_location</string> <string>user_friends</string> <string>user_about_me</string> <string>public_profile</string> <string>email</string> <string>user_birthday</string> </array> <key>aita_achievement_aircrafts5</key><true/> <key>aita_achievement_airports5</key><true/> <key>aita_achievement_country_russia</key><true/> <key>aita_achievement_country_usa</key><true/> <key>aita_achievement_earlybird</key><true/> <key>aita_achievement_newbie</key><true/> <key>aita_achievement_premium</key><true/> <key>facebook_email</key> <string>[email protected]</string> <key>facebook_nick</key> <string>Yury Chemerkin</string> <key>facebook_username</key> <string>100001827345335</string> <key>first_session</key> <string>Researcher at Перспективный Мониторинг</string> 6
  • 7. App in the Air <key>com.crashlytics.insights.lastmaintenancedate</key> <date>2014-09-20T08:48:45Z</date> <key>com.crashlytics.insights.lastsessionidentifier</key> <string>541D3EEF038E-0001-01BA- 666463653832</string> <key>com.crashlytics.insights.lastsessionmetadata</key> <data> eyJqYWlsYnJva2VuIjpmYWxzZSwidmVuZG9yX2lkIjoiNjM2Q0RENTAtMjI4Ri 00QTlCLTk1MTYtQjY0Qzc1MEZFQzYwIiwiaW5zdGFsbF9pZCI6IjMyNjFGNTF BLURDN0YtNEM3MS1CMTRBLUQzOTE4ODcxMUFBOSIsIm9zX21pbiI6MCw icGxhdGZvcm1fY29kZSI6MSwiYnVuZGxlX3ZlcnNpb24iOiI0LjAuMS41Iiwic3R hcnRlZF9hdCI6MTQxMTIwMjc5OSwibG9jYWxlIjoiZW5fVVMiLCJjb21waWxl ciI6InVua25vd24iLCJidW5kbGVfaWQiOiJjb20uYWl0YS5hcHAiLCJtYWNoaW 5lIjoiTjQ5QVAiLCJvc192ZXJzaW9uIjoiOC4wIiwibW9kZWwiOiJpUGhvbmU1L DQiLCJvc19idWlsZCI6IjEyQTM2NSIsIm9zX21heCI6MCwiYnVuZGxlX3Nob3J 0X3ZlcnNpb24iOiI0LjAuMSIsImFwaV9rZXkiOiJmZGM3YzFhNDhiNWJmOGI3 ZDcxNjg4Y2ZkOTg2ZGQ3ZTg4YjJlMTBjIiwiY29yZXMiOjIsImdlbmVyYXRvciI6I kNyYXNobHl0aWNzIGlPUyBTREtcLzIuMi40Iiwic2Vzc2lvbl9pZCI6IjU0MUQz RUVGMDM4RS0wMDAxLTAxQkEtNjY2NDYzNjUzODMyIiwicGxhdGZvcm0iO iJpT1MiLCJhcmMiOmZhbHNlLCJjb25maWciOiJ1bmtub3duIiwiZGVidWciO mZhbHNlfQ== </data> {"jailbroken":false,"vendor_id":"636CDD5 0-228F-4A9B-9516- B64C750FEC60","install_id":"3261F51A- DC7F-4C71-B14A- D39188711AA9","os_min":0,"platform_c ode":1,"bundle_version":"4.0.1.5","starte d_at":1411202799,"locale":"en_US","co mpiler":"unknown","bundle_id":"com.ait a.app","machine":"N49AP","os_version": "8.0","model":"iPhone5,4","os_build":"12 A365","os_max":0,"bundle_short_version ":"4.0.1","api_key":"fdc7c1a48b5bf8b7d7 1688cfd986dd7e88b2e10c","cores":2,"ge nerator":"Crashlytics iOS SDK/2.2.4","session_id":"541D3EEF038E -0001-01BA- 666463653832","platform":"iOS","arc":fal se,"config":"unknown","debug":false} 7
  • 8. Особенности платформо-зависимого ПО • Безопасность хранимых данных в keychain • Безопасность данных приложений • Доверие к системным механизмам данных • Доверие к PC/Mac-устройству, где установлен iTunes 8
  • 10. Особенности платформо-зависимого ПО • Системное защищённое хранилище? N/A • Проблема хранения данных • Недоверенная среда • Доступ к данным приложений с PC 10
  • 11. Aeroexpress /data/data/ru.lynx.aero/shared_prefs/activities.main.MainActivity.xml <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <string name="phone">9xxxxxxxx2</string> <long name="cardExpiryDate" value="1472723015507" /> <long name="scheduleChangesDate" value="1411638096257" /> <long name="scheduleLastUpdateDate" value="1411638096692" /> <string name="password">XXXXXXX</string> <string name="cardHolder">Yury Chemerkin</string> <string name="email">[email protected]</string> <string name="userId">7-7011656</string> <string name="layout">phone</string> <string name="login">xxxxxxxxxxxxxx</string> <string name="language">ru</string> <string name="deviceId">bEBDPM1dCdDAPA9……K7iF9_lnAFKLgEE7VHdDCXbyww</string> <string name="cardNumber">1234567890123456</string> </map> 11
  • 12. Особенности платформо-зависимого ПО • WinRT-приложения популярны больше, чем сама платформа • jailbreak/root ? • Windows 8 Pro + WinRT для исследования кода • Windows 8 Pro и доступ к данным 12
  • 13. Viber (WinRT) / Viber (PC) 13
  • 14. Проблемы криптомеханизмов мобильного ПО • Пароли • Защита vs. Шифрование • Криптография • Хеширование • Артефакты • Секретная часть ключа 14
  • 15. Проблемы сетевого взаимодействия • Отсутствие защиты • MITM • Self-signed сертификаты • Неправильное управление ключами • Известные технологии защиты данных 15
  • 17. Sberbank Регистрация приложения (запрос) operation=register&appVersion=5.1.2%20%28142%29&logi n=4xxx1xxxx5&devID=xxxxxxxx-2xxF-xxxxx-xxxxx- xxxxxxxx6&deviceName=iPhone5%2C4&version=7.00&app Type=iPhone Регистрация приложения (ответ) <response> <loginCompleted>false</loginCompleted> <confirmRegistrationStage> <mGUID>xxxxxxx758xxxxxxx53b4exxxxx</mGUID> </confirmRegistrationStage> <confirmInfo> <type>smsp</type> <smsp> <lifeTime>597</lifeTime> <attemptsRemain>3</attemptsRemain> </smsp> </confirmInfo> <registrationParameters> <minimumPINLength>5</minimumPINLength> </registrationParameters> </response> Проверка пароля из смс (запрос) appType=iPhone&operation=confirm&smsPassw ord=60206&mGUID= xxxxxxx758xxxxxxx53b4exxxxx&version=7.00 Проверка пароля из смс (ответ) <response> <status> <code>0</code> </status> <loginCompleted>false</loginCompleted> </response> Установка пин-кода (запрос) operation=createPIN&appVersion=5.1.2%20%28 142%29&password=47098&isLightScheme=false &devID=xxxxxxxx-2xxF-xxxxx-xxxxx- xxxxxxxx6&deviceName=iPhone5%2C4&version= 7.00&appType=iPhone&mGUID= xxxxxxx758xxxxxxx53b4exxxxx Проверка пин-кода operation=check&password=44444 17
  • 18. Yandex.Disk Регистрация приложения (запрос) client_id=6cxxxxxxxxxxxxxxxxxxxxxx16&client_secret=8xxxx xxxxxxxxxxx0&grant_type=password&password=R%40mf0r D%23&username=xxxxxxxxxxxxxxxx%40yandex.ru Регистрация приложения (ответ) {"token_type": "bearer", "access_token": "5xxxxxxxxxxxxxxxxxxxae", "expires_in": 31536000, "uid": 1xxxxxxxxxxxx24} Авторизация (запрос) access_token=5xxxxxxxxxxxxxxxxxxxxxxe&client_ id=f6xxxxxxxxxxxxxxxxxxxxxxxxx65&client_secret =2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe&g rant_type=x-token Проверка пароля из смс (ответ) {"token_type": "bearer", "access_token": "41xxxxxxxxxxxxxxxxb", "expires_in": 31536000, "uid": 1xxxxxxxxxxx24} 18
  • 19. • Поставщик платформы – Статический анализ? – Оперативность работы по отзывам и жалобам? – Контроль источника APK, IPA, etc? • Автор приложения – Безопасная разработка? – Безопасность аккаунта и инфраструктуры разработки? – Воровство/взлом приложения? • Внешний арбитр – Необходимость верификации ПО – Актуализация угроз данных – Итеративный процесс работ Рекомендации 19