Коллектив авторов - Защита от хакеров корпоративных сетей
У компании Microsoft было несколько способов обнаружения и саботирования использования операционной системы DR-DOS, пытающейся загрузить Windows. Один из них был реализован в программном коде под именем Bambi. Этот код был написан Microsoft для утилиты организации дискового кэша SMARTDRV, которая после определения выполняющейся DR-DOS отказывалась загружать Windows 3.1. Также хорошо известна уловка, использовавшаяся в коде AARD, но в настоящее время Caldera занята разбирательством четырех других известных случаев преднамеренной несовместимости программных продуктов. Одно из них связано с версией XMS в программе установки Windows 3.1, которая выдавала сообщение «Установленный вами драйвер XMS несовместим с Windows. Следует удалить его прежде, чем программа установки сможет продолжить инсталляцию Windows». Конечно, для подобной деятельности у компании Microsoft не было никаких оснований.
Возможно, основания все-таки были. Бывший администратор Microsoft Брад Силверберг (Brad Silverberg) достаточно откровенно привел их: «Как вы думаете, что должен делать чувствующий дискомфорт пользователь, если он обнаруживает ошибки, подозревая при этом, что их причиной является DR-DOS? Он идет и покупает MS-DOS. Или решает не рисковать при покупке других машин в офис».
Компания Microsoft действовала явно, открыто давая понять о своем желании помешать совместной работе графической оболочки Windows и операционной системы DR-DOS (действительно, было итоговое сообщение AOL о совместной работе клиентов Instant Messenger). Но поскольку это могло привести к недовольству слишком большого числа пользователей, то они изменили тактику своих действий. Конечно, определенное давление со стороны клиентов вынудило бы Microsoft смягчить свою политику в отношении операционной системы DR-DOS, но реакции пользователей все равно не оказалось бы достаточной для обеспечения совместной работы DR-DOS и Windows. В конечном счете производитель DR-DOS утратил доверие на рынке компьютерных программ и ушел с него в соответствии с планом Microsoft.
Что позволило случиться этому? Прежде всего точным оказался злонамеренный расчет. Прямой отказ компании Microsoft поддержать выполнение операционной системой DR-DOS своих функций мог бы вызвать ряд серьезных вопросов, суть которых сводилась к следующему: каким образом две столь похожие друг на друга системы, как DR-DOS и MS-DOS, в конечном итоге оказались столь несовместимыми? Поэтому компания Microsoft приняла блестящее решение: прямо не отказывая DR-DOS в поддержке, представить DR-DOS невразумительной и ненадежной программой, недостойной претендовать на роль настоящей операционной системы. Действуя таким образом, Microsoft смогла обратить в свою пользу все выдвинутые против компании обвинения в бесстыдстве и завышенной стоимости своих продуктов, переложив ответственность на чужие плечи, причем сделано это было вовсе не для обширных исследований Caldera, которая в конечном счете купила DR-DOS. Информация на этот счет до сих пор не увидела свет. Это была блестящая победа.
Всюду поможет тонкость расчета
Случай с компанией Microsoft предоставил превосходную возможность проникнуть в суть экономически мотивированного саботажа и увидеть его проявления. Распределенные приложения и системы, как, например, информационно-справочные системы продажи билетов, очень трудно проектировать с соблюдением требований масштабируемости. Часто страдает стабильность их работы. Из-за чрезвычайных последствий выхода из строя подобных систем они должны быть проверены на способность противостоять скрытым и недоказуемым атакам, ставящим перед собой цель нарушить стабильность и безопасность систем, которые намериваются эксплуатировать, продавать или администрировать. Успех проверки определяется способностью системы к самообороне. Предположение, что пользователь всегда сможет отличить активную атаку от повседневных отказов систем, по меньшей степени является ложным, если не сказать больше.
Конечно, можно впасть в другую крайность и во всем подозревать злонамеренный умысел нападающих! Документально зарегистрировано более чем достаточно случаев, когда большие компании обвиняли в непонятных простоях мифических и удобных для них злоумышленников. (Фактическая причина отказов? Отсутствие плана действий при непредвиденных обстоятельствах, если обновление не было выполнено так, как надо.)
В некотором смысле это проблема обнаружения сигнала. Очевидные атаки легко обнаружить, но угроза тонкого искажения данных (которая, конечно, в общем случае при резервном копировании данных сохраняется, и поэтому для ее обнаружения требуется время) вынуждают поднять порог чувствительности намного выше. Фактически настолько высоко, что ложные атаки становятся реальностью. Компьютер потерял «нюх»? Стало ли причиной неприятностей то, что никогда не было введено (ошибка пользователя), некорректно представлено (ошибка клиента), неправильно записано (ошибка сервера), изменено или искажено при передаче по сети (сетевая ошибка, встречается разумно редко), или это результат активного и злонамеренного вмешательства?
Злоумышленник, атакуя встроенные в системы средства идентификации и обслуживающий их персонал, сможет нанести инфраструктуре больший ущерб, чем это смогла бы сделать система самостоятельно. При этом злоумышленник может привести инфраструктуру в нерабочее состояние в интересах тех, кто из этого извлечет наибольшую прибыль. Современная реальность такова, что злоумышленнику сравнительно легко удается избежать наказания, потому что сегодня удивительно много людей готовы рискнуть своей работой и производительностью в новой национальной лотерее.
Отказ для выборочного восстановления
Одним из наиболее общепринятых принципов построения компьютерных сетей является их последовательность. Компьютерные сети работают по ярко выраженным детерминированным законам, и проблемы в них возникают или постоянно, или их нет совсем. Поэтому приводит в бешенство тестирование ошибки, возникающей периодически каждые две недели, каждые 50 000 ± 3000 транзакций и т. д. Такие ошибки могут формировать в компьютерных сетях что-то похожее на взрывы гамма-лучей, превосходя по своему значению основные события в мире сетей. Периодические ошибки происходят так редко и проявляются в течение такого короткого периода времени, что трудно получить нужный протокол работы ядра или отладочную трассировку в момент ошибки.
Принимая во внимание незначительную вероятность возникновения неустойчивых отказов в современных компьютерных системах (в большей или меньшей степени подчиняющихся ярко выраженным детерминированным законам), неудивительно, что фальсифицированные отказы происходят вроде как случайно, как будто кто-то «икает» в сети, и входят в число наиболее эффективных атак на сеть.
Впервые автор прочитал об использовании управляемых отказов как о средстве хирургического влияния на поведение жертвы в документе, посвященном дискуссии RProcess о выборе DoS. Документ находится по адресу www.mail-archive.com/coderpunks%40toad.com/msg01885.html. Rprocess отметил следующую чрезвычайно жизнеспособную методологию влияния на поведение пользователя, а также последующий эффект, который имеет отношение к криптографической защите:
...«Выборочно проанализировав отказы в обслуживании, автор обращает внимание на потенциальную возможность запрета или прекращения передачи некоторых видов или типов сообщений с одновременным разрешением других. Если это аккуратно сделать и, возможно, при этом воспользоваться скомпрометированными ключами, то в результате это может быть использовано для запрещения использования некоторых типов сервисов с одновременным поощрением использования других.
Например, пользователь X пытается создать учетную запись nym (учетную запись, содержащую данные идентификации для обеспечения анонимности соединений электронной почты), повторно используя отравителей A и B. Не получилось. Он еще раз создает учетную запись nym, используя отправителей A и C. Это работает, поэтому он использует только что созданную учетную запись. Таким образом, пользователь X выбрал отправителя C и отказался от услуг отправителя B. Если злоумышленник вынудит отправителей A и C обменяться почтой или у него окажутся их ключи, но при этом он не сможет скомпрометировать B, то он может добиться того, что пользователи будут использовать отправителей A и C, саботируя сообщения B. Для этого ему надо разрешить обмен с отправителем A и отказаться от некоторых сообщений, связанных с B. Или он может добиться этого, извне прерывая соединение с B».
Злоумышленник, используя уязвимость одного из слабых мест системы, добивается того, что пользователи стекаются к провайдеру, который с их точки зрения менее уязвим и более стабилен. В этом заключается суть обмана. Заставьте людей думать, что они что-либо делают только потому, что они хотят это делать. Автор уже говорил ранее, что реклама – это социальная инженерия. Простой пропуск каждого сообщения выбранного вида привел бы к предсказуемости и очевидности. Однако понижение надежности, особенно в Интернете, предоставляющем максимум возможностей с одновременным освобождением от всякой ответственности, гарантирует сетевым администраторам замаскированные и недоказуемые ошибки в работе сети и подталкивает пользователей к использованию более стабильного с их точки зрения (но тайно скомпрометированного) сервера / сервиса провайдера.