Seguridad
Las 13 reglas que impone la base de datos, la protección de la demo y cómo se comprueban las solicitudes salientes y las redirecciones.
Las aseguradoras ponen precio a partir de los números de Pruva, así que las reglas de acceso no pueden depender de que la aplicación se porte bien. Cada regla de abajo se impone en Postgres con seguridad a nivel de fila, concesiones sobre columnas o triggers. Cada una tiene una prueba en la suite de RLS que inicia sesión con el rol correspondiente y comprueba que la acción prohibida falla.
Las 13 reglas
- Solo la tienda cambia lo que un espacio de trabajo ha pagado. El nivel, el estado y el fin del periodo de una habilitación solo los puede escribir el rol de servicio de la tienda. Un propietario que intenta poner un módulo en
activerecibe un error. - Los módulos nuevos empiezan bloqueados, y un módulo bloqueado no se puede activar. Las habilitaciones valen
lockedde forma predeterminada. Un propietario no puede activar un módulo bloqueado, por ejemplo Documentos en la demo. - Las lecturas solo las escribe el servicio. Los datos de sensores, las puntuaciones de riesgo, las emisiones, las calificaciones CII y las pólizas no tienen derechos de inserción, actualización ni borrado para los usuarios que han iniciado sesión. Ni siquiera el propietario puede cambiarlos.
- Las decisiones de prima necesitan
publish, y quien revisa queda fijado. Aceptar o rechazar un ajuste de prima necesitapublishen Seguro conectado. La base de datos fija a quien revisa como la persona que hace el cambio; un revisor falsificado se sobrescribe. - Avisar a la tripulación necesita
publish, y los agentes nunca pueden hacerlo. Marcar una alerta como tripulación avisada necesitapublishen Mantenimiento predictivo. Los agentes son rechazados aunque alguien haya intentado concederlo. - Los valores del modelo en la alerta son de solo lectura. Los usuarios pueden actualizar el estado y la nota de una alerta. La gravedad, la probabilidad y la ventana solo las escribe el modelo.
- Sin acceso no hay filas. Un módulo bloqueado o apagado, o un nivel
none, devuelve cero filas de cada tabla de ese módulo. El suscriptor lee cero alertas. Todo el mundo lee cero documentos mientras Documentos está bloqueado. - El suscriptor solo ve los buques compartidos. En la demo son 6 de 18. Véase Compartir buques.
- Las notificaciones no se pueden reescribir. Los usuarios solo pueden marcar una notificación como leída. Cambiar su título, su texto o su enlace, por ejemplo a una página de phishing, falla.
- Las entradas de auditoría solo se escriben en su propio nombre. Una entrada debe nombrar al usuario que ha iniciado sesión como actor. Escribir una en nombre de un agente o de otra persona falla.
- Los agentes nunca tienen
publish, y los miembros no pueden cambiar el acceso. Concederpublisha un agente falla. Solo los propietarios y los administradores pueden cambiar los niveles de acceso. - La presentación de un informe necesita
publishy queda fijada. Presentar un informe necesitapublishen Libro de emisiones. La base de datos registra quién lo presentó y cuándo. - Solo los propietarios y los administradores cambian las conexiones. Las personas eligen si un conector está activo, la cuenta y un extremo
https. El estado, la última sincronización y el texto del problema vienen solo del servicio de sincronización, así que una conexión rota no se puede marcar como sana a mano.
Modo demo
- Sin solicitudes externas. En el modo demo la aplicación lee datos generados y no llama a ningún servicio externo. Las pruebas de extremo a extremo bloquean las solicitudes a terceros y fallan si se intenta alguna.
- Rechazado en producción. Si
DEMO_MODE=trueyNODE_ENV=production, la aplicación se detiene al arrancar con un error. Una demo pública sin datos reales debe definirALLOW_DEMO_IN_PROD=1a propósito. - Visible. Un aviso en cada página dice que es una demo, y cada botón que enviaría, publicaría o gastaría muestra un aviso en su lugar.
Solicitudes salientes
Cualquier URL que introduce un usuario, como un webhook de pasarela o la dirección del portal de la aseguradora, pasa por la guarda de URL antes de llamarla. Permite:
- solo
https, en el puerto predeterminado, - sin nombre de usuario ni contraseña en la URL,
- sin
localhost,.local,.internalni nombres de host de una sola etiqueta, - sin direcciones IP en rangos privados o reservados (IPv4 e IPv6).
Quien llama también comprueba la dirección resuelta justo antes de conectar, así que un nombre de host que después apunta a una dirección privada se rechaza.
Redirecciones seguras
Después del inicio de sesión, Pruva solo redirige a una ruta del mismo sitio. Un valor de next como //evil.example, una URL completa, un truco con barra invertida o un carácter de control vuelve a /app.
El mensaje de la tienda
El sitio firma cada pago con HMAC-SHA256 y un secreto compartido. La aplicación rechaza una firma incorrecta o un mensaje de más de 5 minutos. En producción el sitio no firmará con el secreto de demo integrado. Véase Habilitaciones.
Informar de un problema
Esta es una versión privada. Informe de los problemas de seguridad directamente al equipo de Pruva, no en un canal público.
Precios
Núcleo abierto más módulos de pago. La escalera de paquetes desde Community, gratuito y autoalojado, hasta Complete, paquetes sectoriales, cámaras Safety Vision, planes de soporte, la licencia autoalojada y los servicios. Cada número de esta página se lee de @pruva/pricing.
Licencias
Pruva es software privado y propietario.