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

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

В книге упоминаются социальные сети Instagram и/или Facebook – продукты компании Meta Platforms Inc., деятельность которой по реализации соответствующих продуктов на территории Российской Федерации запрещена как экстремистская.


Переводчик Михаил Белоголовский

Научный редактор Артем Деркач

Редактор Даниэль Орлов

Главный редактор С. Турко

Руководитель проекта А. Деркач

Корректоры М. Стимбирис, М. Смирнова

Верстка А. Абрамов

Художественное оформление и макет Ю. Буга


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

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


© 2023 by Bruce Schneier

© Издание на русском языке, перевод, оформление. ООО «Альпина Паблишер», 2023

* * *

Предисловие

Говорят, что вода{1} никогда не бежит в гору.

Никогда не бежала, никогда не побежит.

Но если у тебя достаточно денег,

В законах природы всегда найдется лазейка.

И вот уже ручеек течет вверх по склону.

ДЖИМ ФИТТИНГ, песня «Water Never Runs Uphill» из репертуара группы Session Americana

Компания Uncle Milton Industries продает детские муравьиные фермы с 1956 г. Ферма представляет собой конструкцию из двух листов прозрачного пластика, соединенных между собой с зазором в 6 мм, запаянную с трех сторон, а с четвертой – имеющую крышечку. Идея заключается в том, чтобы заполнить это узкое пространство песком, запустить туда муравьев и с комфортом наблюдать, как они роют туннели.

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

Большинство людей, впервые увидевших эту карточку, удивляются самому факту, что компания высылает клиентам пробирки с муравьями. Но моей первой мыслью было: «Вот это да! Я могу сделать так, что компания отправит пробирку с муравьями любому человеку, чей адрес я укажу».

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

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

Я преподаю курс кибербезопасности в Гарвардском институте государственного управления, больше известном как школа им. Кеннеди. В конце первого занятия я даю аудитории неожиданное задание{2} к нашей следующей встрече: через два дня каждый студент должен будет записать по памяти первые сто цифр числа пи. «Я понимаю, нет смысла надеяться, что вы запомните сотню случайных цифр за такой короткий срок, – говорю я им. – Поэтому рассчитываю, что вы будете хитрить. Единственное условие – не попадайтесь».

Спустя два дня аудитория гудит от возбуждения. Большинство студентов прибегают к старым уловкам, записывая цифры мелким почерком на клочках бумаги или наговаривая число на диктофон в надежде незаметно пронести наушник. Но кое-кто проявляет невероятную изобретательность. Один студент, к примеру, использовал невидимые чернила и очки, в которых цифры проявлялись. Другой написал искомое число на китайском языке, которого я, увы, не знаю. Третий закодировал цифры разноцветными бусинами и сделал из них ожерелье. Еще один запомнил несколько первых и последних цифр из сотни, а остальные взял из головы, полагая, что я не стану проверять всю последовательность. Но больше всего меня поразил случай, когда студент по имени Ян, потратив на это кучу времени, делая долгие паузы между цифрами, записал весь необходимый ряд. Он закончил, когда все уже сдали ответы. Помню, как и я, и другие студенты смотрели на него, не понимая, как именно он это делает. Неужели парень действительно вычисляет в уме бесконечный ряд? Но все оказалось намного проще: хитрец запрограммировал телефон, и тот вибрировал в его кармане, передавая каждую цифру азбукой Морзе.

Смысл подобного задания вовсе не в том, чтобы превратить добросовестных студентов в жуликов. На лекциях я всегда напоминаю, что за списывание в Гарварде полагается исключение. Дело в другом: если они собираются заниматься государственной политикой в области кибербезопасности[1], они должны думать как жулики и воспитывать в себе хакерское мышление.

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

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

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

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

В качестве примера приведу историю Питера Тиля. Roth IRA – это легальный пенсионный счет, разрешенный законом с 1997 г. Он предназначен для инвесторов среднего класса и имеет ограничения как на уровень дохода инвестора, так и на сумму инвестиций. Но миллиардер Питер Тиль, один из основателей PayPal, умудрился найти лазейку{3}. Используя этот пенсионный счет, он купил 1,7 млн акций собственной компании по цене $0,001 за акцию, превратив $2000 в $5 млрд, навсегда освобожденных от налогов.

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

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

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

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

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

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

Однажды, уже не помню когда и где{4}, я услышал такое высказывание по поводу математики: «Дело не в том, что математика может решить все мировые проблемы. Просто мировые проблемы было бы легче решать, если бы все чуть больше разбирались в математике». Думаю, то же самое справедливо и в отношении безопасности. Дело не в том, что хакерский подход способен решить все мировые проблемы. Просто мировые проблемы было бы проще решать, если бы все лучше разбирались в вопросах информационной безопасности.

Так что поехали.

Часть I
Хакинг для «чайников»

1
Что такое хак

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

Определение

Хак{6} (англ. hack, hak – взлом)

1. Хитроумное, непредвиденное использование системы, которое: а) подрывает правила или нормы самой системы – б) за счет людей, так или иначе затронутых ее деятельностью.

2. Некое действие, допускаемое системой, недокументированное и не предусмотренное ее разработчиками.

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

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

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

Разница очевидна. Хакер – не тот, кто обводит вокруг пальца жертву. Хакер находит изъян в правилах системы и заставляет ее делать то, что системе делать не положено. Тем самым он обводит вокруг пальца саму систему и, соответственно, ее разработчиков.

Хак подрывает смысл системы, нарушая ее правила или нормы. Это именно «игра с системой». Хакерство занимает промежуточное положение между мошенничеством и инновациями.

«Хак» – термин во многом субъективный. Часто можно услышать: «Я скажу, хак это или не хак, лишь когда увижу своими глазами». О чем-то можно с уверенностью сказать, что это хак. О чем-то – что это точно не хак. Но есть довольно много явлений, которые находятся в серой зоне между этими двумя полюсами. Навык скорочтения – это не хак. Невидимые глазу микроточки, тайно наносимые принтером, чтобы идентифицировать ваш документ, – определенно хак. Но вот CliffsNotes[2]… Здесь я не берусь утверждать.

Хак всегда сделан с умом. Часто он вызывает сдержанное восхищение (порой вкупе с праведным гневом) и реакцию типа «Круто, хотел бы и я додуматься до этого», даже если речь идет о вещах принципиально вам чуждых. Такая реакция характерна даже в тех случаях, когда в роли хакеров выступают отъявленные злодеи. Моя книга 2003 г.{7} Beyond Fear («За пределами страха») начинается с подробного объяснения, почему теракт 11 сентября «поражал воображение». Террористы нарушили неписаные правила угона самолетов. До них захват самолета подразумевал полет в заданную точку, политические требования, переговоры с правительствами и полицией и в большинстве случаев мирное урегулирование ситуации. То, что террористы сделали 11 сентября, чудовищно, но нельзя не признать изобретательность их хака. Они использовали оружие, разрешенное службами безопасности аэропортов, и превратили гражданские самолеты в управляемые ракеты, в одностороннем порядке переписав нормы авиационного терроризма.

Хакеры и их деятельность заставляют по-новому взглянуть на системы, из которых выстроен наш мир. Они разоблачают то, что мы принимаем как должное, зачастую ставя в неловкое положение сильных мира сего, а иногда заставляя людей платить непомерную цену. Если не брать в расчет терроризм, можно сказать, что люди любят хакеров, потому что они умны. Макгайвер[3] был хакером. Фильмы о побегах из тюрьмы и хорошо спланированных ограблениях полны умных хаков: «Мужские разборки», «Большой побег», «Мотылек», «Миссия невыполнима», «Ограбление по-итальянски», «11-», «12-», «13 друзей-» и «8 подруг Оушена».

Хак всегда оригинален. «Разве это разрешено?», «Я и не знал, что так можно!» – вот обычная реакция людей на очередной хак. Со временем правила и общественные нормы меняются, а с ними меняются и представления о том, что является хаком. Все хаки в итоге либо подпадают под запрет, либо становятся разрешенными действиями. Соответственно, то, что еще недавно считалось хаком, перестает им быть. Когда-то вам приходилось хакать свой смартфон, чтобы превратить его в беспроводную точку доступа; сегодня точка доступа является стандартной функцией iOS и Android. Напильник в торте, переданном в тюрьму сообщнику, изначально был хаком, но теперь это стандартный сюжетный ход, заставляющий тюремщиков быть начеку.

В 2019 г. кто-то использовал дрон{8}, чтобы доставить мобильный телефон и марихуану в тюрьму штата Огайо. В то время я бы назвал это хаком, но сегодня запуски дронов рядом с тюрьмами в некоторых штатах напрямую запрещены, и подобный трюк перестал быть хаком. Недавно я прочитал о том, как некто использовал удочку{9}, чтобы перебросить контрабанду через стену тюрьмы, а также о коте{10}, пойманном в тюрьме Шри-Ланки с грузом наркотиков и SIM-карт. (За кота не волнуйтесь, он сбежал.) Все это определенно хаки.

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

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

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

Слово «хак» в своем нынешнем значении появилось на свет{11} в 1955 г. в Клубе технического моделирования железных дорог МIT[4] и быстро перекочевало в зарождающуюся область компьютерных наук. Первоначально оно описывало способ решения проблем, предполагающий сообразительность, новаторство и находчивость, без какого-либо криминального или даже соревновательного подтекста. Но к 1980-м гг. «хакингом» все чаще стали называть взлом систем компьютерной безопасности. Хакнуть компьютер означало заставить его сделать не просто что-то новое, а нечто такое, чего он делать не должен.

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

И это не новость. Люди взламывали системы общественного устройства на протяжении всей истории.

2
Системы и хакинг

Хакнуть можно любую систему, но сравнение между собой различных типов систем, например налогового кодекса и компьютерного кода, полезно для выявления их характерных особенностей и понимания того, как именно работает хак в каждом конкретном случае. Налоговый кодекс – это не программное обеспечение, он исполняется не на базе компьютера. Однако вы все равно можете считать его «кодом» в компьютерном смысле этого слова, серией алгоритмов, которые принимают входные данные (финансовую информацию за год) и выдают результат (сумму начисленного налога).

