1 puntos por GN⁺ 1 시간 전 | 1 comentarios | Compartir por WhatsApp
  • PCI DSS restringe el almacenamiento y la visualización de datos de tarjetas, pero incluso con solo información permitida como el BIN, los últimos 4 dígitos y la fecha de vencimiento, se pueden seguir intentando cargos adicionales en otros comercios
  • Desde una cuenta comprometida, el atacante obtuvo a través de la página de 3D Secure del banco información sobre si la tarjeta seguía siendo utilizable, el nombre del banco, el número de tarjeta enmascarado y la fecha de vencimiento completa, y unas 6 horas después generó intentos de autenticación en varios comercios
  • El número de tarjeta de pago (PAN) tiene una estructura compuesta por IIN, identificador de cuenta y dígito de control Luhn, y si la respuesta de la pasarela de pago distingue qué valor es incorrecto, se vuelve más fácil adivinar el PAN, la fecha de vencimiento y el CVV
  • La velocidad de prueba real fue de 6 intentos por segundo, alrededor de 2 por segundo por API, y como la IP iba cambiando mediante proxies y también cambiaba continuamente el número de tarjeta, para el comercio es difícil detectar la fuerza bruta
  • El atacante usó comercios con excepción de 3D Secure para mover a una billetera electrónica todo el límite reducido de la tarjeta; el dinero fue devuelto mediante contracargo, pero el límite de velocidad del banco para CVC2 solo bloqueaba por unos minutos

Lo que PCI DSS bloquea y lo que deja expuesto

  • PCI DSS es un estándar de la industria que define las medidas mínimas de seguridad necesarias al manejar datos bancarios sensibles como los de tarjetas de crédito, y restringe el almacenamiento y la visualización para evitar que se exponga toda la información incluso si una cuenta es comprometida o los datos de la tarjeta llegan a terceros
  • Según PCI DSS 4, la información que puede mostrarse en pantalla o en un recibo es el PAN enmascarado, el nombre del titular, el código de servicio y la fecha de vencimiento; en el PAN pueden mostrarse el BIN y los últimos 4 dígitos
  • La información que no puede mostrarse se limita a los datos completos de pista, el código de verificación de la tarjeta y el PIN/bloque PIN
  • Tanto los sitios de comercio electrónico como los recibos físicos pueden verse afectados por el mismo problema, y parte de la información de la tarjeta puede quedar expuesta no solo por una cuenta comprometida sino también por recibos que no hayan sido destruidos

Flujo del incidente

  • La víctima usaba una tarjeta de crédito virtual con límite restringido, tenía activado 3D Secure como segundo factor de autenticación y solo guardaba la tarjeta en comercios conocidos
  • Después de que una cuenta creada hace mucho tiempo fuera comprometida, llegó un SMS por un intento de compra en un sitio web donde la tarjeta estaba guardada; la víctima inició sesión de inmediato, cambió la contraseña, verificó si la compra se había realizado y redujo considerablemente el límite de la tarjeta virtual
  • La razón por la que no desactivó por completo la tarjeta fue que consideró que la información completa de la tarjeta no había sido comprometida
  • Aproximadamente 6 horas después de la intrusión inicial, ocurrieron entre 3 y 4 intentos de SMS de 3D Secure en varios comercios no utilizados por la víctima; todos fallaron, pero luego se volvieron una pista importante para entender el método de ataque
  • Unos minutos después, mientras llamaba al banco para desactivar por completo la tarjeta, el atacante usó otro comercio sin 3D Secure para extraer varias veces el total del límite reducido mediante pagos
  • El dinero fue movido a la billetera electrónica de un mercado desde el que podía retirarse en efectivo, y la víctima recuperó el dinero del banco tras solicitar un contracargo

Información que obtuvo el atacante

  • El atacante intentó realizar un pago desde la cuenta comprometida, vio la página de 3D Secure del banco, canceló el pedido y se fue
  • En ese proceso obtuvo que la tarjeta seguía siendo utilizable, el nombre del banco, el número de tarjeta enmascarado y la fecha de vencimiento completa
  • En general, para completar correctamente un pago con tarjeta se considera necesario contar con los 16 dígitos completos del PAN, la fecha de vencimiento, el número CVC2 y datos como el teléfono móvil usado para 3D Secure
  • En el ataque real, fue posible seguir haciendo intentos adicionales en otros comercios con solo parte de esa información

