Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Взломать всё. Как сильные мира сего используют уязвимости систем в своих интересах - Брюс Шнайер на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

В том же 2017 г. червь WannaCry пробрался в более чем 200 000 компьютеров по всему миру и причинил ущерб на сумму около $4 млрд, причем это коснулось только тех сетей, которые не установили патч для Microsoft Windows.

Все это иллюстрирует главный недостаток патчей: они устанавливаются постфактум. Уязвимость уже существует в системе. Хакеры могут вовсю эксплуатировать ее к моменту установки патча. И даже если это не так, то сам факт исправления кода привлекает внимание к уязвимости и подвергает опасности все аналогичные системы, которые еще не были пропатчены.

Для большинства индивидуальных пользователей компьютеров и мобильных устройств обновления происходят автоматически. Если на вашем компьютере установлена операционная система Windows, то пакет обновлений приходит во второй вторник каждого месяца и может включать исправления более чем 100 уязвимостей. Ваш iPhone выдает все более грозные предупреждения, если вы игнорируете установку обновлений. (Если вы еще не сделали выводов, позвольте сказать прямо: включите функцию автоматического обновления на компьютере и телефоне. Ставьте патчи сразу, как только получите. Всегда.)

Крупные организационные сети вынуждены работать с исправлениями куда медленнее и осторожнее. Поскольку плохой патч может спровоцировать кучу проблем из-за того, как он взаимодействует с другим программным обеспечением, исправления обычно устанавливают обдуманно и методично. Часто это означает, что их устанавливают с опозданием или не устанавливают вовсе. Мы могли бы возложить вину за взлом базы данных на саму Equifax, поскольку она не установила патч для Apache Struts, но дело в том, что патчи этого разработчика славились своими ошибками, несовместимыми с другим программным обеспечением, взаимодействующим со Struts. Многие организации проявляют осторожность, применяя эти исправления.

В случае социальных систем патчи работают иначе. В системах технологических патч блокирует саму возможность взлома. Это, безусловно, относится к программному обеспечению, но касается и других технологических систем. Производитель банкоматов может установить патч на свои машины, и конкретная схема джекпоттинга перестанет работать. Казино при игре в блек-джек может раздавать с шести колод, постоянно тасуя карты. Финансовая биржа может ограничить торговлю десятисекундным интервалом, сделав такой хак, как высокочастотная торговля, нереалистичным. Все это можно сделать лишь потому, что возможности системы строго определены технологией.

С социальными, экономическими или политическими системами, которые не связаны напрямую с компьютерами, все далеко не так просто. Когда мы говорим об «исправлении» налогового кодекса или правил игры, мы имеем в виду изменение законов или правил системы таким образом, чтобы конкретная атака попала в разряд запрещенных. Компьютер по-прежнему можно будет использовать для предсказания вероятных исходов игры в рулетку, и клюшку можно будет изогнуть больше чем на три четверти дюйма (1,9 см), но пойманному нарушителю придется испытать на себе малоприятные последствия своего поступка. Единственное «обновление», которое нужно «установить» в этих случаях, – это обучить персонал и убедиться, что каждый пит-босс в казино и каждый хоккейный арбитр на льду знают новые правила и то, как выявлять мошенников, а пойманных с поличным наказать соответствующим образом. Аналогично, законная стратегия ухода от налогов становится незаконным уклонением от их уплаты и в случае обнаружения преследуется по закону (во всяком случае, так должно быть).

Это указывает на другую проблему: мошенников сложно обнаружить. Вспомните, что рулетка оставалась уязвимой до тех пор, пока систему ставок не изменили таким образом, что хакинг просто перестал быть эффективным. Эта проблема характерна для систем, о которых мы будем говорить. Если вы обновите компьютерный код, взлом станет невозможным. Если вы обновите налоговый кодекс, хак все еще будет возможен, просто юридическая лазейка перестает быть таковой, а значит, и хак, по моему определению, перестает быть хаком. Это означает, что вам придется обновить и систему обнаружения, чтобы хакеры, ставшие теперь преступниками, были пойманы и привлечены к ответственности.

Эффективность патчей также снижается, когда управляющий орган функционирует медленно или когда внутри него нет единого мнения, нужен ли патч вообще. Иными словами, когда у системы нет четкой цели. Что, например, означает «исправить» налоговый кодекс? В большинстве случаев это означает принятие нового закона, который закрывает уязвимости действующего. Этот процесс может занимать годы, ведь налоговый кодекс создается в политической сфере – обители конкурирующих представлений о том, чего должна достичь государственная политика. Кроме того, те самые люди, которые используют уязвимости, как правило, стараются хакнуть и законодательные системы, чтобы поддерживать легальность своих действий. Представьте себе, если бы счетчики карт в блек-джеке отвечали за правила казино. Подсчет карт тогда преподносился бы как умный и честный способ победить в игре. Точно так же преподносится сейчас уклонение от уплаты налогов.

В отсутствие исправлений на уровне законодательства можно прибегнуть к весьма специфическому и быстрому патчу, который «ставится» через суд. В компьютерном мире у него есть аналог, известный как хотфикс (hotfix), – быстрое обновление программного обеспечения, предназначенное для устранения конкретной ошибки или уязвимости. Термин «хотфикс» (буквально «горячее исправление») происходит от того факта, что традиционно такие обновления применялись к уже запущенным рабочим системам. Этот метод был более рискованным, поскольку программное обеспечение могло дать сбой, способный повлечь непредсказуемые проблемы. Сегодня хотфикс – обычное явление: обновления для операционных систем, значительная часть которых функционирует в облаке, устанавливаются прямо в процессе их работы, но, когда появился термин, это было не так.

