KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Прочая околокомпьтерная литература » Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире

Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Брюс Шнайер, "Секреты и ложь. Безопасность данных в цифровом мире" бесплатно, без регистрации.
Перейти на страницу:

Один из уроков, о которых люди позабыли, – в том, что ядро должно быть простым. (Даже ядро Multics, которое содержало только 56 000 кодовых строк, как выяснилось, слишком сложно.) Ядро – это по определению высоконадежные программы. В главе 13 будет рассказано о надежности программ, мораль же в том, что неразумно ждать, что в программах не будет сбоев защиты. Поэтому чем проще программа, тем меньше в ней будет ошибок безопасности.

К сожалению, современные операционные системы страдают болезнью, известной как «распухание ядра». Это означает, что большой объем кода располагают внутри ядра, а не снаружи. Когда система UNIX была написана впервые, считалось обязательным помещение несущественных кодов за пределами ядра. С тех пор все забыли этот урок. Все имеющиеся сейчас разновидности UNIX в той или иной степени страдают распуханием ядра: у них либо слишком много команд в ядре, либо имеются непонятные утилиты, запускающиеся в случае корневого доступа, либо что-то еще.

Windows NT устроена намного хуже. Эта операционная система может служить примером того, как полностью игнорируются исторические уроки безопасности. То, что находится в ядре, по определению защищено, поэтому с точки зрения разумного проектирования необходимо уменьшить размер ядра, насколько возможно, и убедиться, что оно полностью защищено. Windows, похоже, придерживается мнения, что, поскольку то, что содержится в ядре, защищено по определению, следует просто побольше всего разместить прямо в ядре. Если разработчикам было непонятно, как обеспечить безопасность чего-либо, они просто запихивали это в ядро и считали его уже защищенным. Очевидно, это не помогает при длительной работе.

В системе Windows драйверы принтеров являются частью ядра. Пользователи регулярно загружают эти драйверы или устанавливают их, наверное, не осознавая, что норовистый (или неисправный) драйвер принтера может полностью уничтожить защиту их системы. Было бы намного разумнее разместить драйверы принтеров снаружи ядра, тогда они не должны были бы быть надежными, но это вызвало бы у разработчиков больше трудностей. А философия Windows NT в том, чтобы всегда отдавать предпочтение простому над безопасным – и в обращении, и в разработке.

Windows 2000 еще хуже.

Тайные каналы

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

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

Создавать тайные каналы просто и забавно. Опасность представляют не те пользователи, которые копируют с экрана данные с грифом «Совершенно секретно» и переправляют их в Китай, а те, кто пишет программы, которые могут тайно собирать данные, оставаясь в тени.

Разработчики систем тратят много времени на то, чтобы закрыть определенные тайные каналы или, по крайней мере, свести к минимуму количество информации, которую можно было бы по ним переслать. Циклы ЦПУ могут иметь фиксированные такты специально для того, чтобы сделать невозможной утечку по отдельным тайным каналам. К программам пакетной передачи может быть добавлена система случайного шума, чтобы существенно снизить использование этого тайного канала. Но фактически невозможно перекрыть все тайные каналы, и часто пытаются выйти из положения, жестко ограничивая пропускную способность. Тем не менее, если интересующая вас информация – это всего-навсего крошечный 128-битовый криптографический ключ, вы найдете тайный канал, по которому ее можно отправить.

Критерии оценки

Если вы собираетесь приобрести компьютерную систему с определенной моделью безопасности или с определенным типом ядра, вам потребуется гарантия, что эта модель надежна. Или, другими словами, некая гарантия, что система обеспечивает достаточную защиту.

Есть два основных способа получить такую гарантию. Первый – это IVV, что означает «независимые верификация и проверка достоверности» (independent verification and validation). Основная его идея в том, что один коллектив разрабатывает и создает систему, а другой – оценивает эту разработку, вплоть до того, что иногда создает идентичную систему, чтобы сравнивать с ней оцениваемую. Это дорогой путь, его применяют в таких важных случаях, как создание системы управления ядерным оружием или компьютеров космических кораблей многоразового использования.

