Выставка трофеев: итоги «охоты за ошибками» в...
Post on 15-Jan-2015
377 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
2
Выставка трофеев
Итоги «охоты» в мобильных приложениях
3 "Alces alces elan trophee chateau Tanlay" by Myrabella - Own work. Licensed under Creative Commons Attribution-Share Alike 4.0 via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Alces_alces_elan_trophee_chateau_Tanlay.jpg#mediaviewer/File:Alces_alces_elan_trophee_chateau_Tanlay.jpg
4
Охота за ошибками
• Мы платим за найденные проблемы с безопасностью
• Не только в веб, но и в мобильных приложениях
• Это программа поощрения для всех
• Участвуют люди со всего мира
• За интересные ошибки платим больше ;-)
• Подробнее на http://company.yandex.ru/security/
5
Скучная классификация трофеев
6
Моя классификация
• Типовые ошибки
• Неочевидные и забористые проблемы
• Всяческий трэш
7
Типовые ошибки
8
9
Открытые контент-провайдеры
OWASP M2 Insecure Data Storage в Android
•Открыты по-умолчанию в SDK <= 16
•Часто прицеплены к базе данных SQLite
public synchronized Cursor query (Uri uri, String[] projection, String
selection, String[] selectionArgs, String sortOrder)
{
- return Database.getReadableDB().query(Database.DEVICE_ID_TABLE,
projection, selection, selectionArgs, null, null, sortOrder);
+ return Database.getReadableDB().query(Database.DEVICE_ID_TABLE, null,
null, null, null, null, null);
}
10
Oauth-токен, куда бы его деть?
OWASP M2 Insecure Data Storage в iOS
•Авторизуем пользователя и сохраняем OAuth-токен в plist-файлы
приложения
ru.yandex.fotki.client.plist
{
...
YandexLogin = testuser;
YandexToken = 64bb**************fcb9;
...
}
11
Что было в логах, остается в логах?
OWASP M4 Unintended Data Leakage
•OVER9000 способов логирования
•Пишем в логи всё подряд, например, тело HTTP-запроса или
авторизационные токены
D/Facebook-authorize( 2228): Login Success!
access_token=CAACO8cOreeMB**********QXANzAqzDz3IJZB3wZAZAD9PIUcrSzdVMNO
1i6ZB9zogduHbZAl6fnXO**********EIJzuXak3V6CJCx**************B3D9ZBvLCEK
Tjs3w*************
expires=1377739946011
12
Совсем не HTTPS
OWASP M3 Insufficient Transport Layer Protection
•В iOS и Android
•Либо совсем нет шифрования, либо не проверяем сертификаты
NSMutableURLRequest *request = [self requestWithMethod:@"GET" path:requ
estURL parameters:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] ini
tWithRequest:request];
operation.allowsInvalidSSLCertificate = YES;
13
Решения
• Общие библиотеки
• Тотальный HTTPS с проверкой сертификатов и пинингом
• Логирование с предфильтрацией
• Использование системных хранилищ для токенов
14
Неочевидные серьезные
проблемы
15
Нарушение SOP в браузере под iOS
w = window.open('http://host/redirect.html');
setTimeout(function()
{
w.document.write(document.domain+' writes to
<script>
document.write(document.domain)
</script>');
},
5000);
?
Сайт 1 (На первой вкладке) Сайт 2 (На второй вкладке)
16
Кто виноват, что делать?
• Не сделали нужных проверок
для особого случая работы
вкладок
• Было сложно сделать тесты
для работы с вкладками
• При взаимодействии вкладок
этом должна выполняться same
origin policy, либо дочерняя
вкладка должна быть пустой
(about:blank).
• Новые сложные тесты,
проверяющие логику работы
вкладок.
17
Broadcast Intent в Android
Broadcast Intent Открытый
контент провайдер
Доступ к аттачментам
18
Кто виноват, что делать?
• Не знали, что broadcast intent
может быть перехвачен третьей
стороной
• Думали, что длинный
случайный идентификатор –
достаточная защита для
аттачмента
• Отказались от пересылки
идентификатора
• Закрыли контент-провайдер
19
Статистика
There are three kinds of lies: lies, damned lies,
and statistics
20
Количество уязвимостей по платформам
23
84
3 2
iOS
Android
Windows Phone
Symbian
За всё время работы
программы
21
• 2,5 % сообщений про мобильные приложения
• В среднем мы получаем по одной уязвимости раз в четыре дня
• Выплачено около 500000 рублей (максимум 1337$)
• Типовых проблем больше в приложениях для Android
• Сложных проблем больше в iOS
22
Выводы
23
Что в итоге?
• Большое количество исследователей
• Участвуют компетентные профессионалы
• Множество исправленных проблем и найденных решений
• …
• PROFIT!!!
24
Спасибо за внимание!
25
Юрий Леонычев
Администратор
информационной
безопасности
yleonychev@yandex-team.ru
tracer0tong
© 000«Яндекс» 2014
top related