12

Более тонкие средства защиты

Второй способ защиты – снижение эффективности взлома.

Компрометация деловой электронной почты – это хакерская атака с помощью социальной инженерии, поскольку она использует не технологическую, а человеческую уязвимость. При такой мошеннической схеме жертва получает электронное письмо от источника, которому доверяет, содержащее вполне законный запрос, но с просьбой сделать это не так, как обычно, зачастую вопреки установленному протоколу. Так, бухгалтер получает электронное письмо от поставщика, который просит перечислить деньги на новый банковский счет. Или покупатель жилья получает электронное письмо от компании-застройщика с инструкциями о том, как перевести первый взнос. Или финансовый директор может получить электронное письмо от генерального директора с просьбой срочно перевести многомиллионную сумму на конкретный счет. Счета-получатели принадлежат мошеннику, и жертва, как правило, никогда больше денег своих не видит. Подобные аферы стоят миллиарды.

Иногда такая схема предполагает взлом электронных почтовых ящиков продавцов – это повышает вероятность того, что жертва будет доверять отправителю. Чаще всего электронные письма мошенников представляют собой незначительные вариации настоящих адресов, что-то вроде person@c0mpanyname.com вместо person@companyname.com. (Если вы слушаете аудиокнигу, то буква «о» в первом слове «companyname» заменена на ноль.) Уязвимость здесь заключается в невнимательности, свойственной людям, или неуместном доверии.

Существует масса причин, по которым уязвимость нельзя устранить. В мире политики законодательный процесс, который должен это делать, может оказаться неработоспособным. Или же может не оказаться руководящего органа, который выдает предписание создать патч. В случае хакинга с помощью социальной инженерии, описанного выше, хакеры взламывают работу нашего мозга, а эта уязвимость не поддается исправлению в более короткие сроки, чем определит эволюция.

Когда мы не можем устранить уязвимость, у нас есть три варианта. Первый – перепроектировать систему так, чтобы взломать ее было слишком сложно, слишком дорого, менее прибыльно или же менее разрушительно. Это подход работает и в тех случаях, когда просто объявить хак вне закона недостаточно и мы хотим дополнительно усложнить жизнь хакерам.

Второй вариант – предвидение. Если я расскажу вам о компрометации деловой электронной почты и о том, как это работает, вы станете лучше распознавать ситуации, когда становитесь потенциальной мишенью, и, надеюсь, с меньшей вероятностью попадете в расставленные сети. Именно так мы защищаемся от мошеннических атак по электронной почте и телефону, которые проскальзывают через автоматические фильтры. Именно так потенциальные жертвы могут противостоять эффективным когнитивным взломам, которые играют на универсальных человеческих предубеждениях, таких как страх и доверие к авторитету.

Это подразумевает использование дополнительной системы с целью обезопасить основную. Для противодействия компрометации деловой электронной почты компания может ввести требование, чтобы любые крупные денежные переводы утверждались как минимум двумя людьми. Это означает, что, даже если взлом пройдет успешно и сотрудник будет одурачен, хакер не сможет извлечь выгоду из своего обмана.

Этот вариант защиты часто обсуждается как решение проблемы незащищенных IoT-устройств. Беспокойство вызывает тот факт, что через несколько лет в наших домах и сетях появятся разнообразные уязвимые IoT-устройства, защитить которые будет просто невозможно. Одним из решений является наличие в сетях систем, распознающих эти устройства и ограничивающих их поведение таким образом, чтобы снизить возможность для хакинга. Представьте, что ваш домашний маршрутизатор умен настолько, что распознает IoT-устройства и блокирует их, когда те пытаются делать нечто, чего делать не должны, например если холодильник начинает рассылать спам, добывать криптовалюту или участвовать в DoS-атаках.

Третий вариант защиты – обнаружение хака и восстановление системы постфактум.

В 2020 г. российская служба внешней разведки (СВР) взломала серверы обновлений, принадлежащие разработчику программного обеспечения, под управлением которого работала сеть компании SolarWinds. В числе ее 300 000 клиентов по всему миру было большинство компаний из списка Fortune 500 и члены правительства США. СВР установила бэкдор[8] в обновление одного из продуктов компании, который носил название Orion, и стала выжидать.

Остановимся на секунду. Всего несколько страниц назад я объяснял, что главный в компьютерной индустрии метод защиты от хакеров – это исправления. СВР взломала сам процесс создания патчей, а затем подсунула бэкдор в одно из обновлений продукта. Более 17 000 клиентов Orion скачали и установили хакнутое обновление, предоставив СВР доступ к своим системам. СВР подмяла под себя тот самый процесс, которому ожидаемо все должны доверять, чтобы повысить свою безопасность.

Хак не был обнаружен ни АНБ, ни каким-либо другим подразделением правительства США. Компания FireEye, предоставляющая услуги в сфере сетевой безопасности, случайно наткнулась на него в ходе детального аудита собственных систем.

Как только взлом SolarWinds выплыл наружу, сразу стало ясно, насколько катастрофической (или успешной, в зависимости от вашей позиции) оказалась эта операция. Русские взломали Государственный департамент США, министерство финансов, министерство внутренней безопасности, Лос-Аламосскую и Сандийскую национальные лаборатории, а также Национальные институты здравоохранения. Они проникли в Microsoft, Intel и Cisco. Они взломали сети в Канаде, Мексике, Бельгии, Испании, Великобритании, Израиле и ОАЭ.

