SmartRisk Analyzer поможет найти дыры в новых программах [ Редагувати ]
Софтверная фирма @stake из Кембриджа (штат Массачусетс) разработала программу, которая называется SmartRisk Analyzer. Ее основная задача - поиск ошибок и дыр в системе защиты других программ. Так что предназначена она для программистов, которые хотели бы проверить написанный ими код и сделать его более качественным.
SmartRisk Analyzer сканирует программы, написанные на языках C, C++ и Java, и ищет в них ошибки, используя которые хакеры могут взломать систему защиты программы. Самыми распространенными ошибками такого рода являются ошибки, допускающие переполнение буфера.
Особо следует отметить, что SmartRisk Analyzer анализирует бинарный код программ, то есть код, состоящий из нулей и единиц, полученный после трансляции кода, написанного программистом.
Благодаря такой технологии SmartRisk Analyzer может отлавливать ошибки, которые проявляют себя только когда программа взаимодействует с сервисами операционной системы, в том числе с API-интерфейсами системы защиты, криптографическими API-интерфейсами или сетевыми файловыми службами.
По заявлению разработчиков, SmartRisk Analyzer также проверяет систему ввода данных и выискивает так называемые "черные ходы".
При анализе кода SmartRisk Analyzer сравнивает его с собранной @stake базой данных правил обеспечения защиты и надежности кода, в которой имеется около 400 записей. Потом анализатор генерирует отчет, в котором обнаруженные ошибки ранжируются по типу или по рейтингу их опасности, а специальный модуль помечает ошибочный нетранслированный код метками, так что программисту не составит большого труда найти ошибку и исправить ее (последнее - если получится).
По заявлению создателей SmartRisk Analyzer, с этим анализатором смогут работать и те программисты, которые не слишком сведущи в проблемах защиты. В отличие от этого анализатора существующие средства "динамического" анализа программ используют для проверки работы приложений тесты с автоматическим вводом данных.
Они проверяют реакцию уже готовой программы на ввод разных данных. SmartRisk Analyzer можно назвать статическим анализатором. Он хорош тем, что позволяет проверять правильность кода буквально в процессе его написания, что, несомненно, должно сократить время и силы на исправление ошибок.
Пока @stake выпустила версии SmartRisk Analyzer для языков C и C++, предназначенные для платформ Windows (Windows 2000, 2003 и XP) и SPARC от Sun Microsystems. Версия для языка Java должна выйти в июне.
В заключение отметим, что SmartRisk Analyzer не является каким-то уникальным анализатором. Например, в апреле 2004 года начинающая компания Fortify Software представила анализатор кода Fortify Source Code Analysis для программ, написанных на C++ и Java, который использует в работе список из более чем 500 программистских ошибок, составленный компанией Cigital, специализирующейся на управлении качеством ПО.