Pull to refresh

Comments 120

спасибо большое
очень интересно было читать
согласен. Очень интересная статья
+1 за SolidCore и аналоги. Принцип белых списков рулит.
а можно поподробнее про Solidcore?
так же не понятно как же вирус все же туда попал?
Если кратко, то Solidcore прописывает в дистрибутив слепок всего софта и не позволяет в процессе работы запускать любой неподписанный код. Поскольку на банкомате софт в процессе работы не доустанавливается, этот метод весьма эффективен. Понятное дело, что на простой рабочей станции такой фокус не пройдет.
Вот, а вирус, я считаю, попал от какого-то сервисного инженера, поскольку был обнаружен не в одном банке. Как-то невнимательно я читаю вопросы, прошу прощенья.
теперь понятно. а то уж думал на клавиатуре настучали :)
Чем лучше стандартного Software Restriction Policy?
Не знаю, врать не буду. В луче Solidcore вообще никакой код не может быть исполнен без подписи, вот и все. Если чо, вы не подумайте — есть еще несколько аналогичных решений.
Я знаю что есть много аналогичных решений, сам учавствовал в создании одного, правда еще во времена Win 9x, тогда было актуально. Потом появилась XP/2003, SRP, и осталось куча коммерческих решений которые просто используют свои методы для реализации того что есть в системе из коробки (но к сожалению требует чтения документации).
Допускаю, что многие такие решения могут давать какие то преимущества, вроде более удобного интерфейса или красивых отчетов… Но мне кажется в подобных случаях не необходимое стороннее ПО лишь вредит безопасности.
SRP тоже не позволяет запускать никакие приложения кроме тех что разрешены по хешу, или подписаны доверенным CA (в зависимости от настроек). Причем это делается не путем перехвата системных функций, а родным функционалом самой системы.
меня тут интересует немного другой вопрос, какой смысл юзать дырявую windows xp, пытаясь добиться безопасности другими средствами? есть же opensource платформы, вполне на те деньги, что отчисляются MS можно было сделать общий embedded продукт с нужными отрасли стандартами безопасности (уже на закрытой коммерческой основе), так нет, платят деньги непонятно за что, тем более что наврядли из-за креша системы ms понесет убытки, скорее их понесет сам банк

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

бред? вот тут так же само, банки зарабатывают деньги, а не заморачиваются с «идеальными» системами.
Все верно. Добавлю еще совершенно тупой, но очень точный ответ — так сложилось исторически. Чуть понятнее станет, если залезть на страничку CEN/XFS в Википедии: Microsoft в 91-м возглавил это безобразие. А банкам да, все похрену, они деньги зарабатывают. Тем более, эта индустрия уже очень прочно сложилась, и менять тут что-то, мягко говоря, весьма проблематично.
попытаюсь донести до вас мою мысль

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

да, я безусловно понимаю, что банк это государство в государстве, где проще объявить убыток, нежели с чем-то разбираться, но с каждым разом ком становится все больше и больше
банк эти риски уже давно покрыл ставками по кредитам, штрафами, ужимками, ухмылками и еще чем нибудь другим что они там делают в своем банке.
Дело в том, что проблема фрода банки не волнует в принципе. В США (как главного игрока на этом рынке), потому что подобные убытки застрахованы. В более других странах, в частности в России), потому что на бабло попадает клиент и его дружно посылают на все 4 стороны. То есть проблема как бы есть, но во-первых, она — у индейцев, а во-вторых, шерифа не волнует.
«США и более другие страны», спасибо, возьму на вооружение ;-)
не совсем так — проблема фрода банки волнует, поскольку уменьшив сумму страховки, можно уменьшить существенно выплаты по ней (заработать денег) Вопрос в том, что техническое решение должно стоить существенно дешевле нежели текущие выплаты, и не должно быть сложным чтобы отпугнуть клиентов из банка.

А вот таких решений пока нет — поэтому банки платят по страховке.
Не совсем так, не берусь сказать за США, но в Европе многие (если не все) банки посылают вас, если при фроде использовался ПИН. Их ответ типа «вы сами себе злой буратина, если кто-то смог подсмотреть ваш пин»
когда убытки*10 будут приближаться по размеру к прибыли тогда директор банка даст писссды программистам или закроет банк, как не рентабельный и все… а вы все еще будете настраивать свою «идеальную» систему выдачи денег…