После проникновения в эти системы хакеры СВР смогли установить новые средства доступа, не связанные с уязвимостью SolarWinds. Таким образом, даже после того, как компании, подвергшиеся атаке, исправили свое программное обеспечение и устранили проблемы с помощью новых, уже безопасных обновлений, в их сетях все еще оставались неизвестные уязвимости. Единственный надежный способ восстановить безопасность в такой ситуации – выбросить все оборудование и программное обеспечение и начать с нуля. Но ни одной организации не хватило решимости поступить таким образом, и я полагаю, что их сетями по-прежнему можно манипулировать из Москвы.

Из этой истории следует несколько выводов. Во-первых, обнаружить хак бывает непросто. Иногда его удается распознать прямо во время взлома, но чаще всего это происходит уже после, к примеру в процессе аудита. Во-вторых, хак может быть настолько разрушительным, что никакие ответные меры не будут достаточными. В-третьих, может оказаться просто нереальным восстановиться после конкретного взлома. В этом случае восстановление будет заключаться прежде всего в защите системы от дальнейших хакерских атак.

И, наконец, еще об одном способе защиты – поиске уязвимостей до того, как они будут использованы злоумышленником.

Атака «красной команды»[9] – это не что иное, как взлом собственных систем. Можно прибегнуть к услугам компаний, которые специализируются на подобном анализе, а можно поставить задачу разработчикам делать это самостоятельно в рамках процесса контроля качества. И в том, и в другом случае «красная команда» рассматривает систему так, как если бы являлась внешним хакером. Обычно такая команда находит массу уязвимостей (в компьютерном мире они есть всегда), которые исправляются до выхода программного обеспечения.

Эта концепция пришла из армейского арсенала. Традиционно «красной командой» на воинских учениях называли подразделение, игравшее роль врага{61}. Сообщество кибербезопасности взяло этот термин, чтобы обозначить группу людей, обученных думать как враг и находить уязвимости в системах. Это более широкое определение было включено в процесс военного планирования и в настоящее время является неотъемлемой частью военного стратегического мышления и проектирования систем. Министерство обороны США, особенно сектор национальной безопасности, уже давно интегрировало «красную тройку» в процесс планирования. Вот что заявил об этом Научный совет по вопросам обороны США:

Мы утверждаем, что «красные команды»{62} сейчас особенно важны для министерства обороны… Агрессивные «красные команды» необходимы для оспаривания новых оперативных концепций, чтобы обнаружить их недостатки прежде, чем это сделает реальный противник.

Если вы не создаете «красную команду», то, чтобы найти уязвимости в своих системах, вам придется полагаться на своих же врагов. Но если уязвимости находит кто-то другой, как вы можете быть уверены, что они будут устранены, а не использованы? В компьютерном мире основным средством противодействия использованию хакерами плодов своих усилий является признание компьютерного взлома преступлением. Если вы хакер и обнаружили новую уязвимость, то можете использовать ее с риском получить тюремный срок. Но вы также можете продать информацию на черном либо на сером рынке.

Противодействующим стимулом являются поощряющие программы, известные как bug bounties, когда компании-разработчики программного обеспечения выплачивают вознаграждение людям, обнаружившим уязвимости в их продуктах. Идея заключается в том, чтобы заинтересовать исследователей сообщать о своих находках в компанию. Bug bounties неплохо справляются со своей задачей, хотя зачастую хакеры могут заработать куда больше, толкая информацию об уязвимостях преступникам или производителям кибероружия.

В любом случае чем больше вы знаете о системе, тем легче находить новые уязвимости, особенно если у вас имеется доступ к человекочитаемому исходному коду, а не только к объектному коду, читаемому машиной. Точно так же легче найти уязвимости в своде правил, если у вас есть копия самого свода правил, а не только информация о постановлениях на его основе.

13

Устранение потенциальных хаков на этапе проектирования систем

Автозапуск – функция, впервые появившаяся в Windows 95. До этого момента вы покупали программное обеспечение на компакт-диске, а затем вручную запускали сценарий установки на своем компьютере. С автозапуском вы могли просто вставить диск в дисковод, и система автоматически находила и запускала сценарий установки. Это значительно упрощало установку программного обеспечения для среднего, технически неграмотного пользователя.

К сожалению, функция автозапуска также использовалась вирусописателями для установки в системы вредоносных программ. Вирус размещался на безобидном компакт-диске или, в более поздние годы, на флешке и автоматически запускался, как только ничего не подозревающий пользователь вставлял его в компьютер. Вот откуда ведет свою историю всем известное предупреждение о небезопасности подключения случайных USB-накопителей к компьютеру.

Обратите внимание, что в данном случае уязвимость не является следствием ошибки. Это была попытка найти баланс между безопасностью и удобством использования. Найденный компромисс, возможно, и выглядел разумным в 1995 г., чего нельзя было сказать о нем десятилетие спустя. Cообщения о системных ошибках, вызванных автозапуском, стали множиться как грибы после дождя, и в 2011 г. Microsoft наконец-то перепроектировала систему для Windows Vista, отключив функцию автозапуска для флешек, сетевых дисков и прочих носителей, оставив ее только для таких вымирающих мастодонтов, как DVD-диски.

Проблема заключается в том, что невозможно создать идеальную защиту от хакеров на этапе проектирования, поскольку, во-первых, безопасность – это лишь одно из свойств, которые должны быть оптимизированы при разработке системы, а во-вторых, методы, которые используют хакеры, их цели и мотивы постоянно меняются по мере развития общества и технологий. Проектировщикам необходимо пересмотреть свои основные подходы к организации и запуску систем. Хороший дизайн системы со временем теряет свои преимущества, и хакеры всегда найдут способы использовать его в своих целях.