Налоговый кодекс невероятно сложен. Существует огромное количество нюансов, исключений и особых случаев, возможно, не для большинства из нас как физических лиц, но для богатых людей и разного рода предприятий. Он состоит из правительственных законов, административных постановлений, судебных решений и юридических заключений. В него также входят законы и нормативные акты, регулирующие деятельность корпораций и разнообразных партнерств. Дать достоверную оценку размерам налогового кодекса затруднились даже эксперты, по крайней мере, когда я их об этом спросил. Непосредственно налоговый кодекс{12} занимает около 2600 страниц. Нормативные акты и постановления Налогового управления увеличивают этот объем примерно до 70 000 страниц. Законы, касающиеся корпоративных структур и партнерств, не менее сложны, поэтому я предположу, что в общей сложности налоговый кодекс США занимает 100 000 страниц или 3 млн строк. Объем кода Microsoft Windows 10{13} составляет около 50 млн строк. Довольно странно сравнивать количество строк текста и строк компьютерного кода, но подобное сравнение все равно полезно. В обоих примерах высокий уровень сложности во многом связан с тем, как разные части кода взаимодействуют друг с другом.

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

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

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

Недавний пример – Закон о сокращении налогов и занятости от 2017 г. Этот закон был разработан в спешке, в закрытом режиме и принят без должного рассмотрения законодателями и даже без корректуры. Некоторые его части были написаны от руки, и просто невозможно представить себе, что голосовавшие за или против принятия этого закона точно знали его содержание. В результате в текст вкралась ошибка, из-за которой пособия по смерти военнослужащих были отнесены к трудовым доходам. Следствием этой ошибки стало то, что члены семей погибших неожиданно получили налоговые счета{14} на суммы свыше $10 000. Это типичный баг.

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

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

Именно таким образом Google, Apple и другие технологические гиганты избегают уплаты справедливой доли налогов в США, несмотря на то что являются американскими компаниями. Это определенно не предусмотренное законодателями использование налоговых кодексов трех стран, хотя стоит отметить, что Ирландия намеренно придерживалась мягких налоговых правил, чтобы привлечь американские компании. И это очень выгодная ситуация для хакеров. По оценкам, только в 2017 г. американские компании уклонились от уплаты налогов{16} в США почти на $200 млрд, разумеется, за счет остальных налогоплательщиков.

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

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

Эти же методы применимы и к налоговому кодексу. Налоговое законодательство 2017 г. ограничило вычеты по налогу на имущество{17}. Это положение вступило в силу только в 2018 г., поэтому кое-кто придумал хитрый хак – досрочно уплатить налог на недвижимость за 2018 г. в 2017 г. Незадолго до конца года налоговое управление США вынесло решение о том, в каких случаях это было законно, а в каких нет, и приняло исправления в Налоговый кодекс для защиты от подобных действий. В большинстве случаев они были сочтены незаконными.

Однако зачастую все не так просто. Некоторые лазейки прописаны в законе и не могут быть исключены из него в мгновение ока. Принятие любого налогового законодательства – это всегда большая проблема, особенно в США, где оно обсуждается с особым пристрастием. Ошибку с подоходным налогом для семей военнослужащих, возникшую в 2017 г., начали исправлять лишь в 2021 г. И до сих пор конгресс не устранил ее: пока исправлена только еще более старая ошибка, которая взаимодействовала с ошибкой 2017 г., а ее окончательное устранение будет завершено в 2023 г. (И это еще довольно легкий случай, поскольку все признают, что ошибка имеет место.) У нас нет возможности править налоговый кодекс с той же оперативностью, с которой мы устраняем баги в программном обеспечении.

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

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

3
Что такое система

Хакер соблюдает правила системы, но нарушает ее дух и замысел.

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

Определение

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

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

Всякая система имеет правила. Ими могут быть законы, правила игры, неформальные правила группы или процесса, негласные социальные правила. Когнитивные системы тоже следуют законам – законам природы.

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

Исходя из сказанного, хакингу подвержены системы, участники которых заранее договорились – явно или неявно – соблюдать общий набор правил. Иногда внутренние правила системы не совпадают с законами среды, в которой она существует. Я понимаю, что это сбивает с толку, поэтому объясню на примере. Компьютер управляется набором правил в виде запущенного на нем программного обеспечения. Хакнуть компьютер означает так или иначе обойти эти правила. Но помимо этого существуют внешние по отношению к компьютеру законы, которые потенциально регулируют то, что с ним можно делать и чего нельзя. К примеру, в США Закон о компьютерном мошенничестве и злоупотреблениях квалифицирует большинство форм взлома как уголовное преступление. (Обратите внимание, что происходит: взламывается компьютерная система, но более общая правовая система защищает ее.) К слову, довольно спорный момент, насколько общим должен являться такой закон, ведь в своем нынешнем виде он создает ловушку, поскольку любой взлом компьютера считается незаконным.

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

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

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

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

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

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

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

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

4
Жизненный цикл хака

С точки зрения компьютерной безопасности хак состоит из двух частей: уязвимости и эксплойта.

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

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

В качестве примера приведу историю EternalBlue. Это кодовое название эксплойта для операционной системы Windows, который работал на АНБ (Агентство национальной безопасности) в течение как минимум пяти лет, вплоть до 2017 г., когда его выкрали у агентства русские. EternalBlue использует уязвимость, допущенную Microsoft в протоколе Server Message Block (SMB), ответственном за обмен данных между клиентом и сервером. То, каким образом был закодирован SMB, давало возможность злоумышленнику отправить через интернет тщательно подготовленный исполняемый код, запустить его выполнение на принимающем компьютере под управлением Windows и таким образом получить над этим компьютером контроль. Строго говоря, АНБ могло использовать EternalBlue для удаленного управления практически любым компьютером, подключенным к интернету, на котором установлена операционная система Windows.

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

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

И, наконец, есть организации или конкретные люди, которые являются заказчиками. Откройте новости: АНБ хакает иностранную сеть, Россия – США, а Google – налоговый кодекс. Важно это понимать, поскольку мы еще не раз будем говорить о том, как богатые и влиятельные люди хакают разнообразные системы. Да, богатство и власть сами по себе не являются непременным условием появления продвинутых хакеров, но они открывают доступ к такого рода услугам. США, Россия и Google могут себе позволить нанимать самых одаренных и с их помощью успешно взламывать системы.

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

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

В ряде систем выгода, которую может приносить хак, определяется тем, как часто и насколько публично им пользуются. Обнаруженная уязвимость в банковской системе может использоваться преступниками «по-тихому», время от времени и оставаться для банка слепой зоной в течение многих лет. Хорошие хаки в сфере Налогового кодекса, как правило, распространяются очень быстро, поскольку становятся объектом продажи{18}. Искусная психологическая манипуляция может стать достоянием общественности, как только о ней заговорит достаточное количество людей, а может и оставаться неизвестной широкому кругу на протяжении многих поколений.

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

Контроль над целевой системой и ответственность за процессы ее обновления очевидны в случае, например, операционных систем, таких как Windows, или любых других крупных программных пакетов, за которыми стоит разработчик. Microsoft и Apple сделали исправление своих систем обязательным регулярным процессом.

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

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

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

5
Вездесущность хакинга

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

Club Penguin – детская онлайн-игра компании Disney, просуществовавшая с 2005 по 2017 г. Общение детей с незнакомцами в интернете справедливо вызывает беспокойство их родителей, поэтому Disney создала режим Ultimate Safe Chat, который запрещал свободный ввод текста, ограничивая игроков заранее подготовленным списком реплик. Идея заключалась в том, чтобы оградить детей от буллинга и контакта с потенциальными педофилами. Но дети есть дети, они хотят общаться друг с другом несмотря ни на что. Поэтому они просто хакнули это ограничение, изображая буквы и цифры фигурками своих аватаров.

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

Подобно Club Penguin, многие детские онлайн-игры вводили ограничения на высказывания в чате, чтобы предотвратить саму возможность травли и любого преследования. Дети взломали их все без исключения{19}. Чтобы обойти модераторов и фильтры ненормативной лексики, дети используют такие уловки, как намеренные ошибки в написании, например PHUQ вместо fuck you, разделение ключевой информации на несколько высказываний, чтобы ни одно из них не нарушало правил, и акростих, шифруя свои послания начальными буквами разрешенных фраз. Некоторые сайты запрещали пользователям вводить цифры – в ответ на это дети стали использовать слова: win вместо one (один), too вместо two (два), tree вместо three (три) и т. д. Тот же прием с созвучными искажениями применялся и для нанесения оскорблений: lose her означало looser (неудачник), а stew putt – stupid (дурак).

Школы пытаются ограничить использование учениками школьных компьютеров, в ответ на это ученики их взламывают. Успешные хаки такого рода распространяются моментально. После того как в школах одного из округов ограничили количество сайтов, которые разрешено посещать ученикам, те быстро сообразили, что VPN позволяет обойти ограничения и к тому же сделать это скрытно. Когда в другом районе заблокировали доступ к чатам, дети тут же нашли решение и стали общаться с помощью общего файла Google Doc.

Этот прием не нов. У него даже есть название – фолдеринг{20}. В разное время его использовали для сокрытия информации экс-глава ЦРУ генерал Петреус, руководитель избирательной компании Дональда Трампа 2016 г. Пол Манафорт и террористы, устроившие атаку 11 сентября 2001 г. Все они понимали, что могут избежать слежки, если будут пользоваться одним почтовым ящиком со своими сообщниками и писать друг другу письма, сохраняя их в виде неотправленных черновиков.

Во времена моего детства существовали хаки для обхода правил телефонной системы. Если вы слишком молоды, чтобы помнить такое, я объясню. Человек звонил на телефонную станцию, вызывал оператора, сообщал ему, кто он такой, и говорил, что хочет сделать междугородний групповой звонок. Оператор звонил по указанному номеру и спрашивал абонента, согласен ли тот принять групповой звонок за свой счет. Групповые звонки стоили весьма недешево. Но поскольку оператор сам инициировал звонок другой стороне, информация могла быть передана ей еще до того, как начинала взиматься плата. Итак, мы делали запрос группового звонка, оператор спрашивал указанного абонента – как правило, кого-то из наших родителей, – согласен ли тот принять групповой звонок, родители отвечали «нет», а затем перезванивали нам уже по стандартным, не таким дорогим тарифам. Подобные трюки можно было сделать и более эффективными. В некоторых семьях был даже список имен, которыми звонивший представлялся оператору в зависимости от ситуации; к примеру, имя Брюс могло означать «прибыл благополучно», Стив – «перезвоните» и т. д. (Оператор не знал настоящего имени звонившего.) Даже сегодня люди пользуются телефонными хаками, чтобы обойти правила тарификации. В Нигерии это называется «подмигнуть»{21}: звонишь кому-нибудь и кладешь трубку до того, как он успеет ответить. В Индии в первой половине 2010-х гг. такие хаки тоже были широко распространены{22}, поскольку стоимость звонков на сотовые и стационарные телефоны заметно отличалась. Все эти хаки предназначены для подрыва телефонных систем, чтобы обмениваться информацией, не платя за эту привилегию.

