Объявлены победители восьмого конкурса по созданию скрытного кода на языке Си
Объявлены победители восьмого соревнования «Underhanded C Contest», участникам которого предлагалось создать небольшие и легко читаемые программы на языке Си, которые с виду не вызывают подозрений, но выполняют скрытые и непредсказуемые действия. Чем труднее при проведении аудита кода распознать скрытую вставку, тем выше ставится оценка участнику. Победитель получил приз в 1000 долларов.
Конкурс проведён совместно с Фондом «Инициатива по уменьшению ядерной угрозы» (Nuclear Threat Initiative). В качестве задания было предложено создание закладки, приводящей к ложному срабатыванию проверки состояния ядерного оружия, позволяя незаметно удалить радиоактивные материалы из боеголовки. Работы подавляющего большинства участников были основаны на использовании неопределённых значений чисел с плавающей запятой (NaN, например, получается в результате sqrt (-1.0) или 0/0), которые в вычислениях с другими числами порождают NaN-результат и в операциях сравнении воспринимаются как «false».
Победителем соревнования признан код, искажающий результаты спектрального анализа через манипуляции с переменными с плавающей запятой (на вход функции, ожидающей массив из 4-байтных чисел одинарной точности передавался массив из 8-байтных чисел двойной точности, таким образом каждое 8-байтовое число трактовалось как два разных 4-байтовых).
© OpenNet