Вместо того чтобы находить уязвимости в системе до того, как она будет взломана, мы можем попытаться создать систему с меньшим количеством уязвимостей, то есть сделать так, чтобы они не существовали изначально. В сфере информационной безопасности это называется проектированием безопасных систем.

Впрочем, сказать намного легче, чем сделать. В сложноорганизованном компьютерном коде невозможно найти все скрытые лазейки. Простые смертные не могут создать программное обеспечение без ошибок и уязвимостей. У нас до сих пор нет теории проектирования безопасного программного обеспечения, не говоря уже о методологии такого процесса. Но главная причина, по которой мы не повышаем качество в этой сфере, заключается в том, что писать безопасный и надежный код – трудно, медленно и дорого, а значит, как правило, для этого нет экономического стимула. За такими редкими исключениями, как электронные системы самолетов и космических кораблей, большая часть программного обеспечения пишется в спешке и кое-как. Но базовые принципы проектирования, которые минимизируют количество уязвимостей и возможности их использования, у нас все-таки есть.

Простота. Чем сложнее система, тем более она уязвима. Причин тому множество, но, обобщая их, можно сказать, что в сложной системе присутствует куда больше элементов, которые могут сработать не так. Например, у здания офисного центра больше потенциальных уязвимостей, чем у дома на одну семью. Противоядием служит простота. Многие естественные системы сложны по самой своей природе, но что касается искусственных систем, то чем проще они разработаны, тем более безопасными будут в дальнейшем.

Глубокая защита. Основная идея этого подхода заключается в том, что одна уязвимость не должна разрушать всю систему. В компьютерных системах это чаще всего реализуется методом многофакторной аутентификации, когда кроме имени пользователя и пароля, являющихся единой точкой отказа[10], используют несколько методов аутентификации. К примеру, моя электронная почта дополнительно защищена Google Authenticator. Это приложение привязано к моему смартфону, который всегда со мной. Чтобы получить доступ к своей учетной записи, мне нужно разблокировать телефон, открыть приложение и ввести сгенерированный им код. Другие многофакторные системы могут включать биометрию, например отпечаток пальца, или небольшое USB-устройство, подключаемое к компьютеру.

Для некомпьютерных систем глубокая защита – это все, что не позволяет какой-то одной уязвимости стать причиной успешного взлома системы. Это может быть засов на двери в дополнение к основному замку, двойной забор с колючей проволокой вокруг военной базы или требование, чтобы финансовые операции на определенную сумму утверждались двумя людьми. Хак, преодолевающий один из этих барьеров, вряд ли сможет преодолеть и другой.

Компартментализация (изоляция / разделение обязанностей). Умные террористические организации разделяют себя на ячейки. Каждая ячейка имеет ограниченное представление об остальных, поэтому если одна из них скомпрометирована, то другие остаются в безопасности. Это и есть компартментализация, которая ограничивает последствия любой конкретной атаки. Эта же идея лежит в основе того, что в одной организации ключи от всех кабинетов разные, а у каждой учетной записи – свой пароль. Такой подход еще называют принципом наименьших привилегий, когда человеку или подразделению предоставляется только тот уровень доступа, который необходим для выполнения работы. Именно благодаря этому принципу у вас нет главного ключа от всех кабинетов в здании, где вы работаете, ведь у вас нет в нем производственной необходимости.

В компьютерных сетях такой подход называется сегментацией. Он подразумевает разделение сети на части, подобные террористическим ячейкам, чтобы хакерская атака на одну из них не привела к взлому всей сети. Сегментация – это первое, что пытается нарушить злоумышленник после проникновения в сеть. Например, хорошая сегментация не позволила бы СВР использовать уязвимость SolarWinds для доступа к различным частям сети и установить вредоносные программы и бэкдоры.

Эта концепция легко применима и в социальных системах. Она находит отражение, например, в идее, что государственные регуляторы не должны иметь финансовых интересов в отраслях, которые они регулируют. (Впрочем, этот принцип регулярно нарушается в США, благодаря так называемому эффекту вращающихся дверей, когда происходит взаимная ротация кадров между правительством и отраслями.) Или в том, что избирательные округа не должны создаваться выборными должностными лицами, которые могут извлечь выгоду из джерримендеринга[11].

Механизмы защиты от сбоев. Все системы дают сбой, будь то в результате несчастного случая, ошибки или атаки. Мы хотим, чтобы они выходили из строя максимально безопасно. Есть простые решения, например выключатель мертвеца в поезде: если машинист теряет дееспособность, поезд перестает ускоряться и в конце концов останавливается. Есть решения намного сложнее, как в случае с пусковыми установками ядерных ракет, которые имеют всевозможные надежные механизмы, гарантирующие, что боеголовки никогда не будут запущены случайно.

Социальные системы также могут иметь механизмы защиты от сбоев. Многие наши законы содержат нечто подобное. Убийство незаконно, независимо от используемых средств, даже если вы придумаете хитрый способ взломать систему для его совершения. Альтернативный минимальный налог (АМТ) в США должен был служить в качестве предохранительной меры, чтобы граждане платили минимальный налог независимо от того, сколько и какого рода лазеек они обнаружили. (То, что АМТ не сработал так, как это задумывалось, демонстрирует сложность поставленной задачи.)

* * *

Все перечисленные контрмеры также снижают эффективность хакинга.