Домашнее обучение во время пандемии{23} COVID-19 пробудило хакерские способности во многих школьниках. Один сообразительный ученик переименовал себя в «Reconnecting…» и просто выключил видеосвязь, чтобы учитель думал, что у него проблемы с подключением. В марте 2020 г., в первые месяцы пандемии, власти Китая полностью закрыли город Ухань, а его школы перевели на дистанционное обучение. В ответ на это ученики стали заваливать приложение DingTalk, через которое осуществлялся образовательный процесс, отзывами с одной звездой{24}, надеясь, что таким образом оно будет удалено из магазинов приложений. (Увы, это не сработало.)

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

Само по себе это не означает, что абсолютно все системы взломаны. Вспомните Гёделя{25}. Среди юристов есть поговорка: «Все контракты неполны». Контракты исполняются не потому, что они жестко препятствуют нарушению сторонами договорных условий, а потому, что, как правило, имеют место доверие и благонамеренность. Если же дела идут плохо, существуют системы арбитража{26} и судебного разбирательства. Да, это может показаться наивным и идеалистичным, но именно благодаря системам, основанным на доверии, и функционирует наше общество. Мы не требуем от наших соглашений абсолютной защиты, потому что: 1) этого невозможно достичь, 2) любая попытка будет слишком долгой и громоздкой и 3) нам это попросту не нужно.

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

Не все системы одинаково подвержены взлому. Далее, по мере изложения, вы познакомитесь с характеристиками систем, которые делают их более или менее уязвимыми для хакеров. Самыми уязвимыми являются сложные системы с большим количеством правил, хотя бы в силу того, что в них скрыто больше непредвиденных последствий. Сложность – злейший враг безопасности{27}. Это безусловно верно в отношении систем компьютерных, но справедливо и для таких систем, как налоговый кодекс, финансовые рынки и искусственный интеллект. В целом чем более гибкими социальными нормами и правилами ограничена система, тем более она уязвима для взлома, поскольку оставляет больше возможностей для интерпретации и, следовательно, содержит в себе больше лазеек.

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

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

Часть II
Основные виды хакинга и защита от него

6
Хакинг банкоматов

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

Что такое банкомат? Это компьютер с наличными деньгами внутри. Он подключен к банковской сети через интернет (пару десятилетий назад это было обычное телефонное соединение и модем) и работает под управлением операционной системы Windows. Конечно же, его можно взломать.

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

В течение следующих пяти месяцев Сондерс снял в австралийских долларах сумму, эквивалентную $1,1 млн{28}. Его так и не смогли поймать. В какой-то момент он сам решил прекратить порочную практику: почувствовал себя виноватым, прошел курс терапии, а затем сделал публичное признание. За полгода банк так и не смог понять, где он теряет столько денег.

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

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

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

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

Такие и подобные им кражи привели к ряду изменений в конструкциях банкоматов{29}. Сначала было введено правило, согласно которому операция продолжается лишь до тех пор, пока карта находится в картоприемнике, чтобы никакие люди официального вида не могли закончить ее за клиента. В дальнейшем были внесены коррективы в работу расчетных банковских систем, которые сделали невозможным одновременное проведение нескольких транзакций по одному счету. Однако «авторитетные» взломы на этом не прекратились. Появились более грубые схемы, например такая, распространенная в Индонезии: подставной менеджер в присутствии клиента якобы звонил в офис банка и аннулировал его карту, после чего убеждал ее отдать.

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

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

Следующий тип взлома банкоматов называется джекпоттингом{30} и направлен исключительно на программное обеспечение. Его задача – заставить банкомат выплевывать купюры, словно игральный автомат жетоны. При этом не требуется красть ни карту, ни PIN-код. В 2016 г. подобный взлом был организован на Тайване, а затем волной прокатился по Азии, Европе и Центральной Америке, что привело к убыткам в десятки миллионов долларов. Разработчиками были приняты меры, но в 2020 г. европейские хакеры нашли{31} новую уязвимость в программном обеспечении, благодаря чему атаки такого типа продолжаются по всему миру до сих пор.

Джекпоттинг состоит из нескольких этапов. Первый этап – исследование технической стороны вопроса, что предполагает разборку и изучение подержанного банкомата. Сегодня достать такой банкомат не проблема, даже на eBay их продается великое множество. Разобравшись в деталях, хакеры приступают к работе с действующими банкоматами: открывают панель управления, подключаются к USB-порту, загружают вредоносное ПО на компьютер и устанавливают удаленный доступ к банкомату. Провернуть все это помогает переодевание: преступник в форме техника может сделать это, не вызывая подозрений. Затем, подготовив аппарат, преступник уступает место своему сообщнику с большой сумкой, в которую после получения удаленной команды банкомат выплевывает всю наличность.

Нет точных данных о том, сколько денег похищается таким образом, ведь банки не любят предавать огласке подробности такого рода. Но нам известно, что Секретная служба США начала предупреждать{32} финансовые учреждения об угрозе джекпоттинга в 2018 г. То есть спустя восемь лет после того, как в 2010 г. исследователь в области безопасности Барнаби Джек продемонстрировал джекпоттинг{33} на хакерской конференции DEF CON. Его атаки не требовали физического вмешательства в работу банкомата, а базировались на уязвимостях программного обеспечения, которые он мог использовать удаленно.

7
Хакинг казино

Ричард Харрис работал в Комиссии по надзору за игорным бизнесом штата Невада, где он проверял новые игральные автоматы перед тем, как их разместят в залах казино. Имея доступ к начинке автоматов, он заменял установленные производителем чипы на свои собственные. Они были запрограммированы таким образом, что определенная последовательность монет, которые игрок опускал в автомат, инициировала выплату джекпота. В период с 1993 по 1995 г. Харрис модифицировал более 30 автоматов{34} и «выиграл» сотни тысяч долларов при помощи группы сообщников, которые просто совершали необходимые действия на указанных им игральных автоматах. Но в какой-то момент один из сообщников потерял осмотрительность, и Харрис был пойман.

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

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

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

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

В 1960-х гг. для этой цели был создан переносной компьютер, который крепился на теле, управлялся ножными переключателями{35} и выводил результаты подсчетов в виде звуковых сигналов через наушник. Пользователь буквально вводил данные пальцами ног. Эта информация позволяла компьютеру рассчитать скорость вращения колеса, скорость, с которой крупье обычно подбрасывал шарик, и т. д. Через наушник оператор компьютера узнавал, какие числа выпадут с большей вероятностью. В более поздних моделях были улучшены ввод данных и скорость вычислений, но только в 1970-х гг. группе аспирантов Калифорнийского университета в Санта-Крузе наконец удалось получить стабильную прибыль от своего ножного компьютера.

Этот хак не был чем-то незаконным: лишь в 1985 г. штат Невада запретил использование устройств{36} для предсказания исхода игр в казино. Но настоящей защитой стали изменения в правилах игры, благодаря которым крупье прекращали принимать ставки до того, как колесо рулетки приходило в движение.

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

Казино реагировали на это по-разному{37}. Первый тип реакции заключался в усложнении процесса подсчета карт. В одних казино стали тасовать вместе сразу шесть колод (это делают автоматические тасовщики) и сдавать только две трети колоды, чтобы уменьшить вероятность преимущества игрока. В других карты стали тасовать после каждой раздачи. Известно, что в Лас-Вегасе и Атлантик-Сити пит-боссы подходят к предполагаемым счетчикам карт и вступают с ними в разговор, чтобы отвлечь и даже слегка напугать.

Казино пытались вывести подсчет карт в разряд преступных деяний, но так и не смогли убедить регуляторов, что эта стратегия равносильна жульничеству. Государственные органы ограничились принятием законов, запрещающих использование устройств для подсчета карт{38}. Все, что могут сделать казино сегодня, поймав счетчика карт, – запретить ему появляться в заведении. Раньше таких клиентов вычислял персонал казино, проинструктированный о типичном поведении счетчиков карт. Появившиеся в последнее время камеры, которые отслеживают движение каждой карты, делают это автоматически. Поскольку казино являются частным бизнесом{39}, они, как правило (это зависит от штата), могут отказать в обслуживании кому угодно, если при этом не наблюдается признаков дискриминации.

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

Впрочем, бывают и исключения. В 1980-х гг. группа ученых из MIT и Гарвардского университета{40} изобрела инновационный способ подсчета карт. Охотясь за счетчиками карт, казино ищут людей, которые: а) постоянно выигрывают и б) меняют размер своих ставок таким образом, что становится очевидным наличие у них стратегической информации. Чтобы избежать обнаружения, группа ученых разделила задачи по подсчету карт между разными игроками. Счетчики сидели за столами и никогда не меняли суммы своих ставок. Крупные игроки-бетторы тоже не меняли размера ставок – они просто переходили от одного стола к другому, направляемые сообщниками, которые получали сигналы от счетчиков. В общей сложности группа заработала примерно $10 млн{41}, прежде чем оставить этот бизнес. Воистину крутой хак.

8
Хакинг программ лояльности авиакомпаний

В 1999 г. парень по имени Дэвид Филлипс купил 12 150 стаканчиков с пудингом Healthy Choice. Зачем? Чтобы хакнуть программу для часто летающих пассажиров.

Предложения для часто летающих пассажиров стали популярны в 1981 г., когда компании American, United и Delta впервые представили свои программы. Теперь они есть у каждого авиаперевозчика. Это программы лояльности, поощряющие клиентов летать самолетами одной авиакомпании и снижающие вероятность их перехода в другую. До COVID-19 я регулярно летал. Мне известны все тонкости и нюансы этих программ, и я утверждаю со знанием дела: все они были взломаны с самого начала.

Один из первых хаков назывался «мили за пробег». Мили, начисляемые пассажирам в зависимости от расстояния их рейсов, по сути являются частной валютой, которую можно обменять на билеты. Умный хакер будет искать способы арбитража двух валют, то есть такие ситуации, когда за небольшие деньги можно получить много миль. Так, например, за беспосадочный перелет из Нью-Йорка в Амстердам начисляется 3630 миль, а за перелет с пересадкой в Стамбуле – 6370 миль. При условии, что тот и другой билеты стоят одинаково, а вам больше нечем заняться, это отличная сделка.

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

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

Существуют хаки, использующие другие способы накопления миль{43}, помимо самих полетов. Авиакомпании уже давно сотрудничают с банками, выпуская совместные кредитные карты. За каждую оплату такой картой начисляются мили, но помимо этого они часто начисляются уже при заказе карты. Хак очевиден: оформите много кредитных карт и закройте их до того, как начнутся комиссионные сборы. Один человек открыл такую кредитную карту и сразу купил на $3000 подарочные сертификаты Amazon, чтобы получить свой бонус за регистрацию. Другой заполнил гараж блендерами в рамках акции, предлагающей дополнительные мили за покупку бытовой техники. Некая дама хвасталась, что за пять лет она «оформила более 46 кредитных карт и заработала 2,6 млн миль только в виде бонусов за регистрацию».