Более дешевый путь – оценивать систему по какому-то независимому набору критериев и присваивать ей определенный рейтинг безопасности.

Первым набором критериев оценки систем была «Оранжевая книга». В какой-то мере она уже устарела, но все же оказала большое влияние на компьютерную безопасность в 80-х годах, и до сих пор можно услышать, как перебрасываются терминами из «Оранжевой книги» – вроде «уровня безопасности С2».

На самом деле «Оранжевая книга» называется так: «Критерии оценки надежности компьютерных систем Министерства обороны США» (U.S. Department of Defense Trusted Computer System Evaluation Criteria), но это название трудно выговорить, а обложка у книги оранжевая. Она была опубликована в 1985 году Национальным центром компьютерной безопасности, который в некоторой степени можно считать подразделением Агентства национальной безопасности. Задачей «Оранжевой книги» было определить требования безопасности и стандартизировать правительственные требования поставок. Она дала фирмам-изготовителям вычислительных машин возможность измерить безопасность своих систем и подсказала им, что они должны ввести в свои защищенные программы. Кроме того, она предложила систему классификации различных уровней компьютерной безопасности и способы проверить, удовлетворяет ли определенная система заданному уровню.

Эта классификация выглядит так: D (минимальная секретность), С (защита по усмотрению), В (обязательная защита) и А (подтвержденный доступ). Внутри некоторых этих уровней существуют подуровни. Есть, например, С1 и С2 – защита по усмотрению и защита с контролируемым доступом, последняя более эффективная. С1 не является защищенным уровнем; это, по сути, то, что вы получаете с новеньким с иголочки UNIX'OM. (Вы ведь не замечали большого количества систем, которые гордились бы своим рейтингом безопасности C1.) C2 лучше; это, наверное, наиболее подходящий уровень безопасности для коммерческих продуктов[25]. В основе большинства процедур контроля доступа лежит модель Белла-Лападулы, которая берет начало с уровня B1 – уровни Bl, B2, B3 и А, как считали, больше подходят для военных систем.

Основная проблема такого подхода – с уровнями безопасности – была в том, что они не означали, что система защищена. Приобретение системы уровня В1, например, не давало гарантированной безопасности компьютера. Это всего лишь означало, что изготовители установили в систему обязательный контроль доступа и имели необходимую документацию, чтобы получить рейтинг безопасности В1. Безусловно, обязательный контроль доступа делает систему уровня В1 намного более защищенной, чем система уровня С2, но ошибки защиты одинаково вероятны в любой системе. Единственное, что было доподлинно известно, – в первом случае разработчики больше старались.

Кроме того, «Оранжевая книга» применима только к автономным системам и полностью игнорирует возможное подсоединение компьютера к сети. Несколько лет назад фирма Microsoft предпринимала большие усилия, чтобы присвоить Windows NT рейтинг безопасности С2. Усилия пошли на убыль, когда стало известно, что об этом рейтинге можно говорить, только если компьютер не подсоединен к сети, у него вовсе нет сетевой карты, дисковод заклеен эпоксидной смолой, а процессор – Compaq 386. Рейтинг С2 системы Solaris столь же необоснован. В недавних модификациях «Оранжевой книги» с переменным успехом делались попытки иметь дело с компьютерами, соединенными с сетью.

Кроме того, как известно, рейтинг имеет узкое значение. Рейтинг системы относится только к определенной конфигурации и определенному типу установленного программного обеспечения. Если версия 1.0 операционной системы имела определенный уровень безопасности, нет никакой гарантии, что версия 1.1 имеет такой же уровень. Если рейтинг компьютерной безопасности относится к определенной конфигурации – с определенным набором установленного программного обеспечения, – то нельзя ничего сказать о безопасности компьютеров других конфигураций.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*