Выбрать главу

Неожиданность. Судя по сообщениям в прессе, программисты Sony не знают, как происходит утечка информации о кредитных картах от одного пользователя к другому. Она просто происходит.

«Баги». Уязвимость Netscape Enterprise Server 3/6 была следствием программного «бага». Нарушитель мог использовать этот «баг», породив проблему для безопасности.

Многие страницы этой книги (особенно в третьей ее части) посвящены детальному объяснению, почему безопасность мыслится как система внутри большой системы, но пока я хочу, чтобы для начала вы просто держали в голове две вещи.

Первое – это соотношение между теорией и практикой безопасности. Существует целая куча теорий безопасности: теория криптографии, теория брандмауэров и обнаружения вторжения, теория биометрик. В истории полно примеров, когда система была основана на великой теории, но терпела поражение на практике. Йоги Берра однажды сказал: «В теории нет различия между теорией и практикой. На практике есть».

Теоретические изыскания лучше всего подходят для идеальных условий и лабораторных установок. Самая популярная шутка на занятиях физикой в моем колледже была: «Рассмотрим сферическую корову с равномерно распределенной плотностью». Некоторые вычисления мы можем производить только для идеализированной системы: реальный мир гораздо сложнее, чем теория. Цифровые системы безопасности также подчиняются этому закону: мы можем сконструировать идеализированные операционные системы так, что они, вероятно, будут безопасными, но мы не можем заставить их действительно безопасно работать в реальном мире. В реальном мире существуют несоответствия проекту, неприметные изменения и неправильные реализации.

Реальные системы не подчиняются теоретическим решениям. Совпадения случаются только тогда, когда сферическая корова обладает такими же неожиданными свойствами, как и реальная Буренка. Именно по этой причине ученые – не инженеры.

Вторая важная вещь, которую нужно помнить – это соотношение между предупреждением, обнаружением и реагированием. Хорошая защита объединяет все три звена: безопасное хранилище, чтобы сохранить ценности, сигнализацию, чтобы обнаружить грабителей, если они захотят туда проникнуть, и полицию, которая отреагирует на сигнал тревоги и поймает грабителей. В системах компьютерной безопасности наблюдается тенденция полагаться в основном на упреждающие меры: криптография, брандмауэры и т. д. В большинстве случаев в них не заложено обнаружения и почти никогда нет реагирования и преследования. Такая стратегия оправдана только тогда, когда предупредительные меры совершенны: в противном случае кто-нибудь наверняка сможет сообразить, как их обойти. Большинство уязвимых мест и, соответственно, нападений, описанных в данном разделе, – это результат несовершенства превентивных механизмов. В реальности же нашего мира обнаружение и реагирование очень существенны.

Часть I

Ландшафт

Компьютерную безопасность часто представляют абстрактно: «Эта система защищена». Продавец программного обеспечения может сказать: «Эта программа гарантирует защиту вашей сети» или «Мы обеспечиваем безопасность электронной коммерции». Подобные заявления неизбежно несут на себе отпечаток наивности и упрощенчества. Это означает, что обращается больше внимания на безопасность программы, чем на безопасность системы. Первый вопрос, который следует задать в таком случае: «От кого и от чего защищена система?»

Это актуальный вопрос. Представьте себе продающуюся безопасную операционную систему. Обеспечит ли она защиту от ручной гранаты, если та попадет прямиком в ваш процессор? Или от того, кто нацелит видеокамеру непосредственно на вашу клавиатуру или экран монитора? От того, кто «просочился» в вашу компанию? Скорее всего нет: не потому, что эта операционная система плоха, но потому, что некто более или менее осознанно воплощает конструкторские решения, в которых определено, какие виды возможных атак эта операционная система будет предотвращать (и, возможно, предотвратит), а какие она будет игнорировать.

Проблемы усугубляются, когда подобные решения принимаются недостаточно обдуманно. И не все всегда так очевидно, как в предыдущем примере. Защищает ли система безопасности телефонной линии от того, кто может вас случайно подслушать, от перехватчика, имеющего большие финансовые возможности или от национального разведывательного управления? Защищает ли система безопасности банка от мошенничества клиентов, от мошенничества продавцов, от мошенничества банковского кассира или от мошенничества управляющего банком? Приведет использование другого изделия к усилению или ослаблению безопасности? Точное понимание того, что может обеспечить отдельно взятая технология безопасности и чего она не может, является слишком сложным для большинства людей.