Saltar al contenido

¿PCI realmente requiere que la información de la tarjeta esté encriptada en la memoria?

Posterior a de una larga selección de datos dimos con la solución este contratiempo que pueden tener muchos lectores. Te ofrecemos la respuesta y nuestro deseo es resultarte de mucha ayuda.

Solución:

TL; DR

Técnicamente, PCI requiere que los datos del titular de la tarjeta (CHD) estén encriptados tanto en tránsito como en reposo. Esto puede parecer simple al principio, pero la realidad es que no es muy específico sobre la delimitación entre descanso en discovs.memoria volatil. Si quiere ser pedante, la memoria volátil sigue siendo datos en reposo, pero de acuerdo con las preguntas frecuentes, no se requiere explícitamente que se encripte mientras está en la memoria. Aunque es bueno señalar que estas son solo las preguntas frecuentes, no en realidad en el estándar PCI DSS en sí. Aquí hay un buen artículo para leer y obtener más información.

Respuesta larga

La razón del cifrado en memoria tiene que ver con el vector de ataque de raspado de memoria.

PCI DSS hace un buen trabajo al asegurarse de que los datos de la tarjeta de crédito en el almacenamiento persistente sean seguros; sin embargo, dichos datos en el almacenamiento no persistente, como los archivos almacenados temporalmente en la memoria, aún pueden ser vulnerables al compromiso, particularmente a través del raspado de memoria. malware. Obtenga más información sobre esta amenaza. FUENTE

Puede encontrar más información sobre los requisitos de PCI aquí. los TL; DR de la respuesta larga es que si no cifra los datos en reposo (en el disco o en la memoria), asegúrese de tener controles de compensación para mitigar el riesgo de pérdida de datos.

Si los datos almacenados del titular de la tarjeta no se pueden cifrar, consulte el Apéndice B de las PCI DSS: Controles de compensación y el Apéndice C: Hoja de trabajo de controles de compensación.

No es necesario que los datos del titular de la tarjeta estén encriptados en la memoria volátil (https://pcissc.secure.force.com/faq/articles/Freiced_Asked_Question/Should-cardholder-data-be-encrypted- while-in-memory) Debe tenerse en cuenta que la capacidad de los datos escritos en la memoria volátil de persistir en el disco puede suceder y sucederá. El cifrado del archivo de paginación o del archivo de intercambio puede ayudar a evitar esto.

Los datos del titular de la tarjeta deben protegerse cuando se encuentran en tránsito a través de redes públicas abiertas. [PCI DSS Req. 4.1] y cuando se escribe en el disco [PCI DSS Req. 3.4]. Los requisitos no son los mismos para todos y se dan ejemplos en las PCI DSS. La columna de Orientación a la derecha de la norma también suele ser útil.

La versión más reciente de PCI DSS se puede encontrar aquí. https://www.pcisecuritystandards.org/document_library

Para responder primero a su segunda pregunta, (“No veo la razón detrás de esto, si es atacado puede obtener los valores, puede obtener el cifrado key también, ¿verdad? “) el malware de raspado de RAM estándar simplemente sabe cómo identificar los datos de seguimiento en la memoria. No comprende el mapa de memoria de su proceso de registro. No conoce sus estructuras o campos. no intenta encontrar un búfer de caracteres * con la etiqueta “Track_Data”. Simplemente lee toda la memoria en su proceso y si coincide con un patrón de 15 o 16 dígitos, lo raspa y se lo envía al malo. -el malware de estantería ciertamente no sabe qué bytes componen un cifrado key, por lo que una vez que sus datos estén encriptados, el malware no los verá. (El malware típico no es muy sofisticado y ciertamente no reconocería datos XOR o ROT-13, mucho menos un bloque de datos cifrados AES-128).

Considere que los atacantes deben ser sigilosos: si envían volcados de RAM de 2GB desde cada caja registradora después de cada transacción, la gente de la red probablemente lo notaría. Solo envían la menor cantidad de datos que necesitan y no intentan descifrar nada.

(Tenga en cuenta que esto es true solo para el malware de raspado de RAM de propósito general como Dexter y BlackPOS; si hay malware dirigido a una aplicación específica, se puede personalizar para comprender las estructuras de la memoria e intentar robar keys y / o datos encriptados de direcciones específicas. Todo depende de los atacantes).

Como se le preguntó, la primera parte de su pregunta casi describe una condición de carrera: ¿en qué punto los datos de la pista se consideran “en reposo”? ¿Es solo cuando aterriza en un disco duro, o se puede considerar en reposo mientras está en la memoria esperando ser encriptado?

Pero ahora tienes que seguir adelante y ser más detallado. ¿Está en reposo cuando aterriza en los búferes del controlador del dispositivo USB? ¿Está en reposo cuando se publica un mensaje de Windows para notificar a su proceso que se han introducido nuevos datos de seguimiento? ¿Está en reposo cuando el búfer se envía al algoritmo de cifrado? ¿Está en reposo cuando la aplicación analiza la pista para recuperar el nombre del titular de la tarjeta, el código de servicio, el PAN, el CVV y la fecha de vencimiento? ¿Está en reposo cuando quita los últimos 4 dígitos del recibo? ¿Está en reposo si la aplicación está procesando el número de cuenta de alguna manera antes del cifrado? ¿quizás validando un dígito de control o determinando si es una tarjeta Visa u otro tipo de tarjeta de crédito? ¿Está en reposo cuando se está construyendo el mensaje de autorización? Ninguna de esas actividades parece que los datos estén descansando mucho, y muchas de esas actividades son funciones comunes en los sistemas POS. En total, todo ese procesamiento puede tardar unos milisegundos o más en ejecutarse.

Ahora consideremos a los atacantes del mundo real. El malware utilizado en algunas de las infracciones más importantes fue el malware de raspado de RAM, y es extremadamente agresivo. Puede barrer la memoria de la caja registradora cientos de veces por segundo y activarse con el más breve vistazo de PAN o datos de seguimiento. Puede capturar los datos de seguimiento que llegan a los búferes USB, en los búferes de mensajes de Windows antes de que se notifique a la aplicación, mientras se desarma en las rutinas de análisis o incluso cuando se invocan las rutinas de cifrado. Incluso si cumple perfectamente con la letra de las leyes PCI-DSS y la cifra tan pronto como su aplicación la ve, sigue siendo vulnerable a una infracción si algún miembro de esta familia de malware llega a sus cajas registradoras.

En lugar de centrarse en la interpretación exacta de PCI-DSS, es mejor evitar la situación por completo eliminando tantos sistemas como sea posible del alcance de PCI. Si puede, saque los datos de la pista de la caja registradora y colóquelos en una terminal de pago separada que pueda cifrar los datos antes de enviarlos a su caja registradora.

Si mueve el cifrado a un dispositivo separado ubicado fuera del entorno de la caja registradora, entonces la caja registradora nunca necesita recibir PAN en texto sin cifrar o datos de seguimiento. Cualquier malware que encuentre su camino en sus registros no encontrará datos de seguimiento para raspar. Y un terminal de pago tendrá una superficie de ataque mucho más pequeña que una aplicación de caja registradora basada en Windows.

Sección de Reseñas y Valoraciones

Al final de todo puedes encontrar las crónicas de otros programadores, tú aún tienes la opción de dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *