Недавно компания Microsoft выпустила две новые бесплатные утилиты - Minifuzz и BinScope. Главное назначение этих утилит - помочь сторонним разработчикам в проверке своих программ на соответствие требованиям безопасности. Скачать их можно по ссылке http://msdn.microsoft.com/en-us/security/cc421514.aspx, где можно найти и другие бесплатные и полезные утилиты :)
Утилита Minifuzz представляет собой инструмент для обнаружения ошибок в коде путем подачи приложению в качестве входных параметров случайных данных. Согласно стандарту безопасной разработки Microsoft SDL (Secure Development Lifecycle – жизненный цикл безопасной разработки), каждый алгоритм и программный модуль должен проходить масштабную проверку на наличие переполнений буфера и других распространенных уязвимостей путем тестирования случайными входными данными (fuzzing). Если крупные разработчики программных продуктов уже давно внедрили эту технологию для своих производственных процессов, то независимые разработчики до сих пор редко использовали подобные методики. С появлением свободно распространяемой утилиты Minifuzz входной барьер на пути к методике тестирования случайными входными данными значительно снижается.
Утилита BinScope Binary Analyzer предназначена для проверки исполняемого кода на соблюдение множества общепринятых правил написания кода. Она обеспечивает расширенную проверку результатов работы программистов путем анализа самих исполняемых файлов. Например, проверяет, какая версия компилятора использовалась при сборке программы – конечно, для ответственных задач необходимо использовать самую актуальную версию компилятора. Также утилита BinScope уведомит тестировщика о том, что файл был скомпилирован без ключа /GS, который эффективно предотвращает атаки на приложение с использованием переполнения буфера.
Чтобы программу BinScope не могли использовать злоумышленники при поиске уязвимостей в чужих программных продуктах, утилита BinScope работает только тогда, когда пользователь имеет полномочный доступ к специальному набору отладочной информации для проверяемого исполняемого файла (private symbol) – в большинстве ситуаций эта информация недоступна никому, кроме самих разработчиков.
В последнее время компания Microsoft прилагает серьезные усилия по повышению качества не только собственных программ, но и инструментов разработки. Особенно это касается заботы о сторонних разработчиках Windows-приложений. Новые бесплатные утилиты Minifuzz и BinScope еще раз напоминают, что Microsoft не бросает этих разработчиков на произвол судьбы, что не может не радовать :)