Принципы
Принципы
Разделяйте
Бывалые путешественники держат лишь небольшую сумму денег в бумажнике, а остальное – в мешочке, скрытом под одеждой. Таким образом, если их обворуют, они не потеряют все деньги. Структура шпионских или террористических организаций предполагает разделение на маленькие группы, члены которых знают только друг друга и никого более. Таким образом, если кто-нибудь оказался схвачен или сдался сам, он может выдать только тех людей, которые входят в его ближайшее окружение. Разделение – эффективный способ защиты, так как оно ограничивает последствия действий противника, приводящих к успеху. Это – пример здравого смысла, которым часто пользуются. Пользователи имеют индивидуальные учетные записи; двери помещений офиса запираются разными ключами; права доступа предоставляются соответственно степени доверия конкретному лицу, а также реальной необходимости предоставления ему определенных сведений; личные файлы шифруют уникальными ключами. Система безопасности не строится по принципу «все или ничего», но она должна предотвращать возможность причинения значительного ущерба.
Схожий принцип – минимум привилегий. В основном это означает, что нужно давать кому-нибудь (пользователю или некоторым процессам) только те привилегии, которые необходимы для выполнения задачи. Мы постоянно сталкиваемся с этим в повседневной жизни. Ваш ключ, скорее всего, подходит только к вашему, а не любому помещению в здании. Доступ к банкоматам и хранящимся в них деньгам имеет только обслуживающий их персонал. Даже если вы пользуетесь особым доверием на службе, вы сможете выболтать только те секреты, которые вам позволено знать.
Еще больше примеров можно найти в компьютерном мире. Пользователи имеют доступ только к тем серверам, которые нужны им для работы. Только системный администратор имеет доступ к системе в целом, пользователи имеют доступ лишь к своим файлам. Иногда отдельные файлы бывают защищены групповым паролем, известным только тем, кому необходим доступ к этим файлам. Конечно, легче предоставить каждому полный доступ, но безопаснее давать людям только те привилегии, в которых они действительно нуждаются. Системы предоставления прав доступа в UNIX и NT основаны на этом принципе.
Многие нападающие пользовались нарушением принципа минимума привилегий. Как только нападающий получает доступ к учетной записи пользователя, вскрывая пароль или как-нибудь иначе, он предпринимает несколько попыток получить высшую привилегию. Например, многие нападающие пытаются вскрыть «песочницу» Java (sandbox), получить таким образом минимальные привилегии, а затем перейти в режим, позволяющий получить привилегированный статус. Взлом защиты цифровых дисков, проездных карточек и систем платного телевидения и других, имеющих одно общее свойство – все секреты хранятся в устройстве, находящемся в распоряжении пользователя, – также можно назвать получением высших привилегий.
Разделение также важно, потому что чем больше людей пользуются системой, тем меньше ее надежность. Чем крупнее компьютер, чем шире круг задач, решаемых с его помощью, тем он менее безопасен.
Это одна из причин, почему Интернет, наиболее широко используемая сеть, таит столько опасностей. Сравните веб-сервер и компьютер, работающий в режиме пониженного потребления мощности, находящийся в запертом бомбоубежище и окруженный охраной. Использование разделения делает систему более похожей на второй вариант.
Укрепите самое слабое звено
Прежде всего следует защитить самое слабое звено. Это очевидно, но снова и снова я встречаю системы, в которых это правило игнорируется. Было бы наивностью просто вкопать огромный кол перед воротами замка и надеяться, что враг побежит прямо на него. Защита должна быть со всех сторон, поэтому придется выкопать ров и построить частокол. Точно так же при использовании алгоритма шифрования с 256-битовым ключом не стоит надеяться, что вы в безопасности; враг, вероятно, найдет такой способ нападения, который никак не связан с алгоритмами шифрования.
Меня постоянно удивляет, как много зияющих дыр остается в коммерческих системах безопасности. Разработчики не замечают их, так как поглощены созданием защиты тех частей системы, в которых они хорошо разбираются. Изучите ландшафт уязвимых мест в целом, сконструируйте схему нападений, найдите в ней самое слабое звено и обезопасьте его. Затем переходите к следующему слабому звену. Таким образом вы, вероятно, сможете построить наиболее безопасную систему.
Используйте пропускные пункты
Пропускной пункт представляет собой узкий коридор, в котором легко контролировать пользователей. Вспомните, как устроены и для чего предназначены турникеты на вокзале, контрольно-кассовые пункты в супермаркете и двери вашего дома. Для этих целей используются брандмауэры, маршрутизаторы, регистрация при входе в систему, а некоторые веб-сайты направляют пользователей сперва на домашнюю страницу. Так же устроена система обнаружения мошенничества с кредитными картами. Всегда имеет смысл использовать пропускные пункты в целях безопасности.
Но эти пункты полезны только в том случае, если нет никакого способа обойти их. Один из обычных способов преодоления брандмауэра состоит в том, чтобы обойти его: можно найти, например, незащищенное удаленное соединение. Случается, что люди оставляют удаленное соединение включенным. Иногда маршрутизаторы, запоминающие устройства большой емкости и даже принтеры могут иметь незащищенные порты. Все это позволяет нападающим обходить пропускные пункты.
В сетях возможны более тонкие способы нападений такого типа. Одна компания может иметь надежную систему сетевой безопасности. А другая компания может не обеспечивать ее должный уровень. Если они взаимодействуют по сети, это означает, что сеть имеет слабое звено, которое нуждается в защите.
Обеспечьте глубинную защиту
Глубинная (многоуровневая) защита – другой универсальный принцип безопасности, который применяется в области компьютерных технологий, так же как и в других областях.
Защита территории (дверные замки и сигнализация на окнах) более эффективна, если она используется совместно с системой слежения внутри дома. Система защиты кредитных карточек от мошенничества работает лучше, если она дополняется проверкой подлинности и системой отслеживания подозрительных расходов. Брандмауэр в сочетании с системой обнаружения вторжения и сильной криптографической защитой приложений будет намного более надежным, чем просто брандмауэр.
На протяжении всей книги я пытался донести до читателя мысль, что защита настолько надежна, насколько прочно ее самое слабое звено, и предыдущее утверждение, кажется, противоречит этому принципу. В действительности все зависит от исполнения. Вспомните схемы нападений: безопасность группы узлов ИЛИ определяется надежностью защиты самого слабого узла, в то время как в случае конечных узлов И защита каждого из них усиливает защиту их совокупности.
Два брандмауэра, каждый из которых защищает отдельную точку входа в сеть, – это не глубинная защита. Для успешного нападения достаточно преодолеть любой из этих брандмауэров. Защита по глубине будет реализована в том случае, если брандмауэры установлены последовательно один за другим: тогда нападающему придется по очереди иметь дело с двумя уровнями защиты. Меня всегда поражает, когда я вижу сложные сети, точки входа в которые порознь защищают брандмауэры различных марок или даже различные конфигурации одного и того же брандмауэра. Это совершенно лишено смысла.
Подстрахуйтесь на случай отказа
Многие системы устроены таким образом, что если система выходит из строя, пользователь обращается к резервной системе, хоть и менее безопасной. Например, в Соединенных Штатах система VeriFone используется при совершении сделок по кредитной карточке. Когда клерк проверяет вашу карту, VeriFone обращается к базе данных и проверяет, не украдена ли карта, достаточно ли денег у вас на счете и т. д. Вспомните случаи, когда терминал не работал по какой-либо причине: или он был сломан, или прерывалась телефонная связь. Разве торговец отказывался обслуживать вас? Конечно, нет. Он вытаскивал бумажные бланки и оформлял сделку по старинке.
Многие нападающие пытаются взломать защиту «кавалерийской атакой»: атаки, приводящие к отказу в обслуживании, могут повторяться снова и снова. Я уже говорил о грабителях, которые заставляют постоянно срабатывать сигнализацию для того, чтобы ее в конце концов отключили. Есть и более тонкие способы нападения. Немногие люди дисциплинированы настолько, чтобы не воспользоваться обычной связью, когда они не могут пользоваться безопасной. Даже военные, которые, как принято считать, подходят к этому серьезно, постоянно повторяют подобные ошибки.
Нужно, чтобы системы в случае отказа становились более защищенными, а не менее. Если в банкомате перестанет работать система проверки личного идентификационного номера, произойдет отказ, но при этом не посыплются деньги из щели. Если сломается брандмауэр, то это приведет к тому, что он перестанет пропускать любые пакеты данных. Когда повреждается слот-машина, она не должна проливать монетный дождь на поднос выплаты.
Тот же самый принцип используется в технике безопасности и называется отказоустойчивостью (безаварийный отказ). Если выйдет из строя микропроцессор в автомобиле, это не должно привести к разгону до максимальной скорости. Если произойдет отказ в системе управления ядерной ракетой, это не должно привести к ее запуску. Безаварийный отказ – хорошее правило проектирования.
Используйте непредсказуемость
Снова и снова в этой книге я выступаю против безопасности, основанной на секретности: закрытая криптография, закрытый исходный код, секретные операционные системы. Секретность так же может иметь место, но не в продуктах, а в том, как они используются. Я называю это непредсказуемостью.
Одно из преимуществ защищающихся перед нападающими состоит в знании местности. Армия не передает врагу сведений о расположении своих танков, установок противовоздушной обороны и батальонов. Нет никакой причины сообщать каждому интересующемуся сведения о топологической схеме вашей сети. Слишком многие компьютеры в ответ на любой запрос выдают информацию об используемой операционной системе и номере версии. Этому нет разумного обоснования. Будет намного лучше, если при регистрации пользователя в системе на экране появится сообщение:
«Предупреждение: частный компьютер. Использование этой системы предусматривает контроль безопасности. Все действия пользователя и сведения о нем регистрируются, включая IP-адрес и имя хоста».
Предоставьте нападающим самим разбираться, можете ли вы следить за ними.
Если вы строите частную систему безопасности (например, электронных банковских платежей), то важно использовать сильный, открытый, надежный алгоритм шифрования. Когда вы сделаете свой выбор, незачем объявлять о нем.
Если вы используете брандмауэр, нет никакого смысла сообщать всему миру настоящее имя хоста и имя пользователя. Это также принцип построения системы мер безопасности (сетевой сигнализации, приманок и других). Администратор сети знает, как она работает и что означают те или иные действия. Когда кто-то копается в фиктивном счете, администратор знает, что это – злоумышленник. Нападающий не должен знать, где и какое оборудование работает, когда и какой протокол можно использовать, какие порты и при каких условиях будут открыты. Поразительно, как часто серверы, приложения и протоколы объявляют на весь мир: «Привет! Я – служба V2.05». Многие автоматические средства взлома в поисках определенных версий программного обеспечения просматривают машины, о которых известно, что у них имеются уязвимые места. Если сети будут непредсказуемы, нападающие не смогут так свободно их огуливать. Не располагая нужной информацией, намного труднее обозначить цель и определить возможные виды атак. Разница такая же, как между прогулкой по солнечном лугу в полдень и по зарослям колючего кустарника в полночь.
Столь же непредсказуемы должны быть и меры реагирования. Ракета «Патриот» недостаточно эффективно поражала в небе иракские «Скады», но вы никогда не узнали бы об этом из официальных сообщений Пентагона. Если Соединенные Штаты знали, насколько была неэффективна противовоздушная оборона, это не означало, что нужно сообщать об этом врагу.
Непредсказуемость – мощное средство, используемое террористами, специалистами по «промыванию мозгов» при авторитарных режимах и теми, кто еще только рвется к власти. Но оно также хорошо работает в сфере компьютерной безопасности.
Стремитесь к простоте
Я уже говорил в предыдущей главе: сложность – злейший враг безопасности. Система настолько защищена, насколько защищено ее самое слабое звено. Поэтому систему с меньшим количеством связей легче обезопасить. Эйнштейн говорил: «Все должно быть настолько просто, насколько это возможно, но не более».
Народная мудрость «Не кладите все яйца в одну корзину», казалось бы, противоречит этому утверждению. Так оно и есть, и на этом принципе строится защита по глубине. Но помните, что охранять несколько корзин сложнее, чем одну. Когда речь идет о безопасности, лучше следовать совету одного героя Марка Твена: «Сложите все яйца в одну корзину и присматривайте за ней».
Заручитесь поддержкой пользователей
Обеспечить безопасность намного легче, если приходится иметь дело с надежными и разумными пользователям, и намного тяжелее – с невежественными и имеющими злой умысел. Меры безопасности, не понятые и не согласованные к каждым, не будут работать. Помните: самыми трудными проблемами безопасности являются те, которые связаны с людьми, а самыми легкими – те, что связаны с битами. Несомненно, должна существовать защита от нападений изнутри, но в основном ваши сотрудники – это ваши союзники. Заручитесь их поддержкой, насколько это возможно.
Обеспечьте гарантию
В чем мы действительно нуждаемся – так это в уверенности, что наши системы работают должным образом, что они обладают требуемыми свойствами и только ими. Большинство нападений в реальном мире приводит к тому, что системы либо перестают делать то, что им положено, либо начинают вести себя непредвиденным образом.
Сомневайтесь
Сомнение в надежности защиты должно присутствовать постоянно. Подвергните сомнению ваши предположения, ваши решения. Поставьте под вопрос ваши модели безопасности и модели угроз. Продолжайте анализировать деревья атак. Не доверяйте никому, особенно самому себе. Вы будете сильно удивлены тем, что вам удастся обнаружить.
Обнаружение и реагирование
Обнаружение атак намного важнее, чем предотвращение. Я неоднократно уже упоминал о том, что полностью предотвратить нападения невозможно. Конечно, стремиться к совершенству нужно, но все, что нам известно относительно сложных систем, говорит о том, что невозможно выявить и устранить все уязвимые точки. Нападающие найдутся всегда, и их нужно ловить и наказывать.
Меня поражает, насколько часто производители средств защиты компьютерных систем забывают об этом. Вы никогда не увидите дверной замок с рекламным лозунгом: «С этим замком вы можете не бояться воров». Но те, кто продает средства защиты компьютеров, постоянно делают заявления подобного рода: «Брандмауэры исключают возможность проникновения в вашу внутреннюю сеть», «Процедура аутентификации не допустит нежелательных посетителей в вашу систему», «Шифрование не позволит посторонним прочитать содержимое ваших файлов». Все эти заявления безосновательны. Механизмы предотвращения нужны, но предотвращение – только часть решения проблемы безопасности и притом наиболее непрочная часть. Эффективная система безопасности также включает обнаружение нападения и реакцию на него.
В реальном мире люди понимают это. Банки не заявляют: «У нас есть надежное хранилище, так что мы не нуждаемся в системе сигнализации». Никто не увольняет ночную охрану музеев только потому, что в них есть замки на окнах и дверях. В лучшем из миров все, что вы выигрываете за счет применения защитных средств, – это время. В реальном мире средства, предотвращающие нападения, часто не используются вообще.
В некоторых случаях средства защиты – это все, на что вы можете положиться. Шифрование в качестве защитного средства должно предотвращать подслушивание переговоров. Но нет никакого способа обнаружить подслушивание, так что невозможно и никакое реагирование. Тем не менее чаще всего обнаружение и реагирование возможны.
И они обеспечивают большую надежность. Систему безопасности, защищающую ваш дом (дверной замок) легко обойти, если разбить кирпичом окно. Тогда почему большинство домов еще не ограблены? Почему нет публичных призывов использовать окна из поликарбоната? Потому что есть средства обнаружения и реагирования.
Обнаруживайте нападения
Современное общество предотвращает преступления. Это – миф. Если Алиса захочет убить Боба, она сможет это сделать. Полиции не удастся остановить ее, если, конечно, она не полная идиотка. Они не смогут защитить каждого Боба. Боб должен позаботиться о своей безопасности сам. Он вправе нанять телохранителя, если это ему по карману, но это также ничего не гарантирует.
Обычно преступление обнаруживается уже после его совершения. «Офицер, мы только что откопали на задворках Стадиона Гигантов тело Боба, нашпигованное пулями. Я думаю, что здесь пахнет преступлением». Мы расследуем обнаруженные преступления, собираем свидетельства, которые помогут убедить присяжных в виновности обвиняемого. Предполагается, что весь процесс поиска и наказания преступника должен воздействовать на общество в целом и отбивать у других охоту следовать его примеру. Конечно, приговор выносится с целью наказать виновного, но реальная польза обществу состоит в предотвращении новых преступлений, то есть наказание производит профилактический эффект.
Хорошо, что вся эта сложная система более или менее работает, потому что предотвратить преступление намного труднее, чем обнаружить. Для цифрового мира верно то же самое. Компании, выпускающие кредитные карточки, делают все возможное для предотвращения мошенничества, но главным образом они полагаются на средства обнаружения и, в чрезвычайных случаях, на судебное преследование. Сотовые телефоны могут быть клонированы, но механизмы обнаружения ограничивают финансовые потери.
Как борются с воровством в магазинах? Можно существенно ограничить возможность кражи, если прикрепить товары к прилавкам, поместить их в застекленные витрины или позади прилавка. Эти методы работают, но уменьшают продажи, потому что покупателю нравится брать товар в руки. Поэтому появилось множество технологий обнаружения воровства: ярлыки, прикрепленные к товарам, включают сигнализацию при попытке вынести их из магазина. (Существует другой интересный способ борьбы с кражами предметов одежды: к ним прикрепляются ярлыки, которые распыляют краску при попытке удалить их ненадлежащим образом. Этот способ называется лишением выгоды.)
В Интернете обнаружение может оказаться сложным делом. Недостаточно установить брандмауэр и этим ограничиться. Вы должны обнаруживать нападения на сеть. Это требует чтения, понимания и интерпретации огромного количества записей в контрольных журналах, которые делает брандмауэр, а также маршрутизаторы, серверы и другие сетевые устройства, так как вполне возможно, что некоторые атаки обойдут брандмауэр. Такие нападения всегда где-нибудь оставляют след.
Обнаружение должно быть своевременным. (Поздно реагировать на нападение, о котором вы узнаете из утренних газет.) Это означает, что требуется система контроля в реальном времени. Чем скорее вы обнаружите что-то подозрительное, тем скорее вы сможете отреагировать.
Анализируйте нападения
Простого обнаружения недостаточно, необходимо понять – что это за нападение и что оно означает. Традиционно, военные разделяют этот процесс на четыре этапа.
Обнаружение. Осознание того, что произошло нападение. Три ключевых сервера вашей сети одновременно вышли из строя. Что это – нападение или просто проблемы программного обеспечения сети? Или, может быть, случайное совпадение? Если вы даже не знаете, нападение это или нет, вы не можете адекватно отреагировать.
Локализация. Определение точки, в которой произошло нападение. Даже если вы знаете, что сеть атакована, вы можете не иметь сведений о том, какие компьютеры или порты подвергаются нападению. Вы можете знать, что поломка серверов – результат нападения, но не иметь никакого понятия, как нападающему это удалось сделать и чем он занят в настоящее время.
Идентификация. Определение, кем является нападающий и откуда он работает. Это поможет составить представление о его сильных и слабых сторонах. Например, с нападающим из Соединенных Штатов можно бороться иными методами, нежели с нападающим из Молдавии. (Этот шаг более важен в традиционном военном процессе, чем в сетевой безопасности.)
Оценка. Понимание целей и мотивов атакующего, его стратегии и тактики, его возможностей и, желательно, его уязвимых мест. Эта информация имеет чрезвычайно важное значение для выбора средств реагирования. Реакция на шалости ребенка будет совершенно иной, нежели на действия промышленного шпиона. Ребенок, вероятно, сразу отключится от соединения, если вы хоть как-то прореагируете на него. Более упорного нападающего так легко остановить не удастся.
Каждый последующий шаг труднее, чем предыдущий, и требует более детальной информации. Часто ее анализ нуждается в участии квалифицированных специалистов, компьютер, предоставленный сам себе, рано или поздно не сможет справиться с этой задачей (хотя автоматическая программа может хорошо работать довольно долго).
На каждом шаге вы получаете все больше информации о ситуации. Чем больше информации вы получаете (и чем скорее), тем лучше вы вооружены. К сожалению, большинство сетевых администраторов никогда не знают, что они подверглись нападению, а если и знают, то не понимают, откуда оно исходит. Идентификацию и оценку особенно трудно осуществить в Интернете, где нападающему легко маскировать свое местоположение.
Скорость существенна. Чем быстрее вы проанализируете нападение, тем быстрее ответите на него.
Ответьте на нападение
Поговорим о способах реагирования. Беспрерывно звонящая сигнализация, на которую никто не реагирует, ничем не лучше, чем полное ее отсутствие. Ответ – это то, для чего, собственно, и нужны средства обнаружения.
Иногда реагировать легко: если украден номер телефонный карточки, значит, его следует аннулировать. Иногда бывает сложнее: кто-то проник на сервер электронной торговли. Можно закрыть сервер, но потери составят 10 миллионов долларов в час. И что теперь?
Ответить непросто, хотя часто бывает, что люди принимают разумные решения за доли секунды. «Кто-то забрался на стену и приближается к застекленной крыше. Что нам сейчас делать?» Это во многом зависит от ситуации. Но вы не можете бездействовать. Можно просто прогнать его. Можно прогнать его и удостовериться, что он больше не вернется. Можно прогнать его, определить, как ему удалось туда попасть, и закрыть уязвимое место.
Пресечь нападение – это только половина дела. Не менее важно выследить и найти нападающего. Это бывает очень трудно в некоторых случаях: например, в Интернете нападающий может переходить с одного компьютера на другой, чтобы «замести следы». Полиция не может тратить много времени на расследование таких случаев до тех пор, пока не будут привлечены дополнительные людские или финансовые ресурсы, и я думаю, что частные компании могут оказать помощь правосудию, например, собирая досье на некоторых взломщиков.
Столкнувшись с судебным разбирательством, большинство людей из компьютерного мира, чуждых правовой сфере, обнаруживают, какая это помойная яма. Недостаточно идентифицировать нападающего, необходимо еще доказать это в суде. В Англии предпринимались попытки привлечь к ответственности обвиняемых в мошенничестве с кредитными картами. Как проходит рассмотрение дела в суде?
Защитник требует представить подробные сведения о средствах безопасности, используемых банком: описание технологии, записи в контрольных журналах; обо всем, что может прийти ему в голову. Представитель банка обращается к судье: «Мы не можем представить эти сведения, поскольку это причинит ущерб нашей безопасности». Судья прекращает дело. Система безопасности могла бы быть идеальным образцом обнаружения, она могла бы правильно указать преступника, но если она не переносит процесса раскрытия информации, значит, она недостаточно полезна.
Когда Джон Уокер предстал перед судом за шпионаж, Агентство национальной безопасности тщательно взвешивало, что лучше: раскрыть информацию о том, как Уокер взламывал механизмы шифрования, или сохранить в тайне истинные размеры причиненного им ущерба. Хорошие способы обнаружения должны выдерживать судебный процесс, включая перекрестные допросы с привлечением экспертов, не теряя при этом своей эффективности. Хорошие средства обнаружения и контроля обязаны делать записи в контрольных журналах, которые могут быть использованы в суде в качестве доказательств. Должна быть возможность демонстрировать эти записи, не раскрывая секретов безопасности (это называется разделением знаний, knowledge partitioning).
Будьте бдительны
Бдительность нельзя терять никогда. Чтобы обнаружение и реагирование были эффективны, необходимо работать все время: 24 часа в сутки, 365 дней в году. Службы охраны работают круглосуточно. Компании, обслуживающие системы охранной сигнализации, работают без выходных. В компьютерном мире не может быть по-другому. Вы не можете повесить объявление при входе в вашу сеть: «Пожалуйста, взламывайте нашу сеть только с девяти часов утра до пяти вечера, с понедельника по пятницу, исключая отпускное время». У хакеров свои планы.
Нападения часто происходят в то время, когда к нему не готовы. Преступные хакерские нападения связаны с определенными периодами академического года. Все виды мошенничества в торговле – с банкоматами, кредитными карточками, – учащаются в Рождественские праздники, когда люди тратят много денег. Банковские системы взламываются чаще всего после полудня в пятницу, когда банки закрываются на выходные. В 1973 году арабы напали на Израиль во время празднования Йом Кипур, самого священного еврейского праздника. Если кто-нибудь готовит серьезное нападение, он выберет столь же неудобное время.
Бдительность означает своевременность обнаружения и реагирования. Обнаружить нападение, когда оно происходит, намного важнее, чем через неделю или даже час после случившегося. Гораздо лучше закрыть уязвимые места сразу после их обнаружения, а не в следующем месяце. Запоздалая реакция часто не лучше, чем ее полное отсутствие.
Бдительность также означает подготовленность. Необходимо ясно представлять, что делать в случае нападения. Когда в 2000 году Yahoo! подверглась атаке, приводящей к отказу в обслуживании, потребовалось целых три часа, чтобы возобновить работу. Частично это произошло потому, что Yahoo! никогда раньше не сталкивалась с нападениями этого типа. Когда все идет гладко, люди забывают, как следует реагировать в исключительных ситуациях. Службы слежения и реагирования полезны только в том случае, если они регулярно обнаруживают нападения и реагируют на них.
Контролируйте контролеров
В банковском деле давно известно, что хорошую безопасность можно обеспечить только с помощью нескольких уровней контроля. Управляющие контролируют кассиров. Бухгалтеры контролируют управляющих. Аудиторы также проверяют, все ли в порядке, но уже другими способами, и их проверки являются эффективным средством контроля деятельности бухгалтеров. Внешние аудиторы действуют как доверенные третьи лица, им платят за проведение проверки независимо от того, найдут они что-нибудь или нет. В игорном бизнесе также используется многоуровневый контроль. Крупье наблюдают за игроками, администраторы наблюдают за крупье, а специальные контролеры наблюдают за администраторами.
В банковском деле эта схема усилена за счет обязательных отпусков. Идея состоит в том, что если кто-нибудь другой займется вашими делами, он, возможно, обнаружит ваши незаконные действия. Некто Ллойд Бенджамин Льюис, младший сотрудник расчетного отдела крупного банка, более двух лет подготавливал крупную аферу. За все это время он ни разу не уходил в отпуск, не болел и не опаздывал на работу. Он должен был всегда быть на рабочем месте, иначе кто-нибудь мог обнаружить мошенничество.
Недостаточно иметь в штате хороших системных администраторов, которые знают все о компьютерах и проблемах безопасности сети, следят за работой системы и отвечают на нападения 24 часа в сутки. Кто-то должен наблюдать за ними. И не только потому, что они могут иметь злой умысел, хотя это и бывает. (Множество преступлений было совершено банковскими руководителями высшего звена, так как у них гораздо больше возможностей уйти от ответственности. Некий контролер игровых автоматов, убедившись, что они не находятся под наблюдением, пытался изменить работу их запоминающих устройств так, чтобы сорвать банк.) Причина в том, что люди есть люди и они совершают ошибки. Даже компьютеры могут ошибаться, и необходимо предусмотреть средства обнаружения и устранения ошибок.
Устраните последствия нападения
В 2000 году была взломана французская смарт-карта. Ничего нельзя было сделать, кроме как прекратить всякие операции с ней. Подобные проблемы возникали и с проездными карточками в Нью-Йорке, канадской кредитной карточкой и со средствами защиты DVD. Если все ваше время уходит на обдумывание предупредительных мер, вы можете совершенно упустить из виду план действий в случае неудачи.
Предупредительные меры постоянно оказываются неэффективными. Устранение проблемы и выслеживание злоумышленников – очень важные этапы, но не менее важно привести все в порядок после нападения. При разработке систем следует ориентироваться на возможность их модернизации в процессе эксплуатации.
Также желательно предусмотреть специальные средства шифрования, протоколы и процедуры, которые будут использованы в чрезвычайной ситуации. Так можно сократить потери и быстрее восстановить работоспособность системы.
Контратака
Борьба за безопасность бывает иногда довольно жестокой. Нападающим легче, они могут вести нечестную игру, использовать новую, неизвестную технику нападения. Они могут использовать методы, мысль о которых даже не приходит в голову защищающимся. Они не ограничены моделью угрозы, используемой в защите.
Преимущество нападающего состоит в том, что ему достаточно найти одну незначительную брешь в обороне. Защитник, с другой стороны, должен позаботиться об отражении любого возможного нападения. Он должен все предусмотреть, он не может позволить себе упустить что-либо из виду.
И защитники пребывают в смятении, допуская глупые ошибки. Они пишут код, содержащий множество изъянов. Они не устанавливают «заплаты» и не обновляют средства безопасности. Их вера в абсолютно безопасное изделие сродни теологической. Они не понимают, каковы реальные угрозы, и, соответственно, не принимают необходимых мер.
Время работает на нападающих. Системы должны работать изо дня в день. Нападающие могут ждать, выискивая тем временем слабые места системы, до того момента, когда защитники потеряют бдительность. Они могут менять стратегию и тактику в зависимости от ситуации.
Единственный выход – перейти в наступление.
Мы не боремся с преступностью, когда делаем наши банки невосприимчивыми к нападениям; с преступностью мы боремся, когда ловим преступников. К счастью, преступники довольно глупы. Хороший эксперт по безопасности имеет достаточно высокие доходы, которые и не снились хакеру, поэтому он может господствовать на поле боя.
Когда существовала угроза ядерного нападения СССР на Соединенные Штаты, предполагалось нанести ответный удар в случае ее реализации. Взаимное уничтожение столь же абсурдно, сколь нереально создание неуязвимой системы обороны, но это работало.
Детективное агентство Пинкертона было основано в 1852 году. В самом начале своей деятельности люди Пинкертона защищали от грабителей поезда на американском Западе. Они сразу поняли, что сопровождать каждый поезд – слишком дорогое удовольствие. Они также хорошо понимали, что ограбление – сложная операция: если вы собираетесь ограбить поезд, вам понадобится свой человек в управлении железной дороги, знающий график движения поездов, дюжина людей, лошади и т. д. Немногие способны справиться с такой задачей. Так что люди Пинкертона решили следовать непосредственно за грабителями. Для них было не так уж важно, платит ли железная дорога за расследование; они ловили преступников, чтобы защитить своих клиентов.
Люди Пинкертона были непреклонны. Если бы вы ограбили охраняемый ими поезд, они обязательно бы выследили вас. Это были серьезные ребята; проводились целые вооруженные сражения против банды Hole in the Wall Gang, в которые вовлекались сотни людей Пинкертона. Имеется сцена в «Butch Cassidy and the Sundance Kid» («Грубиян Кэссиди и Малыш»), где гангстеры преследуются после грабежа поезда группой, которая не собиралась отступать. «Кто эти парни?» – спрашивает Грубиян у Малыша. Это были люди Пинкертона.
В киберпространстве нужны такие же хорошие контратаки. Сегодняшняя ситуация такова, что, если вам не грозит расплата, вас ничто не удержит от взлома. Вторжение в сеть – не игра, это – преступление. Кража денег с помощью взлома системы электронных платежей – преступление. Распространение в Интернете материала, защищенного авторским правом, – тоже преступление. И преступники должны преследоваться по закону. Судебное преследование, помимо наказания преступника, приносит дополнительную пользу. Во-первых, осужденный вряд ли пойдет на новое преступление. И во-вторых, вероятно, другие люди не станут рисковать, пытаясь сделать то же самое.
Это не призыв к «охоте на ведьм», чем уже пытались заниматься ФБР и некоторые другие организации в течение прошлого десятилетия. В восьмидесятые годы они знали немного о компьютерах и сетях, а также о компьютерных преступлениях. Опасность виделась повсюду. В 1989 году, когда NuPrometheus League похитила и опубликовала в Интернете исходный код ROM Macintosh, ФБР проводило проверку множества совершенно случайных людей. В 1990 году контрразведка провела облаву в штаб-квартире компании Steve Jackson Games, потому что компания работала над созданием ролевой игры (даже не компьютерной программы), в которой упоминались некие «киберпанки» и хакеры, а также потому, что одного из сотрудников, Лойда Бланкеншипа, подозревали в принадлежности к хакерской группировке «Легион Смерти» (Legion of Doom). В 1999 году Ассоциация контроля за копированием DVD попыталась заткнуть рот 500 веб-сайтам, чье преступление состояло только в публикации сообщения о взломе DVD-криптографии. А в 2000 году Microsoft потребовала, чтобы Slashdot удалил сообщения о закрытых расширениях к протоколу Kerberos.
Это не призыв к крайним мерам, к которым прибегали в девяностые годы. Дэвид Смит, создатель вируса Melissa, может получить от пяти до десяти лет тюрьмы[74]. Кевин Митник получил и отсидел почти пять лет, и ему запрещено пользоваться компьютером еще три года. (Все его навыки связаны с компьютерами, но ему запретили читать лекции по предмету. Чиновник, занимавшийся его досрочным освобождением, предлагал получить работу в Arby.) Кевину Поулсону был вынесен аналогичный приговор. Китайское правительство приговорило хакера к смерти за взлом банковского компьютера и похищение 87 000 долларов. (По правде говоря, в Китае казнят всех грабителей банков.) Помнится, на американском Западе в начале XIX века конокрадов часто отправляли на виселицу. Общество хотело этим показать, что не потерпит конокрадства. Правительства европейских стран продемонстрировали такое же отношение к террору в начале 70-х, когда террористов начали расстреливать на улицах. Тем самым они предельно ясно объявили: «Мы больше не играем в игры». Чрезмерно суровые приговоры, выносимые хакерам, связаны с панической реакцией общества на новую угрозу.
Это также не воззвание к тому, чтобы объявить вне закона любых исследователей или хакеров, практику «полного раскрытия» или отменить право оценивать надежность средств безопасности. Законы Соединенных Штатов запрещают «обратное проектирование» (reverse engineering) систем защиты от копирования. Индустрия развлечений вовсю лоббирует эти драконовские законы, чтобы с их помощью скрыть недостатки защиты своих продуктов. Ни в одной другой отрасли промышленности производители не пытаются запретить покупателю исследовать товар, чтобы понять, как он работает. Никакая другая промышленность не пытается помешать оценивать качество ее изделий по схеме «Отзывы потребителя». Глупо казнить гонца, принесшего дурные вести.
К чему я призываю, так это к ужесточению судебного преследования людей, вовлеченных в преступную деятельность, и к вынесению справедливых приговоров. Широко распространена такая точка зрения: «Если я сижу спокойно и не поднимаю шума, то никто не побеспокоит меня». Компании неохотно преследуют компьютерных преступников, потому что боятся мести. Действительность же такова, что до тех пор, пока мы не начнем преследовать преступников, они будут и далее распространять средства нападения и взламывать сети. Как только мы начнем наказывать их, хакерство перестанет быть столь привлекательным делом. Это не идеальное решение, так как хакеры, скорее всего, уйдут в подполье, но ситуация все же изменится. Применение в семидесятые годы жестких мер против терроризма имело два положительных эффекта: неисправимые террористы были вынуждены действовать с большей осторожностью, а другие просто сложили оружие.
Управляйте риском
Абсолютной безопасности не существует, но не всегда это является проблемой. Только в Соединенных Штатах индустрия кредитных карточек теряет из-за мошенничества 10 миллиардов долларов в год, но ни Visa, ни MasterCard не собираются сворачивать бизнес. Ущерб от краж в магазинах Соединенных Штатов составляет от 10 до 26 миллиардов долларов в год, но при этом «утруска» (как это называется) редко становится причиной закрытия магазинов. Недавно мне понадобилось заверить документ у нотариуса: эта процедура использует самый слабый «протокол безопасности», который я видел когда-либо. Однако она прекрасно служит тем целям, ради которых была разработана.
После того как вы определили угрозы, вам предстоит сделать выбор: смириться с риском, постараться снизить его или застраховаться. Если нельзя полностью обезопасить себя, нужно управлять риском. Компании, выпускающие кредитные карточки, понимают это. Ущерб от мошенничества известен. Известно также, что потери, связанные с оплатой по телефону, приблизительно в пять раз больше потерь при непосредственных расчетах по сделке с использованием кредитной карточки и что потери от сделок в Интернете еще вдвое больше. (Многие издержки от фальшивок типа «карта не настоящая» несут торговцы, которые неактивно обращались за помощью при предъявлении счета.) Они выдвигают альтернативы Интернету, такие как SET, именно ввиду повышенного риска.
Закрытая система, подобная этой, – исключение. Мое первичное опасение относительно киберпространства состоит в том, что люди не понимают опасностей и слишком верят в способность технологии устранить их. Киберпространство где-то копирует физический мир, а где-то разительно от него отличается (см. главу 2). И продукты безопасности не могут в одиночку решить ее проблемы.
Необходимо изменить отношение к средствам безопасности. Сейчас средства защиты выдаются производителями за профилактические меры, способные полностью исключить возможность нападения. Хорошее шифрование якобы предотвращает подслушивание. Хороший брандмауэр якобы предотвращает нападения на сеть. И так далее.
Принцип предотвращения угроз более подходит для формирования политики национальной безопасности, чем для организации защиты в коммерческом мире. Бизнес почти всегда связан с риском, поэтому в реальном мире большее внимание уделяется средствам обнаружения и реагирования. Веб-сайты не нуждаются в абсолютно не поддающихся взлому паролях, достаточно, если они будут защищать от нападений большую часть времени. Нет необходимости создавать абсолютно надежные смарт-карты, достаточно, чтобы механизмы обнаружения и реагирования успевали сработать вовремя. (На самом деле и это не так уж важно: в системе кредитных карточек, где вращаются многие миллиарды, используются очень слабо защищенные карты с магнитной полосой и управляемые продавцом терминалы.)
Как только вы начинаете думать о безопасности подобным образом, все остальное разваливается на кусочки. Если безопасность служит для ухода от угроз, тогда она должна оправдывать вложенные деньги. Если безопасность – управление рисками, это становится способом повысить доход. Если компания способна вычислить, как управлять опасностью, которая может возникнуть при подключении к сети их системы, то она сможет захватить большую часть рынка. Если компания кредитных карточек сумеет спрогнозировать, как управлять рисками некоторого класса клиентов, то она сможет продавать большее количество кредитных карточек. Бизнес – это всегда риск, и более востребованы те люди, которые лучше умеют управлять рисками.
Безопасность старее компьютера И промышленность, выпускающая защитные средства, думает о контрмерах как способах управлять риском. Различие огромно. Уход от угроз – как черное и белое: или вы избегаете угрозы, или нет. Управление риском неоднозначно: вы или принимаете риск, или уменьшаете его, или страхуетесь.
Безопасный компьютер – тот, который вы застраховали.
Я считаю, что будущее компьютерной безопасности – за страхованием. Можно застраховаться от чего угодно: от кражи или вандализма, от того, что какой-нибудь выродок расстреляет ваших сотрудников, и т. д. Почему в таком случае не застраховаться от нарушения цифровой безопасности?
Крупные страховые компании не упускают такую возможность. Они разрабатывают различные аспекты страхования рисков, связанных с компьютерной безопасностью: страхование внутренних сетей, страхование от нападений, приводящих к отказу в обслуживании, от подмены веб-сайта при взломе. Это трудная задача, поскольку никто не знает, с какими рисками придется иметь дело.
Излюбленная шутка страховщиков: к ним обращается некая компания, желающая застраховаться от какой-то неслыханной опасности. Между страховщиками и представителями компании происходит следующий диалог:
– Как велики возможные потери?
– Мы не знаем.
– Как может наступить страховой случай?
– Мы не знаем.
– Сколько стоит ваша компания?
– Столько-то.
– Это и будет страховой взнос, можете внести его.
Уже сейчас страховые компании предлагают страхование от хакерства, но я не думаю, что они достаточно хорошо представляют, на что идут. Большинство стратегий сложны и неуправляемы и содержат так много условий, что я не уверен, окупятся ли они когда-нибудь. Преимущество стандартизации процессов безопасности – возможность количественной оценки рисков. Если тысяча компаний используют схожие безопасности, то страховые фирмы могут выработать соответствующую политику. Так работает ADT. Компании покупают обслуживание не потому, что это делает их товарные склады более безопасными, а потому, что имеют возможность оценивать риски.
Со временем появятся два типа страхования сети. Первый тип очевиден: если кто-то вламывается в вашу сеть и причиняет вам ущерб, страховая компания компенсирует его. Но второй тип страхования даже более важен. Представьте, что кто-то проникает в вашу сеть и разоряет ваших клиентов, пользуется их конфиденциальной информацией и наносит непоправимый урон их репутации. Размер компенсации в этом случае может быть огромен. Страхование от угроз подобного типа оказывается рискованным.
Управление риском – будущее цифровой безопасности. Кто научится лучше управлять рисками, тот – победитель. Страхование – важная составляющая управления рисками. С помощью технических решений можно уменьшить риски до такого уровня, что страхование становится оправданным.
Аутсорсинг процессов безопасности
Процессы безопасности – это способ уменьшения рисков. Средства защиты сети всегда имеют недостатки: необходимы некоторые процедуры, как для того, чтобы поймать нарушителей, которые используют в преступных целях эти недостатки, так и для исправления найденных ошибок. Если атакующий является посвященным лицом, то необходим процесс, который позволит обнаружить нападение, восстановить систему после нанесенных повреждений и преследовать преступника по закону. В сложных системах обычно присутствует множество уязвимых мест, и это может поставить под угрозу функционирование программ и оказание многих услуг (вспомните сотовые телефоны и DVD); тогда процесс необходим для восстановления системы и укрепления безопасности. Контрразведка – единственный способ быть в курсе того, что действительно происходит. Чтобы управлять остаточным риском, существует страхование.
Все эти процессы сложны, и, чтобы их обеспечить, нужны специалисты. И поскольку уже многие аспекты нашей жизни тем или иным образом связаны с киберпространством, растут требования к компьютерной безопасности, а следовательно, и спрос на специалистов. Единственно правильное решение – привлекать экспертов как можно чаще.