Банкомат - всё очень просто © Крис Касперски ( http://dore.on.ru/kpnc )Банковские автоматы и кредитные карточки уже давно появились на улицах больших городов и постепенно начинают входить в нашу жизнь. Что есть банкомат с точки зрения хакера? Правильно, источник халявы и быстрого способа заработать немного карманных деньжат. Ведь если украсть десяток--другой долларов, кто будет вас искать? От банковских работников я слышал, что оправданными с финансовой точки зрения будут поиски похитителя, умыкнувшего в свой карман по крайней мере 300 вечнозеленых. Уменьшим эту цифру вдвое для безопасности и примем полученные полтораста баксов в качестве того потолка, заходить за который не стоит даже в том случае, если очень--очень хочется купить новый микропроцессор или материнскую плату, а к ним быстрый модем впридачу. Впрочем, с юридической точки зрения похищение даже одного доллара - кража. Поэтому, прежде чем отправляться к ближайшему банкомату с кусачками и отверткой, запаситесь на всякий случай парой адвокатов и захватите Шварценеггера на тот случай, чтобы немножко попридержать службу безопасности банка, пока вы будете сматывать удочки. Для того чтобы получить деньги, мало найти потерянную карточку и вставить ее в прорезь автомата. Нужно ввести с клавиатуры определенный код, на карточке не написанный и хранящийся у клиента в голове. Сама по себе карточка без него бесполезный кусок пластика. К тому же ее бывший владелец, как только обнаружит пропажу, немедленно позвонит в банк, и у карточки будет выставлен знак изъятия. Другими словами, она исчезнет в недрах банкомата и уже больше никогда не попадет к вам в руки. Следовательно, нужно не только найти карточку, но еще и подсмотреть вводимый ее владельцем пароль и снять со счета требуемую сумму еще до того, как тот обнаружит пропажу. Впрочем, если мы уж сумели подсмотреть пароль, то и карточку воровать совершенно необязательно. Достаточно ее считать. Что и сделали в свое время ребята из Эстонии. История шумная и известная почти каждому кардеру. В дорогих ресторанах официант, пока нес карточку клиента, успевал ее считать портативным устройством размером с пачку от сигарет, изготовленным из обычной магнитофонной головки, батарейки, усилителя сигналов и записывающего устройства. Ошибка горячих эстонских парней заключалась в том, что они грабили часто и помногу. Другими словами, в жадности. А вот в другой истории злоумышленникам повезло больше. Как-то раз на малолюдной улице одного небольшого городка появился новый банкомат. Естественно, нашлись такие, что пожелали им воспользоваться. Опускают в него карточку, вводят нужный пароль. Ждут себе ждут, а банкомат им отвечает: извините, мол, нету денег, или связи - в общем, выдает неподозрительное объяснение невозможности выдачи денег. В банке долго понять не могли - как совершается кража? Почему-то никому и в голову не могла придти мысль, что этот банкомат-то липовый и установлен злоумышленниками специально для чтения карт и запоминания паролей. Позже его демонтировали, но злоумышленников, кажется, так и не нашли. За полтора года (а именно столько он умудрился простоять) кардеры перекачали на свой счет немалую сумму. Однако же рядовой хакер скорее найдет оброненную кем-то впопыхах тысячедолларовую купюру, чем завалявшийся на свалке банкомат. Может быть, есть способ попроще? Есть, но для этого потребуется умение держать паяльник в руках, чтобы смастерить себе некий хардваринговый девайс, а также разбираться в сетевых протоколах на канальном уровне. Идея проста до безобразия: поскольку банкомат в себе не хранит никакой информации и всегда обращается за ответом в банк, то можно, врезавшись в кабель между ним и банком, перехватить трафик и фальсифицировать его нужным нам образом. Ни один банк не в состоянии гарантировать целостность кабеля на всем его протяжении. Разумеется, для анализа протокола обмена понадобится персональный компьютер, а также программа для снятия дампа и представления его в удобочитаемом виде. Можно, к примеру, воспользоваться компактной и маленькой утилитой pio и навигатором управления bleak_l, заботливо написанным хакером KPNC для взлома НТВ, но вполне подходящим и для этого случая. Единственное, что придется спаять самостоятельно, так это контроллер для подсоединения к банковскому кабелю. В Сети очень много различных схем и энтузиастов, предлагающих за относительно небольшие деньги приобрести уже готовые изделия. Так или иначе, но в дальнейшем будем считать, что такой девайс у нас есть. Наши последующие действия - Врезаемся в линию между банкоматом и авторизационным центом (заметим, что врезаться придется в разрыв кабеля, так чтобы вы в дальнейшем могли не только перехватывать, но и блокировать любые проходящие пакеты). Разумеется, что если мы хотя бы на мгновение прервем целостность кабеля, дело закончится плачевно. Поэтому поищите в книжках электронные схемы мгновенной коммутации "на ходу". Аналогичным образом мошенники нейтрализуют сложные системы электронных сигнализаций. Не тех, что в магазинах, а на порядок совершеннее. - Наблюдаем за пересылкой пакетов, не предпринимая никаких действий. Только наблюдаем, чтобы понять логику. На самом деле это "только" представляет собой утомительный и кропотливый анализ протоколов и расшифровки всех полей заголовков пакетов с той целью, чтобы в дальнейшем иметь возможность генерации и отправки собственных пакетов, не опасаясь того, что они чем-то будут отличаться от реальных. - Теперь манипулируем легальной картой (это значит, что по крайней меру одну карту вы должны будете все же завести) с тем, чтобы понять логику обмена. В частности, найти и опознать передаваемые банкоматом запросы и возвращаемые ему ответы. - Сравним теперь это с просроченной картой, чтобы определить реакцию системы в такой ситуации, а также найти и идентифицировать коды ошибок (они нам потом понадобятся). - Наконец, тяпнем по маленькой для храбрости и, оставив Шварценеггера на шухере, начнем процесс. Засовываем нашу карту, на счету которой лежат оставшиеся после экспериментов с банкоматом несколько долларов. - Наблюдаем, как банкомат шлет запрос, включая номер нашего счета и все остальное. Мы никак не вмешиваемся в этот процесс. - Авторизационный центр должен вернуть ответ, в котором содержится много полезной информации. А среди нее - максимально возможная сумма для снятия. Вот тут мы перехватываем этот пакет и взамен него шлем другой. Чем он отличается от оригинального, не стоит, наверное, даже говорить - и так всем ясно. Но будьте внимательны! Эта сумма может присутствовать сразу в нескольких полях, кроме того, необходимо скорректировать и поле контрольной суммы, иначе ничего не получится! Это самый сложный момент во взломе. - Впрочем, на этом этапе вы еще ничем не рискуете. Если ошибетесь, то просто перехватите обратный ответ банкомата и не пропустите его. Ведь вы еще помните коды ошибок, не так ли? А поэтому пробуйте, пока банкомат не "проглотит" фальсифицированный пакет. - Ну что же, теперь требуйте от банкомата столько денег, на сколько у вас хватит совести. В это время банкомат передает банку, сколько денег было снято. Взаправду. Эту информацию надо перехватить и послать ложный пакет, что денег снято всего 1 доллар (или сколько у вас там осталось взаправду на карточке). Будьте очень внимательны. Теперь фальсифицированный пакет передается уже банку, и любое неверное действие будет необратимо зафиксировано системой безопасности, и даже Шварценеггеру скоро покажется жарковато. - Ну вот и все. Осталась маленькая проблема - как обеспечить сходимость дебета и кредита. Ведь банкомат ведет логи и протоколы всех действий. Подумайте, как можно обмануть систему. - Наконец все! Вы отсоединяете свой ноутбук от кабеля, по возможности замаскировав нелегальное подключение, и отправляетесь в ближайший компьютерный салон за новым микропроцессором. - Однако помните, что многие банкоматы сейчас снабжены контрольными телекамерами, что не есть хорошо. Но к счастью, еще не все. И стальная крыса всегда найдет для себя щель! А вообще, чтобы ломать банкоматы, неплохо бы разобраться в их устройстве, типовом протоколе обмена и программном обеспечении. То есть так или иначе выбрать себе работу, связанную с их разработкой, созданием или по крайней мере эксплуатацией. В этом случае вы получите действительно достоверную информацию об их устройстве, а также слабых и сильных сторонах. А ведь уязвимость у них действительно есть. Только она неочевидна для постороннего, не работавшего с ними человека. Но как и любому человеческому творению, этому свойственны недостатки не в меньшем числе. Однако будете ли вы заниматься мелким жульничеством, находясь на высокооплачиваемой работе? Крис Касперски |