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

info

О прин­ципах, на которых стро­ится безопас­ность бан­ков­ских пла­теж­ных сис­тем, ты можешь узнать в стать­ях «Раз­бира­емся, как работа­ют сис­темы безопас­ности кре­дит­ных карт» и «Как хакеры кра­дут день­ги с бан­ков­ских карт».

 

Чиповое легаси

Один из видов информа­ции, содер­жащей­ся на чиповой кар­те, — это так называ­емый Track2 Equivalent. Он прак­тичес­ки один в один пов­торя­ет содер­жимое маг­нитной полосы и, ско­рее все­го, слу­жит в качес­тве парамет­ра иден­тифика­ции кар­ты в сис­темах HSM и дру­гих под­систе­мах кар­точно­го про­цес­синга. Один из видов атак, которые вре­мя от вре­мени про­водят­ся зло­умыш­ленни­ками, под­разуме­вает запись дан­ных Track2 Equivalent на маг­нитную полосу, пос­ле чего мошен­ничес­кие опе­рации про­водят­ся либо как обыч­ные тран­закции по маг­нитной полосе, либо в режиме technical fallback. Для хищения таких дан­ных из бан­коматов исполь­зуют­ся так называ­емые шим­меры.

Шиммер — устройство для незаметного снятия данных при использовании чиповых карт в банкоматах
Шим­мер — устрой­ство для незамет­ного сня­тия дан­ных при исполь­зовании чиповых карт в бан­коматах

В одной из ста­тей о шим­минге упо­мина­ется, что в 2006 году, в самом начале выпус­ка чиповых карт, в Великоб­ритании поле Track2 Equivalent содер­жало в себе ори­гиналь­ный CVV2/CVC2. Из‑за этой ошиб­ки было лег­ко соз­давать кло­ны маг­нитных полос карт, по которым опла­та про­исхо­дила с помощью чипа. Тог­да пла­теж­ные сис­темы решили исполь­зовать раз­ные seed при генера­ции полей CVV2/CVC2 на маг­нитной полосе и в поле Track2 Equivalent. Казалось бы, задача решена — зна­чение сек­ретно­го поля CVV2/CVC2 на маг­нитной полосе не сов­пада­ет с тем, что записа­но на чипе. Но шим­минг жив и по‑преж­нему проц­вета­ет. Почему?

Мно­гие бан­ки до сих пор одоб­ряют тран­закции со счи­тан­ными с чипа зна­чени­ями CVV2/CVC2! Об этом час­то упо­мина­ет Visa и поч­ти не пишет MasterCard. Одна из при­чин, по моему мне­нию, — прак­тичес­ки во всех кар­тах MasterCard CVC2 в Track2 Equivalent равен 000. Для рус­ских карт это так­же неак­туаль­но: сре­ди про­тес­тирован­ных мной за два года десят­ков бан­ков я не нашел ни одной кар­ты, где эта ата­ка была бы воз­можна. Тем не менее сто­ит отме­тить, что подоб­ные ата­ки по­пуляр­ны в Аме­рике.

info

Од­на из нем­ногих карт MasterCard, с которой мне уда­лось вос­про­извести эту ата­ку, при­над­лежала бан­ку, вооб­ще не про­веряв­шему зна­чение поля CVC2. Я мог под­ста­вить туда что угод­но — 000, 999 или любые дру­гие вари­анты меж­ду эти­ми чис­лами. Ско­рее все­го, в этом бан­ке не был отклю­чен режим отладки, одоб­ряющий любые тран­закции.

Чем это чре­вато? Хакер мог бы под­менить поле Service Code, ука­зыва­ющее, что кар­та не содер­жит чипа, и свер­ка целос­тнос­ти это­го поля была бы невоз­можна, потому что любой CVC2 при­нимал­ся про­цес­сингом. Уяз­вимость, очень силь­но похожая на сле­дующую в спис­ке, была быс­тро устра­нена пос­ле пись­ма в банк.

По моей ста­тис­тике, 4 из 11 карт были под­верже­ны подоб­ным ата­кам.

 

Бразильский хак

Под этим тер­мином понима­ют нес­коль­ко видов атак, в том чис­ле ата­ку на офлайн‑тер­миналы, опи­сан­ную «Лабора­тори­ей Кас­пер­ско­го». О самой мас­совой ата­ке c таким наз­вани­ем рас­ска­зывал Брай­ан Кребс. В чем суть нашумев­шей ата­ки?