Пока что я не сказал ничего нового. Большую часть этой темы я уже освещал в своей книге 2000 г. «Секреты и ложь»{63}. Другие авторы писали об этом и до меня, и после. Но понимание подходов безопасного проектирования имеет решающее значение для ограничения эффективности взлома. Чем больше фундаментальных принципов безопасности вы сможете включить в дизайн вашей системы, тем надежнее она будет защищена от хакеров.

Используют компании эти методы или нет, зависит от конкретной отрасли. Можно предположить, что такие гиганты, как Apple и Microsoft, тратят гораздо больше денег на обеспечение безопасности своих программных продуктов, чем разработчики игр для мобильных телефонов. Точно так же можно ожидать, что компания, создающая программное обеспечение для самолетов, автомобилей и медицинских приборов, потратит значительно больше средств и усилий на обеспечение безопасности, чем компания, выпускающая программируемые игрушки. И хотя всегда есть исключения, в основном такая картина верна.

14

Экономика безопасности

В 1971 г. некто, купивший билет на имя Дэна Купера, хакнул Boeing 727, использовав кормовой трап весьма нетривиальным способом: после успешного захвата самолета и получения выкупа в размере $200 000 наличными он выпустил пассажиров, заставил пилотов взлететь и выпрыгнул с парашютом, чтобы навсегда исчезнуть для правоохранителей, которые так и не смогли установить его личность. За Купером последовало множество подражателей, и в итоге компания Boeing изменила конструкцию этой модели, убрав кормовой трап и тем самым устранив возможность выпрыгнуть в полете. Это было эффективное, но дорогостоящее исправление уязвимости. Однако почему она вообще существовала? Вероятно, компания считала эту угрозу или нереальной, или слишком отдаленной, чтобы от нее защищаться.

Моделирование угроз – это термин из области системного проектирования, означающий последовательное перечисление всех возможных угроз для системы{64}. Если в качестве системы вы рассмотрите свой дом, то для начала стоит перечислить, что в нем наиболее ценное: жильцы, семейные реликвии, оригинал Пикассо, дорогая электроника. Затем нужно перечислить все способы, которыми посторонний может проникнуть в дом: незапертая дверь, открытое окно, закрытое окно и т. д. После этого вы рассмотрите разные типы людей, которые могут захотеть проникнуть в дом: профессиональный взломщик, соседский ребенок, преследователь, серийный убийца. Не стоит забывать об угрозах от людей, которым не нужно взламывать дверь, например о возможном насилии со стороны интимного партнера. И, наконец, вы используете всю эту информацию для построения модели, подробно описывающей то, о каких угрозах стоит побеспокоиться, а какие можно проигнорировать, сколько усилий нужно потратить на смягчение конкретных угроз и т. д. Ваша домашняя безопасность будет иметь свою специфику, если вы владеете оригиналом Пикассо, являетесь президентом страны или живете в зоне боевых действий.

Экономические соображения необходимы для понимания того, как строить защиту от хакинга. Определите размер убытков в случае взлома системы. Определите стоимость и эффективность конкретных методов безопасности. Проведите анализ затрат и выгод, чтобы понять, стоит ли каждый метод потраченных на него средств. В некоторых случаях нет смысла внедрять защиту. Например, существует множество потенциальных мер безопасности, которые могут снизить количество взломов банкоматов, но они не применяются, поскольку раздражают законных клиентов. Такие методы, как сканирование отпечатков пальцев или система распознавания лиц, многие клиенты сочтут нарушающими конфиденциальность. Если эти меры ощутимо снизят частоту использования банкоматов, то сделают их менее прибыльными, несмотря на то что повысят уровень безопасности.

Еще одно понятие из области экономики, которое важно для понимания хакинга и защиты от него, – это экстерналии. Экстерналией называется внешний эффект от экономической деятельности, который сказывается на людях, непосредственно не вовлеченных в эту деятельность. Помните владельца фабрики, решившего загрязнить реку? Люди, живущие ниже по течению, в результате могут заболеть, но владелец живет в другом месте, и ему все равно.

Конечно, все не так однозначно. Ниже по течению могут жить работники фабрики и ее клиенты. Экологические активисты могут разоблачить факт загрязнения, пресса – опубликовать критические статьи, а общественное мнение – обернуться против владельца. Тем не менее в нашем системном мышлении загрязнение реки является экстерналией.

Хакинг вызывает внешние эффекты. У этих эффектов есть цена, которую платит общество. Это похоже на воровство в магазинах: все должны покупать по более высоким ценам, чтобы компенсировать потери или оплатить меры, предпринимаемые магазином для борьбы с воришками.

Мы знаем, как решить проблемы, вызванные внешними эффектами: нужно преобразовать их в проблемы, которые затрагивают человека, владеющего системой и принимающего решения. Для этого мы налагаем на систему правила извне, чтобы перенести затраты внутрь самой системы.

В идеальном мире такой подход работает блестяще. В реальности его эффективность зависит от правоприменения и наказаний, от юристов и результатов судебных разбирательств. Она зависит от действий регулирующих органов, на которые влияют представители власти, лоббисты, стремящиеся смягчить нормы, а также доноры избирательных кампаний со своими программами. Она зависит от результатов исследований, финансируемых промышленностью и научными кругами, которые могут искажаться в интересах политических сил. Она зависит от граждан, которые должны не только понимать, что подобные затраты существуют, но и то, как и кого именно заставить понести их.

