Saltar a contenido

Seguridad y Compliance

Políticas de seguridad y confidencialidad para el desarrollo del Sistema A3.

Datos Sensibles

El Sistema A3 maneja información confidencial y protegida por ley:

Datos Personales de Clientes

  • Nombres completos
  • Direcciones de viviendas
  • INE, CURP, RFC
  • Información financiera (ingresos, créditos)
  • Números telefónicos y emails
  • Protegido por: LFPDPPP (Ley Federal de Protección de Datos Personales en Posesión de Particulares - México)

Datos de Empleados

  • Información de nómina
  • Datos personales (INE, CURP, RFC)
  • Evaluaciones de desempeño
  • Horarios y ubicación (checador con GPS)
  • Protegido por: Ley Federal del Trabajo + LFPDPPP

Información Financiera de la Empresa

  • Comisiones de ventas
  • Precios de propiedades
  • Márgenes de ganancia
  • Provisiones y presupuestos
  • Confidencial: Información propietaria de A Terceros Inmobiliaria

Información de Negocio

  • Estrategia de ventas
  • Inventario y disponibilidad
  • Base de datos de clientes (leads)
  • Procesos internos
  • Confidencial: Información propietaria

Obligaciones Legales y Contractuales

Como Desarrollador, Debes:

✅ SÍ Hacer:

  1. Proteger la confidencialidad:
  2. Respetar acuerdos de NDA que firmaste
  3. No compartir código fuera de la organización
  4. No compartir credenciales de acceso
  5. No discutir detalles del sistema en redes sociales

  6. Manejar datos responsablemente:

  7. Usar datos de producción solo cuando sea absolutamente necesario
  8. Anonimizar datos si los descargas para análisis
  9. Borrar datos locales cuando ya no los necesites
  10. Reportar accesos no autorizados inmediatamente

  11. Seguir prácticas de seguridad:

  12. Usar contraseñas fuertes y únicas
  13. Habilitar 2FA en todos los servicios que lo permitan
  14. Mantener tu equipo actualizado (OS, antivirus)
  15. Bloquear tu pantalla cuando te alejes
  16. Usar VPN corporativa cuando trabajes remoto

  17. Desarrollar código seguro:

  18. Validar todos los inputs de usuario
  19. Prevenir SQL injection, XSS, CSRF
  20. No exponer información sensible en logs
  21. Seguir OWASP Top 10
  22. Code reviews con enfoque en seguridad

  23. Reportar incidentes:

  24. Reportar vulnerabilidades descubiertas
  25. Reportar accesos no autorizados
  26. Reportar pérdida o robo de equipo
  27. Reportar sospecha de brecha de seguridad

❌ NO Hacer:

  1. NUNCA compartir código fuera de la organización:
  2. No hacer fork público del repositorio
  3. No copiar código a proyectos personales
  4. No compartir snippets en foros públicos (Stack Overflow, etc.) sin anonimizar y obtener aprobación
  5. No compartir en portafolio público sin autorización expresa

  6. NUNCA commitear secretos:

  7. API keys
  8. Contraseñas
  9. Tokens de acceso
  10. Credenciales de BD
  11. Llaves privadas
  12. Si accidentalmente commiteaste un secreto, repórtalo inmediatamente a DevOps

  13. NUNCA usar datos de producción sin anonimizar:

  14. No descargues datos de clientes a tu laptop personal
  15. No uses datos reales en ambientes de desarrollo local
  16. No compartas screenshots con datos reales sin difuminar información sensible
  17. Si necesitas datos para debugging, usa datos de staging o crea fixtures

  18. NUNCA evadir controles de seguridad:

  19. No desactives autenticación "temporalmente"
  20. No bypasees permisos para "hacerlo más rápido"
  21. No hardcodees credenciales "solo para testing"

  22. NUNCA accedas a información sin autorización:

  23. No veas datos de otros usuarios por curiosidad
  24. No accedas a módulos/datos fuera de tu scope de trabajo
  25. No uses cuentas de otros usuarios

OWASP Top 10 - Prevención

Como desarrollador del Sistema A3, debes prevenir:

1. Broken Access Control

  • Qué es: Usuarios accediendo a recursos sin autorización
  • Prevenir: Validar permisos en backend, no solo frontend
  • Ejemplo: Verificar que el usuario puede ver/editar el apartado antes de mostrarlo