все бы думали, как вы…
так бы и войн не было, а то вдруг солдата взломают вражеской пулей и окажется, что генералы они лажанулись с выбором «биороботов» ;) не то что перефекционисты, они не воют… т.к. создают идеального солдата )
вы рассуждаете о деньгах, которых у вас наверное никогда не будет, причем делаете очень легко, а тут надо думать :-) да и не перфекционист я, по мне проще 1 раз подумать и сделать, чем страховать и перестраховывать риски, надеясь что они лопнут уже после моей смерти

P.S. какой-то тролль уже минусует непонятно за что
Совершенно верно. Когда приходишь работать в компанию с четко определенной точкой зрения на платформу, твое мнение (холиварное) никого не интересует. Работает все под Windows — значит изволь писать под эту ОС/обслуживать эту ОС.
Заказчиком выступает банк. Специалист обязан лишь реализовать услугу.
UFO just landed and posted this here
дело не в линуксе и не в массовом заражении, как мне кажется, а в конкретном точечном ударе по дырке где-то внутри конкретного вида банкоматов
Правильно. Причем, дырка в оборудовании.
по этому поводу пожалуйста развернутый ответ :-)))
«Дело в том, что в некоторых банкоматах Diebold были установлены старые клавиатуры, не соответствующие современным требованиям безопасности»

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

Написать вирус под конкретную инсталляцию любой ОС не проблема.

Тут сыграл человеческий фактор + несоответствие стандартам.
И жадность. Diebold продает на рынке 2 варианта клавиатур: соответствующую всем последним стандартам и попроще. Последняя стоит значительно дешевле.
UFO just landed and posted this here
Непонятно, за что человека минусуют. С точки зрения «как вообще должно быть правильно» с ним согласно все общество кодеров банкоматного софта, ящитаю. Другой вопрос — как это все продается и преподносится. Это вообще спонтанные явления, основанные на межчеловеческих отношениях, тут рассчитывать на логику не надо. Вот, решили случайно Windows, а все теперь мучаются. Банки — такие банки.
Будучи пользователем и разработчиком под MS полностью согласен что в этой сфере нужно разрабатывать специализированное ПО, а не строить на основе закрытой системы.
Банки — такие банки.
Дело в том, что сами банки очень слабо могут повлиять на выбор ОС, установленной внутри банкоматов.
Банкоматами в банках занимается подразделение процессинга, которое обычно либо достаточно автономное и независимое, либо вообще отдаётся на аутсорсинг в стороннюю процессинговую компанию. А процессинговая компания сама не устанавливает ОС в банкоматы, она закупает готовые банкоматы с готовым программно-аппаратным комплексом (т.е. уже с виндой на борту). Учитывая, что эти Windows Embedded закупаются поизводителями банкоматов в огромных количествах, то и по цене они для них достаточно дёшевы, вот и не парятся.

В итоге получается, что для смены ОС и всей платформы банкоматского ПО банку нужно надавить на процессинговую компанию, а тем уже на производителей банкоматов. Т.е. прямого влияния на выбор ОС банки зачастую оказать не могут.
вы че стукнулись об мониторы оба?
Да. А причина очень банальна — OS/2 не поддерживала Pentium IV и далее, вот и все. Эх, вот это софт был… Я даже как-то FTP сервер туда в билд вкорячил, чтобы картинки удаленно менять.
Зачем в банкомате P-IV и дальше?
А что вы можете еще предложить? Специально для вас (банкоматостроителя) никто P133MMX делать не будет, покупайте то, что есть.
P133 не будет, а 486 с разгоном — будет. Vortex86SX называется, продаётся в эпических мастшабах как эмбеддед платформа с поддержкой x86.
Вероятно, старые Пентиумы и системные платы под них (а также память и т.д.) просто перестали выпускать.
Вероятно, C3 и C7 у виа выпускать не перестали, так же как и вортексы.
в Сбере Вам бы за фтпшку быстренько печенек накидали…
[trolling]
А авторан с флеше… банковских карт они выключили?
[/trolling]
Евгений Касперский о банкоматах и проблеме возврата денег.
Какое-то рваное видео. Ужасный монтаж.
Diebold-овское железо уже кто только не дырявил. Вспомнить хотя бы историю с их машинами для выборов.
Почему его еще покупают — загадка для меня.
говорят остальное ещё хуже. для срвисников банкоматов диболд чуть-ли не икона. ну там ncr ещё.
немного запутали вы меня с ключами, но в целом довольно интересно.
То есть, если я правильно понял, таким образом становится невозможным клонировать карту, при помощи подставного софта в банкомате, потому что этот софт понятия не имеет, как расшифровать пин карты и просто передаёт его на сервер. Не понятно, а зачем, собственно нам в API предоставляется возможность получить хоть и зашифрованый, но пин? То есть именно наше приложение должно передовать серверу факт того, что вот мол карта вставлена, на ней набран пин — теперь я хочу от тебя вот этого.

