¿Qué tipo de daño se podría hacer con un inicio de sesión de la API de pasarela de pago y una clave de transacción?

StackOverflow https://stackoverflow.com/questions/166639

Pregunta

Actualmente, estoy en el proceso de contratar a un desarrollador web que trabajará en un sitio que procesa tarjetas de crédito. Si bien no tendrá las credenciales para iniciar sesión en la interfaz de usuario de la pasarela de pago, tendrá acceso a la clave de transacción e inicio de sesión de la API, ya que está incrustado en el código de la aplicación.

Me gustaría estar al tanto de todos los "qué pasa si" escenarios relacionados con el tipo de daño que uno podría hacer con esa información. Obviamente, puede procesar tarjetas de crédito, pero el dinero va a la cuenta bancaria del propietario del sitio, por lo que no estoy seguro de cuánto daño podría causar. ¿Alguien puede pensar en otros escenarios posibles?

ACTUALIZACIÓN: La pasarela de pago utilizada es Authorize.net.

¿Fue útil?

Solución

¿Realmente necesitan acceso a sus sitios de producción?

No almacene la clave en su código, no la almacene en su base de datos de producción o en un archivo en el servidor de producción.

Otros consejos

Algunas buenas respuestas aquí, solo agregaré que probablemente tenga algunos problemas con la PCI.
PCI-DSS dicta específicamente la separación de tareas, el aislamiento de los entornos de producción de desarrollo / prueba, la protección de las claves de cifrado de cualquier persona que no lo requiera, y más. Como dijo @Matthew Watson, reconsidere esto y no otorgue acceso de producción a los desarrolladores.

Como comentario aparte, si puede acceder a la API directamente, ¿cómo se asegura de que "el dinero vaya a la cuenta bancaria del propietario del sitio"? Sin mencionar el acceso a todos los datos de su tarjeta de crédito ...

Si el desarrollador obtiene acceso a los números de tarjeta de crédito sin procesar que pueden convertirse en un problema mayor ya que su sitio puede estar asociado con actividades fraudulentas, suponiendo que el desarrollador sea una manzana mala. (Podrían redirigir los números de cuenta, CCV, fecha de vencimiento a otro sitio, aunque esto debería ser visible a través de herramientas de red y una revisión exhaustiva del código).

¿La API realiza el " $ 1.00 " cobrar (o `` $ X.XX '') para verificar que una tarjeta de crédito puede cargarse una cierta cantidad (y así devolver el resultado a la persona que llama, como `` sí '' o `` no '')? De ser así, podría usarse para automatizar la validación de los números de cuenta de tarjetas de crédito negociados en Internet y el abuso de dicho sistema podría llevarlo a usted.

Con cualquier puerta de enlace con la que haya trabajado, el procesador de pagos vincula la clave API con el rango de IP o IP específico del sitio del comerciante. Dicho esto, a menos que el código malicioso (?) En cuestión se ejecute en el mismo servidor que el comerciante, no debería haber ninguna preocupación de seguridad al respecto.

Si este no es el caso de su sitio comercial, contáctelos y pregúnteles si es posible.

¿La pasarela de pago permite la reversión de cargos? Si es así, existe la posibilidad de que se ejecuten varias estafas.

¿El sitio procesa reembolsos? ¿Alguna vez en el futuro?

Si estamos hablando de usos nefarios, el propietario del sitio puede ser investigado si se realizan muchas compras no autorizadas. ¿Cómo afectaría eso a usted si se investiga al propietario?

Según su descripción, parece que este desarrollador tendrá acceso a los detalles de las tarjetas del cliente, en cuyo caso la privacidad del cliente puede verse comprometida. Puede considerar redactar el contrato de manera apropiada para asegurarse de que este ángulo esté cubierto.

Sin embargo, el punto principal es que si está trabajando en un proyecto / información confidencial, es mejor que encuentre personas en las que pueda confiar. Contratar una casa de software para hacer el trabajo puede ahorrarte un poco de sueño más adelante.

En primer lugar, es mejor que nunca almacene este tipo de información en texto sin formato. Por lo general, las personas toman esto como conocimiento de segunda mano para los números de tarjetas de crédito (Lamentablemente, solo por razones legales), pero cualquier tipo de datos privados que no desee que otros con acceso a la base de datos / código fuente se cifren. Debe almacenar la información de la cuenta en algún lugar en un formato bien cifrado, y debe proporcionar una cuenta de prueba para que sus desarrolladores la utilicen en sus estaciones de trabajo de desarrollo. De esta manera, solo las personas con acceso al servidor pueden ver incluso la información cifrada.

De esta forma, puede tener una base de datos en la estación de trabajo del desarrollador con la información de API de la cuenta de prueba almacenada (con suerte encriptada) en su base de datos local, pero cuando el código se refleje en el servidor de producción, seguirá utilizando la puerta de enlace real y real información almacenada en la base de datos del servidor de producción sin código / configuración adicional.

Dicho esto, no creo que un programador con detalles de autenticación de API pueda hacer demasiado. De cualquier manera, no vale la pena correr el riesgo, en mi opinión.

Espero esta ayuda.

PD: Si algo malo termina sucediendo, siempre puede generar una nueva clave en la interfaz web en authorize.net después de tomar las precauciones para asegurarse de que no vuelva a suceder.

En el caso específico de Authorize.Net no podrían hacer créditos para sus propias tarjetas de crédito, ya que Authorize.Net solo permite que esto se realice en transacciones realizadas a través de ellos en los últimos seis meses. Se permite la única excepción si se le otorga una excepción para reembolsos no vinculados. Si ha firmado la documentación adecuada para esto y alguien tiene su clave de inicio de sesión y transacción API, entonces puede procesar los créditos para sus propias tarjetas de crédito. La única forma de captar esto sería monitorear sus declaraciones cuidadosamente.

Para ayudar a mitigar esto, debe cambiar su clave de transacción inmediatamente después de completar el trabajo que realizan para usted. Eso haría que la llave que tienen inútil después de 24 horas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top