Security Testing - Polazhenko Sergey

Preview:

DESCRIPTION

Встреча QA Club Minsk, посвященная тестированию безопасности и защищённости.

Citation preview

ТЕСТИРОВАНИЕ БЕЗОПАСНОСТИ

Полаженко Сергей, ООО «Лаборатория тестирования»

polazhenko@sqalab.ru

ЧТО ТАКОЕ БЕЗОПАСНОСТЬПРОГРАММНОГО ПРОДУКТА (ПП)?

Безопасность ПП -

(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Автоматизированные инструменты

КОНТАКТЫ

polazhenko@sqalab.ru

www.securitywiki.ru Polazhenko.moikrug.ru

Recommended