Мутационное тестирование сетевых протоколов с использованием формальных моделей Шнитман В.З. [email protected] Пакулин Н.В. [email protected] Никешин А.В. [email protected] Институт системного программирования РАН План презентации Введение. Методы построения некорректных воздействий Анализ исходного кода программ Использование реального сетевого обмена Применение формальных моделей Наш метод моделирования протоколов Тестирование протокола TLS с использованием моделей 2 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Анализ исходного кода программ Автоматическое тестирование по принципу белого ящика Статический анализ Динамический анализ KLEE, Avalanche, SAGE, DART, … 3 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Использование реального сетевого обмена Мутационное тестирование сетевых протоколов без использования формальных моделей The Defensics traffic capture использует ранее сохраненный сетевой обмен SECFUZZ 4 тестирование протоколов безопасности Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Применение формальных моделей Fuzz-тестирование сетевых протоколов на основе формальных моделей PROTOS SNOOZE Peach / HotFuzz UniTESK 5 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Моделирование протоколов средствами UniTESK 6 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Используемый подход (1) Нотация Расширение языка Java Модель системы S Контрактная спецификация 7 Реализация Модель теста Конечный автомат, заданный в неизбыточной форме Основан на технологии автоматизированного тестирования UniTESK Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Используемый подход (2) Формализация стандарта протокола Формальное задание тестов S Стандарт протокола (IETF RFC) 8 Формальная спецификация Научный сервис в сети Интернет, Новороссийск Тестовый набор 21-26 сентября 2015 г. Тестирование соответствия модели Определение текущего состояния Конструктор конкретных тестовых воздействий Обходчик Итератор обобщённых тестовых воздействий Автомат теста 9 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Операторы мутации для протоколов Типы операторов мутации по целевому воздействию: изменяющие порядок сообщений в потоке обмена изменяющие порядок заголовков в конкретном сообщении изменяющие значения полей заголовка 10 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Виды мутаций для простых типов данных для целых типов: установление произвольного значения установление значения нуль установление максимального для данного типа значения для байтовых массивов: изменение произвольного байта в массиве изменение всех байтов в массиве использование массива нулевой длины уменьшение/увеличение длины массива 11 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Аннотации языка Java Использование аннотаций языка Java для описания изменяемых полей сообщений протокола @MutateField (mutate = true; comment = "") public ProtocolVersion version; 12 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Немного о TLS 13 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Протокол TLS/SSL Пожалуй, наиболее часто используемый протокол безопасности (эл. почта, HTTPS, web-API мобильных приложений) Конфиденциальность, целостность, аутентификация Двухуровневый 14 Прикладной уровень – handshake, уведомления, передача прикладных данных Уровень записей (records) – фрагментирование, шифрование, контрольные суммы Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Устройство TLS/SSL Конфиденциальность, целостность Шифрование DES, 3DES, AES, BlowFish, GOST, … Сертификат, разделяемый секрет Односторонняя аутентификация, взаимная аутентификация Двухуровневый Хэш функции Аутентификация Расширяемый набор криптосистем Прикладной уровень – handshake, уведомления, передача прикладных данных Уровень записей (records) – фрагментирование, шифрование, контрольные суммы Состояние TLS – набор параметров используемых криптографических средств 15 Актуальное состояние и будущее состояние Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Защита данных Прикладные данные Фрагментирование Сжатие Контрольная сумма Шифрование Отправка 16 Прикладные данные сжимаются и шифруются в соответствии с текущим состоянием протокола записей TLS Прикладные данные рассматриваются как бинарные последовательности, их семантика или структура не учитываются TLS Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Типовой сеанс TLS Клиент ClientHello Сервер ServerHello Server Certificate ServerKeyExchange CertificateRequest SerververHelloDone Client Certificate ClientKeyExchange CertificateVerify ChangeCipherSpec Finished ChangeCipherSpec Finished Data 17 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Тестирование TLS с использование моделей 18 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Выбор реализаций TLS (1) Реализации сервера: почтовый сервер Postfix.2.9.3 с открытой реализацией протокола TLS openssl.1.0.1c реализация TLS в виртуальной машине Java 1.7.0_05 (Java Secure Socket Extension, JSSE) тестовый сервер TLS интернет ресурса https://www.mikestoolbox.net 19 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Выбор реализаций TLS (2) Реализации клиента: Библиотечные реализации протокола: Интернет браузеры: реализация TLS в виртуальной машине Java 1.7.0_05 встроенная реализация клиента TLS библиотеки openssl-1.0.1j Mozilla Firefox 34.0.5 Opera 12.17 SRWare Iron 42.0.2250.1 Internet Explorer 11.0.9600.17691 Почтовые клиенты: 20 Mozilla Thunderbird 31.7.0 TheBat 6.8, Becky 2.71, CheckMail 5.7, ClawsMail 3.10, eMClient 6 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Результаты. Серверы (1) Почтовый сервер Postfix.2.9.3: OpenSSL 1.0.1c Не всегда отправляет уведомление о разрыве соединения Некорректно обрабатывает ошибки в ClientHello В отдельных ситуациях некорректно обрабатывает длину элементов сообщения Принимает сообщения чрезмерной длины В отдельных ситуациях некорректно выбирает сертификат www.mikestoolbox.com 21 Не осуществляет в ряде случаев проверку номера версии протокола – нарушение критического требования Не проверяет сообщение CertificateVerify В отдельных ситуациях некорректно выбирает сертификат Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Результаты. Серверы (2) Java Runtime Environment 1.7.0_5 22 Игнорирует поле длины в сообщениях Handshake В отдельных ситуациях некорректно обрабатывает длину элементов сообщения Принимает сообщения чрезмерной длины Некорректно обрабатывает множественные сообщения с сертификатами В отдельных ситуациях некорректно выбирает сертификат Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Результаты. Клиенты(1) Openssl-1.0.1j Некорректно обрабатывает расширения ServerHello В отдельных ситуациях не правильно обрабатывает нарушение порядка сообщений В отдельных ситуациях нарушает правила переустановки криптографических параметров Java Runtime Environment 1.7.0_5 23 Игнорирует дубликаты сообщений В отдельных ситуациях игнорирует нарушение порядка сообщений В ряде случаев некорректно работает с сертификатами Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Результаты. Клиенты. Браузеры(2) Mozilla Firefox 34.0.5 Opera 12.17 В ряде случаев некорректно работает с сертификатами Не проверяет версию протокола в сообщении ServerHello В отдельных ситуациях нарушает правила переустановки криптографических параметров В ряде случаев некорректно работает с сертификатами Internet Explorer 11.0 24 Некорректно обрабатывает расширения ServerHello В ряде случаев не проверяет номер версии протокола Принимает сообщения чрезмерной длины Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Результаты. Почтовые клиенты(3) Mozilla Thunderbird 31.7.0 В ряде случаев некорректно работает с сертификатами TheBat 6.8, Becky 2.71, CheckMail 5.7, ClawsMail 3.10, eMClient 6.0 25 Не поддерживают TSL v1.2 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г. Наиболее распространенные нарушения Неадекватное использование сертификатов Игнорирование нарушения порядка сообщений Неправильная обработка полей длины В отдельных ситуациях нарушаются правила переустановки криптографических параметров 26 Научный сервис в сети Интернет, Новороссийск 21-26 сентября 2015 г.