Ландшафт уязвимых точек предоставляет широчайшее поле деятельности для различных видов возможных атак, и поэтому имеет смысл при разработке мер противодействия исходить именно из ландшафта. Идея состоит в том, чтобы защититься от наиболее вероятных угроз, вместо того чтобы защищаться от угроз наиболее явных, игнорируя все остальные.
Не менее важно разумное вложение средств в применяемые меры противодействия. Не имеет смысла тратить кучу денег на самый лучший замок на входной двери, если злоумышленник способен проникнуть через окно. Нерационально тратить 100 долларов на пуленепробиваемое стекло, чтобы защитить имущество, оцениваемое в 10 долларов. Можно сказать, что, например, применять сложные методы шифрования для кабельного телевидения – это то же самое, что «повесить замок на сумку из бумаги».
Ценность чего-либо всегда определяется в зависимости от окружающих условий. До того как стали применяться жесткие диски, подростки иногда воровали в офисах дискеты… поскольку они могли представлять ценность. Некоторые компании потеряли таким образом довольно важные данные. А с другой стороны, маловероятно, что украдут кредитную карточку общей стоимостью около 100 долларов, у которой 0,25 доллара на депозите. Тщательный анализ стоимости очень важен при разработке рациональных мер противодействия телефонному мошенничеству и созданию пиратских копий программного обеспечения.
Следует помнить, что возможный противник далеко не всегда преследует цель обогащения. Иначе как тогда объяснить поведение хакера, который тратит сотни часов на то, чтобы взломать бесполезную компьютерную систему? Многие нападающие стремятся к огласке, или хотят отомстить, или имеют иные, нематериальные цели; помните об этом, когда анализируете ценности.
Также полезно иметь в виду, что блокирования любого из четырех первых шагов атаки достаточно, чтобы ее пресечь. Простые меры противодействия, такие как обучение персонала, грамотная политика безопасности, процедуры, связанные с контролем доступа, являются разумными и рентабельными средствами, позволяющими снизить риск, создаваемый ландшафтом уязвимых точек. Эти простые мероприятия могут значительно повысить сложность и рискованность действий, необходимых для осуществления успешной атаки.
Следующие несколько глав будут посвящены моделированию угроз, оценкам риска и определению необходимых мер противодействия.
Глава 19
Моделирование угроз и оценки риска
Моделирование угроз – это первый шаг в решении проблемы безопасности. Это попытка осмыслить информацию, которую можно извлечь из ландшафта уязвимых мест. Что может оказаться реальной угрозой для системы? Если вы не знаете этого, как вы можете определить, какие меры противодействия нужно использовать?
Моделирование угроз – трудное дело, и успех в нем приходит только с опытом. Для его осуществления необходимо использовать системный подход и хорошо представлять себе все особенности ландшафта. Как лучше провести нападение на систему? Я нахожу, что истинные хакеры весьма искусны в решении этого вопроса, и может быть, компьютеры их привлекают в первую очередь именно возможностями интеллектуальной игры. Хакеры получают удовольствие, размышляя о недостатках систем: как можно их одолеть, почему это возможно и что при этом будет происходить? Они испытывают наслаждение, заставляя систему делать то, для чего она не была предназначена. Те же чувства испытывает умелец, способный переделать двигатель своего автомобиля, чтобы он работал так, как ему хочется, а не так, как предполагал его производитель. Такое же удовольствие получает хакер, взламывающий брандмауэр через Интернет, чтобы убедиться в том, что он способен «овладеть» чужим компьютером.
Я пришел к выводу, что наилучшими экспертами в области безопасности являются люди, исследующие несовершенства защитных мер. Они идут на избирательный участок, размышляя о том, как можно было бы в обход установленного контроля проголосовать дважды. Когда они пользуются телефонной карточкой, они думают о средствах защиты от мошенников и о том, как можно их обойти. Эти размышления вовсе не обязательно подталкивают их к конкретным действиям, и если они обнаруживают, например, появившееся «слепое пятно» в системе видеонаблюдения в магазине, это не означает, что они тут же предпримут попытку кражи.
Моделирование угроз имеет с описанной ситуацией много общего, и единственный способ изучить проблему – это практика. Начнем с кражи блинов.
Наша цель – поесть бесплатно в местном ресторанчике. Для этого у нас есть много возможностей. Можно поесть и убежать. Можно расплатиться подложной кредитной картой, фальшивыми чеком или наличными. Можно выманить посетителя из ресторана и съесть его блюдо. Можно прикинуться (а то и стать на самом деле) поваром, официантом, управляющим или хозяином (которого видели всего лишь несколько работников). Можно стащить тарелку с чужого столика или из устройства для подогрева, опередив официанта. Можно подождать у мусорного бака, когда вынесут выбрасывать объедки. Можно включить пожарную сигнализацию и вволю попировать в полном одиночестве. Можно представиться управляющему некоей знаменитостью, могущей рассчитывать на бесплатный завтрак, или найти доверчивого клиента, которого можно уговорить заплатить за нас. Можно ограбить кого-нибудь поблизости от ресторана и расплатиться за еду. Можно подделать талон на бесплатное обслуживание. А кроме того, есть освященная веками традиция – ворваться с ружьем и прокричать: «Гоните сюда все ваши блины!».
Вероятно, существует множество других возможностей, но у нас уже есть общее представление. Взглянув на приведенный перечень, не так трудно понять, что большинству нападающих ничего не нужно делать в тот момент, когда деньги переходят из рук в руки. Это любопытно, поскольку означает, что безопасность системы платежей не защищает от кражи блинов.
Подобная ситуация складывается и в цифровом мире. Представим себе хранилище блинов в Веб – большинству нападающих не придется иметь дело с системой электронных платежей. Существует множество других уязвимых мест. (Вспомните изящное нападение через веб-страницу на корзину для покупок, описанное в главе 10, когда нападающий мог изменять цены товаров произвольным образом. Здесь кроется возможность для подобного нападения: можно изменить прейскурант таким образом, что блин будет стоить 0,00 долларов.) Наиболее успешные нападения редко проводятся на физическом уровне.
Перейдем к более значительным и интересным проблемам. Займемся проведением выборов. Это будут местные выборы – мэра города. Жульничество на выборах старо, как сами выборы. Насколько это трудно?
Предположим, имеется дюжина избирательных округов, в каждом из которых есть свой избирательный участок. На каждом участке присутствуют по три члена избирательной комиссии, которые следят за правильностью голосования. Избиратели получают у них бюллетени, которые потом опускают в урну. В конце дня все бюллетени пересчитываются специальной машиной. Избирательные комиссии всех двенадцати участков сообщают по телефону о результатах голосования в центральную комиссию, где подводятся окончательные их итоги, после чего один из претендентов объявляет о своей победе под дождем конфетти и под громкие звуки оркестра.
Эта система имеет множество уязвимых мест. Можно воздействовать на избирателей, на членов комиссии, можно подобраться к урнам для голосования и счетным машинам, можно дать ложное сообщение по телефону или воздействовать непосредственно на центральную комиссию. Давайте рассмотрим каждый вариант в отдельности.
Подкуп избирателей – освященный временем способ проведения выборов. Эта практика теряется во тьме веков и не имеет места лишь в странах третьего мира. Во время выборов 1996 года в городе Додж Кантри, Джорджия, насчитывающем 17 000 жителей, 21 человек был уличен в различных махинациях при голосовании, в том числе в подкупе избирателей. В большинстве штатов (включая Джорджию) закон запрещает платить избирателям, поэтому политики вынуждены прибегать к другим ухищрениям: они обещают снижение налогов, организацию общественных работ, лоббирование законопроектов и благосклонность Белого Дома. Это эффективный способ, хотя и дорогостоящий.