2. Cryptographic Failures

  • Qué es: Exponer datos sensibles por falta de encriptación
  • Prevenir: Usar HTTPS, encriptar datos sensibles, no loggear contraseñas
  • Ejemplo: Nunca loguear tokens de API completos

3. Injection

  • Qué es: SQL, command, LDAP injection
  • Prevenir: Usar ORM de Django correctamente, nunca construir SQL queries con strings
  • Ejemplo: Usar .filter(nombre=valor) en lugar de .raw("SELECT * WHERE nombre='{}'".format(valor))

4. Insecure Design

  • Qué es: Falta de controles de seguridad en el diseño
  • Prevenir: Considerar seguridad desde el diseño, no como parche
  • Ejemplo: Diseñar sistema de permisos desde el inicio

5. Security Misconfiguration

  • Qué es: Configuraciones inseguras
  • Prevenir: DEBUG=False en producción, no exponer endpoints de admin sin auth
  • Ejemplo: Verificar que /admin requiere login

6. Vulnerable Components

  • Qué es: Dependencias con vulnerabilidades conocidas
  • Prevenir: Mantener requirements.txt actualizado, usar pip-audit
  • Ejemplo: Actualizar Django cuando hay security patches

7. Authentication Failures

  • Qué es: Fallas en autenticación y sesiones
  • Prevenir: Usar sistema de auth de Django, implementar 2FA eventualmente
  • Ejemplo: Invalidar sesiones al logout

8. Data Integrity Failures

  • Qué es: Aceptar datos no verificados
  • Prevenir: Validar serializadores de DRF, verificar signatures
  • Ejemplo: No confiar ciegamente en datos de APIs externas

9. Logging & Monitoring Failures

  • Qué es: No detectar ataques o brechas
  • Prevenir: Loguear intentos de login fallidos, accesos no autorizados
  • Ejemplo: Alertar si hay muchos 403/401 de un mismo IP

10. Server-Side Request Forgery (SSRF)

  • Qué es: Servidor hace requests no autorizados
  • Prevenir: Validar y sanitizar URLs antes de hacer requests
  • Ejemplo: Si permites que usuario ingrese URL para fetch, validar que no apunte a red interna

Manejo de Incidentes de Seguridad

Qué es un Incidente de Seguridad

  • Acceso no autorizado a datos
  • Brecha de datos (data leak)
  • Vulnerabilidad descubierta siendo explotada
  • Malware o virus en sistemas
  • Pérdida o robo de equipo con datos
  • Exposición accidental de credenciales

Qué Hacer

  1. NO PANIQUES: Mantén la calma
  2. REPORTA INMEDIATAMENTE a:
  3. Tech Lead: [contacto]
  4. DevOps: [contacto]
  5. IT Security (si existe): [contacto]
  6. En horario fuera de oficina: [contacto de emergencia]

  7. NO INTENTES ARREGLARLO SOLO (puedes empeorar las cosas)

  8. DOCUMENTA:

  9. Qué pasó
  10. Cuándo lo detectaste
  11. Qué datos pueden estar comprometidos
  12. Quién más lo sabe

  13. SIGUE INSTRUCCIONES del equipo de seguridad/IT

Ejemplos de Reportar

Correcto:

"Acabo de descubrir que accidentalmente commiteé una API key de AWS en el commit abc123 en la rama feature/xyz. El commit fue pusheado a GitHub hace 2 horas. ¿Qué debo hacer?"

Incorrecto:

"Ups, creo que subí algo que no debía, ya lo borré, creo que está bien"


Compliance y Regulaciones

LFPDPPP (México)

Aplica a: Datos personales de clientes y empleados

Principios: - Licitud: Solo usar datos para fines autorizados - Consentimiento: Cliente debe consentir uso de sus datos - Información: Cliente debe saber qué datos tenemos y para qué - Calidad: Datos deben ser correctos y actualizados - Finalidad: Usar datos solo para el fin que se recolectaron - Lealtad: No usar datos de manera engañosa - Proporcionalidad: Solo recolectar datos necesarios - Responsabilidad: A Terceros es responsable de proteger los datos

Como Desarrollador: - No uses datos de clientes para propósitos no autorizados - Implementa funcionalidades de acceso/rectificación/cancelación de datos si se solicitan - No compartas datos de clientes con terceros sin autorización

Ley Federal del Trabajo (México)

Aplica a: Datos de empleados

Derechos de empleados: - Privacidad de su información personal - Protección de datos de nómina - No discriminación