Просто у меня следующий вопрос: Что мешает написать софт, который будет тупо сохранять этот зашифрованные пин коды и номера карт. Понятное дело, что нигде, кроме именно этого банкомата с текущим рабочим ключом эти пин коды смысла никакого не имеют. Но если наше прилождение может явиться инициатором какой-либо операции — то ведь мы можем передать сохранённые нами данные? Или банкомат всё-же сам должен на аппаратном уровне говорить серверу, что вот мол карта вставлена, вот набран пин, и т.п.?
на карте пин не записан, чтобы сделать клон карты достаточно считать магнитную полосу. С пином просто можно ее максимально быстро обналичить. А уж как они его у вас уведут — через вирус ли, через накладную клавиатуру на банкомате, через видеокамеру, спрятанную неподалеку — поверьте, вам будет все оавно
Не ну я и имел ввиду — клон карты с возможностью обналичить, меня именно техническая особенность всей этой технологии интересует.
Если внимательно читать, то станет понятно — в старых Диболдах с, назовем ее, специфичной клавиатурой можно сделать клон карты вместе с PIN-кодом. В остальных (NCR, Wincor Nixdorf) банкоматах — не получится.
А, тем не менее, я вот тоже не понял этого момента.

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

Где подвох?
Присоединяюсь к вопросу. Судя по описанию автора набор номеркарты-пин-рабочийключ однозначно определяет зашифрованный блок.
Непонятно, что тут непонятного :)
Цель вирусописателя — изготовить дубликат карты. Далее, для изготовления дубликата карты требуется магнитная полоса и PIN. Дыра в некоторых клавиатурах банкоматов Diebold позволяет вычислить PIN. Магнитная полоса (которая содержит и номер карты, и срок действия, и много чего еще) считывается с кардридера.
Я так понял, что вопрос в следующем…
Допустим, у нас есть банкомат не Диболд, а правильный (с правильной защитой клавиатурных ключей). В нём же всё равно проходят и данные карты и зашифрованный PIN.
Что мешает злоумышленику внедрить в этот аппарат шпионскую программу, которая во время обычной операции любого клиента сохранит данные его карты и зашифрованный пин-код (пусть даже зашифрованный легитимным нескомпрометированным ключом), а потом с помощью этих данных проведёт левую сделку, например, в заданное время выплюнет из банкомата пачку денег со счёта запомненной карты (допустим деньги подберёт злоумышленик или нанятый им дроп).

Т.е. что мешает злоумышленику использовать зашифрованный пин в рамках того же банкомата (даже без подмены ключей)?
Я пока не понял, как можно использовать зашифрованный PIN, кроме как с целью подосрать владельцу карты, списав чего-нибудь с его счета. Если надо выдать наличные — для этого есть специальная функция работы с диспенсером, тут не обязательно со счета что-то списывать. Если речь про какуюнибудь покупку — то в банкомате такие операции не проводятся, там хост не даст. Да и вообще, некоторые параноики рабочие ключи раз в день меняют.
а алгоритм шифрования ПИН-кода разве не динамический???
Просто, если выдавать деньги напрямую из диспенсера, при инкассации чего-нибудь не сойдётся, и всё это быстро прикроют.

А при проводке дополнительных операций по той же карте квазилегальным методом банк может оставаться не в курсе ещё очень-очень долго…
Да, и хрен потом чего оспоришь — ты снимал, не ты…
Ну по идее должна быть какая-то защита от replay-атак, например, использование при шифровании PIN'а случайного неповторяющегос числа.
Есть такая, макирование называется. Правда, редко кто этим заморачивается, к сожалению.
хороший пример бага в железе.
спасибо.
Автор, ты на лепре сидишь что-ли?
Вы так говорите, как будто это что-то плохое.
а личка для чего? ты еще топик создай в песочнице: Аффтар, а ты на Лепре сидишь, а?
Читая ваш пост, я получил из пролетающего НЛО идею. Снимать фильмы про хакинг\разработку\что-то подобное в стиле, подобном вашему. "… И тут ГГ падает на клавиатуру, уснув от тяжелого кодинга и во сне ему приходит решение задачи. Он, практически сквозь сон, набирает код который красиво обходит последную стену защиты на сервере. Тут всякие спецэффекты как код мечом разфигачивает купол защиты над ядром" :)
Извините за бред.
Вполне качественный бред, мне нравится ))
Жизнь без него была бы скучнее xD
… но до появления вируса все они носили физический характер. А вот вирус весьма интересен, ибо вывел технологию принципиально на новый уровень – PIN-коды стали тырить на программном уровне…

