Seguridad
Cómo ClimaHQ protege los datos de su organización en cada capa, desde el borde de la red hasta la fila de la base de datos.
Aislamiento de datos
Arquitectura multi-inquilino con límites aplicados a nivel de base de datos.
Seguridad a nivel de fila de PostgreSQL
Cada tabla con alcance de inquilino tiene una política de seguridad a nivel de fila que filtra filas por organización. Aplicado por Postgres mismo, no por código de aplicación, por lo que incluso un error en nuestros controladores no puede filtrar datos entre inquilinos.
Contexto de inquilino por solicitud
Cada solicitud establece una variable de sesión de Postgres (SET LOCAL) con el ID de la organización autenticada. Las políticas RLS hacen referencia a esta variable, garantizando que las consultas nunca devuelvan filas de otro inquilino.
Claves primarias UUID
Todos los registros utilizan identificadores UUIDv4 en lugar de enteros secuenciales. Los ID de recursos no pueden ser adivinados ni enumerados.
Cifrado
Datos protegidos en tránsito y en reposo.
TLS en todas partes
Todo el tráfico se cifra con TLS. HTTPS se aplica en producción con cabeceras HSTS, y las solicitudes HTTP en texto plano se redirigen automáticamente.
Atributos sensibles cifrados
Los atributos demográficos (género, etnicidad, departamento) utilizados para el análisis de equidad se cifran en la capa de aplicación usando AES-256-GCM antes de escribirse en la base de datos.
Claves API con hash
Las claves API se procesan con SHA-256 antes de almacenarlas. Nunca almacenamos el token sin procesar. Se muestra una vez al momento de la creación y no puede recuperarse de nuevo.
Hash de contraseñas con bcrypt
Las contraseñas de los usuarios se procesan con bcrypt. Las contraseñas sin procesar nunca se almacenan ni se registran.
Anonimato y privacidad
La confianza de los empleados es la base de datos culturales honestos.
Umbral mínimo de 5 respuestas
Los grupos con menos de 5 respuestas se ocultan automáticamente de todos los paneles e informes. Esto evita que los gerentes identifiquen a encuestados individuales en equipos pequeños.
Informes solo agregados
Todas las puntuaciones culturales, métricas de equidad e informes de cumplimiento se calculan a partir de datos agregados. Las respuestas individuales de encuestas nunca se muestran a administradores ni gerentes.
Sin identificación individual
Las respuestas de encuestas se almacenan sin identificadores de usuario. No existe un mecanismo técnico para rastrear una respuesta hasta un empleado específico, por diseño, no solo por política.
Seguridad de la aplicación
Cabeceras, políticas y protecciones del navegador.
Política de seguridad de contenido
Una CSP estricta restringe las fuentes de scripts, estilos, imágenes y marcos. frame-ancestors se establece en 'none' para prevenir el clickjacking.
Lista blanca estricta de parámetros
Todas las acciones del controlador utilizan listas de permisos de parámetros explícitas. El permiso general está prohibido por política del proyecto y se aplica en la revisión de código.
Filtrado de parámetros sensibles
Las contraseñas, tokens, claves API y otros valores sensibles se eliminan automáticamente de los registros de la aplicación.
Pruebas de seguridad continuas
Verificaciones automatizadas en cada commit.
Escáner de análisis estático que verifica inyección SQL, XSS, asignación masiva y otras vulnerabilidades específicas de Rails en cada ejecución de CI.
Verifica todas las dependencias de gemas Ruby contra la Base de Datos de Avisos de Ruby para CVEs conocidos antes de cada despliegue.
Escanea las dependencias de JavaScript distribuidas en busca de vulnerabilidades conocidas.
¿Tiene preguntas sobre nuestras prácticas de seguridad?
Estamos encantados de discutir nuestra arquitectura, responder cuestionarios de seguridad o explicarle nuestro enfoque para proteger los datos de los empleados.