1/08/2007

Microsoft Word - это был "смертельный бой"

Самая первая версия Microsoft Word для Windows была проектом типа "смертельный бой". Работа над ней повисла навечно. Вся команда вкалывала, не покладая рук, и при этом выпуск откладывался снова, и снова, и снова, и стресс был просто невыносимым. Когда эту чёртову штуку всё-таки выпустили с задержкой в несколько лет, Microsoft отправил всю команду в отпуск в Мексику и провёл серьёзный анализ.

Вскрытие показало, что менеджеры проектов так упорно придерживались сроков, что разработчикам приходилось гнать во весь опор и писать ужасный код, потому что исправление ошибок не входило в общий план действий. Не было даже попытки вести счёт ошибкам. Как раз наоборот. Говорят, что один программист, который должен был написать код для вычисления высоты строки, просто написал "return 12;" и стал ждать сообщения об ошибке - написаная им функция не всегда правильно работала. План работ был больше похож на список функций, проверка которых переводила их в ранг ошибок. Такой подход получил название "метода бесконечных дефектов".

Чтобы справиться с этой проблемой, Microsoft повсеместно стал внедрять "метод отсутствия дефектов". Большинство программистов в компании посмеивалось. Выглядело это так, будто они могли сократить количество ошибок по приказу начальства. В действительности же термин "отсутствие дефектов" трактовался следующим образом. В любой момент времени наиболее важным является исправление ошибок до написания нового кода. ...

12/26/2006

Процессоры Intel ездят на улитках ... и Apple'овские тоже.

Было время, Apple крутила по телевизору рекламные ролики: процессоры Intel Pentium ездят на улитках, но теперь все изменилось ...

Глава Apple Стив Джобс окинул взором гигантский конференц-зал, собравший почти 4000 программистов со всего мира и сказал: «процессоры для компьютеров Apple отныне будут производиться корпорацией Intel».

Первый «Макинтел» будет показан ровно через год на следующей конференции для разработчиков. К тому времени Intel выпустит новый процессор, а Apple доведет до ума новую версию операционной системы. Такие компании как Adobe Systems и Microsoft уже заявили, что поддерживают нововведения. Конечно поддерживают, ведь Microsoft инвестировала 150 млн. долларов в Apple года два назад ;)

Объявление вызвало много шума и возмущения. Миллионы пользователей элитарных игрушек, упс, компьютеров Apple Macintosh негодуют. «Наверное, так должен чувствовать себя еврей, которому любимый раввин объявил, что с завтрашнего дня он должен есть свинину»,—пишет в онлайновом дневнике некто Sauri. ...

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) ...