Чтобы «стырить» ПИН по Вашему описанию нужно сначала все-таки получить физический доступ к usb портам банкомата (вскрытие технологического отсека, знание админского пароля, etc). А при использовании физического доступа (ДО повального применения 3DES) в истории были возможности перехвата ПИНа. Однако за Деболды говорить квалифицированно не могу, могу только за NCR :)
UFO just landed and posted this here
Рассказывали, что с этим банкоматным вирусом так и было. Данные о картах и пинах извлекались злоумышлеником из банкомата через обычный чековый принтер.
Что-то я не понял про USB-порты, можно чуть поподробнее, что они дают?
чтобы залить червя в систему, нужно сначала физически получить доступ к устройствам, через которые внедряется вредоносный код — usb для флешек или клавиатуры. А данные порты находятся в технологическом отсеке. Так что прежде программного взлома идет подбор доступа на физическом уровне.
Да там инженер какой-нибудь орудовал, стопудово. В банкомате 2 отсека — верхний, где комп/принтер/кардридер/… и нижний, где бабло (сейф). От верхнего все ключи одинаковые (ну, если конечно банк не страдает кретинизмом), всякие пароли тоже, как правило одинаковые ставят для простоты. Вот и получается, что чего-нибудь записать в комп грамотному инженеру весьма просто. Я же говорю, юзайте плюшки типа Солидкора, и проблем не будет.
UFO just landed and posted this here
я так понимаю через сам банкомат и специальные карты
UFO just landed and posted this here
Ну и распечатка длинного чека с треками и пинами, знамо дело.
Книга в тему — zhurnal.lib.ru/m/malow_a_a/first12.shtml
Претендует на звание биографии, но всё-таки является художественной. Что, правда, не умаляет её достоинств в качестве описания на пальцах процесса кардинга.
так ли уж проблематично?

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

Вот ради таких топиков и стоит читать хабр, спасибо.
Огромное спасибо за пост) Наблюдал эту ситуацию со стороны пиара одной из АВ-компаний, тогда ДрВеб и ЛК замечательно отработали повод, хотя «антивирусного» там было — кот слезы)))) Но выхлоп был грандиозный) Жаль, у меня тогда не получилось раскрутить своих на говнопиар)))
Я извиняюсь, что в каждом каменте тут мельтешу, но поясню все же. Тут дело вот в чем. Windows для банкоматов поставляется в OEM-редакции, которая позволяет ему работать, грубо говоря, только с конкретными версиями BIOS. Соответственно, на сабжевом поциэнте либо поставили вообще левый софт (что маловероятно), либо забыли проапгрейдить BIOS после замены материнки. Бывает, че там. Хотя, этот Wincor довольно новеньким выглядит, странно.
grabber.exe, по версии Google, выполняет передачу звукового потока по сети.
Уж не знаю, левый он или нет, но мне, как только увидел, имя файла показалось весьма странным.
Точно, я не очень внимателен. В свое время гуляла подобная картинка, вот я и сделал выводы. А здесь да, результат налицо — решили по-быстрому какой-нибудь новый софт внедрить, вот и вляпались. Не Орловского проделки?
> Орловского
О ком идет речь?
Да так, весело-зелененьким цветом навеяло. Ложная тревога, короче, отбой.
А что, Орловский сам кодит? Если Вы про вице-преза Сбера…
Ну как-бы рыба гниет с головы. Если начальник хочет, «чтоб завтра все было и похеру как это будет сделано», то и качество этого будет соответствующее, какими бы гениальными кодеры ни были. Там же, говорят, идеи, как из рога изобилия прут. Лепят все, что только в голову приходит. Я не из Сбера, есличо.
Банкомат ПриватБанковский, если что.
а это разве не olivetti?
Инкассаторы их так всегда называют: дебилоид.
да, довольно интересно, только не понятно одно, если мы вводим пин-код и он сразу подается в шифрованном виде, при проверке кода системой он же должен расшифровываться… или система уже знает шифры к каждому пин-коду?
Да, процессинг «знает» и мастер ключ, и рабочий ключ каждого банкомата. В кавычках потому, что все гораздо хитрее, и в открытом виде, конечно же, эти ключи нигде не валяются. Ключевое слово тут страшный прибор HSM (Host Security Machine).
Вроде да, module по науке. Я всегда machine называл. Тут главное — его скорострельность, а как он там зовется, пофиг :)
только Hardware Security Module :)
Точно! Мы вместе нашли истину :)
UFO just landed and posted this here
UFO just landed and posted this here
Значит надо написать еще один вирус, который сграбит трек спецкарты, а потом склонировать ее.
Что такое криптографические ключи для банкомата? Это три tdes компоненты. Два ключа приходят сотрудникам на ввод в банкомат. Один остаётся в голове на процессинге. «Чистых» ключей не видит никто кроме того, кто вводит, а тот кто вводит не видит всех компонент, т.к. есть третий кто следит за тем, чтобы никто не подглядывал друг у друга.

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

