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

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

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

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

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

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

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

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

Перейти на страницу:

Похожие книги

Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT
Фундаментальные алгоритмы и структуры данных в Delphi
Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет СЃРѕР±РѕР№ уникальное учебное и справочное РїРѕСЃРѕР±ие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий DelphiВ».Р' книге РїРѕРґСЂРѕР±но рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием. Р

Джулиан М. Бакнелл

Программирование, программы, базы данных