Взломать всё. Как сильные мира сего используют уязвимости систем в своих интересах - Брюс Шнайер
Не все системы одинаково подвержены взлому. Далее, по мере изложения, вы познакомитесь с характеристиками систем, которые делают их более или менее уязвимыми для хакеров. Самыми уязвимыми являются сложные системы с большим количеством правил, хотя бы в силу того, что в них скрыто больше непредвиденных последствий. Сложность – злейший враг безопасности{27}. Это безусловно верно в отношении систем компьютерных, но справедливо и для таких систем, как налоговый кодекс, финансовые рынки и искусственный интеллект. В целом чем более гибкими социальными нормами и правилами ограничена система, тем более она уязвима для взлома, поскольку оставляет больше возможностей для интерпретации и, следовательно, содержит в себе больше лазеек.
С другой стороны, хакинг систем менее критичных, менее масштабных и, возможно, в чем-то экспериментальных причинит куда меньше вреда. Поэтому лучше позволить этим системам развиваться благодаря хакерам, чем тратить время и силы на защиту от них. Если беспечно позволить хакнуть, к примеру, процесс проектирования и строительства моста, ошибка может привести к катастрофе. Но допускать такие виды взлома, которые приводят к появлению новых, неожиданных способов использования интернета, имеет смысл.
Хакинг – естественная часть человеческого бытия. Он повсеместен и, как мы увидим, является важным фактором эволюционного процесса – непрерывного, бесконечного и способного создавать формы, как выразился Дарвин, «самые прекрасные и изумительные». Ну или же самые нелепые и ужасные.
Часть II
Основные виды хакинга и защита от него
6
Хакинг банкоматов
Для начала рассмотрим различные виды взломов систем, ограничения которых наиболее очевидны. Это создаст хорошую основу для понимания хакинга систем более сложных: политических, социальных, экономических и когнитивных.
Что такое банкомат? Это компьютер с наличными деньгами внутри. Он подключен к банковской сети через интернет (пару десятилетий назад это было обычное телефонное соединение и модем) и работает под управлением операционной системы Windows. Конечно же, его можно взломать.
В 2011 г. австралийский бармен по имени Дэн Сондерс выяснил, как снимать в банкоматах деньги, которых у тебя нет. Как-то поздно вечером, подойдя к банкомату, он неверно ввел сумму для перевода между своими счетами, случайно завысив ее. К удивлению Сондерса, перевод прошел, а банкомат выдал наличные, которых у него не было на счете, причем без регистрации операции системой. Это стало возможным из-за уязвимости в программном обеспечении банкомата, которое регистрировало переводы между счетами, в сочетании с другой уязвимостью – временной задержкой списаний и зачислений, произведенных посредством банкоматов в ночное время. Однако Сондерс ничего об этом не знал. Он обнаружил хак совершенно случайно и просто понял, что может воспроизвести результат.
В течение следующих пяти месяцев Сондерс снял в австралийских долларах сумму, эквивалентную $1,1 млн{28}. Его так и не смогли поймать. В какой-то момент он сам решил прекратить порочную практику: почувствовал себя виноватым, прошел курс терапии, а затем сделал публичное признание. За полгода банк так и не смог понять, где он теряет столько денег.
Давайте на секунду прервемся и поговорим о том, с какого рода деянием мы имеем дело. Кража денег из банка всегда незаконна. Но в этом случае взломана не банковская система, а система банкоматов и специальное программное обеспечение, написанное для них. Сондерс случайно наткнулся на способ использования этих систем, не предусмотренный их создателями. Иначе говоря, системы сами позволили нарушить заложенные в них правила. А это не что иное, как типичный хак.
Эволюция атак на банкоматы и принимаемых банками ответных мер наглядно иллюстрирует гонку вооружений между хакерами и различными институтами безопасности. Более того, здесь прослеживается несколько важных тем, к которым мы будем возвращаться на протяжении всей книги. Во-первых, системы – это не что-то изолированное: они состоят из более мелких подсистем и сами являются частью систем более крупных. Во-вторых, банкоматы – это не только программное обеспечение, но и «железо»: в процессе использования физического объекта под названием «банкомат» задействованы клиенты и удаленная банковская сеть. Хакеры могут атаковать любой из этих аспектов системы.
Первые взломы банкоматов были примитивными, больше похожими на обычный грабеж, чем на хакинг. Преступники заклеивали дверцы диспенсеров для выдачи купюр, а затем открывали их после того, как расстроенный клиент прекращал попытки изъять свои деньги и отлучался. Они делали так, чтобы карта застревала в картоприемнике, а затем вытаскивали ее и использовали. Они выкорчевывали банкоматы из стен и увозили, чтобы открыть в безопасном месте, – в точности как это показано в телесериале «Во все тяжкие». Службы безопасности реагировали. Из конструкции диспенсеров банкоматов убрали дверки, поэтому заклеивать стало нечего. Сами аппараты стали более надежно крепить к стене, а частота их пополнения наличными возросла, чтобы уменьшить потенциальный куш. (Самые сметливые злоумышленники стали грабить банкоматы вечером перед длинными праздниками, когда внутри было больше денег.) Современные банкоматы оснащены системами видеонаблюдения, но это не предотвращает подобных атак, разве что помогает впоследствии находить и арестовывать преступников.
Другой тип взлома использует авторитетное воздействие непосредственно на клиента. К примеру, преступник, одетый в костюм или униформу компании, прерывает транзакцию клиента со словами: «Извините, этот банкомат вышел из строя. Воспользуйтесь, пожалуйста, другим». Клиент послушно переходит к соседнему, а злоумышленник остается устанавливать табличку «Не работает». Когда клиент, сделав все необходимое, покидает зону банкоматов, преступник снимает деньги с его счета, завершая прерванную операцию в первом банкомате.
Такие и подобные им кражи привели к ряду изменений в конструкциях банкоматов{29}. Сначала было введено правило, согласно которому операция продолжается лишь до тех пор, пока карта находится в картоприемнике, чтобы никакие люди официального вида не могли закончить ее за клиента. В дальнейшем были внесены коррективы в работу расчетных банковских систем, которые сделали невозможным одновременное проведение нескольких транзакций по одному счету. Однако «авторитетные» взломы на этом не прекратились. Появились более грубые схемы, например такая, распространенная в Индонезии: подставной менеджер в присутствии клиента якобы звонил в офис банка и аннулировал его карту, после чего убеждал ее отдать.
Еще один тип взлома, скимминг, предполагает кражу информации с карты для создания и использования ее дубликата. С годами этот способ стал весьма популярным и изощренным. Каноническая версия скимминга заключается в размещении второго устройства для считывания магнитной полосы над слотом картоприемника таким образом, чтобы клиент невольно предоставлял свою карту шпионскому считывателю. Добавьте к этому скрытую камеру или датчик клавиатуры, и вот в вашем распоряжении имеется PIN-код. В одном из вариантов скимминга предполагается установка в общественном месте, например в торговом центре, отдельно стоящего «банкомата». Выглядит он совсем как настоящий, но все, что может, – это только считывать информацию с магнитного слоя карт, собирать PIN-коды и выводить сообщение «Банкомат не работает», чтобы отогнать оставшихся ни с чем клиентов.
Скимминг использует несколько уязвимостей. Во-первых, клиент не обладает достаточным опытом, чтобы заметить установленный скиммер или отличить поддельный банкомат от настоящего. Во-вторых, карта с магнитной полосой легко дублируется. И в-третьих, систему аутентификации, применяемую в банкоматах, – владение картой и знание PIN-кода, – сложно назвать надежной.
Следующий тип взлома банкоматов называется джекпоттингом{30} и направлен исключительно на программное обеспечение. Его задача – заставить банкомат выплевывать купюры, словно игральный автомат жетоны. При этом не требуется красть ни карту, ни PIN-код. В 2016 г. подобный взлом был организован на Тайване, а затем волной прокатился по Азии, Европе и Центральной Америке, что привело к убыткам в десятки миллионов долларов. Разработчиками были приняты меры, но в 2020 г. европейские хакеры нашли