62
Очир Абушинов Особенности тестирования безопасности ПО

очир абушинов

Embed Size (px)

Citation preview

Page 1: очир абушинов

Очир Абушинов

Особенности тестирования

безопасности ПО

Page 2: очир абушинов

Содержание

Что такое тестирование безопасности и зачем оно нужно

Особенности

Стандарты

Типичные уязвимости

Методы

Сложности

Page 3: очир абушинов

Что такое тестирование безопасности?

Page 4: очир абушинов

Конфиденциальность

Целостность

Аутентификация

Авторизация

Доступность

Неотказуемость

Page 5: очир абушинов

Почему важно?

Page 6: очир абушинов

Информация и контроль доступа

Page 7: очир абушинов

Информация и контроль доступа

Стабильность системы

Page 8: очир абушинов

Информация и контроль доступа

Стабильность системы

Целостность системы

Page 9: очир абушинов

Информация и контроль доступа

Стабильность системы

Целостность системы

Экономическая эффективность

Page 10: очир абушинов

Где может быть нужно тестирование безопасности?

Page 11: очир абушинов

Веб-приложения

Page 12: очир абушинов

Приложения с важной коммерческой или персональной информацией

Page 13: очир абушинов

Платежные системы

Page 14: очир абушинов

Приложения, требующие целостности информации

Page 15: очир абушинов

Социальные приложения

Page 16: очир абушинов

Приложения с коммерческим лицензированием

Page 17: очир абушинов

Особенности тестирования безопасности ПО

Page 18: очир абушинов

Важность «негативного» тестирования

Page 19: очир абушинов

Думать как хакер

Page 20: очир абушинов

Качество тестирования безопасности ПО сложно измерить

Page 21: очир абушинов

Важность нефункциональных требований

Page 22: очир абушинов

Тестирование на основе рисков (Risk-based)

Page 23: очир абушинов

Уязвимости это такие же баги

Page 24: очир абушинов

Необходимость тестирования методом «белого» ящика

Page 25: очир абушинов

Стандарты для тестирования безопасности ПО

Page 26: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)

