Применение sdl для безопасности мобильных...
TRANSCRIPT
Применение SDL для безопасности
мобильных приложений
Станислав Брагин, Инженер международных технологических проектов
Сергей Симаков, Архитектор ИБ в Security Center of Excellence
technologyreview.com: Worldwide Mobile Data Usage Forecast, by Region
Российский рынок
мобильных
приложений в 2011
году вырос на 106% и
достиг объема в 355
миллионов долларов исследование J’Son&Partners для Digit.ru
За последнии два года
изменился фокус на
разработку бизнес-
приложений,
мобильных финансовых
систем
В течение всего 2011 года был
отмечен стремительный рост числа
новых угроз для мобильных
платформ.
...
Всего за год было обнаружено 5,2
тыс новых модификаций
мобильных вирусов. Только в
декабре 2011 года антивирусные
базы "Лаборатории Касперского"
пополнились большим
количеством мобильного
вредоносного ПО, чем за
предыдущие семь лет. http://www.securelist.com/ru/analysis/208050747/Mobilnaya_virusologiya_
chast_5
http://tasstelecom.ru/info/one/3120
Упрощенная методология Microsoft
Security Development Lifecycle – набор 16
обязательных практик безопасной
разработки приложений
Представлены в порядке применения и
сгруппированны в соответствии с
традиционным циклом разработки:
• Проще для изучения
• Облегченное применение
• Больше вероятность успеха!
Что это? Построенная на Microsoft SDL
методология, три концепции:
• Обучение
• Постоянное усовершенствование
• Ответственность
http://www.microsoft.com/en-us/download/details.aspx?id=12379
1 Обязательно обучение 9 Избавление об «небезопасных»
функций
2 Определение требований
безопасности
10 Статический анализ
3 Контроль качества/Bug Bars 11 Динамический анализ
4 Оценка рисков безопасности 12 Fuzz Testing
5 Требований дизайна 13 Анализ модели угроз/площади атаки
6 Уменьшение «площади
атаки»
14 План реагирования
7 Моделирование угроз/
Threat Modeling
15 Финальный анализ
8 Использование
проверенных инструментов
16 Выпуск/архив
Распределение времени в SDL при разработке мобильных приложений.
Cоздание безопасной архитектуры критически важно!
Архитектура
41%
Код 25%
Тесты
20%
• Ответственность
• Никогда не доверяйте входным данным!
• Выполняйте моделирование угроз
• Думайте «на шаг вперед»
• Выполняйте тестирование (fuzzing!)
• Не используйте «небезопасных» конструкций в коде –
переполнение буффера/стека, XML-бомбы и т.д.
• Используйте лучшие инструменты, которые сможете
найти
• Помните о несимметричности в паре «атакующий-
защищающийся»
Создание безопасной архитектуры
• Межплатформенный перенос
• Развертывание (deployment) на устройства
• Качество связи
• Сложность тестирования / профилирования на
устройствах
• Поддержка старых устройств
• Требуется поддержка со стороны производителя
устройств
Особенности разработки под мобильные
устройства
Примеры проблем проекта при создания
мобильного клиента для стоковой торговли Привязка
пользователя к
телефону и
пробный
период
Наличие
сертификатов
на телефоне
Привязка
пользователя и
пробный
период
Различия в
поддержке SSL Тестирование
стабильности
приложения на
устройствах
Тестирование
прерывания и
скорости
сессии.
Защита
сохраненных
данных
пользователя и
кеша.
Более двух
месяцев сверх
плана
разработки под
одну платформу
Основные архитектурные риски
механизм риск / ограничение
Идентификация Кто пользователь?
Авторизация Какие права?
Конфигурация Различия в настройках на
платформах
Данные
пользователя
Гарантии защиты данных.
Сессия Тестирование прерывания,
ограничения трафика.
Криптография Шифрование на всех
сегментах.
Обработка
исключений
Стабильность на устройствах
Протоколирован
ие и аудит.
Кто, Что , Когда?
Хорошая новость - все это уже
было на PC.
Не очень хорошая новость –
старые инструменты не работают.
Validation Bionic Libc .NET, regex NSString
Authentication Signing, OAuthN .NET Signing, OAuth
Authorization App Permissions Capabilities Permissions
Configuration Sandboxing Chambers profiles
Sensitive Data SSL, storage ProtectedData keychain Session Dalvik Chambers sandboxing
Cryptography Javax.crypto .NET Crypto Common Crypto
Exceptions Bionic, Java .NET Objective-C
Auditing & Log Bionic, Java Isolated Storage NSLog
Создавать безопасное ПО – выгодно!
Исправлять
ошибки после
выпуска
чем на стадии
дизайна
0
5
10
15
20
25
30 Относительная стоимость устранения ошибок
Требования/ Кодирование Интеграция/
Тестирование
компонент
Финальное
тестирование После
выпуска
Выпуск
Источник: National Institute of Standards and Technology
Исследование Aberdeen: Предотвратить проблему с безопасностью в чем разбираться с ее последствиями
Предотвращение одной уязвимости покрывает годовые затраты на процессы безопасной
разработки
Исследование Forrester: Компании, применяющие SDL, демонстрируют гораздо более быстрый возврат инвестиций
Портал SDL
http://www.microsoft.com/sdl
Блог SDL
http://blogs.msdn.com/sdl/
SDL процесс на MSDN
http://msdn.microsoft.com/en-
us/library/cc307748.aspx
Упрощенное применение
Microsoft SDL
http://go.microsoft.com/?linkid=970
8425
Дополнительная информация
Спасибо за внимание!
Thank you!