В начале 2010-х чиповые кар­ты наконец‑то получи­ли широкое рас­простра­нение в США. Нес­коль­ко бан­ков начали выпус­кать такие кар­ты. Сто­ит заметить, что до сих пор самая рас­простра­нен­ная чиповая схе­ма в США — это не Chip & PIN, а Chip & Signature. Вла­дель­цу подоб­ной кар­ты не надо вво­дить ПИН‑код, а нуж­но толь­ко вста­вить кар­ту в счи­тыва­тель и под­твер­дить тран­закцию под­писью на чеке. Почему эта схе­ма так при­жилась — рас­ска­жу даль­ше.

Как мне кажет­ся, где‑то в этом про­цес­се про­изош­ла инсай­дер­ская утеч­ка информа­ции, и хакеры узна­ли, что чиповая тран­закция вро­де и про­ходит, но не про­веря­ется на сто­роне бан­ка‑эми­тен­та. Банк прос­то брал поле Track2 Equivalent и про­водил иден­тифика­цию, как если бы это была обыч­ная тран­закция по маг­нитной полосе. С нес­коль­кими нюан­сами: ответс­твен­ность за мошен­ничес­тво такого рода по новым пра­вилам EMV Liability Shift теперь лежала на бан­ке‑эми­тен­те. А бан­ки‑эми­тен­ты, не до кон­ца понимая, как работа­ли такие кар­ты, не вво­дили силь­ных огра­ниче­ний на «чиповые» тран­закции и не исполь­зовали сис­темы антифро­да.

Быс­тро сооб­разив, что из это­го мож­но извлечь выгоду, кар­деры ста­ли откры­вать мер­чант‑акка­унты и, исполь­зуя куп­ленные на чер­ном рын­ке дан­ные маг­нитных полос Track2, совер­шали сот­ни тран­закций «чипом». Рас­сле­дова­ние заняло годы, и к момен­ту его окон­чания мошен­ники уже скры­лись. Сум­мы потерь не раз­гла­шают­ся, одна­ко оче­вид­но, что они были сущес­твен­ными. Самое печаль­ное, что с тех пор жители стран Латин­ской Аме­рики ры­щут по все­му све­ту в поис­ках «белых китов» и активно тес­тиру­ют бан­ки, пыта­ясь най­ти дру­гой такой же неот­клю­чен­ный отла­доч­ный интерфейс.

 

Cryptogram Replay и Cryptogram Preplay

«В дикой при­роде» подоб­ная ата­ка наб­людалась лишь еди­нож­ды. Она была задоку­мен­тирова­на и опи­сана (PDF) в иссле­дова­нии извес­тных спе­циалис­тов из Кем­бридж­ско­го уни­вер­ситета.

Суть ата­ки зак­люча­ется в обхо­де механиз­мов, обес­печива­ющих уни­каль­ность каж­дой тран­закции и крип­тограм­мы. Ата­ка поз­воля­ет «кло­ниро­вать тран­закции» для даль­нейше­го исполь­зования уже без дос­тупа к ори­гиналь­ной кар­те. В пер­вой час­ти уже рас­ска­зыва­лось, что на вхо­де кар­та получа­ет опре­делен­ный набор дан­ных: сум­му, дату тран­закции, а так­же два поля, обес­печива­ющих энтро­пию, даже если сум­ма и дата оди­нако­вые. Со сто­роны тер­минала энтро­пию 232 обес­печива­ют 4 бай­та поля UN — слу­чай­ного чис­ла. Со сто­роны кар­ты — ATC-счет­чик опе­раций, уве­личи­вающий­ся каж­дый раз на еди­ницу. Псев­дофун­кция выг­лядит при­мер­но так:

Cryptogram=Signature(ATC,UN,Amount,Misc,SecretKey)

Ес­ли одно из полей меня­ется, изме­няет­ся и выход­ное зна­чение крип­тограм­мы. Одна­ко что про­изой­дет, если все поля оста­нут­ся преж­ними? Зна­чит, и преж­няя крип­тограм­ма оста­нет­ся валид­ной. Из это­го сле­дуют две воз­можнос­ти атак на чиповые тран­закции.