Page 27: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)ISACA (http://www.isaca.org)

Page 28: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)ISACA (http://www.isaca.org)

ISSAF (http://www.oissg.org/issaf)

Page 29: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)ISACA (http://www.isaca.org)

ISSAF (http://www.oissg.org/issaf)

NIST Guideline (http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf)

Page 30: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)ISACA (http://www.isaca.org)

ISSAF (http://www.oissg.org/issaf)

NIST Guideline (http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf)

OWASP Guide (http://www.owasp.org)

Page 31: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)ISACA (http://www.isaca.org)

ISSAF (http://www.oissg.org/issaf)

NIST Guideline (http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf)

OWASP Guide (http://www.owasp.org)

CHECK (http://cesg.gov.uk/find_a/check/index.cfm)

Page 32: очир абушинов

OSSTMM (http://www.isecom.org/osstmm/)ISACA (http://www.isaca.org)

ISSAF (http://www.oissg.org/issaf)

NIST Guideline (http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf)

OWASP Guide (http://www.owasp.org)

CHECK (http://cesg.gov.uk/find_a/check/index.cfm)

PROTOS (https://www.ee.oulu.fi/research/ouspg/Protos)

Page 33: очир абушинов

Типичные уязвимости

Page 34: очир абушинов

Неверная валидация входных данных

Page 35: очир абушинов

Неверная валидация входных данных

Внедрение параметров (XSS, CSRF)

Page 36: очир абушинов

Неверная валидация входных данных

Внедрение параметров (XSS, CSRF)

Переполнение буфера

Page 37: очир абушинов

Неверная валидация входных данных

Внедрение параметров (XSS, CSRF)

Переполнение буфера

Инъекции

Page 38: очир абушинов

Неверная валидация входных данных

Внедрение параметров (XSS, CSRF)

Переполнение буфера

Инъекции

Неверное завершение сессий

Page 39: очир абушинов

Неверная валидация входных данных

Внедрение параметров (XSS, CSRF)

Переполнение буфера

Инъекции

Неверное завершение сессий

Аутентификация или авторизация

Page 40: очир абушинов

Методы тестирования безопасности ПО

Page 41: очир абушинов

Анализ архитектуры и построение модели угроз и рисков

Page 42: очир абушинов

Угроза Вероятность (от 1 до 10)

Ущерб (от 1 до 10)

Подверженность (от 1 до 10)

Приоритет

Отказ в обслуживании (DDOS)

4 8 1 2

Вредоносный код

1 6 1 4

Инсайдеры 2 9 2 3

Физическое повреждение аппаратуры

1 9 1 5

Отказ БД 2 10 1 1

Потери при передаче данных

3 2 3 7

Сетевой взлом 1 9 1 6

Page 43: очир абушинов

Поиск уязвимостей в исходном коде

Ревью кода разработчиками

Анализ кода при помощи утилит статического и динамического анализа

Page 44: очир абушинов

Fuzz тестирование

Тестовые скрипты, генерирующие случайные данные

Open-source утилиты для фаззинга

Page 45: очир абушинов

Тестирование на проникновение

Веб-сканнеры(skipfish, wapiti, etc.)

Анализ сети, используя OpenVAS, nmap и другие утилиты

Ручное тестирование на проникновение

Page 46: очир абушинов

Тестирование, основанное на рисках (Risk-based)

Основано на матрице угроз и рисков

Тестирование «негативных» сценариев

Концентрация на том, что нельзя сделать

Думать, как злоумышленник

Page 47: очир абушинов

Нефункциональное тестирование

Нагрузочное тестирование

Стресс тестирование

Объемное тестирование

Тестирование масштабируемости

Юзабилити тестирование

Page 48: очир абушинов

Инструменты тестирования

Сканирование исходного кода (RATS, cppcheck, FindBugs)

Тестирование на проникновение (OpenVAS, Nmap, w3af)

Сканирование веб-сайтов (Nikto, Pixy, Acutenix)

Снифферы (NetCat, Wireshark)

Модифицированные нагрузочные тесты

Page 49: очир абушинов

Сложности в тестировании безопасности

Page 50: очир абушинов

Кроссплатформенное ПО

Приложение может вести себя по разному

Много конфигураций

Разное «железо»

Разные драйверы

Page 51: очир абушинов

Эмуляция аппатуры для защиты ПО

Page 52: очир абушинов

Уязвимости в используемом ПО

Page 53: очир абушинов

Требования к безопасности ПО

Приложение не должно взламываться

Приложение не должно «падать»

Доступ по сети должен быть безопасным

Как это протестировать?

Page 54: очир абушинов

Этапы тестирования безопасности

Анализ угроз

Анализ уявимостей

Матрица угроз и рисков

Определение критериев защищенности

Простые тесты

Анализ исходного кода

Сбор информации

Нагрузочные тесты

Тесты на проникновение

Внешняя экспертизаРешение проблем

Fuzz тестирование

Нефункциональное тестирование

Тестирование, основанное на рисках

Подготовка

Тестирование

Планирование Проектирование Разработка Внедрение

Page 55: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Page 56: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Невозможно измерить качество тестирования безопасности

Page 57: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Невозможно измерить качество тестирования безопасности

Не стоит думать, что функционального тестирования достаточно

Page 58: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Невозможно измерить качество тестирования безопасности

Не стоит думать, что функционального тестирования достаточно

Можно и необходимо постоянно изучать новые технологии

Page 59: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Невозможно измерить качество тестирования безопасности

Не стоит думать, что функционального тестирования достаточно

Можно и необходимо постоянно изучать новые технологии

Тестирование безопасности похоже на исследовательское

Page 60: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Невозможно измерить качество тестирования безопасности

Не стоит думать, что функционального тестирования достаточно

Можно и необходимо постоянно изучать новые технологии

Тестирование безопасности похоже на исследовательское

Необходимо проводить экспертизу

Page 61: очир абушинов

Выводы

Тестирование безопасности - это необходимый этап для компаний,

которым важен безопасный “софт”

Невозможно измерить качество тестирования безопасности

Не стоит думать, что функционального тестирования достаточно

Можно и необходимо постоянно изучать новые технологии

Тестирование безопасности похоже на исследовательское

Необходимо проводить экспертизу

Особое внимание архитектуре и компонентам

Page 62: очир абушинов

Спасибо за вниманиеВопросы?

Очир Абушинов[email protected]