bannerbannerbanner
Взломать всё. Как сильные мира сего используют уязвимости систем в своих интересах

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

10
Хакеры паразитируют

Вирион SARS-CoV-2 в ширину около 80 нм. Он прикрепляется к белку под названием ACE2, который встречается на поверхности многих клеток нашего организма: в сердце, кишечнике, легких и носовых проходах. В нормальном состоянии ACE2 принимает участие в процессах регуляции артериального давления, снятия воспалений и заживления ран. Но у вируса есть особый наконечник, который может захватывать белок, сплавляя воедино мембраны клетки и вируса, что позволяет РНК вируса проникнуть в клетку. Затем вирус подрывает механизм производства белка в клетке-хозяине, перехватывая процесс, чтобы штамповать копии самого себя, которые затем заражают все новые и новые клетки. Другие части РНК вируса создают белки, остающиеся в клетке-хозяине. Один из них не позволяет клетке посылать сигналы иммунной системе о том, что она подверглась атаке. Другой побуждает клетку высвобождать новые вирионы. Третий помогает вирусу противостоять врожденному иммунитету клетки-хозяина. Все это привело к появлению болезни, которая с 2020 г. доминирует в нашей жизни: COVID-19.

COVID-19 – это хакер. Как и все вирусы, SARS-CoV-2 ловко использует иммунную систему нашего организма, нарушая ее работу ценой здоровья и жизни более 6 млн человек во всем мире. ВИЧ – еще один хакер. Он заражает Т-хелперные клетки в нашей крови, внедряя свою ДНК в ДНК клетки, а затем реплицируясь внутри нее. В конце концов инфицированная клетка высвобождает новые вирионы ВИЧ в кровоток, продолжая процесс своего размножения.

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

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

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

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

Спам – это хак электронной почты. Когда создавались интернет-протоколы и закладывалась система электронной почты, никто о нем не думал в принципе, не говоря уже о намеренном пресечении таких попыток, хотя сами по себе нежелательные почтовые рассылки – давняя американская традиция. Рассылка подобных электронных писем, в том числе преследующих коммерческие цели, на раннем этапе существования электронной почты никем не осуществлялась. Идея спама возникла в 1990-х гг., причем одновременно и в системе электронной почты, и в популярном тогда сервисе обмена сообщениями Usenet, а серьезной проблемой стала уже в начале 2000-х гг. В те годы около 90 % всей электронной почты было спамом. Это не что иное, как паразитический взлом коммуникационной системы.

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

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

11
Защита от хаков

Spectre и Meltdown – две аппаратные уязвимости в микропроцессорах Intel и ряда других производителей. Они были обнаружены в 2017 г., а в 2018 г. компании опубликовали эту информацию. По сути, уязвимыми с точки зрения безопасности оказались некоторые оптимизации производительности, принятые на протяжении нескольких лет. Защита осложнялась тем, что уязвимости были аппаратными, а не программными. Для устранения некоторых из них были разработаны программные «заплаты» – патчи (часто со значительными потерями производительности), но далеко не для всех. Заменить уязвимые системы было просто нереально, поскольку чипы, о которых идет речь, установлены примерно в 100 млн компьютеров. И хотя будущие микропроцессоры могут быть спроектированы без уязвимостей, нельзя исправить их на уже установленных задним числом. Возможно, лучшей защитой в данном случае стала сложность использования этих уязвимостей: многие компьютеры были уязвимы, но хакеры не могли этим воспользоваться.

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

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

Первая и наиболее очевидная защита – это устранение уязвимости.

В компьютерном мире основным средством защиты от хаков являются исправления. Технически это несложно – нужно просто обновить компьютерный код, чтобы устранить уязвимость. Нет уязвимости – нет эксплойта; нет эксплойта – нет взлома.

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

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

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

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

В том же 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 неплохо справляются со своей задачей, хотя зачастую хакеры могут заработать куда больше, толкая информацию об уязвимостях преступникам или производителям кибероружия.

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

8Бэкдор (англ. back door – черный ход) – лазейка, намеренно встроенная в код легальной программы. – Прим. пер.
9В IT-индустрии принято употреблять этот термин на языке оригинала: «red team», «red-teaming». – Прим. науч. ред.
  University of Foreign Military and Cultural Studies Center for Applied Critical Thinking (5 Oct 2018), The Red Team Handbook: The Army's Guide to Making Better Decisions, US Army Combined Arms Center, https://usacac.army.mil/sites/default/files/documents/ufmcs/The_Red_Team_Handbook.pdf.
62Defense Science Board (Sep 2003), "Defense Science Board Task Force on the Role and Status of DoD Red Teaming Activities," Office of the Under Secretary of Defense for Acquisition, Technology, and Logistics, https://apps.dtic.mil/dtic/tr/fulltext/u2/a430100.pdf.
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20 
Рейтинг@Mail.ru