Cryptogram Replay. Если ском­про­мети­рован­ный тер­минал выда­ет одно и то же поле UN, однажды счи­тан­ная с кар­ты крип­тограм­ма с передан­ным пред­ска­зуемым полем UN может исполь­зовать­ся сколь­ко угод­но раз. Даже на сле­дующий день зло­умыш­ленни­ки могут переда­вать информа­цию о ста­рой крип­тограм­ме со ста­рой датой в зап­росе на авто­риза­цию, и это не при­ведет к отка­зу. В моих прош­логод­них тес­тах я пов­торил одну и ту же крип­тограм­му семь раз на про­тяже­нии семи дней, и это не выз­вало никаких подоз­рений у бан­ка.

Схема атаки Cryptogram Replay
Схе­ма ата­ки Cryptogram Replay

Cryptogram Preplay. Эта схе­ма исполь­зует­ся, если уяз­вимый тер­минал воз­вра­щает не один и тот же UN, но выда­ет их пред­ска­зуемы­ми. Имен­но так работал уяз­вимый бан­комат в опи­сан­ной выше маль­тийской ата­ке. В таком слу­чае зло­умыш­ленник при физичес­ком дос­тупе к кар­те кло­ниру­ет нес­коль­ко тран­закций «на будущее». В отли­чие от пер­вой ата­ки, каж­дая тран­закция может исполь­зовать­ся толь­ко один раз.

Эта ата­ка инте­рес­на с исто­ричес­кой точ­ки зре­ния раз­вития про­токо­ла EMV. Ког­да про­токол соз­давал­ся, поле ATC было соз­дано спе­циаль­но для защиты от подоб­ных атак.

Банк‑эми­тент дол­жен был про­верять зна­чение поля ATC, и, если эти зна­чения при­ходи­ли не по поряд­ку, с замет­ными скач­ками, подоз­ритель­ные тран­закции откло­нялись.

Нап­ример, если на про­цес­синг пос­тупали тран­закции зна­чени­ем ATC 0001, 0002, *0008*, *0008*, *0008*, 0009, 0010, *0003*, *0004*, то опе­рации, номера которых выделе­ны в этой пос­ледова­тель­нос­ти, дол­жны были счи­тать­ся подоз­ритель­ными и откло­нять­ся про­цес­сингом. Но затем начали пос­тупать жалобы от кли­ентов, и в тех­нологию были вне­сены кор­ректи­вы.

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

  • скач­ки дол­жны счи­тать­ся, толь­ко если дель­та меж­ду зна­чени­ями счет­чика «выше Х», где зна­чение Х каж­дый банк дол­жен опре­делять инди­виду­аль­но;
  • скач­ки не обя­затель­но слу­жат приз­наком мошен­ничес­тва, одна­ко пос­тоян­ные скач­ки выше зна­чения Х — это повод свя­зать­ся с кли­ентом для выяс­нения обсто­ятель­ств.

При этом за бор­том изме­нений остался пер­вый сце­нарий — cryptogram replay. Если кар­точный про­цес­синг спро­екти­рован кор­рек­тно, нет ни одно­го разум­ного объ­ясне­ния ситу­ации, ког­да один и тот же набор дан­ных (Cryptogram, UN, ATC) пос­тупа­ет на вход мно­го раз и успешно одоб­ряет­ся бан­ком. За пос­ледний год я отпра­вил информа­цию об этой ата­ке более чем в 30 раз­ных бан­ков и получил дос­таточ­но широкий спектр отве­тов.

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

Кро­ме того, даже офлайн‑аутен­тифика­ция не всег­да помога­ет: ее мож­но обой­ти либо пред­положить, что источник UN ском­про­мети­рован и в ней. В этом слу­чае мож­но заранее выс­читать резуль­тиру­ющие зна­чения схем аутен­тифика­ции DDA/CDA для пред­ска­зуемо­го поля UN.

Ста­тис­тика показы­вает, что 18 из 31 бан­ков­ской кар­ты под­верже­ны ата­кам replay/preplay в отно­шении кон­так­тно­го или бес­контак­тно­го чипа. При этом в Рос­сии я не смог най­ти ни одно­го уяз­вимого для это­го типа атак бан­ка, что край­не любопыт­но.

 

PIN OK

По­жалуй, это самая извес­тная ата­ка на чипы. Пер­вые теоре­тичес­кие пред­посыл­ки к этой ата­ке коман­да из Кем­брид­жа опи­сала в 2005 году в иссле­дова­нии Chip and Spin, за год до того, как стан­дарт EMV получил рас­простра­нение в Великоб­ритании. Но повышен­ное вни­мание к этой ата­ке воз­никло гораз­до поз­днее.

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