Estructura del PAN y posibilidad de adivinarlo

  • El número de tarjeta de pago (PAN) es el identificador de tarjeta usado en tarjetas de crédito, débito, valor almacenado y regalo, entre otras
  • El PAN sigue un esquema numérico común definido por ISO/IEC 7812, y su estructura interna es la siguiente
    • Issuer Identification Number (IIN) de 6 u 8 dígitos
    • Un identificador de cuenta individual de hasta 12 dígitos
    • Un dígito de control calculado con el algoritmo de Luhn
  • El banco de la víctima no permitía pagos solo con el número de tarjeta, sino que exigía PAN, fecha de vencimiento y CVV
  • Algunos bancos y pasarelas de pago pueden procesar pagos solo con el número de tarjeta, algo que a la víctima le resultó especialmente difícil de creer

Cómo las respuestas de la pasarela de pago crean condiciones para fuerza bruta

  • El banco de la víctima rechazaba pagos a los que les faltaban datos requeridos o que tenían valores incorrectos, pero informaba mediante códigos de respuesta qué parte estaba mal
  • Ejemplos de respuesta:
    • “No es una tarjeta de crédito válida”
    • “La tarjeta está vencida”
    • “Toda la demás información es correcta, pero el CVV es incorrecto”
  • Estas respuestas pueden servir para que un atacante distinga qué valor del número de tarjeta, la fecha de vencimiento o el CVV es correcto o incorrecto
  • En el ataque real, el atacante hizo pruebas a una velocidad de 6 intentos por segundo, aproximadamente 2 por segundo por API
  • Esa velocidad es difícil de detectar desde el lado del comercio, porque la IP de origen cambia mediante proxies, los números de tarjeta tampoco son iguales por la propia naturaleza de la fuerza bruta y la frecuencia de solicitudes es muy baja

El papel de los comercios con excepción de 3D Secure

  • El banco tiene una lista de comercios con excepción de 3D Secure, considerados entidades de confianza por el banco, que pueden recibir pagos y suscripciones sin 3D Secure
  • Estos comercios asumen la responsabilidad si ocurre un contracargo
  • El atacante usó un comercio sin 3D Secure para mover a una billetera electrónica el monto disponible dentro del límite de la tarjeta

Respuesta posterior y problemas que siguen abiertos

  • El dinero fue devuelto rápidamente mediante contracargo
  • Se informó al comercio que su sistema para convertir pagos con tarjeta en efectivo había sido usado para retiros no autorizados, pero el comercio respondió que se consultara con el banco
  • También se informó al sitio de comercio electrónico que exponer 10 dígitos del número de tarjeta junto con la fecha de vencimiento facilitaba el ataque, pero el sitio respondió que no lo consideraba una vulnerabilidad y que estaba diseñado intencionalmente de acuerdo con los estándares PCI DSS 3 y 4
  • Quienes crean APIs de pago o trabajan en la industria de pagos no se sorprendieron, y algunos comercios respondieron que pueden procesar transacciones incluso sin fecha de vencimiento
  • Después del incidente, la entidad que convertía pagos con tarjeta de crédito en efectivo ya no procesa esto sin 3D Secure
  • El banco de la víctima sigue manteniendo un límite de velocidad relativamente permisivo frente a ataques de fuerza bruta contra CVC2, y cuando se alcanza el límite solo bloquea temporalmente esa tarjeta por unos minutos

