Security Testing - Polazhenko Sergey
-
Upload
qa-club-minsk -
Category
Documents
-
view
3.324 -
download
0
description
Transcript of Security Testing - Polazhenko Sergey
ЧТО ТАКОЕ БЕЗОПАСНОСТЬПРОГРАММНОГО ПРОДУКТА (ПП)?
Безопасность ПП -
(safety) – способность ПП достигать приемлемого уровня риска для здоровья людей, их бизнеса, ПО, имущества или окружающей среды при данном способе (контексте) применения.
ISO/IEC 9126 «Software engineering – Product quality»
ЧТО ТАКОЕ ЗАЩИЩЁННОСТЬ ПП?
Защищённость ПП - (security) –
способность ПП защищать информацию и данные так, чтобы неавторизованные субъекты или процессы не смогли читать или модифицировать (удалять) их, а авторизованным пользователям и процессам не было отказано в доступе к ним. Требование также относится и к данным, которые находятся в процессе пересылки.
ISO/IEC 9126 «Software engineering – Product quality»
ЧТО ТАКОЕ ТЕСТИРОВАНИЕ БЕЗОПАСНОСТИ И ЗАЩИЩЁННОСТИ (ТБЗ) ПП?
Метод оценки КАЧЕСТВА и ПОЛНОТЫ реализации требований по БЕЗОПАСНОСТИ и ЗАЩИЩЁННОСТИ ПП
СТРУКТУРА КАЧЕСТВА ПП
• Внешние атрибуты качества ПО
• Внутренние атрибуты качества ПО
• Качество в использовании
ISO/IEC 9126 «Software engineering – Product quality»
ISO/ IEC 14598 «Software engineering — Product evaluation»
СТРУКТУРА КАЧЕСТВА ПП
ISO/IEC 9126 «Software engineering – Product quality»
ISO/ IEC 14598 «Software engineering — Product evaluation»
СТРУКТУРА КАЧЕСТВА ПП
ISO/IEC 9126 «Software engineering – Product quality»
ISO/ IEC 14598 «Software engineering — Product evaluation»
Защищённость – характеристика функциональной пригодности (внутреннее и внешнее качество)
Безопасность– характеристика качества в использовании
ОТЛИЧИЕ ФУНКЦИОНАЛЬНОГО ТЕСТИРОВАНИЯ ОТ ТБЗ
Доступ к страницам сайта должен осуществляться
ТОЛЬКО авторизованными пользователями сайт
НЕ ДОЛЖНА существовать возможность получить
доступ к страницам сайта НЕ АВТОРИЗОВАННЫМИ пользователями сайт
СХОДСТВО ТБЗ И НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ
Качественная характеристика
Интегральный характер
НО!
Нагрузочное касается основного функционала
ТБЗ более системно!
ТБЗ часто имеет неявные требования
ПРИМЕР НАГРУЗОЧНОГО ТЕСТИРОВАНИЯ
Сервис должен выдерживать ответ за 10 и менее секунд при нагрузке до 1000 одновременно работающих пользователей.
Пользователи работают в рамках определённого WORKFLOW!
ПРИМЕР ТБЗ
Пользователь можно атаковать:1. Через страницы сайта2. Через адресную строку браузера
(sql, xss injections, …)3. Перехватывать и
модифицировать трафик между клиентом и сервером
4. Подменять внешние сервисы, на которые ссылается наш сайт
5. …
ОСНОВНАЯ ПРОБЛЕМА БЕЗОПАСНОСТИ
ЗАИНТЕРЕСОВАННЫЕ ЛИЦА
Кто приобретает или теряет деньги?
АКТИВЫ
Что и сколько стоит денег?
АКТИВЫ (ПЗ) - NOTEPAD
АКТИВЫ (ПЗ) - NOTEPAD
Данные пользователя
АКТИВЫ (ПЗ) – MS WORD
АКТИВЫ (ПЗ) – MS WORD
1. Данные пользователя2. Активация продукта3. Репутация производителя4. Исходные тексты ПП5. Интеллектуальная
собственность (алгоритмы, дизайн и т.п.)
АКТИВЫ (ПЗ) – GMAIL.COM
АКТИВЫ (ПЗ) – GMAIL.COM
1. Логины пользователя(ей)2. Переписка и др. данные
пользователя(ей)3. Доступность сервиса4. Аутентичность сервиса5. Платные функции6. Репутация производителя7. Исходные тексты ПП8. Интеллектуальная собственность
(алгоритмы, дизайн и т.п.)
АКТИВЫ (ПЗ) – KM.RU, ENCARTA
АКТИВЫ (ПЗ) – KM.RU, ENCARTA
1. Доступность сервиса2. Репутация
производителя3. Аутентичность статей4. Интеллектуальная
собственность (графика, тексты статей)
АКТИВЫ (ПЗ) – WIKIPEDIA
АКТИВЫ (ПЗ) – WIKIPEDIA
1. Доступность сервиса2. Аутентичность
статей3. Аутентичность
сервиса
АКТИВЫ (ПЗ) – ONLINE POKER (HTML5)
АКТИВЫ (ПЗ) – ONLINE POKER (HTML5)
1. Логины пользователя(ей)2. Данные пользователей3. Доступность сервиса4. Аутентичность сервиса5. Платные функции6. Репутация производителя7. Исходные тексты ПП8. Интеллектуальная
собственность (алгоритмы, дизайн и т.п.)
УЩЕРБ
Материальные и нематериальные потери в свези с действиями злоумышленника
УЯЗВИМОСТЬ
Недостаток системы защиты, могущий привести к тому или иному ущербу
Открытое окно
РИСК
Вариант реализации уязвимости
Злоумышленник влезет в «открытое окно»
БЕЗОПАСНОСТЬ ДАННЫХ И СЕРВИСОВ!
ЦелостностьДоступностьКонфиденциальность(Аутентичность)
УГРОЗА
потенциальная причина нежелательного инцидента, который может приводить к нанесению вреда системе или организации.
Кража данных (нарушение конфиденциальность данных)
ГОСТ Р 51897–2002 «Менеджмент риска. Термины и определения»
УРОВНИ БЕЗОПАСНОСТИ
1. Нормативно-правовой2. Организационный3. Технический4. Физический
АБСОЛЮТНАЯ ЗАЩИЩЁННОСТЬ
1. Не возможна
2. Безопасность программных систем не может быть обеспечена программными средствами
МОДЕЛЬ ЗЛОУМЫШЛЕННИКА
1. Внешний пользователь2. Внутренний пользователь3. Сотрудники компании-
разработчика
КАТЕГОРИИ СЕКРЕТНОСТИ ДАННЫХ
1. Публичная информация2. Служебная информация3. Служебная тайна4. Государственная тайна
УРОВНИ ТЕСТИРОВАНИЯ
EAL1 … EAL7
EAL1 (функциональное тестирование)…EAL7 (формальная верификация проекта и тестирование)
ISO/IEC 15408 “Common criteria”
МОДЕЛЬ ЗЛОУМЫШЛЕННИКА (ВНЕШНИЕ ПОЛЬЗОВАТЕЛИ)
1. Неквалифицированный пользователь
2. Квалифицированный пользователь
3. Высококвалифицированный хакер
4. Преступная группировка5. Спецслужбы
ТЕСТИРОВАНИЕ1. Теоретическая задача -
протестировать весь функционал (все классы эквивалентности)
2. Практическая (экономическая) задача – в заданные сроки, при имеющихся ресурсах обеспечить должное качество
USABILITY & SECURITY TESTING
Высокий уровень безопасности ~ низкое usability
Аппаратный ключВысокие требования к качеству пароля
Автологин & ввод пароляWebmoney & Яндекс.Деньги
MARKETING & SECURITY
MARKETING & SECURITY
Microsoft выпускает на массовом рынке:• Альфа-версии продуктов• Бета-версии продуктов• Релизы
Сначала захват рынка, а потом усиление безопасности
MARKETING & SECURITY
MS Office 2010:• Стоимость разработки 10М$• Стоимость единицы 10$• Число продаж 1M• Число инсталляций 5М
MARKETING & SECURITYMS Office 2012а:• Стоимость защиты 100К• Стоимость единицы 15$• Стоимость upgrade 5$• 60% старых пользователей• +20% новых• Инсталляций в мире: 7М
• 3М + 15М = 18М
MARKETING & SECURITYMS Office 2012b + аппаратные ключи:• Стоимость защиты 1М• Стоимость единицы 15$• Стоимость upgrade 5$• 50% старых пользователей• +20% новых• Инсталляций в мире – 5,5М
• 2,5М + 15М = 17,5М
MARKETING & SECURITYMS Office 2012с:• Стоимость защиты 10К• Стоимость единицы 15$• Стоимость upgrade 5$• 60% старых пользователей• +30% новых• Инсталляций в мире – 8М
• 3М + 30М = 33М
MARKETING & SECURITYMS Office 360:• Стоимость разработки 50М• Стоимость единицы 15$• Стоимость upgrade 5$• 60% старых пользователей• +60% новых• Инсталляций в мире – 1,2М
• 3М + 60М = 63М
КАК БОРОТЬСЯ?
ЭТАПЫ ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ
ЖИЗНЕННЫЙ ЦИКЛ ТБЗ
ОЦЕНКА РИСКОВ (COBIT, RISKWATCH…)
Risk = Probability * Cost
R = (D1^2 + R^2 + E^2 + A^2 + D2^2) / 1024
DREAD
• Damage potential (потенциальный ущерб). • Reproducibility (повторяемость). • Exploitability (простота организации атаки). • Affected users (затронутые пользователи). • Discoverability (простота обнаружения).
D,R,E,A,D = [1-10]
ОЦЕНКА РИСКОВ (DREAD)
R = (D1^2 + R^2 + E^2 + A^2 + D2^2) / 1024
• Damage potential (потенциальный ущерб). • Reproducibility (повторяемость). • Exploitability (простота организации атаки). • Affected users (затронутые пользователи). • Discoverability (простота обнаружения).
D,R,E,A,D = [1-10]
ДЕРЕВЬЯ АТАК
СПОСОБЫ БОРЬБЫ
Профилактика• Обучение• Дизайн приложения• Code review• Input validation• Continues integration checks
Тестирование• Черным ящиком• Белым ящиком• Серым ящиком• Fuzzy• Автоматизированные инструменты
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
СПОСОБЫ БОРЬБЫ: ОБУЧЕНИЕ
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
СПОСОБЫ БОРЬБЫ: ДИЗАЙН ПРИЛОЖЕНИЯ
• Guidelines• Check lists• Best practices
СПОСОБЫ БОРЬБЫ: ДИЗАЙН ПРИЛОЖЕНИЯ
не хранить секреты в открытом виде
принцип минимальных привилегий
использовать параметрезированные запросы
использовать хранимые процедуры
сообщения об ошибках не должны содержать служебной информации
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
СПОСОБЫ БОРЬБЫ: CODE REVIEW
Экспертиза исходных текстов, как метод тестирования безопасности и защищённости программных продуктов
http://software-testing.ru/library/testing/security/109
http://securitywiki.ru/PraktikaJekspertizaIsxodnyxTekstov?v=oqu
СПОСОБЫ БОРЬБЫ: CODE REVIEW
Patterns && Practices: Code Review
http://msdn.microsoft.com/en-us/library/ff648637.aspx
СПОСОБЫ БОРЬБЫ: CODE REVIEW
Java EE – использовать PreparedStatement() .NET – использовать параметризованные запросы при помощи SqlCommand() or OleDbCommand() PHP – использовать PDO с строго типизированными парамтризованными запросами (использование bindParam()) SQLite – использовать sqlite3_prepare() и т.п.
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
СПОСОБЫ БОРЬБЫ: INPUT VALIDATION
ПрофилактикаОбучение
Дизайн приложенияCode review
Input validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящиком
FuzzyАвтоматизированные инструментыПроверяйте входные
параметры
СПОСОБЫ БОРЬБЫ: INPUT VALIDATION
ПрофилактикаОбучение
Дизайн приложенияCode review
Input validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящиком
FuzzyАвтоматизированные инструменты
Портрет типичного пользователя
Dr. User Evil
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
Способы борьбы: Continues integration checks
Microsoft FxCop"CA2100: Review SQL queries for security vulnerabilities“
Microsoft Source Code Analyzer for SQL InjectionMicrosoft Code Analysis Tool for .Net (CAT.NET)
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
ТЕСТИРОВАНИЕ: МЕТОД «ЧЕРНОГО ЯЩИКА»
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
СПОСОБЫ БОРЬБЫ
ПрофилактикаОбучениеДизайн приложенияCode reviewInput validationContinues integration checks
ТестированиеЧерным ящикомБелым ящикомСерым ящикомFuzzyАвтоматизированные инструменты
СПОСОБЫ БОРЬБЫ
http://sqlmap.sourceforge.net/http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project
Scrawlr (HP)absinthe