Конечно, такой хакинг программ лояльности наносит немалый вред: банки в итоге тратят миллиарды долларов на перелеты клиентов, которые не платят ни комиссию, ни проценты по своим картам. В результате эти расходы перекладываются на потребителей в виде более высоких цен на билеты. Некоторые эмитенты кредитных карт пытаются пресекать подобные взломы. В 2016 г. банк Chase ввел правило{44}, согласно которому клиенту не будет одобрено большинство из кредитных карт, если он уже заказал пять и более кредитных карт в разных банках за последние 24 месяца. American Express теперь аннулирует мили{45} у тех, кто «участвовал в злоупотреблениях, неправомерном использовании или играх, связанных с получением или использованием баллов», что дает компании широкие возможности наказывать клиентов, которые, по ее мнению, злоупотребляют системой.

И тут мы возвращаемся к «парню с пудингом»{46}. Известный среди хакеров программ лояльности, Филлипс обнаружил уязвимость не в плане какой-то конкретной авиакомпании, а в программе Healthy Choice 1999 г. К тому времени большинство авиакомпаний уже предлагали партнерские программы, дающие различным фирмам возможность оптом покупать мили для часто летающих пассажиров и предлагать их своим клиентам в качестве вознаграждения. Конкретно в этой злополучной программе клиенты могли зарабатывать мили на рейсы выбранной ими авиакомпании, покупая продукты Healthy Choice. Филлипс занялся поиском самого дешевого продукта, соответствующего требованиям программы, и в итоге купил 12 150 стаканчиков с пудингом по 25 центов за штуку, получив таким образом 1,2 млн миль за $3150 и пожизненный статус Gold на рейсах American Airlines. (Затем он пожертвовал весь купленный пудинг на благотворительность, дополнительно получив возможность списать $815 при уплате налогов.) Определенно, это не тот результат, на который рассчитывала Healthy Choice, запуская программу, но, поскольку Филлипс не нарушил никаких правил, компания заплатила.

9
Хакинг в спорте

Спорт хакают постоянно. Очевидно, это результат конкурентного давления (а в профессиональном спорте еще и денег) и неизбежно «дырявых» правил.

Несколько историй для примера.

Американский бейсбол, 1951 г. Команда «Сент-Луис Браунс»{47} протащила в состав игрока по имени Эд Гейдел, чуть больше метра ростом. Он сделал всего один выход на поле, который, само собой, закончился «прогулкой»[7]: его страйк-зона была настолько мала, что попасть в нее было почти невозможно. В лиге не существовало официального требования к росту игрока, поэтому технически это был легальный хак. Однако на следующий день президент лиги все равно аннулировал контракт игрока.

Баскетбол, 1976 г. Финал NBA, второй овертайм. До конца остается меньше секунды, «Финикс Санс» отстают всего на одно очко от «Бостон Селтикс». Мяч у «Санс» на дальнем конце площадки, и у них просто нет времени, чтобы доставить его к корзине и бросить. Именно в этот момент игрок «Санс» Пол Уэстфал хакнул правила. Он взял тайм-аут, хотя у его команды этого права уже не осталось. Судьи засчитали фол, а «Бостон Селтикс» получили право на штрафной бросок. Но в данном случае заработанное противником дополнительное очко не имело значения. Важным было другое: после штрафного броска «Санс» получили мяч в центре площадки{48}, что дало им шанс забить двухочковый и выйти в третий овертайм. Что они и сделали. На следующий год NBA изменила правила, запретив командам продвигать мяч на середину площадки с помощью технического фола.

Плавание, 1988 г. Американец Дэвид Беркофф и японец Даичи Судзуки отличились в заплывах на спине{49}, проходя большую часть бассейна под водой и показав поразительный результат. Эту технику вскоре переняли и другие первоклассные пловцы, пока не вмешалась Международная федерация плавания и не ограничила дистанцию, на которой пловец на спине может оставаться под водой.

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

Впрочем, так происходит далеко не всегда. Часто вместо того, чтобы объявлять хаки незаконными, их включают в игру, потому что они действительно ее улучшают. Многие аспекты спорта, которые сегодня являются нормой, когда-то были хаками. В американском футболе пас вперед был когда-то хаком, точно так же, как и приемы нападения «беги и стреляй» (run-and-shoot) и «быстрый рывок» (fast snap), вынуждающий другую команду менять игроков. В бейсболе хаками были приемы «жертвенная муха» (sacrifice fly) и «преднамеренная прогулка» (intentional walk). Ни один из этих приемов не противоречил правилам, просто до определенного момента никому и в голову не приходило, что можно действовать подобным образом. Как только приемы были опробованы, они стали частью игры.

Однако этот процесс не всегда проходит гладко. В баскетболе бросок под названием «верняк» (слэм-данк) когда-то был хаком{52}. Никто и представить себе не мог, что игрок способен прыгнуть настолько высоко, чтобы положить мяч в корзину сверху. В первые десятилетия развития баскетбола прием вызывал горячие споры. Разные лиги пытались запретить данкинг, но с середины 1970-х гг. он стал неотъемлемой частью этого вида спорта, поскольку зрелищные броски неизменно приводили в восторг болельщиков.

В крикете, в отличие от бейсбола, отбивающий игрок может заработать очки, отбив мяч не только в сектор, расположенный перед ним, а в любую сторону, поскольку его позиция находится в центре поля. Больше века традиционным способом отбивания мяча считалось таковое в сторону подающего боулера, как в бейсболе, или же краем биты в направление позади отбивающего. В начале 2000-х гг. некоторые игроки в крикет догадались{53}, что могут опасно «зачерпнуть» или «накатить» мяч над собственной головой. Этот удар полностью соответствовал правилам, но требовал особой смелости и хакерского мышления (один из игроков утверждал, что придумал его, играя на узких улочках Шри-Ланки). Немало знаменитых побед было одержано с помощью этой техники, и теперь это стандартный прием в игре.

Кража знаков в бейсболе допускается, но с многочисленными ограничениями и оговорками в ответ на продолжающийся хакинг этой системы. Игроку второй базы и тренеру третьей разрешено пытаться читать знаки кетчера, а вот бэттеру – нет. Камеры, установленные с этой целью вне поля, запрещены. Когда «Хьюстон Астрос» в 2017–2018 гг. читали знаки при помощи камеры, они скорее мошенничали, чем хакали систему, поскольку это правило уже действовало.

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

Гонки «Формула-1» постоянно изобилуют хаками. Сначала члены одной команды находят лазейку в существующих правилах, чтобы повысить эффективность своих болидов. Затем об этом узнают другие команды и либо копируют идею, либо протестуют против нововведения. Наконец, Международная автомобильная федерация (FIA) вмешивается и делает одно из двух: запрещает хак или же включает его в технические спецификации следующего сезона.

Так, например, в 1975 г. команда Tyrell построила шестиколесный автомобиль{54}: два колеса сзади и четыре спереди. Этот хак увеличил производительность, но снизил надежность. В ответ другие команды построили аналогичные прототипы, но в 1983 г. FIA постановила, что все автомобили могут иметь не более, но и не менее (это уже на всякий случай) четырех колес. В 1978 г. команда Brabham обошла правило{55} о том, что ни один автомобиль не может иметь подвижные аэродинамические элементы, такие как пропеллеры, установив один из них рядом с радиатором и назвав его охлаждающим устройством. Эта машина была добровольно снята с соревнований, и в результате правила не пришлось изменять. В 1997 г. в конюшне McLaren разработали автомобиль с двумя педалями тормоза{56}, вторая из которых управляла только задними колесами. Я недостаточно разбираюсь в автомобильных гонках, чтобы понять все детали, но это давало водителю преимущество. Сначала такая инновация была разрешена, но затем ее запретили после жалоб других команд.

В 2010 г. McLaren обошла запрет на подвижные аэродинамические элементы, проделав в кокпите дыру{57}, которую водитель мог закрывать и открывать ногой. В качестве аргумента приводился довод, что в отверстии нет движущихся частей, поэтому оно разрешено правилами. Однако водитель, двигая ногой, создавал тот же эффект, и хак быстро запретили. В 2014 г. Mercedes изменила конструкцию турбокомпрессора своего двигателя для «Формулы-1»{58}, разделив турбину и компрессор и разместив их по разные стороны двигателя. Конструкция не была признана незаконной, и ее использование стало причиной того, что команда Mercedes доминировала в гонках в течение следующих шести лет. В 2020 г. Mercedes добавила на рулевое колесо новую функцию{59}: нажатие на рулевую колонку меняло угол схождения передних колес. Правила запрещают добавлять какие-либо функции на руль; законность этого хака зависит от точного определения системы рулевого управления, а также от того, рассматривается ли эта функция как вспомогательное средство именно этой системы или же как элемент устройства подвески. FIA прикрыла эту лазейку в 2021 г.

И, наконец, последний пример, к которому мы еще вернемся в этой книге. Раньше хоккейные клюшки были плоскими. Затем кто-то обнаружил, что изогнутой клюшкой игроки могут наносить броски с куда более высокой скоростью. Теперь изогнутые клюшки – это норма и существуют точные ограничения на кривизну клюшки. Во время игр NHL 1993 г. игрок «Лос-Анджелес Кингс» Марти Максорли был пойман с клюшкой, изогнутой не по правилам{60}.

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
Более тонкие средства защиты

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

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