Como Desarrollador: - No accedas a datos de nómina de otros empleados sin autorización - No uses checador GPS para rastrear ubicación fuera de horario laboral


Acceso a Datos de Producción

Cuándo Está Permitido

  • Debugging de bugs reportados en producción (con aprobación)
  • Análisis de performance (con datos anonimizados)
  • Soporte a usuario (con ticket específico)

Cuándo NO Está Permitido

  • Curiosidad
  • Proyectos personales
  • Análisis no autorizado
  • Compartir con terceros

Cómo Solicitar Acceso

  1. Crear ticket justificando necesidad
  2. Obtener aprobación de Tech Lead o manager
  3. DevOps otorga acceso temporal
  4. Acceso es revocado después de completar tarea

Trabajo Remoto

Seguridad Adicional

Si trabajas remoto:

  • Usa VPN corporativa para acceder a servicios internos
  • Wi-Fi seguro: No uses Wi-Fi público sin VPN
  • Equipo asegurado:
  • Contraseña de laptop
  • Disco encriptado
  • Antivirus actualizado
  • Espacio privado: No trabajes con datos sensibles en cafés o espacios públicos con gente viendo tu pantalla
  • Video calls: Cuidado con qué se ve en tu fondo (pantallas, documentos)

Fin de Relación Laboral

Al terminar tu empleo en A Terceros:

Debes:

  1. Devolver equipo:
  2. Laptop
  3. Accesorios
  4. Cualquier hardware de la empresa

  5. Borrar datos locales:

  6. Código clonado
  7. Bases de datos locales
  8. Documentos de la empresa
  9. Credenciales guardadas

  10. Revocar accesos:

  11. IT revocará todos tus accesos
  12. Cambia contraseñas de cuentas personales que usaste para trabajo

Recuerda:

  • NDA sigue vigente después de que termines empleo
  • No puedes llevarte código o usar en otros proyectos
  • No puedes compartir información confidencial aprendida

Reporte de Vulnerabilidades

Si Descubres una Vulnerabilidad

Haz: 1. Repórtala inmediatamente a Tech Lead o DevOps 2. No la explotes (no pruebes qué tan grave es) 3. No la compartas públicamente 4. Documenta cómo la encontraste para ayudar a remediarla

No Hagas: - Intentar explotarla para ver "qué tan grave es" - Compartirla en redes sociales o foros - Usarla para acceder a datos sin autorización

Proceso: 1. Reportas a [email de seguridad o Tech Lead] 2. Equipo de seguridad/DevOps evalúa 3. Se asigna severidad 4. Se crea plan de remediación 5. Se implementa fix 6. Se notifica a stakeholders si es necesario


Preguntas Frecuentes

¿Puedo usar datos de producción para hacer tests locales? No. Usa datos de staging o crea fixtures sintéticos.

¿Puedo compartir un snippet de código en Stack Overflow para pedir ayuda? Solo si: (1) Anonimizas completamente el código (nombres de variables, comentarios, lógica de negocio), (2) No incluye información propietaria, y (3) Es un snippet genérico (no lógica core del negocio). En caso de duda, pregunta a Tech Lead primero.

¿Puedo mostrar el Sistema A3 en mi portafolio? Solo con autorización expresa de gerencia. Puedes mencionar que trabajaste en un ERP para sector inmobiliario sin mencionar el nombre o detalles específicos.

¿Qué hago si veo que otro desarrollador está accediendo a datos que no debería? Repórtalo a Tech Lead o IT Security inmediatamente. Puede ser un error inocente o puede ser malicioso.

¿Puedo copiar código del Sistema A3 a un proyecto personal? No. El código es propiedad de A Terceros Inmobiliaria. Puedes reusar conceptos y patrones genéricos que aprendiste, pero no el código literal.


Contactos de Seguridad

Rol Contacto Para
Tech Lead [email] Vulnerabilidades, incidentes técnicos
DevOps [email] Brechas de infraestructura, accesos comprometidos
IT Security [email si existe] Incidentes de seguridad graves
Legal/Compliance [email] Dudas sobre compliance, NDA
RH [email] Políticas de seguridad, capacitación

Emergencias fuera de horario: [teléfono/WhatsApp de Tech Lead]


Nota: La seguridad es responsabilidad de todos. Si ves algo sospechoso, repórtalo. Es mejor un falso positivo que ignorar un incidente real.