1 comentarios

 
GN⁺ 1 시간 전
Comentarios en Hacker News
  • Viendo casos relacionados, puede que el autor original haya estado persiguiendo la causa equivocada. Recientemente aparecieron cargos pequeños no autorizados relacionados con FB/Meta en una tarjeta de crédito, y parecía que alguien la estaba probando para ver si era detectada
    Llamé a la emisora, revertí el cargo, cancelé la tarjeta y recibí otra con nuevo número, nueva fecha de vencimiento y nuevo CVV, pero incluso en la tarjeta nueva, que nunca había usado, volvieron a empezar los cargos fraudulentos de FB/Meta. La causa era la billetera digital, y aunque cancelaras la tarjeta, datos como el número podían transferirse a través de la billetera digital
    Volví a llamar a la emisora y pedí que cancelaran todas las billeteras digitales; resultó que había 99, y no se podía resolver en línea, así que tuve que hablar con una persona del call center. Incluso después de que me explicaran que se reiniciarían todos los pagos recurrentes, tuve que insistir en que cancelaran la tarjeta y todas las billeteras digitales, y terminé esperando 20 minutos. Cancelar una tarjeta puede no ser lo que uno cree, y como los pagos recurrentes son muy rentables para las emisoras, parece que cancelarlos implica una pérdida importante de ingresos

    • No sé si era una “billetera digital”, pero el concepto de actualización de datos de la tarjeta después de emitir una nueva sí existe, y es un servicio que ofrecen las emisoras
      Blog de Stripe: https://stripe.com/resources/more/what-is-a-card-account-upd...
    • A mí también me apareció un cargo de 200 euros en Meta/FB, y todavía estoy esperando la tarjeta nueva
    • En privacy.com puedes crear tarjetas tú mismo, e incluso usar una tarjeta distinta para cada servicio si quieres
    • Eso de que “no hay forma de cancelar todas las billeteras digitales en línea” varía mucho según el banco. Por ejemplo, Bank of America sí te permite ver y eliminar desde su sitio web las tarjetas agregadas a billeteras digitales
    • En mi caso era casi seguro. Pasó todo en un solo día, y la tarjeta que estaba usando era una tarjeta virtual usada solo en algunos sitios grandes de comercio electrónico y similares
      Si se hubiera filtrado desde otro lugar, probablemente no habrían intentado iniciar sesión en cuentas de comercio electrónico no relacionadas
  • Este artículo no toca la parte más importante. La liquidación, que es cuando el banco acepta mover dinero de mi cuenta al comercio, es algo totalmente separado de la autorización
    La autorización es el EMV moderno, o sea “chip y PIN”, el CVV en línea y varios mecanismos con los que el banco se protege del fraude y de paso protege al comercio
    La red puede aceptar que Amazon diga: “aquí está el número de tarjeta y esta persona dice que nos está pagando 400 dólares”. Eso es solo liquidación y aparece en el estado de cuenta. Sin criptografía sofisticada, sin una protección equivalente ni siquiera a un PIN de 4 dígitos, sin una validación más fuerte que recordar el apellido de soltera de la madre: simplemente dicen “ok, te creemos”. Por eso, si el consumidor no revisa el estado de cuenta y no disputa los cargos desconocidos, termina pagándolos
    La red casi no tiene incentivos para preocuparse por que despojen al consumidor. Si nadie disputa el cargo, todos quedan contentos; y si sí lo disputan, se le puede recuperar al comercio, así que no es problema suyo

    • Eso de que “si lo disputan, simplemente se lo recuperan al comercio y ya” aplica a los pagos en línea sin 3DS, pero no a pagos presenciales ni a pagos en línea con 3DS. En esos casos, normalmente responde el emisor
  • Los procesadores de pago no permiten la enumeración de tarjetas ni el card testing por fuerza bruta con el número completo de tarjeta, y las redes también imponen sanciones fuertes a los comercios y procesadores que no lo bloquean

    1. https://stripe.com/newsroom/news/card-testing-surge
    2. https://stripe.com/blog/the-ml-flywheel-how-we-continually-i...
    3. https://docs.stripe.com/disputes/monitoring-programs#enumera...
    • Si usas varias APIs de validación de tarjetas, la frecuencia de intentos por cada una baja muchísimo. Si además usas PAN distintos y direcciones IP de origen distintas, no veo bien cómo podrían correlacionarlo
      Enumerar CVC2 sobre un solo PAN ya es otra historia
    • Hasta hace 6 años, Stripe ni siquiera enmascaraba los números de tarjeta en los logs de la API
  • Esto es evidencia de que la infraestructura antifraude sí protegió de verdad. El banco absorbió la pérdida por fraude y también reembolsó el dinero
    Al final, el sistema bancario sí se preocupa por las pérdidas por fraude y además es muy bueno detectándolo. Los sistemas de pago con tarjeta son tan enormes que cambiarlos es extremadamente difícil, así que si no hay evidencia sólida de que cierto cambio realmente reduce la tasa de fraude, los bancos prefieren no hacerlo

    • Por desgracia, muchas veces quien absorbe la pérdida por fraude no es el banco sino el comercio, y eso crea un problema principal-agente
      El banco emisor gana comisiones de liquidación en todas las transacciones, así que si no tiene responsabilidad por el fraude, su incentivo por defecto es aprobar lo más posible y luego arreglarlo con chargebacks. Eso sí, 3DS cambia bastante esa cuenta, y los pagos presenciales normalmente también recaen en el banco emisor
    • No es que el banco realmente absorba la pérdida: simplemente agrega suficiente margen en todos sus servicios para cubrir el costo del fraude
      Al final, todos los consumidores terminan compartiendo el costo de todos los fraudes. No aparece como un cargo separado en el estado de cuenta, pero sí pagamos un poco más por todo lo que compramos
    • Solo estás protegido si te das cuenta de que hubo un cargo fraudulento
    • Me tocó ver cómo el banco se rinde cuando enfrente tiene a alguien muy motivado para pelear un chargeback
      Me pasó con eBay en un caso relacionado con una tarjeta de crédito robada: al principio todo iba bien, pero cuando eBay mandó una montaña de papeles al banco, el chargeback se revirtió, y poco después hasta me cerraron mi cuenta bancaria
      No es que el dinero volvió por el chargeback y ya. Al principio parece que es algo provisional mientras le dan tiempo a la otra parte de responder, y eBay me enterró en papeles hasta que lograron revertir de nuevo el chargeback unos 30 días después. Su explicación fue tan efectiva que mi propio banco terminó tratándome a mí como si fuera el estafador
      Tampoco sé si es 100% correcto decir que el banco absorbe la pérdida por fraude. Si la parte que recibió el chargeback decide pelearlo, es porque al final alguien va a cargar con esa pérdida, ya sea quien lo recibió o quien lo inició. Si el banco fuera quien siempre la absorbe, no habría razón para que eBay gastara en personal especializado para investigar y responder a mi chargeback
  • Sería de mucha ayuda si 3D Secure fuera obligatorio en todas partes, pero entiendo que en Estados Unidos casi no se usa. Como el mercado estadounidense es tan grande, los emisores se ven obligados a aceptar solicitudes sin 3D Secure; si no, sus clientes no podrían usar la tarjeta en demasiados lugares
    Eso hace que un mecanismo antifraude muy potente quede fuertemente limitado, lo cual es frustrante visto desde gran parte del resto del mundo
    No entiendo si el consumidor estadounidense prefiere sufrir fraude antes que tolerar una pequeña incomodidad. Aunque uno no sea víctima directa, el comercio termina metiendo el costo del fraude y del seguro en el precio de los productos, así que todos terminan pagando

    • Normalmente se evalúa así: si la caída en conversión causada por una medida de seguridad es mayor que la tasa promedio de fraude, entonces no hay motivo financiero para implementarla
      Pero a nivel de toda la industria, esto es el típico problema de coordinación. La conversión cae porque sigue existiendo una alternativa más fácil; si todos los comercios y bancos obligaran 3DS al mismo tiempo, ya no habría una opción más cómoda a la cual cambiarse. Les guste o no, los usuarios se acostumbrarían al nuevo método más seguro y la conversión volvería a subir
      La UE hizo algo así al volver obligatorio 3DS para muchos pagos, aunque incluso allá los reguladores reconocieron que aplicarlo al 100% sería contraproducente, así que hay un punto intermedio razonable
      Otro ejemplo del mismo principio es que las tarjetas de crédito en Estados Unidos no tienen PIN. Si un banco individual introdujera PIN, sus clientes se pasarían a usar más las tarjetas de competidores sin PIN, y el uso caería mucho. En otros mercados, gracias a la intervención regulatoria o a incentivos de las redes de tarjetas, todas las tarjetas tienen PIN y la gente simplemente se acostumbró
    • En Estados Unidos las leyes son distintas y más favorables al consumidor, así que el comportamiento del consumidor también lo es
      Cuando las tarjetas de crédito recién aparecían, es decir, cuando surgían en Estados Unidos, el Congreso aprobó la Fair Credit Billing Act de 1974, que limitó la responsabilidad del consumidor a 50 dólares si reportaba una tarjeta perdida dentro de los 60 días posteriores al cierre del ciclo con el cargo fraudulento. En esa época los pagos se hacían en papel, con esas máquinas que hacían “ka-chunk” para sacar copia carbón de la tarjeta, y todo era completamente offline
      Esa ley nunca cambió, y de hecho la mayoría de los bancos ni siquiera cobra esos 50 dólares y no hace responsable al titular por ningún monto en los casos reportados. Desde la perspectiva del banco, no vale la pena molestar al cliente por 50 dólares
      Con internet, de repente las tarjetas se volvieron muchísimo más fáciles de robar y abusar, pero los bancos siguieron obligados a absorber todas las pérdidas reportadas dentro de los 60 días posteriores al cierre del ciclo. Por eso los bancos en Estados Unidos invirtieron enormemente en monitoreo en tiempo real de las transacciones con tarjeta de crédito, y como al final la responsabilidad es suya, se lo toman muy en serio. En cambio, el consumidor se preocupa menos. La razón por la que las tarjetas estadounidenses parecen mucho más laxas desde el punto de vista del consumidor es que, a diferencia de las europeas, el consumidor queda cubierto y el banco invirtió mucho más en la parte trasera
      Por otra parte, la UE reguló las comisiones de liquidación que pueden cobrar las emisoras, mientras que Estados Unidos no puso un tope. Como resultado, los tarjetahabientes en Estados Unidos pueden obtener recompensas bastante generosas por usar la tarjeta, especialmente el 10% más rico, algo prácticamente imposible con tarjetas emitidas en la UE donde esas comisiones están limitadas
      Ahora mismo hay una gran demanda que busca permitir que los comercios acepten solo tarjetas de baja comisión. Los contratos estándar de VISA/MC/AMEX exigen tratar todas las tarjetas por igual, y eso incentiva a las emisoras a empujar a la gente hacia tarjetas con comisiones de liquidación más altas. Habrá que ver en qué termina esa demanda, pero mientras tanto, los grandes consumidores en Estados Unidos pueden recibir recompensas mucho mayores, y eso también empuja a usar más la tarjeta y a reducir la fricción frente a las tarjetas estilo UE
    • ¿Crees que nosotros estamos pidiendo un medio de pago menos seguro?
      No es que prefiramos ser víctimas de fraude; esto es más bien una cuestión de negociación entre el emisor de la tarjeta y el comercio
    • Como referencia, si estás en Estados Unidos y te interesa, la HSBC USA Mastercard usa 3D Secure
    • ¿Qué proporción de las pérdidas por fraude podría evitar 3D Secure? ¿0.1%, quizá?
  • Hace tiempo, una persona que contrataron en nuestra empresa empezó a presumir que había encontrado cómo agregar valor almacenado a tarjetas de regalo. Después nos enteramos de que estaba siendo investigada por el FBI
    Encima era un contratista del gobierno, y al final vino el guardia de seguridad más enorme que he visto en mi vida y se lo llevó

    • ¿Qué significa eso de “agregar valor almacenado a tarjetas de regalo”?
  • Las tarjetas de crédito virtuales existen desde hace mucho. Recuerdo que hace más de 15 años las ofrecían Bank of America o Citi, tal vez como una app en Java o un ejecutable independiente. Sorprende que no se hayan extendido más
    Robinhood implementa esto realmente bien. Es el mejor sistema de tarjetas de crédito virtuales que he usado y se siente muy fluido. Puedes autorizar una tarjeta de un solo uso, de 24 horas o indefinida hasta que la canceles, y la UI/UX es excelente

    • No se extendió porque absorber el costo del fraude era más fácil que mantener ese sistema. Simplemente es una función buena para el consumidor, y por eso no terminó imponiéndose
    • MBNA tenía una app de tarjetas virtuales basada en Flash a principios de los 2000, antes de que Chase la comprara, y yo la usaba muchísimo
      En un mundo donde ahora todo es suscripción, no entiendo por qué esta función no se popularizó. Estaba buenísima la posibilidad de poner fecha de vencimiento y límite de gasto para no tener que entrar en negociaciones sucias al cancelar suscripciones
  • Hace poco recibí un mensaje del banco diciendo que había una transacción sospechosa en el extranjero con la tarjeta de mi esposa, pero el monto era literalmente 0 dólares, y además fue en un momento en que ella no estaba usando ni el teléfono ni la computadora
    Al principio pensé que el mensaje mismo era phishing, pero lo revisé en línea, vi que el formato coincidía y que la página del banco garantizaba que el proceso de retroalimentación no pedía ningún dato, así que confirmé que ella no había hecho el pago
    El banco canceló la tarjeta de inmediato y envió una nueva
    Al principio pensé que el sistema de seguridad del banco estaba sobrerreaccionando, pero en realidad parece que alguien estaba haciendo justo lo que describe este artículo y el banco lo detectó antes

  • Conviene tener una tarjeta separada para pagos en línea y cargarle solo el dinero necesario para pagar
    Sé que es una idea ingenua
    Volviendo al artículo, la debilidad fue la contraseña, y eso llevó a otros comercios que no usan 3D Secure
    Por cómo está escrito, parece que el atacante tiene un sistema completamente automatizado, así que los grandes comercios deberían manejar los intentos automatizados de inicio de sesión desde la misma IP contra cuentas distintas. Incluso viendo nuestros logs de Wordfence, la rotación de IP no parece tan rápida, así que quizá se pueda mitigar en parte con bloqueos permanentes de IP

    • Si el comercio no es responsable por el fraude que ocurre en el estado actual de las cosas, ¿por qué habría de hacerlo?
    • Sinceramente, normalmente no me preocupa mucho el fraude con tarjeta de crédito porque el banco lo reembolsa. Solo reviso si hay algo raro en el estado de cuenta
    • Mercury ahora ofrece cuentas bancarias personales. Igual que los servicios para empresas como Brex/Mercury/Ramp, puedes crear tarjetas de débito virtuales
    • De acuerdo con usar una tarjeta separada. La mía también era una tarjeta separada, y gracias a eso por suerte el monto no fue tan grande
      No creo que una filtración de contraseña deba terminar convirtiéndose en una filtración de todos los datos de la tarjeta de crédito. Parte de esa misma información también aparece impresa en recibos de papel en tiendas; a veces son 4 dígitos y a veces 10. Incluso con recibos de papel abandonados en una tienda, el ataque por fuerza bruta seguiría siendo posible
    • Aunque no soy parte interesada, la tarjeta virtual Capital One Eno sirve bien para este caso de uso
  • Además, los comercios no siempre pueden elegir el nivel de seguridad que quieran en su procesador de tarjetas de crédito. Por ejemplo, en authorize.net se puede aceptar un pago incluso si la dirección no coincide
    La verdadera pregunta es cómo sacaron el dinero. ¿Habrá sido comprando tarjetas de regalo en un comercio con controles débiles?
    Adivinar el número y sacar el dinero fuera del sistema son dos cosas totalmente distintas

    • Eso de que “el comercio no puede elegir el nivel de seguridad que quiere en el procesador” depende del procesador. Muchos sí permiten que el comercio defina con bastante profundidad las reglas de autorización
      Hay cierta segmentación en el mercado de procesadores. Un lado busca ofrecer simplicidad y quitarle carga al cliente; el otro expone toda la complejidad y da control fino. El primero no te deja especificar requisitos de seguridad, y el segundo te da cientos de opciones. Claro, también hay procesadores que se ubican en algún punto intermedio, y esos dos enfoques suelen apuntar a clientes distintos