Иногда такая схема предполагает взлом электронных почтовых ящиков продавцов – это повышает вероятность того, что жертва будет доверять отправителю. Чаще всего электронные письма мошенников представляют собой незначительные вариации настоящих адресов, что-то вроде [email protected] вместо [email protected]. (Если вы слушаете аудиокнигу, то буква «о» в первом слове «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 в. относятся также фонды денежного рынка и евродолларовые счета, созданные для обхода ограничений на процентные ставки, предлагаемые по более традиционным видам счетов.

Все эти хаки стали нормой либо благодаря тому, что регулирующие органы решили не закрывать лазейки, либо благодаря тому, что конгресс прямо узаконил их, как только стали накапливаться жалобы регулирующих органов. Например, счета NOW были легализованы{69} сначала в Массачусетсе и Нью-Хэмпшире, затем в Новой Англии в целом и, наконец, в 1980 г. по всей стране. Многие другие ограничения, наложенные законом о банковских холдинговых компаниях, были отменены с принятием в 1994 г. закона Ригла – Нила, разрешающего проведение банковских операций между штатами и повышающего эффективность филиальных сетей банков. Все это стало частью большой волны банковского дерегулирования, которая продолжалась вплоть до 2000-х гг.

С этой моделью мы будем встречаться снова и снова{70}. Сначала правительство сдерживает банкиров посредством регулирования, чтобы ограничить объем ущерба, который они могут нанести экономике. Но правила регулятора также ограничивают и прибыль банкиров, поэтому они борются с ними. Банкиры хакают эти правила с помощью трюков, которых регуляторы не предвидели и специально не запрещали, и строят вокруг них прибыльный бизнес. Затем они делают все возможное, пытаясь повлиять на регуляторов и на само правительство, чтобы власть разрешила и нормализовала их взломы. Побочный эффект такого процесса – дорогостоящие финансовые кризисы, которые затрагивают население в целом.

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

Однако закон Додда – Франка был полон уязвимостей. Банки немедленно привлекли своих юристов к поиску лазеек, которые позволили бы обойти цель закона – и к черту риски для экономики. Первым делом они ухватились за конкретную формулировку, исключающую иностранную деятельность, если только она не имеет «прямой и существенной связи с деятельностью или торговлей в США». Как только эта уязвимость была закрыта, банкиры обошли определение зарубежного «филиала», назвав филиалы «отделениями». Это тоже проработало недолго. Наконец они зацепились за слово «гарантия». По сути, все иностранные деривативы были гарантированы американской материнской компанией, а это означало, что именно она покроет убытки, если что-то случится с зарубежными филиалами. Просто убрав слово «гарантия» и другие эквивалентные термины из своих контрактов, они могли избежать регулирования.

К концу 2014 г. банки перевели 95 % своих сделок со свопами в офшоры{71}, в более мягкие юрисдикции, в очередной раз избегая регулирования по Додду – Франку. В 2016 г. Комиссия по торговле товарными фьючерсами попыталась закрыть эту лазейку. Она постановила, что свопы не могут быть отправлены за границу, чтобы обойти требования закона Додда – Франка, и что как гарантированные, так и негарантированные свопы должны покрываться материнской компанией. Но, увы, новое правило не успели доработать до того, как Трамп вступил в должность президента, а назначенный им председатель комиссии так и не довел дело до конца.

Другие хаки

Скачать книгу

В книге упоминаются социальные сети Instagram и/или Facebook – продукты компании Meta Platforms Inc., деятельность которой по реализации соответствующих продуктов на территории Российской Федерации запрещена как экстремистская.

Переводчик Михаил Белоголовский

Научный редактор Артем Деркач

Редактор Даниэль Орлов

Главный редактор С. Турко

Руководитель проекта А. Деркач

Корректоры М. Стимбирис, М. Смирнова

Верстка А. Абрамов

Художественное оформление и макет Ю. Буга

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

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

© 2023 by Bruce Schneier

© Издание на русском языке, перевод, оформление. ООО «Альпина Паблишер», 2023

* * *

Предисловие

Говорят, что вода{1} никогда не бежит в гору.

Никогда не бежала, никогда не побежит.

Но если у тебя достаточно денег,

В законах природы всегда найдется лазейка.

И вот уже ручеек течет вверх по склону.

ДЖИМ ФИТТИНГ, песня «Water Never Runs Uphill» из репертуара группы Session Americana

Компания Uncle Milton Industries продает детские муравьиные фермы с 1956 г. Ферма представляет собой конструкцию из двух листов прозрачного пластика, соединенных между собой с зазором в 6 мм, запаянную с трех сторон, а с четвертой – имеющую крышечку. Идея заключается в том, чтобы заполнить это узкое пространство песком, запустить туда муравьев и с комфортом наблюдать, как они роют туннели.

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

Большинство людей, впервые увидевших эту карточку, удивляются самому факту, что компания высылает клиентам пробирки с муравьями. Но моей первой мыслью было: «Вот это да! Я могу сделать так, что компания отправит пробирку с муравьями любому человеку, чей адрес я укажу».

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

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

Я преподаю курс кибербезопасности в Гарвардском институте государственного управления, больше известном как школа им. Кеннеди. В конце первого занятия я даю аудитории неожиданное задание{2} к нашей следующей встрече: через два дня каждый студент должен будет записать по памяти первые сто цифр числа пи. «Я понимаю, нет смысла надеяться, что вы запомните сотню случайных цифр за такой короткий срок, – говорю я им. – Поэтому рассчитываю, что вы будете хитрить. Единственное условие – не попадайтесь».

Спустя два дня аудитория гудит от возбуждения. Большинство студентов прибегают к старым уловкам, записывая цифры мелким почерком на клочках бумаги или наговаривая число на диктофон в надежде незаметно пронести наушник. Но кое-кто проявляет невероятную изобретательность. Один студент, к примеру, использовал невидимые чернила и очки, в которых цифры проявлялись. Другой написал искомое число на китайском языке, которого я, увы, не знаю. Третий закодировал цифры разноцветными бусинами и сделал из них ожерелье. Еще один запомнил несколько первых и последних цифр из сотни, а остальные взял из головы, полагая, что я не стану проверять всю последовательность. Но больше всего меня поразил случай, когда студент по имени Ян, потратив на это кучу времени, делая долгие паузы между цифрами, записал весь необходимый ряд. Он закончил, когда все уже сдали ответы. Помню, как и я, и другие студенты смотрели на него, не понимая, как именно он это делает. Неужели парень действительно вычисляет в уме бесконечный ряд? Но все оказалось намного проще: хитрец запрограммировал телефон, и тот вибрировал в его кармане, передавая каждую цифру азбукой Морзе.

Смысл подобного задания вовсе не в том, чтобы превратить добросовестных студентов в жуликов. На лекциях я всегда напоминаю, что за списывание в Гарварде полагается исключение. Дело в другом: если они собираются заниматься государственной политикой в области кибербезопасности[1], они должны думать как жулики и воспитывать в себе хакерское мышление.

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

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

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

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

В качестве примера приведу историю Питера Тиля. Roth IRA – это легальный пенсионный счет, разрешенный законом с 1997 г. Он предназначен для инвесторов среднего класса и имеет ограничения как на уровень дохода инвестора, так и на сумму инвестиций. Но миллиардер Питер Тиль, один из основателей PayPal, умудрился найти лазейку{3}. Используя этот пенсионный счет, он купил 1,7 млн акций собственной компании по цене $0,001 за акцию, превратив $2000 в $5 млрд, навсегда освобожденных от налогов.

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

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

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

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

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

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

Однажды, уже не помню когда и где{4}, я услышал такое высказывание по поводу математики: «Дело не в том, что математика может решить все мировые проблемы. Просто мировые проблемы было бы легче решать, если бы все чуть больше разбирались в математике». Думаю, то же самое справедливо и в отношении безопасности. Дело не в том, что хакерский подход способен решить все мировые проблемы. Просто мировые проблемы было бы проще решать, если бы все лучше разбирались в вопросах информационной безопасности.

Так что поехали.

Часть I

Хакинг для «чайников»

1

Что такое хак

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

Определение

Хак{6} (англ. hack, hak – взлом)

1. Хитроумное, непредвиденное использование системы, которое: а) подрывает правила или нормы самой системы – б) за счет людей, так или иначе затронутых ее деятельностью.

2. Некое действие, допускаемое системой, недокументированное и не предусмотренное ее разработчиками.

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

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

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

Разница очевидна. Хакер – не тот, кто обводит вокруг пальца жертву. Хакер находит изъян в правилах системы и заставляет ее делать то, что системе делать не положено. Тем самым он обводит вокруг пальца саму систему и, соответственно, ее разработчиков.

Хак подрывает смысл системы, нарушая ее правила или нормы. Это именно «игра с системой». Хакерство занимает промежуточное положение между мошенничеством и инновациями.

«Хак» – термин во многом субъективный. Часто можно услышать: «Я скажу, хак это или не хак, лишь когда увижу своими глазами». О чем-то можно с уверенностью сказать, что это хак. О чем-то – что это точно не хак. Но есть довольно много явлений, которые находятся в серой зоне между этими двумя полюсами. Навык скорочтения – это не хак. Невидимые глазу микроточки, тайно наносимые принтером, чтобы идентифицировать ваш документ, – определенно хак. Но вот CliffsNotes[2]… Здесь я не берусь утверждать.

Хак всегда сделан с умом. Часто он вызывает сдержанное восхищение (порой вкупе с праведным гневом) и реакцию типа «Круто, хотел бы и я додуматься до этого», даже если речь идет о вещах принципиально вам чуждых. Такая реакция характерна даже в тех случаях, когда в роли хакеров выступают отъявленные злодеи. Моя книга 2003 г.{7} Beyond Fear («За пределами страха») начинается с подробного объяснения, почему теракт 11 сентября «поражал воображение». Террористы нарушили неписаные правила угона самолетов. До них захват самолета подразумевал полет в заданную точку, политические требования, переговоры с правительствами и полицией и в большинстве случаев мирное урегулирование ситуации. То, что террористы сделали 11 сентября, чудовищно, но нельзя не признать изобретательность их хака. Они использовали оружие, разрешенное службами безопасности аэропортов, и превратили гражданские самолеты в управляемые ракеты, в одностороннем порядке переписав нормы авиационного терроризма.

Хакеры и их деятельность заставляют по-новому взглянуть на системы, из которых выстроен наш мир. Они разоблачают то, что мы принимаем как должное, зачастую ставя в неловкое положение сильных мира сего, а иногда заставляя людей платить непомерную цену. Если не брать в расчет терроризм, можно сказать, что люди любят хакеров, потому что они умны. Макгайвер[3] был хакером. Фильмы о побегах из тюрьмы и хорошо спланированных ограблениях полны умных хаков: «Мужские разборки», «Большой побег», «Мотылек», «Миссия невыполнима», «Ограбление по-итальянски», «11-», «12-», «13 друзей-» и «8 подруг Оушена».

Хак всегда оригинален. «Разве это разрешено?», «Я и не знал, что так можно!» – вот обычная реакция людей на очередной хак. Со временем правила и общественные нормы меняются, а с ними меняются и представления о том, что является хаком. Все хаки в итоге либо подпадают под запрет, либо становятся разрешенными действиями. Соответственно, то, что еще недавно считалось хаком, перестает им быть. Когда-то вам приходилось хакать свой смартфон, чтобы превратить его в беспроводную точку доступа; сегодня точка доступа является стандартной функцией iOS и Android. Напильник в торте, переданном в тюрьму сообщнику, изначально был хаком, но теперь это стандартный сюжетный ход, заставляющий тюремщиков быть начеку.