Технические системы становятся небезопасными при изменении модели угроз. По сути, любая система проектируется в соответствии с реалиями своего времени. Затем в какой-то момент ее использования что-то меняется. Какова бы ни была причина изменений, старые предположения, положенные в основу безопасности, больше не верны, и система становится незащищенной. Уязвимости, которые когда-то были неважными, превращаются в критические. Критические уязвимости, напротив, перестают быть актуальными. Хаки становятся то проще, то сложнее, то более прибыльными, то менее, то распространенными, то единичными.

Возможно, самым наглядным примером этого служит сам интернет. Как бы смешно это ни звучало сегодня, но интернет создавался без учета требований безопасности. Еще в конце 1970-х – начале 1980-х гг. он не использовался для каких-то важных дел, а чтобы получить к нему доступ, нужно было быть сотрудником исследовательского учреждения. Многопользовательские мейнфреймы, подключенные к интернету, имели свои собственные системы безопасности. По этим причинам первые разработчики интернета намеренно игнорировали соображения безопасности в пользу более простого протокола и оставляли их на усмотрение многопользовательских конечных точек.

Мы все знаем, чем закончилась эта история. Сначала к интернету стали подключаться однопользовательские персональные компьютеры без систем безопасности, но разработчики сетей предположили, что эти компьютеры имеют такой же уровень безопасности, как и старые мейнфреймы. Затем изменилось все, что касается использования интернета. Изменилась его скорость. Изменился масштаб. Изменилась область его применения. Изменилась и вышла на первый план его роль в обществе. Взломы, о которых раньше никто и помыслить не мог, внезапно стали критически важными. Изменилась модель угроз. А это означало, что анализ затрат и выгод стал тоже иным.

В области компьютерной безопасности мы хорошо знаем, что такое динамичные среды. Кажется, что каждые несколько лет меняется абсолютно все и методы безопасности должны меняться тоже. Спам в системе электронной почты является проблемой в той мере, в какой стала экономически невыгодной почта бумажная, поскольку отправлять электронные письма намного дешевле.

Поддержание безопасности в этой динамичной среде требует работы на опережение хакеров. Вот почему мы занимаемся исследованиями в области компьютерной безопасности, проводим конференции, выпускаем журналы, создаем программы для выпускников университетов, устраиваем хакатоны. Мы обмениваемся информацией о том, что предпринимают хакеры, и делимся передовыми методами защиты. Мы пытаемся понять, где появятся новые уязвимости, до того, как это произойдет, и как именно хакеры будут реагировать на них.

Для того чтобы законы поспевали за хакерами, они должны давать регуляторам необходимую гибкость в вопросах запрета новых хаков и наказания хакеров. Закон о компьютерном мошенничестве и злоупотреблениях был принят в 1986 г. и стал результатом обеспокоенности тем, что существующие на тот момент законы не охватывали все преступления, связанные с компьютерами. Например, этот закон, среди прочего, квалифицирует доступ к чужой компьютерной системе без разрешения или превышение уровня авторизованного доступа как преступление. Такая формулировка оказалась настолько широкой, что в 2021 г. Верховный суд США сократил ее. Однако смысл закона остался прежним – он позволяет обвинению заявить: «Хотя система и дала возможность осуществить хак, но такие действия явно не были предусмотрены, и ответчик знал, что поступает неправильно. И потому его действия незаконны».

Для многих наших социальных систем возможность исправления самих себя заложена не только внутри, но и на внешнем уровне более общих правил, по крайней мере в некоторой степени. Остается открытым вопрос: как мы осуществляем управление жизненным циклом некомпьютерных систем? Как часто мы должны проверять на уязвимости наши демократические институты и то, соответствуют ли они своему назначению? И что делать в случае, если это не так? Каждые несколько лет мы покупаем новый ноутбук или смартфон, справедливо полагая, что новые устройства более безопасны. Но как нам сделать то же самое с социальными институтами?

15

Устойчивость

Системы норм отличаются от сводов правил. В самой природе нормы заложено, что ее невозможно взломать; в случае нормы хак – это всего лишь другое слово для обозначения ее нарушения. С другой стороны, поскольку нормы более неформальны, чем правила, и не кодифицированы, существует больше возможностей для интерпретаций. Это приводит к тому, что мотивированный человек может легче перейти границы норм или оптимизировать свои действия для достижения определенного результата. А поскольку эти системы требуют от людей реагировать на атаки, нормам намного проще развиваться, чтобы, в частности, делать хаки легитимными.

В качестве примера можно взять недавние события, когда Дональд Трамп смог успешно выступить против социальных и политических норм. Я стараюсь не иллюстрировать Трампом те или иные тезисы этой книги по той причине, что он политически заряжен. Но здесь я сделаю исключение, поскольку пример слишком показателен, чтобы его игнорировать. У общества есть механизмы исправления мягких нарушений социальных норм – публичное посрамление, политический откат, журналистика и прозрачность. И все эти механизмы неплохо справлялись, пока Трамп не перегрузил их. В очень короткий срок возникло слишком много скандалов. Механизмы, которые корректировали поведение государственных служащих, оказались неэффективными перед лицом такого кандидата, как Трамп. Нормы работают только в том случае, если существуют последствия их нарушений, а общество просто не успевало реагировать на такой натиск. Таким образом, Трамп смог раздвинуть границы норм сразу во многих направлениях. И в некоторых случаях это разрушило сами нормы[12].

Однако, подобные вызовы системам норм могут повысить их устойчивость. Нормы – это что-то неявное и достаточно гибкое, поэтому их легко изменить. Для того чтобы оспорить и изменить систему норм, не нужны деньги, юридические знания или технологии, хотя все это, конечно, может помочь. Наши социальные модели поведения и неявные ожидания могут быть оспорены каждым, кто готов высказаться о них и имеет для этого платформу. И такой вызов скорее поможет нормам развиваться и совершенствоваться, чем сломает их.

