В чем мы действительно нуждаемся – так это в уверенности, что наши системы работают должным образом, что они обладают требуемыми свойствами и только ими. Большинство нападений в реальном мире приводит к тому, что системы либо перестают делать то, что им положено, либо начинают вести себя непредвиденным образом.
Сомнение в надежности защиты должно присутствовать постоянно. Подвергните сомнению ваши предположения, ваши решения. Поставьте под вопрос ваши модели безопасности и модели угроз. Продолжайте анализировать деревья атак. Не доверяйте никому, особенно самому себе. Вы будете сильно удивлены тем, что вам удастся обнаружить.
Обнаружение атак намного важнее, чем предотвращение. Я неоднократно уже упоминал о том, что полностью предотвратить нападения невозможно. Конечно, стремиться к совершенству нужно, но все, что нам известно относительно сложных систем, говорит о том, что невозможно выявить и устранить все уязвимые точки. Нападающие найдутся всегда, и их нужно ловить и наказывать.
Меня поражает, насколько часто производители средств защиты компьютерных систем забывают об этом. Вы никогда не увидите дверной замок с рекламным лозунгом: «С этим замком вы можете не бояться воров». Но те, кто продает средства защиты компьютеров, постоянно делают заявления подобного рода: «Брандмауэры исключают возможность проникновения в вашу внутреннюю сеть», «Процедура аутентификации не допустит нежелательных посетителей в вашу систему», «Шифрование не позволит посторонним прочитать содержимое ваших файлов». Все эти заявления безосновательны. Механизмы предотвращения нужны, но предотвращение – только часть решения проблемы безопасности и притом наиболее непрочная часть. Эффективная система безопасности также включает обнаружение нападения и реакцию на него.
В реальном мире люди понимают это. Банки не заявляют: «У нас есть надежное хранилище, так что мы не нуждаемся в системе сигнализации». Никто не увольняет ночную охрану музеев только потому, что в них есть замки на окнах и дверях. В лучшем из миров все, что вы выигрываете за счет применения защитных средств, – это время. В реальном мире средства, предотвращающие нападения, часто не используются вообще.
В некоторых случаях средства защиты – это все, на что вы можете положиться. Шифрование в качестве защитного средства должно предотвращать подслушивание переговоров. Но нет никакого способа обнаружить подслушивание, так что невозможно и никакое реагирование. Тем не менее чаще всего обнаружение и реагирование возможны.
И они обеспечивают большую надежность. Систему безопасности, защищающую ваш дом (дверной замок) легко обойти, если разбить кирпичом окно. Тогда почему большинство домов еще не ограблены? Почему нет публичных призывов использовать окна из поликарбоната? Потому что есть средства обнаружения и реагирования.
Современное общество предотвращает преступления. Это – миф. Если Алиса захочет убить Боба, она сможет это сделать. Полиции не удастся остановить ее, если, конечно, она не полная идиотка. Они не смогут защитить каждого Боба. Боб должен позаботиться о своей безопасности сам. Он вправе нанять телохранителя, если это ему по карману, но это также ничего не гарантирует.
Обычно преступление обнаруживается уже после его совершения. «Офицер, мы только что откопали на задворках Стадиона Гигантов тело Боба, нашпигованное пулями. Я думаю, что здесь пахнет преступлением». Мы расследуем обнаруженные преступления, собираем свидетельства, которые помогут убедить присяжных в виновности обвиняемого. Предполагается, что весь процесс поиска и наказания преступника должен воздействовать на общество в целом и отбивать у других охоту следовать его примеру. Конечно, приговор выносится с целью наказать виновного, но реальная польза обществу состоит в предотвращении новых преступлений, то есть наказание производит профилактический эффект.
Хорошо, что вся эта сложная система более или менее работает, потому что предотвратить преступление намного труднее, чем обнаружить. Для цифрового мира верно то же самое. Компании, выпускающие кредитные карточки, делают все возможное для предотвращения мошенничества, но главным образом они полагаются на средства обнаружения и, в чрезвычайных случаях, на судебное преследование. Сотовые телефоны могут быть клонированы, но механизмы обнаружения ограничивают финансовые потери.
Как борются с воровством в магазинах? Можно существенно ограничить возможность кражи, если прикрепить товары к прилавкам, поместить их в застекленные витрины или позади прилавка. Эти методы работают, но уменьшают продажи, потому что покупателю нравится брать товар в руки. Поэтому появилось множество технологий обнаружения воровства: ярлыки, прикрепленные к товарам, включают сигнализацию при попытке вынести их из магазина. (Существует другой интересный способ борьбы с кражами предметов одежды: к ним прикрепляются ярлыки, которые распыляют краску при попытке удалить их ненадлежащим образом. Этот способ называется лишением выгоды.)
В Интернете обнаружение может оказаться сложным делом. Недостаточно установить брандмауэр и этим ограничиться. Вы должны обнаруживать нападения на сеть. Это требует чтения, понимания и интерпретации огромного количества записей в контрольных журналах, которые делает брандмауэр, а также маршрутизаторы, серверы и другие сетевые устройства, так как вполне возможно, что некоторые атаки обойдут брандмауэр. Такие нападения всегда где-нибудь оставляют след.
Обнаружение должно быть своевременным. (Поздно реагировать на нападение, о котором вы узнаете из утренних газет.) Это означает, что требуется система контроля в реальном времени. Чем скорее вы обнаружите что-то подозрительное, тем скорее вы сможете отреагировать.
Простого обнаружения недостаточно, необходимо понять – что это за нападение и что оно означает. Традиционно, военные разделяют этот процесс на четыре этапа.
Обнаружение. Осознание того, что произошло нападение. Три ключевых сервера вашей сети одновременно вышли из строя. Что это – нападение или просто проблемы программного обеспечения сети? Или, может быть, случайное совпадение? Если вы даже не знаете, нападение это или нет, вы не можете адекватно отреагировать.
Локализация. Определение точки, в которой произошло нападение. Даже если вы знаете, что сеть атакована, вы можете не иметь сведений о том, какие компьютеры или порты подвергаются нападению. Вы можете знать, что поломка серверов – результат нападения, но не иметь никакого понятия, как нападающему это удалось сделать и чем он занят в настоящее время.
Идентификация. Определение, кем является нападающий и откуда он работает. Это поможет составить представление о его сильных и слабых сторонах. Например, с нападающим из Соединенных Штатов можно бороться иными методами, нежели с нападающим из Молдавии. (Этот шаг более важен в традиционном военном процессе, чем в сетевой безопасности.)
Оценка. Понимание целей и мотивов атакующего, его стратегии и тактики, его возможностей и, желательно, его уязвимых мест. Эта информация имеет чрезвычайно важное значение для выбора средств реагирования. Реакция на шалости ребенка будет совершенно иной, нежели на действия промышленного шпиона. Ребенок, вероятно, сразу отключится от соединения, если вы хоть как-то прореагируете на него. Более упорного нападающего так легко остановить не удастся.
Каждый последующий шаг труднее, чем предыдущий, и требует более детальной информации. Часто ее анализ нуждается в участии квалифицированных специалистов, компьютер, предоставленный сам себе, рано или поздно не сможет справиться с этой задачей (хотя автоматическая программа может хорошо работать довольно долго).
На каждом шаге вы получаете все больше информации о ситуации. Чем больше информации вы получаете (и чем скорее), тем лучше вы вооружены. К сожалению, большинство сетевых администраторов никогда не знают, что они подверглись нападению, а если и знают, то не понимают, откуда оно исходит. Идентификацию и оценку особенно трудно осуществить в Интернете, где нападающему легко маскировать свое местоположение.