Компьютерная группа реагирования на чрезвычайные ситуации (CERT) представила открытый инструментарий CERT Triage Tools 1.0, нацеленный на упрощение процесса определения степени опасности различных ошибок, выявленных в результате таких техник как fuzzing-тестирование, и формирование приоритетов для исправления данных ошибок в процессе разработки. В частности, обнаружив серию ошибок, приводящих к краху, разработчик может быстро оценить какие из ошибок представляют угрозу с точки зрения безопасности и требуют первоочерёдного исправления.

В состав инструментария входит "exploitable" - написанное на языке Python дополнение к отладчику GDB (GNU Debugger), которое может использоваться для классификации по степени опасности ошибок в 32- и 64-разрядных приложениях на платформе Linux, выступая аналогом таких пакетов как !exploitable для Windows и CrashWrangler для Mac OS X. Кроме дополнения к GDB в состав входит скрипт для автоматизации проведения проверок в пакетном режиме. Например, скрипт позволяет на основании набора crash-дампов получить отчёт, какие из них содержат эксплуатируемые проблемы и в чём суть ошибок (StackBufferOverflow, DestAv, PossibleStackCorruption, BadInstruction, HeapError, FloatingPointException и т.п.);

Для проведения fuzzing-тестирования, в процессе которого осуществляется генерация потока всевозможных случайных комбинаций входных данных и фиксируются крахи, можно использовать ранее выпущенный открытый инструментарий Basic Fuzzing Framework (BFF), который поддерживает работу в Linux и Mac OS X. В выпущенном на днях релизе BFF 2.5 была обеспечена поддержка использования классификатора CrashWrangler для Mac OS X, но так как для Linux аналогичного ПО не существовало, было решено разработать собственное решение Triage Tools. Тем не менее, Triage Tools может работать не только в сочетании с BFF, но и как отдельный инструментарий.

При беглом сравнении Triage Tools с инструментами "!exploitable" и "CrashWrangler", генерируемые при их помощи отчёты очень похожи. Но это только первое впечатление, в Triage Tools реализован принципиально другой метод анализа - если "!exploitable" анализирует весь блок, в котором присутствует инструкция, вызвавшая сбой, то Triage Tools никогда не заглядывает дальше проблемной инструкции. Кроме того, Triage Tools целиком написан на языке Python, в то время как !exploitable" написан на C++, а CrashWrangler на Ruby и Си. Использование Python существенно упрощает модификацию кода под свои нужды и интеграцию с сторонние продукты.

Источник: http://www.opennet.ru/opennews/art.shtml?num=33735