Тестирование состояний гонки с... Заметка
Project Zero на русском

Тестирование состояний гонки с помощью трассировки доступа к памяти и инжекции задержек на основе стека

Многие ошибки безопасности являются условиями гонки, когда многопоточная обработка должна происходить с правильным чередованием, чтобы проявился негативный эффект. Это создает проблемы для нескольких вариантов использования: подтверждение кандидатов на ошибки, обнаруженных вручную или с помощью статического анализа. Регрессионные тесты: после исправления ошибки условия гонки часто нет хорошего способа написать регрессионный тест, который надежно воспроизводит ошибку как часть набора тестов. Автоматическое обнаружение ошибок, такое как фаззинг: фаззеру трудно проверить все интересные чередования параллельных операций или достичь путей кода, которые активируются только тогда, когда операции находятся в состоянии гонки.