- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Секреты и ложь. Безопасность данных в цифровом мире - Брюс Шнайер
Шрифт:
Интервал:
Закладка:
• В 1999 году некто обнаружил ошибку в сценарии Hotmail CGI, позволяющую пользователю получить доступ к записям электронной почты другого пользователя. Дефекты такого рода обсуждались в главе 10.
Традиционно дефектный код был орудием, используемым для взлома компьютеров. Например, недостатки программ, отсылающих почту, повлекли за собой огромное количество незаконных проникновений в компьютеры с операционной системой UNIX. Цель подобных нападений состоит в использовании погрешностей таким образом, чтобы нападающий мог взять в свои руки контроль над системой. Нападения незаметны, они могут использовать настройку параметров для получения доступа или лазейки в заголовке сообщения об ошибках для прочтения защищенных файлов, количество таких нападений огромно. Временами кажется, что каждый день происходит новое нападение на почтовые программы, после которого в очередной раз исправляются не найденные до того ошибки. (Производятся ли после этого исправления у пользователей коммерческих программ – это другой вопрос.)
Более недавний пример – это модель безопасности Java. В Java используется модель комплексной безопасности для защиты компьютеров от вредоносных апплетов Java. Ошибка в любом месте программного кода, ответственного за работу защитных механизмов, может сделать все эти механизмы бесполезными, и, если такая ошибка случится, характерные для Java нападения хлынут широким потоком, используя любые недостатки системы.
Эти примеры вызывают больше беспокойства, чем проблема «Ариан» (несмотря на меньшую степень накала страстей), поскольку недостатки, которые могут быть использованы для взлома защиты, обычно не влияют на выполнение программ. Они незаметно присутствуют там до тех пор, пока кто-либо не воспользуется ими. Это очень важно и потому создание защиты сложнее, чем обеспечение надежности. Ошибка, повлекшая за собой катастрофу «Ариан», – это единственный случай, который затронул выполнение. Как только ошибка при выполнении найдена – и предварительное тестирование сможет обнаружить ее – она может быть исправлена. Дефекты защиты не влияют на выполнение и не проявляются в результатах предварительного тестирования. Подробнее о надежности тестирования будет рассказано в главе 22, но мораль в том, что люди постоянно спотыкаются о недостатки в системах безопасности, и только опытные эксперты на самом деле способны отыскать их.
Такое случается постоянно. Когда квалифицированный специалист производит анализ защиты программного обеспечения, он всегда обнаружит случайные недостатки, подрывающие систему безопасности. Всегда. Чем сложнее код, тем больше несовершенства в его защите.
Огрехи защиты, однажды обнаруженные, будут использоваться до тех пор, пока не будут устранены. Предположим, что нападающий нашел брешь в защите торгового протокола, что позволило ему украсть номер кредитной карты или, что еще хуже деньги. Если его действия мотивировались желанием создать саморекламу, он известит о своем достижении прессу и эта ошибка будет исправлена. (Хотелось бы надеяться, что сначала он предупредит компанию.) Если его действиями управляет желание получить деньги, нападающий станет использовать эту возможность снова и снова. Он украдет столько, сколько сможет, пока еще кто-нибудь не обнаружит этот недостаток и не исправит его. В этом основное отличие: недостатки, влияющие на выполнение, заметны, в то время как недочеты защиты могут оставаться невидимыми в течение долгого времени.
Эти недостатки не обязательно находятся в коде, относящемся к системе безопасности. Они могут присутствовать повсюду: в интерфейсе пользователя, в программах обработки ошибок, в любом другом месте. И как мы видели в главе 10, даже программы, не имеющие никакого отношения к компьютерной безопасности, могут повлиять на защищенность компьютеров, работающих в сети. Недостатки в текстовом процессоре, драйвере принтера или мультимедийном проигрывателе могут полностью подорвать систему безопасности вашего компьютера.
Еще один вывод состоит в том, что ошибки в программном обеспечении (и, следовательно, недостатки защиты) неминуемы. Предположение, что огромное пространство Интернета может быть свободно от ошибок, настолько же невероятно, как, то, что программное обеспечение «Ариан 5» было полностью защищено от сбоев и лишь несчастливое стечение обстоятельств привело к таким катастрофическим последствиям.
Мы наблюдали подобные вещи в Windows NT. He проходит и дня без объявления об обнаружении нового просчета в системе безопасности этой программы. Те же тенденции наблюдаются и в Windows 2000.
Переполнения буфераПереполнения буфера (иногда называемые разрушением стека) являются обычным способом разрушения защиты. Их легко осуществить; атаки достигают своей цели чаще всего именно благодаря буферным переполнениям. Нападения такого рода могут быть разрушительными, часто они заканчиваются получением полного контроля над компьютером. Этот метод использовался во многих выдающихся нападениях. Поскольку уменьшение количества таких атак не наблюдается, стоит детально объяснить, что они собой представляют и как работают.
Давайте начнем с аналогии. Если вы попытаетесь украсть что-нибудь из близлежащего магазина, то вам придется пробираться мимо продавца. Продавец не станет творчески подходить к делу. Скорее всего, он предпримет только те действия, которые предписаны инструкцией. Инструкция служащего – это большой набор протоколов, описывающих различные ситуации. Например: «контакт с лицом, утверждающим, что он служащий».
• Шаг 1. Попросить показать удостоверение.
• Шаг 2. Убедиться, что удостоверение не поддельное.
• Шаг 3. Проверить, что на фотокарточке в удостоверении действительно изображен этот человек.
• Шаг 4. Если это так, впустить его. Если нет, не впускать. Или: «контакт с водителем, привозящим товар»:
• Шаг 1. Взять коробку.
• Шаг 2. Расписаться за коробку.
• Шаг 3. Убедиться, что водитель уезжает.
Водитель не может пройти мимо служащего назад в магазин, потому что в инструкции ясно сказано, что после получения подписанной квитанции водитель должен уехать.
Компьютеры работают почти так же. Программы подобны шагам в инструкции; компьютеры выполняют то, что написано в программах, и ничего больше. Сетевые компьютеры работают аналогично. У них есть набор протоколов, которым они следуют, – эти протоколы описывают процедуру входа в систему, ограничения доступа, защиту паролей, и определяют, кто может быть допущен, а кто нет. Тот, кто действует в соответствии с протоколами, будет пропущен, а кто действует иначе – войти не может.
Один из способов нанести поражение такому протоколу состоит в изменении действующей компьютерной программы. Это подобно замене страницы в инструкции для служащего. Инструкции обычно пишутся для того, чтобы их исполнители не вдавались в размышления. Каждая страница – это шаг: «Если клиент дает вам кредитную карту, смотрите следующую страницу. Если клиент расплачивается наличными деньгами, смотрите страницу 264». Шаги, описывающие контакт с развозчиком товара, могут выглядеть следующим образом.
• Страница 163. Возьмите коробку. Если она одна, смотрите следующую страницу. Если коробок несколько, смотрите страницу 177.
• Страница 164. Возьмите форму для подписи, подпишите и верните ее. Смотрите следующую страницу.
• Страница 165. Спросите водителя, хочет ли он что-нибудь купить. Если он хочет, смотрите страницу 13, если нет, смотрите следующую страницу.
• Страница 166. Попросите водителя уехать. Если он… и т. д.
Всякий раз, когда служащий магазина совершает какое-либо действие, он руководствуется открытой страницей в своей инструкции. Он не может посмотреть на вещи иначе.
Нападение состоит в следующем: притворившись развозчиком, можно поменять страницу в инструкции служащего, когда он будет занят подписью квитанций. Все, что нужно сделать, это дать ему два листа вместо одного. Верхний лист – это квитанция, а нижний – поддельная страница инструкции:
• Страница 165: Отдайте водителю все деньги из кассового аппарата. Смотрите следующую страницу.
Это сработает. Служащий возьмет коробку, как написано на странице 163. Он посмотрит страницу 164 и возьмет квитанцию (вместе с фальшивой страницей). Он положит оба листа на открытую инструкцию, подпишет и вернет квитанцию (оставив фальшивую страницу в инструкции), затем, вернувшись к инструкции, увидит поддельную страницу. Он отдаст все деньги из кассы и увидит следующую страницу (настоящую страницу 165). Шоферу нужно ответить, что он не хочет ничего купить, и уехать. Если служащий магазина на самом деле такой же тупой, как компьютерная система, развозчик сможет уехать с деньгами. Можно использовать этот способ обмана, чтобы убедить служащего магазина пустить нас на склад или чтобы исполнить любой другой замысел. Подложив страницу в инструкцию, можно произвольно поменять его действия.

