11/15/2006

Используйте фаззинг

Фаззинг (fuzzing) – это метод тестирования, который был разработан для поиска ошибок, связанных с ненадежностью. Почти каждая ошибка или уязвимость, связанная с синтаксическим анализом файлов, была найдена либо просто случайно, либо с помощью фаззинга.
Cинтаксический анализ сложных структур данных – это сложная задача, сложный код будет иметь ошибки. Вы должны тестировать всякий код, который проводит синтаксический анализ файлов и сетевого трафика. Программа Майкрософт под названием «Жизненный цикл разработки безопасности» (SDL, Security Development Lifecycle) очень подробно говорит о том, что это значит для форматов файлов.

Вы должны тестировать все анализаторы испорченных файлов по 100 000 раз, используя средства фаззинга файлов.

Cредство фаззинга файлов, а также средство фаззинга исходного кода C++ включены в книгу The Security Development Lifecycle (авторы: Michael Howard и Steve Lipner microsoft.com/MSPress/books/8753.asp) ...

Криптография

В Майкрософт запрещено использовать алгоритмы DES (длина ключа слишком мала), MD4 или MD5 (оба они сейчас сломаны), если только их применение не продиктовано стандартом отрасли ...

Cписок общеизвестных уязвимостей (CVE)

Cписок общеизвестных уязвимостей (CVE) (cve.mitre.org) показывает, что за период 2001-2004 гг. 47 процентов всех уязвимостей безопасности, включенных в CVE, было связано с поступающими в систему данными. Среди самых известных проблем – переполнение буфера, целочисленные арифметические ошибки, вызов сценариев с других веб-узлов и вставка SQL-команд. Сегодня мы видим новые вариации на эту тему, например, вставки кода XPath или вставки в протокол LDAP (Lightweight Directory Access Protocol) ...