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:¶
- Proteger la confidencialidad:
- Respetar acuerdos de NDA que firmaste
- No compartir código fuera de la organización
- No compartir credenciales de acceso
-
No discutir detalles del sistema en redes sociales
-
Manejar datos responsablemente:
- Usar datos de producción solo cuando sea absolutamente necesario
- Anonimizar datos si los descargas para análisis
- Borrar datos locales cuando ya no los necesites
-
Reportar accesos no autorizados inmediatamente
-
Seguir prácticas de seguridad:
- Usar contraseñas fuertes y únicas
- Habilitar 2FA en todos los servicios que lo permitan
- Mantener tu equipo actualizado (OS, antivirus)
- Bloquear tu pantalla cuando te alejes
-
Usar VPN corporativa cuando trabajes remoto
-
Desarrollar código seguro:
- Validar todos los inputs de usuario
- Prevenir SQL injection, XSS, CSRF
- No exponer información sensible en logs
- Seguir OWASP Top 10
-
Code reviews con enfoque en seguridad
-
Reportar incidentes:
- Reportar vulnerabilidades descubiertas
- Reportar accesos no autorizados
- Reportar pérdida o robo de equipo
- Reportar sospecha de brecha de seguridad
❌ NO Hacer:¶
- NUNCA compartir código fuera de la organización:
- No hacer fork público del repositorio
- No copiar código a proyectos personales
- No compartir snippets en foros públicos (Stack Overflow, etc.) sin anonimizar y obtener aprobación
-
No compartir en portafolio público sin autorización expresa
-
NUNCA commitear secretos:
- API keys
- Contraseñas
- Tokens de acceso
- Credenciales de BD
- Llaves privadas
-
Si accidentalmente commiteaste un secreto, repórtalo inmediatamente a DevOps
-
NUNCA usar datos de producción sin anonimizar:
- No descargues datos de clientes a tu laptop personal
- No uses datos reales en ambientes de desarrollo local
- No compartas screenshots con datos reales sin difuminar información sensible
-
Si necesitas datos para debugging, usa datos de staging o crea fixtures
-
NUNCA evadir controles de seguridad:
- No desactives autenticación "temporalmente"
- No bypasees permisos para "hacerlo más rápido"
-
No hardcodees credenciales "solo para testing"
-
NUNCA accedas a información sin autorización:
- No veas datos de otros usuarios por curiosidad
- No accedas a módulos/datos fuera de tu scope de trabajo
- 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=Falseen producción, no exponer endpoints de admin sin auth - Ejemplo: Verificar que
/adminrequiere login
6. Vulnerable Components¶
- Qué es: Dependencias con vulnerabilidades conocidas
- Prevenir: Mantener
requirements.txtactualizado, usarpip-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¶
- NO PANIQUES: Mantén la calma
- REPORTA INMEDIATAMENTE a:
- Tech Lead:
[contacto] - DevOps:
[contacto] - IT Security (si existe):
[contacto] -
En horario fuera de oficina:
[contacto de emergencia] -
NO INTENTES ARREGLARLO SOLO (puedes empeorar las cosas)
-
DOCUMENTA:
- Qué pasó
- Cuándo lo detectaste
- Qué datos pueden estar comprometidos
-
Quién más lo sabe
-
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¶
- Crear ticket justificando necesidad
- Obtener aprobación de Tech Lead o manager
- DevOps otorga acceso temporal
- 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:¶
- Devolver equipo:
- Laptop
- Accesorios
-
Cualquier hardware de la empresa
-
Borrar datos locales:
- Código clonado
- Bases de datos locales
- Documentos de la empresa
-
Credenciales guardadas
-
Revocar accesos:
- IT revocará todos tus accesos
- 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.