Расширение языка Java

advertisement
Мутационное тестирование
сетевых протоколов с использованием
формальных моделей
Шнитман В.З. vzs@ispras.ru
Пакулин Н.В. npak@ispras.ru
Никешин А.В. alexn@ispras.ru
Институт системного программирования РАН
План презентации
Введение. Методы построения некорректных
воздействий




Анализ исходного кода программ
Использование реального сетевого обмена
Применение формальных моделей
Наш метод моделирования протоколов
Тестирование протокола 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 г.
Download