Устойчивость является важной концепцией, которая применима ко всему: от человеческого тела до планетарной экосистемы, от организационных систем до систем компьютерных. Это способность системы восстанавливаться после возмущений, в число которых входят и хаки.

Устойчивость – это то, почему при строительстве подвесных мостов используют натянутые тросы, а не цельнометаллические стержни: вторые разрушаются внезапно и катастрофически, а тросы рвутся медленно и громко. Именно ради устойчивости наши мозг и тело знают так много разнообразных способов адаптации к любым обстоятельствам, в которых мы оказываемся. Хорошие таксисты знают, как объехать популярные достопримечательности как минимум четырьмя маршрутами, и это тоже устойчивость. И даже то, что в округе Ориндж, штат Калифорния, функционирует окружное правительство, объявившее о своем банкротстве в 1994 г.[13], – факт, иллюстрирующий тот же принцип.

В сфере безопасности устойчивость – это эмерджентное, то есть не сводимое к сумме ее компонентов, свойство системы, которое может сочетать в себе такие аспекты, как непроницаемость, гомеостаз, избыточность, маневренность, смягчение и восстановление. Устойчивые системы более безопасны, чем хрупкие. Многие из мер безопасности, которые мы обсуждали в предыдущих главах, направлены на повышение устойчивости системы к взлому.

Здесь стоит упомянуть еще один момент. Мы говорили о защите от хакинга в основном абстрактно, однако любое обсуждение такой защиты должно ответить на несколько конкретных вопросов. Кто от кого защищается? Кто решает, полезен взлом или нет? И, самое главное, кто отвечает за безопасность и за то, насколько защитные меры стоят затраченных усилий и средств?

Примеры, которые я приводил до сих пор, были довольно простыми: за системой стоит некий человек или организация, и они же отвечают за ее безопасность. Например, руководство Microsoft решает, является ли конкретный хак Windows проблемой и как эту проблему решить. Как правило, все решается установкой патча. Если поставить патч оказывается сложно, система живет с уязвимостью какое-то время, как это было в случае с функцией автозапуска. У нас есть примеры, когда уязвимости после взлома быстро исправлялись, и есть другие, когда хаки оставляли нетронутыми, потому что защита от них оказывалась слишком дорогим удовольствием. Если потери от мошенничества меньше, чем затраты на исправление системы, то компании, обслуживающие кредитные карты, позволят мошенничеству продолжаться. Магазины часто позволяют шоплифтерам[14] уходить с украденными товарами, потому что сотрудники, пытаясь остановить их, могут пострадать физически, а ложное обвинение людей в краже – привести к дорогостоящим судебным разбирательствам.

Поскольку мы пытаемся построить социальные и политические системы, способные защищать себя от хакеров, необходимо подумать о балансе между написанием законов законодателями и их исполнением регуляторами. С одной стороны, регулирующие органы не несут прямой ответственности перед людьми в той же мере, что и законодатели. С другой стороны, мы не хотим, чтобы законодатели увязали в деталях реализации законов до их принятия. Чем больше законодательные органы могут делегировать реализацию законов регуляторам, тем более гибкой и устойчивой к взломам будет созданная система.

Защита социальных систем от хакинга – это не только проблема разработчиков данных систем. Это проблема, стоящая перед всем обществом, перед каждым, кто желает социальных изменений и прогресса в целом.

Часть III

Хакинг финансовых систем

16

Хакинг райских кущ

Одним из центральных постулатов средневекового католицизма была идея покаяния и искупления. Она заключалась в том, что если вы согрешили, то можете искупить свою вину и получить прощение. Большие грехи требовали не просто раскаяния в содеянном, но и столь же больших мероприятий по их искуплению, которые многим были не по карману. Единственным способом искупить все грехи, совершенные на протяжении жизни, было паломничество в Иерусалим, но большинство людей просто не смогли бы его совершить. Поэтому церковь предприняла следующий логический шаг, начав принимать денежные пожертвования, чтобы другие могли проделать трудный и опасный путь от вашего имени. Это был разумный компромисс, и церковь поощряла подобную благотворительность. Так, если городская церковь нуждалась в новой крыше, богатому грешнику в качестве покаяния поручали оплатить ее ремонт. В обмен грешник получал отпущение грехов в форме индульгенции – документа, по сути подтверждающего пред Богом и людьми, что грехи его отпущены. Казалось бы, благодать, да и только.

Уязвимость этой схемы, однако, заключалась в том, что индульгенции – товар безграничный. Духовенство начало использовать его в качестве валюты, и это стало эксплойтом. Система в целом регулировалась слабо, а значит, никто не был в состоянии эффективно ограничить способ продажи индульгенций. Церковь печатала их столько, сколько могла продать, и скоро состоятельные люди осознали, что могут купить столько отпущения, сколько им нужно. Появились посредники, которые платили коррумпированным епископам за право перепродавать индульгенции. То, что задумывалось как система искупления{65}, превратилось в систему наживы и власти. В 1517 г. практика продажи индульгенций привела к тому, что Мартин Лютер вывесил свои знаменитые «Девяносто пять тезисов» – диспут о покаянии и индульгенциях – на дверях Замковой церкви в немецком Виттенберге, положив начало протестантской Реформации и вызвав более чем столетнюю религиозную войну.