Устройство для реализации техники «человек посередине»
Ус­трой­ство для реали­зации тех­ники «человек посере­дине»

В 2011 году на кон­ферен­циях Black Hat и DEFCON груп­па иссле­дова­телей из Inverse Path и Aperture Labs пред­ста­вила боль­ше информа­ции об этой ата­ке. Тог­да же, в 2011 году, орга­низо­ван­ная прес­тупная груп­пиров­ка исполь­зовала 40 укра­ден­ных бан­ков­ских карт для совер­шения 7000 мошен­ничес­ких тран­закций, в резуль­тате которых было укра­дено 680 тысяч евро. Вмес­то при­меняв­шегося иссле­дова­теля­ми гро­моз­дко­го устрой­ства прес­тупни­ки вос­поль­зовались малень­ким незамет­ным «вто­рым чипом», уста­нов­ленным поверх ори­гиналь­ного, что поз­воляло эму­лиро­вать ата­ку в реаль­ных усло­виях.

В декаб­ре 2014 года иссле­дова­тели из Inverse Path сно­ва под­няли тему атак на тран­закции EMV и пред­ста­вили нем­ного ста­тис­тики, соб­ранной ими за три года (PDF). В 2015 году было выпуще­но деталь­ное тех­ничес­кое иссле­дова­ние ата­ки (PDF), совер­шенной неиз­вес­тны­ми зло­умыш­ленни­ками в 2011 году.

Да­вай рас­смот­рим тех­ничес­кие детали этой ата­ки. Для ее реали­зации, напом­ним, нуж­но исполь­зовать тех­нику man in the middle. Кар­та переда­ет тер­миналу поле CVM List (Сard Verification Method) — при­ори­тет­ный спи­сок методов верифи­кации вла­дель­ца кар­ты, под­держи­ваемых кар­той. Если пер­вое пра­вило на кар­те «офлайн‑ПИН шиф­рован­ный/нешиф­рован­ный», на этом эта­пе ничего не про­исхо­дит. Если пер­вое пра­вило дру­гое, то во вре­мя ата­ки пер­вое пра­вило под­меня­ется на «офлайн‑ПИН».

За­тем тер­минал зап­рашива­ет у вла­дель­ца кар­ты ПИН‑код. Пра­вило «офлайн‑ПИН» озна­чает, что ПИН‑код будет передан кар­те для свер­ки в откры­том или шиф­рован­ном виде. В ответ кар­та либо отве­тит 63C2 «Невер­ный ПИН, оста­лось две попыт­ки», либо 9000 «ПИН ОК». Имен­но на этом эта­пе зло­умыш­ленник, внед­ривший­ся в про­цесс авто­риза­ции, заменит пер­вый ответ вто­рым.

На дан­ном эта­пе тер­минал счи­тает, что ПИН вве­ден кор­рек­тно, и зап­рашива­ет у кар­ты крип­тограм­му (зап­рос Generate AC), переда­вая ей все зап­рашива­емые поля. Кар­та зна­ет, что ПИН либо не вве­ден сов­сем, либо вве­ден некор­рек­тно. Но при этом кар­та не зна­ет, какое решение даль­ше при­нял тер­минал. Нап­ример, есть тер­миналы, которые при вво­де некор­рек­тно­го ПИН‑кода про­сят дер­жателя кар­ты пос­тавить под­пись на тачс­кри­не — дела­ется это для его же ком­форта. Поэто­му, ког­да тер­минал зап­рашива­ет крип­тограм­му, кар­та отда­ет ее. В отве­те содер­жится поле CVR — Card Verification Results, которое ука­зыва­ет, был ли про­верен ПИН‑код кар­той или нет. Более того, это поле явля­ется частью пла­теж­ной крип­тограм­мы, и под­менить его зна­чение зло­умыш­ленни­кам не удас­тся: попыт­ка при­ведет к ошиб­ке свер­ки крип­тограм­мы на HSM.

Тер­минал отсы­лает все дан­ные в пакете ISO 8583 Authorization Request бан­ку‑эквай­еру, затем они пос­тупа­ют бан­ку‑эми­тен­ту. Банк видит два поля: CVMResults, которое ука­зыва­ет, что в качес­тве метода верифи­кации был выб­ран офлайн‑ПИН и что тер­минал под­держи­вает этот метод верифи­кации. Но еще банк видит, что кар­та НЕ при­няла ПИН‑код либо что он был вве­ден некор­рек­тно. И нес­мотря ни на что, одоб­ряет тран­закцию.