Опять же, есть макирование к ключам. Макирование обычно работает только на коротких ключах (одинарной длины = 16 hex-символов). Грабли эти «утоптанные». Я не помню, чтобы на АТМ это где-то настраивалось, может где-то да есть какие-то флаги в этой TCS, но тут больше от процессинга зависит.

Сессионый МАК-ключ одинарной длинный генерируются под длинны Мастер-ключом и грузится в АТМ перед началом каждой прогрузки конфигурации. Команда генерации лежит в самом начале конфиг-файла. Пока грузятся экраны — макирование не используется. После экранов начинает грузится таблица стейтов и вот тут начинает работать макирование.

Если мак-трейлер для первой посылки стейтовой таблицы на АТМ отличается, то посылка отвергается и на хост летит Specific Command Reject. Прогрузка после этого прекращается и на хосте регистрируется Security Module — Error. Далее нужно сверять текущие суммы МАК-ключей на АТМ и на хосте. Либо EPP энкриптор «погнулся», либо хрень какая-то с софтом (например те самые вирусы с флешко), но это маловероятно. Тем-более если регулярно делать рекомендованный этими вашими визами аудит софта, да аджылисы на хостах апдейтить…
Не раз видел на банкоматах (в т.ч например у Сбербанка) панель задач, консоль и например окно с ошибкой PPTP протокола. Более того, у меня есть инстинктивное ощущение что лучше бы использовать Линукс (я сам его не люблю, но тут бы он подошел) так как там можно радикально урезать все функции, а в той же винде то рабоичй стол остается, то диспетчер задач, то еще что-нибудь, то какое-нибудь системное окно выскочит, она же зараза ошибки в логи писать не умеет.

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

Вот, а еще вопрос как туда вирус попадал, кстати. Очевидно без помощи сотрудников банков тут не обошлось.
Золотой комментарий, все так и есть.
// Про способ попадания тоже верно.
>Не раз видел на банкоматах (в т.ч например у Сбербанка) панель задач, консоль и например окно с ошибкой PPTP протокола.

по идее там не тачскрин, так что остается пожаловаться в банк, что АТМ не работает. А вот в Redbox я помнится по менюшкам немного полазил:)

>а в той же винде то рабоичй стол остается, то диспетчер задач, то еще что-нибудь, то какое-нибудь системное окно выскочит,

не помню, как там было в инструкции по банкоматам, но можно сделать и custom desktop, с которого кроме запуска одной программы ничего не доступно. А системные сообщения или BSOD(omg!) скорее всего приведут к неработоспособности АТМ.

>она же зараза ошибки в логи писать не умеет.
лолпроститешто?

>В общем, думаю дело в том что у нас банкам жалко денег на разработку,
Банки покупают готовые решения, иначе половина века и половина «прибыли» уйдет на разработку крайне надежной и засекреченной системы. Которая все равно сфейлит.
Я все думал и не мог понять, как можно украть пин-код, если из пин-пада он выходит шифрованный? А вот оказывается можно! Спасибо за статью!
Банкоматы соединены напрямую в Банк или через Процессинговый центр?
Где об этом можно почитать? Как вообще устроена архитектура всех этих межбанковских связей?
Если без нудных подробностей, то так:
По своим картам: банкомат <-> ПЦ [ <-> АБС,… ]
По чужим картам: банкомат <-> ПЦ <-> платежная система <-> ПЦ банка-эмитента [ <-> АБС,… банка-эмитента ]

*1 банк-эмитент — это банк, выпустивший карту
*2 свои карты — карты банка-эмитента, засунутые в его же банкомат (напр. карта Сбера, вставленная в банкомат Сбера)
*3 платежная система — Visa, MasterCard и т. п.
*4 [АБС, ...] — банковские системы, у всех разные; может и не быть вообще
Спасибо!
Можно даже и с подробностями, если есть ссылки на чтение.
Only those users with full accounts are able to leave comments. Log in, please.