О багах и атаках
Баги — это ошибки внутри компьютерных программ. Всякая крупная программа содержит множество багов, но большинство из них обычно безвредны, и остаются нетронутыми, пока не будут заменены новыми фрагментами кода, содержащими собственные баги. Некоторые баги обнаруживаются в процессе тестирования, проводимого разработчиком или поставщиком ПО. В таком случае изготовитель исправляет баг в последующей версии программы и, если баг серьёзный, выпускает патч (программную "заплатку", исправляющую текущую версию), который распространяет среди зарегистрированных пользователей. Некоторые разработчики при этом публикуют подробности бага в Сети, другие не делают этого.
Иногда люди находят ошибки в чужих программах. В случаях, когда найденный баг затрагивает компьютерную безопасность, принято следовать такой процедуре: поставщик ставится в известность, и ему даётся разумный срок (от двух до четырёх недель) на исправление проблемы и на доведение информации до сведения пользователей. После этого исследователь публикует подробности бага в интернете. Существуют специальные дискуссионные группы и списки рассылки для обсуждения багов. Один из веб-сайтов по инфобезопасности http://www.securityfocus.com поддерживает базу компьютерных багов bugtraq и одноимённый список рассылки.
Зачастую производители ПО не реагируют должным образом на уведомление о проблеме. Они не видят необходимости в исправлении бага, отрицают его, а иногда сообщение исследователя попросту пропадает, потому что никто в компании не считает своим долгом на него отвечать. В таком случае исследователь ожидает разумное время (некоторые хакеры полагают, что и 20 минут должно быть довольно) и всё равно публикует подробности бага. Это оказывается крайне на руку злоумышленникам в их желании атаковать незащищённую цель.
После публикации бага его, как правило, исправляют уже к следующей версии программы. Но это не значит, что о баге теперь можно забыть: не все устанавливают патчи и используют новейшие версии ПО. Такой же баг или похожий может присутствовать и в другом ПО. В 1999 году был обнаружен баг форматированной строки: оказалось, что самая обычная функция языка C, sprintf, имела очень необычное свойство — позволяла перезаписывать произвольные участки памяти произвольными данными. Это "свойство" существовало на протяжении 20 лет, однако не все программисты знали о нём. Тысячи программ были подвержены этому багу, и даже сейчас то и дело новая вариация проблемы появляется на страницах bugtraq. В 2001 году ошибка форматированной строки была найдена в GnuPG. Другие баги тоже имеют тенденцию к воскрешению, поэтому я провёл исследование проблем безопасности, выявленных в PGP в прошлом, и постарался выяснить, какие из них были устранены.
Назад[link1] | Дальше[link2]
[link2] https://www.pgpru.com/biblioteka/statji/analiznadezhnostipgp/bagiataki/baglinux