В 2019 г. кто-то использовал дрон{8}, чтобы доставить мобильный телефон и марихуану в тюрьму штата Огайо. В то время я бы назвал это хаком, но сегодня запуски дронов рядом с тюрьмами в некоторых штатах напрямую запрещены, и подобный трюк перестал быть хаком. Недавно я прочитал о том, как некто использовал удочку{9}, чтобы перебросить контрабанду через стену тюрьмы, а также о коте{10}, пойманном в тюрьме Шри-Ланки с грузом наркотиков и SIM-карт. (За кота не волнуйтесь, он сбежал.) Все это определенно хаки.

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

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

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

Слово «хак» в своем нынешнем значении появилось на свет{11} в 1955 г. в Клубе технического моделирования железных дорог МIT[4] и быстро перекочевало в зарождающуюся область компьютерных наук. Первоначально оно описывало способ решения проблем, предполагающий сообразительность, новаторство и находчивость, без какого-либо криминального или даже соревновательного подтекста. Но к 1980-м гг. «хакингом» все чаще стали называть взлом систем компьютерной безопасности. Хакнуть компьютер означало заставить его сделать не просто что-то новое, а нечто такое, чего он делать не должен.

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

И это не новость. Люди взламывали системы общественного устройства на протяжении всей истории.

2

Системы и хакинг

Хакнуть можно любую систему, но сравнение между собой различных типов систем, например налогового кодекса и компьютерного кода, полезно для выявления их характерных особенностей и понимания того, как именно работает хак в каждом конкретном случае. Налоговый кодекс – это не программное обеспечение, он исполняется не на базе компьютера. Однако вы все равно можете считать его «кодом» в компьютерном смысле этого слова, серией алгоритмов, которые принимают входные данные (финансовую информацию за год) и выдают результат (сумму начисленного налога).

Налоговый кодекс невероятно сложен. Существует огромное количество нюансов, исключений и особых случаев, возможно, не для большинства из нас как физических лиц, но для богатых людей и разного рода предприятий. Он состоит из правительственных законов, административных постановлений, судебных решений и юридических заключений. В него также входят законы и нормативные акты, регулирующие деятельность корпораций и разнообразных партнерств. Дать достоверную оценку размерам налогового кодекса затруднились даже эксперты, по крайней мере, когда я их об этом спросил. Непосредственно налоговый кодекс{12} занимает около 2600 страниц. Нормативные акты и постановления Налогового управления увеличивают этот объем примерно до 70 000 страниц. Законы, касающиеся корпоративных структур и партнерств, не менее сложны, поэтому я предположу, что в общей сложности налоговый кодекс США занимает 100 000 страниц или 3 млн строк. Объем кода Microsoft Windows 10{13} составляет около 50 млн строк. Довольно странно сравнивать количество строк текста и строк компьютерного кода, но подобное сравнение все равно полезно. В обоих примерах высокий уровень сложности во многом связан с тем, как разные части кода взаимодействуют друг с другом.

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

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

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

Недавний пример – Закон о сокращении налогов и занятости от 2017 г. Этот закон был разработан в спешке, в закрытом режиме и принят без должного рассмотрения законодателями и даже без корректуры. Некоторые его части были написаны от руки, и просто невозможно представить себе, что голосовавшие за или против принятия этого закона точно знали его содержание. В результате в текст вкралась ошибка, из-за которой пособия по смерти военнослужащих были отнесены к трудовым доходам. Следствием этой ошибки стало то, что члены семей погибших неожиданно получили налоговые счета{14} на суммы свыше $10 000. Это типичный баг.

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

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

Именно таким образом Google, Apple и другие технологические гиганты избегают уплаты справедливой доли налогов в США, несмотря на то что являются американскими компаниями. Это определенно не предусмотренное законодателями использование налоговых кодексов трех стран, хотя стоит отметить, что Ирландия намеренно придерживалась мягких налоговых правил, чтобы привлечь американские компании. И это очень выгодная ситуация для хакеров. По оценкам, только в 2017 г. американские компании уклонились от уплаты налогов{16} в США почти на $200 млрд, разумеется, за счет остальных налогоплательщиков.

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

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

Эти же методы применимы и к налоговому кодексу. Налоговое законодательство 2017 г. ограничило вычеты по налогу на имущество{17}. Это положение вступило в силу только в 2018 г., поэтому кое-кто придумал хитрый хак – досрочно уплатить налог на недвижимость за 2018 г. в 2017 г. Незадолго до конца года налоговое управление США вынесло решение о том, в каких случаях это было законно, а в каких нет, и приняло исправления в Налоговый кодекс для защиты от подобных действий. В большинстве случаев они были сочтены незаконными.

Однако зачастую все не так просто. Некоторые лазейки прописаны в законе и не могут быть исключены из него в мгновение ока. Принятие любого налогового законодательства – это всегда большая проблема, особенно в США, где оно обсуждается с особым пристрастием. Ошибку с подоходным налогом для семей военнослужащих, возникшую в 2017 г., начали исправлять лишь в 2021 г. И до сих пор конгресс не устранил ее: пока исправлена только еще более старая ошибка, которая взаимодействовала с ошибкой 2017 г., а ее окончательное устранение будет завершено в 2023 г. (И это еще довольно легкий случай, поскольку все признают, что ошибка имеет место.) У нас нет возможности править налоговый кодекс с той же оперативностью, с которой мы устраняем баги в программном обеспечении.

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

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

3

Что такое система

Хакер соблюдает правила системы, но нарушает ее дух и замысел.

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

Определение

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

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

Всякая система имеет правила. Ими могут быть законы, правила игры, неформальные правила группы или процесса, негласные социальные правила. Когнитивные системы тоже следуют законам – законам природы.

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

Исходя из сказанного, хакингу подвержены системы, участники которых заранее договорились – явно или неявно – соблюдать общий набор правил. Иногда внутренние правила системы не совпадают с законами среды, в которой она существует. Я понимаю, что это сбивает с толку, поэтому объясню на примере. Компьютер управляется набором правил в виде запущенного на нем программного обеспечения. Хакнуть компьютер означает так или иначе обойти эти правила. Но помимо этого существуют внешние по отношению к компьютеру законы, которые потенциально регулируют то, что с ним можно делать и чего нельзя. К примеру, в США Закон о компьютерном мошенничестве и злоупотреблениях квалифицирует большинство форм взлома как уголовное преступление. (Обратите внимание, что происходит: взламывается компьютерная система, но более общая правовая система защищает ее.) К слову, довольно спорный момент, насколько общим должен являться такой закон, ведь в своем нынешнем виде он создает ловушку, поскольку любой взлом компьютера считается незаконным.

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

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

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

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

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

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

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

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

4

Жизненный цикл хака

С точки зрения компьютерной безопасности хак состоит из двух частей: уязвимости и эксплойта.

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

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

В качестве примера приведу историю EternalBlue. Это кодовое название эксплойта для операционной системы Windows, который работал на АНБ (Агентство национальной безопасности) в течение как минимум пяти лет, вплоть до 2017 г., когда его выкрали у агентства русские. EternalBlue использует уязвимость, допущенную Microsoft в протоколе Server Message Block (SMB), ответственном за обмен данных между клиентом и сервером. То, каким образом был закодирован SMB, давало возможность злоумышленнику отправить через интернет тщательно подготовленный исполняемый код, запустить его выполнение на принимающем компьютере под управлением Windows и таким образом получить над этим компьютером контроль. Строго говоря, АНБ могло использовать EternalBlue для удаленного управления практически любым компьютером, подключенным к интернету, на котором установлена операционная система Windows.

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

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

И, наконец, есть организации или конкретные люди, которые являются заказчиками. Откройте новости: АНБ хакает иностранную сеть, Россия – США, а Google – налоговый кодекс. Важно это понимать, поскольку мы еще не раз будем говорить о том, как богатые и влиятельные люди хакают разнообразные системы. Да, богатство и власть сами по себе не являются непременным условием появления продвинутых хакеров, но они открывают доступ к такого рода услугам. США, Россия и Google могут себе позволить нанимать самых одаренных и с их помощью успешно взламывать системы.

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

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

В ряде систем выгода, которую может приносить хак, определяется тем, как часто и насколько публично им пользуются. Обнаруженная уязвимость в банковской системе может использоваться преступниками «по-тихому», время от времени и оставаться для банка слепой зоной в течение многих лет. Хорошие хаки в сфере Налогового кодекса, как правило, распространяются очень быстро, поскольку становятся объектом продажи{18}. Искусная психологическая манипуляция может стать достоянием общественности, как только о ней заговорит достаточное количество людей, а может и оставаться неизвестной широкому кругу на протяжении многих поколений.

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

Контроль над целевой системой и ответственность за процессы ее обновления очевидны в случае, например, операционных систем, таких как Windows, или любых других крупных программных пакетов, за которыми стоит разработчик. Microsoft и Apple сделали исправление своих систем обязательным регулярным процессом.

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

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

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

5

Вездесущность хакинга

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

Club Penguin – детская онлайн-игра компании Disney, просуществовавшая с 2005 по 2017 г. Общение детей с незнакомцами в интернете справедливо вызывает беспокойство их родителей, поэтому Disney создала режим Ultimate Safe Chat, который запрещал свободный ввод текста, ограничивая игроков заранее подготовленным списком реплик. Идея заключалась в том, чтобы оградить детей от буллинга и контакта с потенциальными педофилами. Но дети есть дети, они хотят общаться друг с другом несмотря ни на что. Поэтому они просто хакнули это ограничение, изображая буквы и цифры фигурками своих аватаров.

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

Подобно Club Penguin, многие детские онлайн-игры вводили ограничения на высказывания в чате, чтобы предотвратить саму возможность травли и любого преследования. Дети взломали их все без исключения{19}. Чтобы обойти модераторов и фильтры ненормативной лексики, дети используют такие уловки, как намеренные ошибки в написании, например PHUQ вместо fuck you, разделение ключевой информации на несколько высказываний, чтобы ни одно из них не нарушало правил, и акростих, шифруя свои послания начальными буквами разрешенных фраз. Некоторые сайты запрещали пользователям вводить цифры – в ответ на это дети стали использовать слова: win вместо one (один), too вместо two (два), tree вместо three (три) и т. д. Тот же прием с созвучными искажениями применялся и для нанесения оскорблений: lose her означало looser (неудачник), а stew putt – stupid (дурак).

Школы пытаются ограничить использование учениками школьных компьютеров, в ответ на это ученики их взламывают. Успешные хаки такого рода распространяются моментально. После того как в школах одного из округов ограничили количество сайтов, которые разрешено посещать ученикам, те быстро сообразили, что VPN позволяет обойти ограничения и к тому же сделать это скрытно. Когда в другом районе заблокировали доступ к чатам, дети тут же нашли решение и стали общаться с помощью общего файла Google Doc.

Этот прием не нов. У него даже есть название – фолдеринг{20}. В разное время его использовали для сокрытия информации экс-глава ЦРУ генерал Петреус, руководитель избирательной компании Дональда Трампа 2016 г. Пол Манафорт и террористы, устроившие атаку 11 сентября 2001 г. Все они понимали, что могут избежать слежки, если будут пользоваться одним почтовым ящиком со своими сообщниками и писать друг другу письма, сохраняя их в виде неотправленных черновиков.

Во времена моего детства существовали хаки для обхода правил телефонной системы. Если вы слишком молоды, чтобы помнить такое, я объясню. Человек звонил на телефонную станцию, вызывал оператора, сообщал ему, кто он такой, и говорил, что хочет сделать междугородний групповой звонок. Оператор звонил по указанному номеру и спрашивал абонента, согласен ли тот принять групповой звонок за свой счет. Групповые звонки стоили весьма недешево. Но поскольку оператор сам инициировал звонок другой стороне, информация могла быть передана ей еще до того, как начинала взиматься плата. Итак, мы делали запрос группового звонка, оператор спрашивал указанного абонента – как правило, кого-то из наших родителей, – согласен ли тот принять групповой звонок, родители отвечали «нет», а затем перезванивали нам уже по стандартным, не таким дорогим тарифам. Подобные трюки можно было сделать и более эффективными. В некоторых семьях был даже список имен, которыми звонивший представлялся оператору в зависимости от ситуации; к примеру, имя Брюс могло означать «прибыл благополучно», Стив – «перезвоните» и т. д. (Оператор не знал настоящего имени звонившего.) Даже сегодня люди пользуются телефонными хаками, чтобы обойти правила тарификации. В Нигерии это называется «подмигнуть»{21}: звонишь кому-нибудь и кладешь трубку до того, как он успеет ответить. В Индии в первой половине 2010-х гг. такие хаки тоже были широко распространены{22}, поскольку стоимость звонков на сотовые и стационарные телефоны заметно отличалась. Все эти хаки предназначены для подрыва телефонных систем, чтобы обмениваться информацией, не платя за эту привилегию.

Домашнее обучение во время пандемии{23} COVID-19 пробудило хакерские способности во многих школьниках. Один сообразительный ученик переименовал себя в «Reconnecting…» и просто выключил видеосвязь, чтобы учитель думал, что у него проблемы с подключением. В марте 2020 г., в первые месяцы пандемии, власти Китая полностью закрыли город Ухань, а его школы перевели на дистанционное обучение. В ответ на это ученики стали заваливать приложение DingTalk, через которое осуществлялся образовательный процесс, отзывами с одной звездой{24}, надеясь, что таким образом оно будет удалено из магазинов приложений. (Увы, это не сработало.)

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

Само по себе это не означает, что абсолютно все системы взломаны. Вспомните Гёделя{25}. Среди юристов есть поговорка: «Все контракты неполны». Контракты исполняются не потому, что они жестко препятствуют нарушению сторонами договорных условий, а потому, что, как правило, имеют место доверие и благонамеренность. Если же дела идут плохо, существуют системы арбитража{26} и судебного разбирательства. Да, это может показаться наивным и идеалистичным, но именно благодаря системам, основанным на доверии, и функционирует наше общество. Мы не требуем от наших соглашений абсолютной защиты, потому что: 1) этого невозможно достичь, 2) любая попытка будет слишком долгой и громоздкой и 3) нам это попросту не нужно.

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

Не все системы одинаково подвержены взлому. Далее, по мере изложения, вы познакомитесь с характеристиками систем, которые делают их более или менее уязвимыми для хакеров. Самыми уязвимыми являются сложные системы с большим количеством правил, хотя бы в силу того, что в них скрыто больше непредвиденных последствий. Сложность – злейший враг безопасности{27}. Это безусловно верно в отношении систем компьютерных, но справедливо и для таких систем, как налоговый кодекс, финансовые рынки и искусственный интеллект. В целом чем более гибкими социальными нормами и правилами ограничена система, тем более она уязвима для взлома, поскольку оставляет больше возможностей для интерпретации и, следовательно, содержит в себе больше лазеек.

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

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

Часть II

Основные виды хакинга и защита от него

6

Хакинг банкоматов

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

Что такое банкомат? Это компьютер с наличными деньгами внутри. Он подключен к банковской сети через интернет (пару десятилетий назад это было обычное телефонное соединение и модем) и работает под управлением операционной системы Windows. Конечно же, его можно взломать.

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

В течение следующих пяти месяцев Сондерс снял в австралийских долларах сумму, эквивалентную $1,1 млн{28}. Его так и не смогли поймать. В какой-то момент он сам решил прекратить порочную практику: почувствовал себя виноватым, прошел курс терапии, а затем сделал публичное признание. За полгода банк так и не смог понять, где он теряет столько денег.

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

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