Ес­ли кар­та исполь­зует схе­му аутен­тифика­ции CDA и зло­умыш­ленни­кам необ­ходимо под­менить пер­вое пра­вило CVM list, офлайн‑аутен­тифика­ция будет завер­шена с ошиб­кой. Одна­ко это всег­да обхо­дит­ся под­меной полей Issuer Action Code. Под­робнос­ти дан­ного слу­чая опи­саны в пос­ледней вер­сии пре­зен­тации от 2014 года экспер­тами из Inverse Path.

Так­же в пер­вом иссле­дова­нии от 2011 года спе­циалис­ты показа­ли, что стан­дарт EMV поз­воля­ет не откло­нять тран­закции на пла­теж­ном устрой­стве, даже если безопас­ные методы аутен­тифика­ции и верифи­кации не сра­бота­ли, а идти даль­ше, каж­дый раз выбирая менее безопас­ные методы (так называ­емый fallback). Это откры­вает перед зло­умыш­ленни­ками дру­гие воз­можнос­ти, вклю­чая ата­ки на похище­ние ПИН‑кода во вре­мя опе­раций на ском­про­мети­рован­ных POS-тер­миналах.

 

Заключение

Ин­терес­ная ста­тис­тика за пос­ледний год: нес­мотря на то что еще в 2010-м «нас­тоящие безопас­ники» из бан­ков уми­лялись тому, как кто‑то не сле­дит за оче­вид­ными проб­лемами кар­точно­го про­цес­синга, в 2020 году все при­мер­но так же пло­хо. Ста­тис­тика про­верок за прош­лый год показа­ла, что 31 из 33 карт бан­ков с раз­ных угол­ков Зем­ли, вклю­чая рос­сий­ские, уяз­вима к этой ата­ке.

В сле­дующей статье я рас­смот­рю схе­мы атак на бес­контак­тные кар­ты и свя­зан­ные с ними при­ложе­ния — мобиль­ные кошель­ки.

5 комментариев

  1. Аватар

    Laglag

    25.02.2021 в 22:13

    Не совершено это… Откат даты, подмена са… Что то развитие дальше не идёт…
    Думаю аналог wpi глабальной развёртки, а что нет… До сих пор только и умеют нажимать далее… Смешно… И слезы на глазах… тепло и уютно главное… Делаешь… Ломают… И не дают делать… По этому варитесь в своём том что вы сами делаете.
    Маскарад с крипта пока что хоть как то даёт возможность жить. Но проходят и убивают… Жёстко… Как я устал… В неудобные условия работ ставят… Ограждаясь и так живя…
    Упорно до чего дотчоиваются или убивают или контролируют… Страшно не должно быть. Есть мозг.

  2. Аватар

    Laglag

    25.02.2021 в 22:38

    Автору статьи понятие хотя бы примерное не из книг теоретиков. За статью сам понимаешь оценка какая. Начни с простого, даже картинка для тебя будет тяжёлым испытанием понять, допустим, как объеснить человеческим языком, ты теоретик. Тебе практика нужна. Представь что есть коробка из под кружки или чего нибуть ещё. Её рампоковввпешь, её может распокововать любой и посмотреть. Но там лежать осколки от ручки если посмотреть какие то символы, тебе не надо все это вытаскивать и пытаться понять. Ты берёшь незпглялывая внутрь просто ставишь и там уже введя как объеснить то… Пусть будет часть… как это есть в пинцвпи участок далее уже идёт полный обробочик. Начни реально с этого. Это тяжело. Я не советую даже в эту сторону смотреть у тебя мозг поедит а прикинь… Щас идёт майнинг слем…
    Щас в принципи мне запретили шифровать выше мд5… Ша 2048 идёт разбор на лету… У меня целиком сервер заточен в постоянном режиме на шифр своих… Но меня прошли и убили 2 тб моего детства… Поймали кусок и все…
    Удачного развития. Что посоветовать то… Не парся по поводу считоватплей. Комп есть… Все считыватель лажа… Есть данные… Считыватель это usb образно говоря порт который принимает образно говоря ключ в котором есть ячейка. Другой участок просто защищён от записи чисто на чтение… Хотя бы посмотри как идёт процесс всего этого. Извини может инфа интересная но для меня очень мудрено написано. Я как понимаю так и рассказываю.

  3. Аватар

    rayenfizz

    08.03.2021 в 18:46

Оставить мнение