Везде, где можно заработать, есть хакеры. А те, кто умеет распознавать выгодные лазейки, могут получить много денег. Это делает финансовые системы уникально подходящими (то есть выгодными) для взлома. Иоганн Тецель, доминиканский монах начала XVI в.{66}, изобрел два инновационных продукта для системы индульгенций. Во-первых, он выдвинул и продвигал идею о том, что можно покупать индульгенции для умерших друзей и близких{67}, тем самым повышая их статус в загробной жизни с чистилища до рая. Во-вторых, он продавал индульгенции, которые якобы давали отпущение не только прошлых, но и будущих грехов. Что-то вроде пожизненной гарантии на посмертное избежание ада{68}.

Несмотря на серьезные протесты со стороны католических богословов и реформаторов, таких как Мартин Лютер, Ватикан не смог пресечь эту практику. Церковь стала зависеть от огромных прибылей, получаемых c продажи и перепродажи индульгенций, и это парализовало любые ответные меры. К примеру, продажа индульгенций Тецелем стала основным источником финансирования строительства собора Святого Петра.

Многие из хаков, о которых мы уже говорили, были заблокированы теми, кто управлял системой. Авиакомпании обновили правила программ поощрения часто летающих пассажиров. В спорте периодически обновляются правила той или иной игры. Но время от времени управляющая система разрешает хак и даже объявляет его законным. Изогнутая клюшка сделала игру более захватывающей. Подсчет карт выгоден для казино в качестве приманки, даже если среди клиентов порой попадаются компетентные счетчики карт.

Такая нормализация хака – обычное явление в финансовом мире. Иногда новые хаки пресекаются регулирующими органами, но чаще они получают добро и даже закрепляются законодательно уже после совершения факта взлома. Это один из механизмов, с помощью которого финансовые системы внедряют инновации. Новые идеи приходят не только от регуляторов, но и от реальных пользователей в виде хаков.

Хотя самым очевидным решением обычно является исправление системы, часто его невозможно реализовать по политическим мотивам. Власть и деньги сплавляются в лоббистский мускул, который давит на игровую доску до тех пор, пока она не наклонится в нужную сторону. Это не значит, что хаки финансовых систем не исправляют в принципе, просто порой процесс занимает немало времени. Только в 1567 г. папа Пий V отменил разрешение на выдачу индульгенций, связанных с финансовыми операциями, что позволило исправить систему и устранить хак.

Люди с деньгами в качестве хакеров обладают могуществом, а прибыль является мощным стимулом как для самого взлома, так и для его легализации.

17

Хакинг в банковском деле

Многие процедуры, которые мы сегодня считаем обычной составляющей банковского дела, появились как хаки, когда различные влиятельные игроки пытались обойти правила, ограничивающие их поведение и прибыль. Я обращаю на это внимание не ради критики. Хакинг – реальный способ заставить правительство пересмотреть и обновить правила в этой сфере.

На протяжении большей части ХХ в. Федеральная резервная система регулировала банковскую деятельность в США с помощью так называемого положения Q[15]. Принятое в 1933 г. после Великой депрессии, Положение Q регулировало такие вещи, как потолок процентных ставок по разным видам счетов и ставок для индивидуальных и корпоративных клиентов.

Положение Q – это мера безопасности. До его введения банки конкурировали друг с другом, предлагая клиентам высокие процентные ставки по вкладам. Такая конкуренция побуждала банки рисковать, чтобы заработать на этих вкладах. Ограничения положения Q снижали системный банковский риск.

Более 40 лет эта система работала, но в 1970-х гг. процентные ставки резко выросли, и банки стали отчаянно искать способы обойти положение Q и предложить более высокие процентные ставки по депозитам, чтобы они могли конкурировать с другими видами инвестиций. В начале 1970-х гг. одним из таких способов стал счет NOW[16] – счет с обращающимся приказом об изъятии средств, сочетающий возможности текущего счета для осуществления платежей и снятия денег посредством приказов (чеков) и депозита, на нем деньги замораживаются на определенный срок, после которого выплачиваются проценты. Счета NOW внешне выглядели как процентные депозитные счета, но технически являлись обычными текущими счетами.

Нам известно имя хакера, который изобрел счета NOW, – это Рональд Хаселтон, президент и исполнительный директор Consumer Savings Bank в Вустере, штат Массачусетс. Говорят, что Хаселтон услышал, как клиентка спросила, почему она не может выписывать чеки со своего сберегательного счета. Он тоже задался этим вопросом и взломал правила положения Q, чтобы создать, по сути, первый процентный расчетный счет.

Современные депозитные сертификаты[17] – это еще один пример инновационного банковского хака. Хакерский ход заключался в привлечении дилера по ценным бумагам для создания вторичного рынка депозитных сертификатов, благодаря которому повысилась их привлекательность для корпоративных счетов. Хакеры, придумавшие эту схему, работали в First National City Bank, ныне Citicorp. В 1961 г. банк представил оборотные депозитные сертификаты, по которым выплачивалась более высокая процентная ставка, чем по процентным счетам, а пять лет спустя вывел их на Лондонскую биржу. Вскоре после этого First National City Bank реорганизовался в холдинговую компанию, чтобы избежать банковского регулирования, которое не позволяло ему выпускать депозитные сертификаты по более высоким ставкам. Конгресс исправил ситуацию, внеся в 1956 г. поправки в закон о банковских холдинговых компаниях, в соответствии с которыми регулирование деятельности таких компаний было возложено на Совет Федеральной резервной системы.

К банковским хакам середины XX в. относятся также фонды денежного рынка и евродолларовые счета, созданные для обхода ограничений на процентные ставки, предлагаемые по более традиционным видам счетов.



Поделиться книгой:

На главную
Назад