Представлен релиз Trinity 1.1, инструмента для fuzzing-тестирования системных вызовов ядра Linux. Суть тестирования состоит в проверке работоспособности системных вызовов с учетом поступления всевозможных комбинаций случайных значений аргументов.
В отличие от других утилит fuzzing-тестирования, Trinity формирует аргументы с учетом специфики каждого системного вызова, что позволяет выявить трудноуловимые проблемы, проявляющиеся в близких к штатным условиях. Например, Trinity создаёт случайный набор реальных файловых дескрипторов и сетевых сокетов (открываются реальные файлы, pipe-каналы, элементы sysfs, procfs, /dev, устанавливаются сетевые соединения по различным протоколам и т.п.), которые передаются в качестве значений аргументов в системные вызовы, манипулирующие файловыми дескрипторами или сетевыми сокетами. При этом тестируется и одновременное обращение к системным вызовам с использованием одного дескриптора в несколько потоков. Для аргументов принимающих размер, в первую очередь генерируются значения в степени двойки +/- 1.
В выпуске 1.1 обновлена таблица системных вызовов, в которой учтены возможности ядра Linux вплоть до версии 3.8rc4. Добавлена поддержка архитектур MIPS и SuperH, улучшена поддержка архитектуры ARM. Расширены возможности по настройке тестирования в несколько потоков.
|