Сноски
1 Автор использует здесь забавное сленговое выражение cybersexcurity (букв. киберсексуальное любопытство), созвучное с термином cybersecurity. – Прим. пер.
2 CliffsNotes – изначально серия брошюр с кратким изложением и готовым анализом литературных произведений. Чтение подобных брошюр экономит студентам время, но снижает качество образования. Сегодня сайт https://cliffsnotes.com по тому же принципу предлагает базовые сведения из разных областей знаний. – Прим. пер.
3 Ангус Макгайвер – секретный агент, герой популярных американских телесериалов. Будучи талантливым ученым и тонким психологом, Макгайвер в любых экстремальных ситуациях полагается исключительно на смекалку, знания и складной швейцарский нож. – Прим. пер.
4 МIT – Массачусетский технологический институт. – Прим. ред.
5 «Черные», «белые» и «серые шляпы» – устоявшаяся классификация хакеров по их мотивации. Взята из голливудских вестернов, где положительные персонажи носили белые шляпы, отрицательные – черные, а неоднозначные, соответственно, серые. «Черные шляпы» из мира хакеров движимы корыстными целями: финансовой выгодой, местью или идеологическими мотивами. «Белые шляпы» работают в интересах компаний и взламывают их системы, чтобы устранить недостатки. «Серые шляпы» ищут уязвимости в системах без разрешения их владельцев, но и без злого умысла. – Прим. пер.
6 Эксплойт (exploit, sploit; проф. сленг) – программа, использующая конкретную уязвимость ПО или создающая условия для исполнения другого кода, который в обычных условиях неисполним. – Прим. пер.
1 Автор использует здесь забавное сленговое выражение cybersexcurity (букв. киберсексуальное любопытство), созвучное с термином cybersecurity. – Прим. пер.
2 CliffsNotes – изначально серия брошюр с кратким изложением и готовым анализом литературных произведений. Чтение подобных брошюр экономит студентам время, но снижает качество образования. Сегодня сайт https://cliffsnotes.com по тому же принципу предлагает базовые сведения из разных областей знаний. – Прим. пер.
3 Ангус Макгайвер – секретный агент, герой популярных американских телесериалов. Будучи талантливым ученым и тонким психологом, Макгайвер в любых экстремальных ситуациях полагается исключительно на смекалку, знания и складной швейцарский нож. – Прим. пер.
4 МIT – Массачусетский технологический институт. – Прим. ред.
5 «Черные», «белые» и «серые шляпы» – устоявшаяся классификация хакеров по их мотивации. Взята из голливудских вестернов, где положительные персонажи носили белые шляпы, отрицательные – черные, а неоднозначные, соответственно, серые. «Черные шляпы» из мира хакеров движимы корыстными целями: финансовой выгодой, местью или идеологическими мотивами. «Белые шляпы» работают в интересах компаний и взламывают их системы, чтобы устранить недостатки. «Серые шляпы» ищут уязвимости в системах без разрешения их владельцев, но и без злого умысла. – Прим. пер.
6 Эксплойт (exploit, sploit; проф. сленг) – программа, использующая конкретную уязвимость ПО или создающая условия для исполнения другого кода, который в обычных условиях неисполним. – Прим. пер.
Комментарии
1 Massimo Materni (1 May 2012), "Water never runs uphill / Session Americana," YouTube, https://www.youtube.com/watch?v=0Pe9XdFr_Eo.
2 Это упражнение придумал не я. См.: Gregory Conti and James Caroland (Jul-Aug 2011), "Embracing the Kobayashi Maru: Why you should teach your students to cheat," IEEE Security & Privacy 9, https://www.computer.org/csdl/magazine/sp/2011/04/msp2011040048/13rRUwbs1Z3.
3 См.: Justin Elliott, Patricia Callahan, and James Bandler (24 Jun 2021), "Lord of the Roths: How tech mogul Peter Thiel turned a retirement account for the middle class into a $5 billion tax-free piggy bank," ProPublica, https://www.propublica.org/article/lord-of-the-roths-how-tech-mogul-peter-thiel-turned-a-retirement-account-for-the-middle-class-into-a-5-billion-dollar-tax-free-piggy-bank.
4 Если кто-нибудь в курсе, пожалуйста, напишите мне.
5 См.: Finn Brunton has assembled a list of "significant meanings" of the term. Finn Brunton (2021), "Hacking," in Leah Lievrouw and Brian Loader, eds., Routledge Handbook of Digital Media and Communication, Routledge, pp. 75–86, http://finnb.net/writing/hacking.pdf.
6 Недавно скончавшемуся хакеру Джуд Милхон (Святая Джуд) нравилось другое определение: «Взлом – это умный обход установленных ограничений, независимо от того, установлены они вашим правительством, вашей собственной личностью или законами физики». Jude Milhon (1996), Hackers Conference, Santa Rosa, CA.
7 Bruce Schneier (2003), Beyond Fear: Thinking Sensibly About Security in an Uncertain World, Copernicus Books.
8 Lauren M. Johnson (26 Sep 2019), "A drone was caught on camera delivering contraband to an Ohio prison yard," CNN, https://www.cnn.com/2019/09/26/us/contraband-delivered-by-drone-trnd/index.html.
9 Selina Sykes (2 Nov 2015), "Drug dealer uses fishing rod to smuggle cocaine, alcohol and McDonald's into jail," Express, https://www.express.co.uk/news/uk/616494/Drug-dealer-used-fishing-rod-to-smuggle-cocaine-alcohol-and-McDonald-s-into-jail.
10 Telegraph staff (3 Aug 2020), "Detained 'drug smuggler' cat escapes Sri Lanka prison," Telegraph, https://www.telegraph.co.uk/news/2020/08/03/detained-drug-smuggler-cat-escapes-sri-lanka-prison.
11 Jay London (6 Apr 2015), "Happy 60th birthday to the word 'hack,'" Slice of MIT, https://alum.mit.edu/slice/happy-60th-birthday-word-hack. – Прим. ред.
12 Dylan Matthews (29 Mar 2017), "The myth of the 70,000-page federal tax code," Vox, https://www.vox.com/policy-and-politics/2017/3/29/15109214/tax-code-page-count-complexity-simplification-reform-ways-means.
14 Naomi Jagoda (14 Nov 2019), "Lawmakers under pressure to pass benefits fix for military families," The Hill, https://thehill.com/policy/national-security/470393-lawmakers-under-pressure-to-pass-benefits-fix-for-military-families.
15 The New York Times (28 Apr 2012), "Double Irish with a Dutch Sandwich" (infographic), https://archive.nytimes.com/www.nytimes.com/interactive/2012/04/28/business/Double-Irish-With-A-Dutch-Sandwich.html.
16 Niall McCarthy (23 Mar 2017), "Tax avoidance costs the U.S. nearly $200 billion every year" (infographic), Forbes, https://www.forbes.com/sites/niallmccarthy/2017/03/23/tax-avoidance-coststhe-u-s-nearly-200-billion-every-year-infographic.
17 US Internal Revenue Services (27 Dec 2017), "IRS Advisory: Prepaid real property taxes may be deductible in 2017 if assessed and paid in 2017," https://www.irs.gov/newsroom/irs-advisory-prepaid-real-property-taxes-may-be-deductible-in-2017-if-assessed-and-paid-in-2017.
18 Помню, как читал об одной налоговой лазейке, которая была показана потенциальным покупателям только после того, как они подписали соглашение о неразглашении, и даже тогда им не сообщили всех деталей. Хотелось бы ссылку на эту историю.
19 Stephanie M. Reich, Rebecca W. Black, and Ksenia Korobkova (Oct 2016), "Connections and communities in virtual worlds designed for children," Journal of Community Psychology 42, no. 3, https://sites.uci.edu/disc/files/2016/10/Reich-Black-Korobkova-2014-JCOP-community-in-virtual-worlds.pdf.
20 Steven Melendez (16 Jun 2018), "Manafort allegedly used 'foldering' to hide emails. Here's how it works," Fast Company, https://www.fastcompany.com/40586130/manafort-allegedly-used-foldering-to-hide-emails-heres-how-it-works.
21 Cara Titilayo Harshman (22 Dec 2010), "Please don't flash me: Cell phones in Nigeria," North of Lagos, https://northoflagos.wordpress.com/2010/12/22/please-dont-flash-me-cell-phones-in-nigeria.
22 Atul Bhattarai (5 April 2021), "Don't pick up! The rise and fall of a massive industry based on missed call," Rest of World, https://restofworld.org/2021/the-rise-and-fall-of-missed-calls-in-india.
23 Tribune Web Desk (14 May 2020), "Students find 'creative' hacks to get out of their Zoom classes, video goes viral," Tribune of India, https://www.tribuneindia.com/news/lifestyle/students-find-creative-hacks-to-get-out-of-their-zoom-classes-video-goes-viral-84706.
24 Anthony Cuthbertson (9 Mar 2020), "Coronavirus: Quarantined school children in China spam homework app with 1-star reviews to get it off app store," Independent, https://www.independent.co.uk/life-style/gadgets-and-tech/news/coronavirus-quarantine-children-china-homework-app-dingtalk-a9387741.html.
25 Kimberly D. Krawiec and Scott Baker (2006), "Incomplete contracts in a complete contract world," Florida State University Law Review 33.
26 Bruce Schneier (2012), Liars and Outliers: Enabling the Trust that Society Needs to Thrive, John Wiley & Sons.
27 Bruce Schneier (19 Nov 1999), "A plea for simplicity: You can't secure what you don't understand," Information Security, https://www.schneier.com/essays/archives/1999/11/a_plea_for_simplicit.html.
28 Jack Dutton (7 Apr 2020), "This Australian bartender found an ATM glitch and blew $1.6 million," Vice, https://www.vice.com/en_au/article/pa5kgg/this-australian-bartender-dan-saunders-found-an-atm-bank-glitch-hack-and-blew-16-million-dollars.
1 Massimo Materni (1 May 2012), "Water never runs uphill / Session Americana," YouTube, https://www.youtube.com/watch?v=0Pe9XdFr_Eo.
2 Это упражнение придумал не я. См.: Gregory Conti and James Caroland (Jul-Aug 2011), "Embracing the Kobayashi Maru: Why you should teach your students to cheat," IEEE Security & Privacy 9, https://www.computer.org/csdl/magazine/sp/2011/04/msp2011040048/13rRUwbs1Z3.
3 См.: Justin Elliott, Patricia Callahan, and James Bandler (24 Jun 2021), "Lord of the Roths: How tech mogul Peter Thiel turned a retirement account for the middle class into a $5 billion tax-free piggy bank," ProPublica, https://www.propublica.org/article/lord-of-the-roths-how-tech-mogul-peter-thiel-turned-a-retirement-account-for-the-middle-class-into-a-5-billion-dollar-tax-free-piggy-bank.
4 Если кто-нибудь в курсе, пожалуйста, напишите мне.
5 См.: Finn Brunton has assembled a list of "significant meanings" of the term. Finn Brunton (2021), "Hacking," in Leah Lievrouw and Brian Loader, eds., Routledge Handbook of Digital Media and Communication, Routledge, pp. 75–86, http://finnb.net/writing/hacking.pdf.
6 Недавно скончавшемуся хакеру Джуд Милхон (Святая Джуд) нравилось другое определение: «Взлом – это умный обход установленных ограничений, независимо от того, установлены они вашим правительством, вашей собственной личностью или законами физики». Jude Milhon (1996), Hackers Conference, Santa Rosa, CA.
7 Bruce Schneier (2003), Beyond Fear: Thinking Sensibly About Security in an Uncertain World, Copernicus Books.
8 Lauren M. Johnson (26 Sep 2019), "A drone was caught on camera delivering contraband to an Ohio prison yard," CNN, https://www.cnn.com/2019/09/26/us/contraband-delivered-by-drone-trnd/index.html.
9 Selina Sykes (2 Nov 2015), "Drug dealer uses fishing rod to smuggle cocaine, alcohol and McDonald's into jail," Express, https://www.express.co.uk/news/uk/616494/Drug-dealer-used-fishing-rod-to-smuggle-cocaine-alcohol-and-McDonald-s-into-jail.
10 Telegraph staff (3 Aug 2020), "Detained 'drug smuggler' cat escapes Sri Lanka prison," Telegraph, https://www.telegraph.co.uk/news/2020/08/03/detained-drug-smuggler-cat-escapes-sri-lanka-prison.
11 Jay London (6 Apr 2015), "Happy 60th birthday to the word 'hack,'" Slice of MIT, https://alum.mit.edu/slice/happy-60th-birthday-word-hack. – Прим. ред.
12 Dylan Matthews (29 Mar 2017), "The myth of the 70,000-page federal tax code," Vox, https://www.vox.com/policy-and-politics/2017/3/29/15109214/tax-code-page-count-complexity-simplification-reform-ways-means.
14 Naomi Jagoda (14 Nov 2019), "Lawmakers under pressure to pass benefits fix for military families," The Hill, https://thehill.com/policy/national-security/470393-lawmakers-under-pressure-to-pass-benefits-fix-for-military-families.
15 The New York Times (28 Apr 2012), "Double Irish with a Dutch Sandwich" (infographic), https://archive.nytimes.com/www.nytimes.com/interactive/2012/04/28/business/Double-Irish-With-A-Dutch-Sandwich.html.
16 Niall McCarthy (23 Mar 2017), "Tax avoidance costs the U.S. nearly $200 billion every year" (infographic), Forbes, https://www.forbes.com/sites/niallmccarthy/2017/03/23/tax-avoidance-coststhe-u-s-nearly-200-billion-every-year-infographic.
17 US Internal Revenue Services (27 Dec 2017), "IRS Advisory: Prepaid real property taxes may be deductible in 2017 if assessed and paid in 2017," https://www.irs.gov/newsroom/irs-advisory-prepaid-real-property-taxes-may-be-deductible-in-2017-if-assessed-and-paid-in-2017.
18 Помню, как читал об одной налоговой лазейке, которая была показана потенциальным покупателям только после того, как они подписали соглашение о неразглашении, и даже тогда им не сообщили всех деталей. Хотелось бы ссылку на эту историю.
19 Stephanie M. Reich, Rebecca W. Black, and Ksenia Korobkova (Oct 2016), "Connections and communities in virtual worlds designed for children," Journal of Community Psychology 42, no. 3, https://sites.uci.edu/disc/files/2016/10/Reich-Black-Korobkova-2014-JCOP-community-in-virtual-worlds.pdf.
20 Steven Melendez (16 Jun 2018), "Manafort allegedly used 'foldering' to hide emails. Here's how it works," Fast Company, https://www.fastcompany.com/40586130/manafort-allegedly-used-foldering-to-hide-emails-heres-how-it-works.
21 Cara Titilayo Harshman (22 Dec 2010), "Please don't flash me: Cell phones in Nigeria," North of Lagos, https://northoflagos.wordpress.com/2010/12/22/please-dont-flash-me-cell-phones-in-nigeria.
22 Atul Bhattarai (5 April 2021), "Don't pick up! The rise and fall of a massive industry based on missed call," Rest of World, https://restofworld.org/2021/the-rise-and-fall-of-missed-calls-in-india.
23 Tribune Web Desk (14 May 2020), "Students find 'creative' hacks to get out of their Zoom classes, video goes viral," Tribune of India, https://www.tribuneindia.com/news/lifestyle/students-find-creative-hacks-to-get-out-of-their-zoom-classes-video-goes-viral-84706.
24 Anthony Cuthbertson (9 Mar 2020), "Coronavirus: Quarantined school children in China spam homework app with 1-star reviews to get it off app store," Independent, https://www.independent.co.uk/life-style/gadgets-and-tech/news/coronavirus-quarantine-children-china-homework-app-dingtalk-a9387741.html.
25 Kimberly D. Krawiec and Scott Baker (2006), "Incomplete contracts in a complete contract world," Florida State University Law Review 33.
26 Bruce Schneier (2012), Liars and Outliers: Enabling the Trust that Society Needs to Thrive, John Wiley & Sons.
27 Bruce Schneier (19 Nov 1999), "A plea for simplicity: You can't secure what you don't understand," Information Security, https://www.schneier.com/essays/archives/1999/11/a_plea_for_simplicit.html.
28 Jack Dutton (7 Apr 2020), "This Australian bartender found an ATM glitch and blew $1.6 million," Vice, https://www.vice.com/en_au/article/pa5kgg/this-australian-bartender-dan-saunders-found-an-atm-bank-glitch-hack-and-blew-16-million-dollars.
Скачать книгу