При взгляде на этот театр абсурда со стороны складывается впечатление, что подобные факты непременно всплывут, если поковыряться в любой DRM-защите, активно насаждаемой гигантами индустрии контента. Sony применяла XCP по крайней мере с марта, и тайные безобразия сходили ей с рук лишь до тех пор, пока подозрительным руткитом случайно не заинтересовался американец Марк Рассинович, независимый специалист по компьютерной безопасности. После этой истории, хочется верить, более тщательному анализу будут подвергнуты и DRM-технологии других флагманов индустрии развлечений. Наверняка там обнаружится много интересного.
Жизнь насекомых
Вряд ли в далеких сороковых годах инженеры, доставшие из чрева компьютера Mark II виновницу замыкания - крохотную мошку, могли предвидеть, какая судьба уготована брошенному ими мимоходом словечку «bug». В наши дни, когда не в меру расплодившиеся компьютерные «насекомые» встречаются чуть ли не на каждом шагу, некоторые из них в буквальном смысле начинают влиять на вопросы жизни и смерти, а порой - даже на ход мировой истории. Чего стоит, к примеру, десятка крупнейших багов всех времен и народов, недавно составленная обозревателями журнала Wired.
1. Ошибка в программе расчета курса ракеты-носителя Mariner 1 (1962, первый американский аппарат, направленный к Венере), которая после схода с намеченной орбиты была уничтожена над Атлантическим океаном. Причиной инцидента послужила крошечная небрежность при переводе в машинный код формулы, наскоро набросанной на бумаге карандашом.
2. Коварный баг, затесавшийся в канадский пакет софта, управляющего контрольной системой газопровода. Возможно, обеспечил отечественный взнос в коллекцию: произошедшую якобы по его вине в 1982 году аварию участка Транссибирской газомагистрали сопровождал крупнейший из когда-либо зарегистрированных на земной поверхности неядерный взрыв. Увы, единого мнения по поводу причин катастрофы нет до сих пор: американские обозреватели записывают этот инцидент в актив бравых хакеров из ЦРУ, а кое-кто из отечественных экспертов начисто отрицает вмешательство «мировой закулисы», кивая на традиционное российское головотяпство (см.«КТ» #536).
3. Cбой в компьютерной системе настройки ускорителя Therac-25, используемого в радиационной терапии (1985-87). Оплошность при задании программных настроек привела к неверному размещению металлического защитного экрана, поглощающего электроны высоких энергий и генерирующего рентгеновское излучение (экран был подвижным, поскольку система предусматривала режим прямого облучения пациентов электронами низких энергий). В результате многие пациенты попали под высокоэнергетический электронный пучок ускорителя, получили удар электрическим током и сильные ожоги; по крайней мере пять человек умерло позже от лучевой болезни.
4. Ошибка переполнения буфера в берклиевской версии Unix при вызове функции gets(). Была использована при написании самого первого в истории компьютерного вируса - червя Морриса (1988). Просочившись в Сеть, всего за один день вирус-пионер отправил в нокаут примерно одну десятую часть тогдашнего Интернета (хотя червь Морриса и не содержал деструктивных функций, производительность пораженных им машин резко падала). С тех самых пор сквозь дыры, обнаруженные в фирменном софте, без помех шастают всевозможные черви и троянцы.
5. Дефект генератора ключей системы криптозащиты Kerberos - самый «долгоиграющий» баг, просуществовавший с 1988 по 1996 годы. Как выяснилось, грозный «Цербер» был лишен зубов: по программерскому недосмотру использованный в нем генератор случайных чисел оказался недостаточно «случайным». До сих пор неизвестно, удалось ли кому-нибудь из злоумышленников поставить этого «пса» себе на службу.
6. Девятичасовая авария, выведшая из строя системы американской компании AT amp;T (1990). Виной тому - обновление софта для коммутаторов, обслуживающих «дальнобойные» звонки: электронные «телефонисты» тут же принялись рассылать своим соседям сигналы перезагрузки с интервалом в несколько секунд, в результате чего телефонная сеть рухнула, как цепочка костяшек домино. Восстановить статус-кво удалось лишь после «даунгрейда» до предыдущей версии софта.