viernes, 2 de junio de 2023

Desarrollo seguro: Protección de datos

 La seguridad de los datos debe estar amparada bajo los siguientes preceptos:

  • Autenticación. Se verifica la identidad del usuario para poder acceder al dato.
  • Autorización. El usuario solo puede realizar las operaciones que le permite los privilegios otorgados a sus roles sobre los datos a los que tiene permiso.
  • Confidencialidad. Cuando los datos se almacenan o están en tránsito deben estar protegidos contra la observación o divulgación no autorizada.
  • Integridad. Los datos deben estar protegidos contra manipulaciones por parte de posibles atacantes.
  • Disponibilidad. Los datos siempre han de estar disponibles para los usuarios autorizados. Esto incluye también las políticas de copias de respaldo.

Posibles riesgos

A continuación se describen algunos de los posibles riesgos relativos a la protección de datos:
  • Incumplimiento de normas y leyes relativas al tratamiento de datos personales, lo que supone sanciones legales.
  • Pérdida de información sensible.
  • Pérdida de información sensible de terceros. Esto puede originar acciones legales y sanciones.
  • Pérdida de reputación de la organización.
  • Pérdida de certificaciones.

Mejores prácticas

He aquí algunas recomendaciones para elevar la seguridad en la protección de datos:
  • Identificar toda la información relativa a datos personales y aplicar las políticas de tratamiento de datos personales (acceso, procesamiento, almacenamiento, etc), acorde a las leyes y legislaciones del país.
  • Los datos confidenciales no pueden viajar en los parámetros de las urls. Deben hacerlo en el cuerpo o en las cabeceras HTTP.
  • Los canales de comunicación en los que se transmiten los datos deben utilizar cifrado robusto.
  • Los datos confidenciales deben cifrarse de forma segura antes de su almacenamiento.
  • Evitar que los datos confidenciales se almacenen en la caché de los navegadores.
  • Sobreescribir la memoria con ceros cuando la información confidencial ya no se utilice.
  • Aplicar una política de borrado seguro para los datos que alcanzan el final de su ciclo de vida.



Desarrollo seguro: comunicaciones

La transmisión de información en las aplicaciones es un punto clave de seguridad, por lo que es esencial asegurar la confidencialidad, la integridad y la disponibilidad de las comunicaciones.

Imagen: public domain pictures


Posibles riesgos

A continuación se describen algunos de los posibles riesgos relativos a las comunicaciones:

  • Robo de información confidencial.
  • Interrupción del servicio.
  • Suplantación de identidad.
  • Alteración o destrucción de datos.
  • Propagación de software malicioso.


Mejores prácticas

He aquí algunas recomendaciones para elevar la seguridad en las comunicaciones:

  • Utilizar siempre canales de comunicación cifrados mediante TLS o WebSocket.
  • Usar criptografía robusta. 
  • Utilizar protocolos seguros, como HTTPS o FTPS

Referencias

Desarrollo seguro: transacciones

Las transacciones son operaciones críticas de negocio, como pagos o actividades financieras. Debido a su especial sensibilidad requieren fuertes medidas de seguridad, tales como:

  • Autenticación. Uso de contraseñas seguras y MFA para autorizar el acceso a las transacciones.
  • Criptografía. Asegurar la confidencialidad de las transacciones.
  • Validación. Aseguramiento de la legitimidad de las transacciones, evitando ataques y fraudes.
  • Monitorización. Permite detectar y prevenir de ataques y fraudes en tiempo real.
  • Copias de seguridad. Permite recuperar la disponibilidad de los datos en caso de ataques, caídas del sistema o pérdidas de datos.
Las transacciones deben cumplir las propiedades ACID: Atomicity, Consistency, Isolation y Durability.


Imagen: linnworks

Posibles riesgos

A continuación se describen algunos de los posibles riesgos relativos a las transacciones:
  • Payment Bypass. Vulnerabilidad de configuración que permite a un atacante manipular, en un sistema de pago, los parámetros y la respuesta entre cliente y servidor para eludir el sistema de pago.
  • Fraude. El atacante se beneficia de forma ilícita, manipulando las transacciones o usando información falsa.
  • Robo de información confidencial.  Para ser usada en futuros ataques.
  • Interrupción de las transacciones. Con ataques DoS/DDoS.
  • Pérdida de datos. Puede afectar a la confidencialidad y a la integridad de la información.

Mejores prácticas

He aquí algunas recomendaciones para elevar la seguridad en las transacciones:
  • Evitar un Payment Bypass:
    • Toda compra ha de autorizarse y confirmarse en el servidor.
    • Validar la autenticidad de las firmas durante la comunicación con la pasarela de pago.
    • Verificar el precio correcto en el servidor.
    • Asegurar que los pagos no se reutilizan.
    • Comprobar la fase actual de la transacción en el servidor de pago.
  • Para cada transacción, configurar un tiempo corto de expiración.
  • Llevar una trazabilidad fehaciente de las transacciones.
  • Utilizar comunicaciones con cifrado asimétrico.
  • Registrar el detalle de cada operación, anonimizando los datos sensibles.


Referencias