Saltar al contenido

Seguridad

Qué hacemos con tu código y tus servidores, y qué no vamos a afirmar

Un producto de seguridad que es vago sobre su propia seguridad no merece un repositorio. Cada control de abajo dice si existe en el código hoy o sigue planificado, porque una página que lista ambos sin distinguirlos es una página que afirma una seguridad que no ha construido.

Informar de una vulnerabilidad

Escribe a security@audixa.es. No tomaremos medidas legales contra una investigación de buena fe, y te diremos qué hicimos al respecto.

Aún no hay un programa de recompensas. Decirlo es mejor que insinuarlo y decepcionar a quien nos dedicó una tarde.

Construido hoy

11 controles que existen en el código ahora

Son propiedades de cómo está escrita la aplicación, no políticas que pretendemos seguir. Cada uno se impone en un sitio que un desarrollador no puede olvidar.
Comprobable en la versión actual
  • Tus datos se separan por organización, y esa separación se prueba

    Cada consulta contra datos de negocio lleva la organización a la que pertenece, impuesta por la capa de base de datos y no porque cada desarrollador se acuerde. Un test generado recorre cada ruta de API con identificadores de otra organización y exige un 'no encontrado'.

  • Los permisos se comprueban en el servidor, en cada petición

    Los roles se evalúan desde una única matriz de capacidades. Ocultar un botón no es un control, así que cada página y endpoint vuelve a comprobar en lugar de confiar en lo que vio el navegador.

  • Los cambios de acceso surten efecto de inmediato

    Los roles y el estado de la cuenta se leen de la base de datos en cada petición en lugar de cachearse en la sesión, así que quitar el acceso a alguien lo quita ahora, no cuando caduque su sesión.

  • Los cambios sensibles se registran en un log de auditoría de solo añadido

    Quién invitó a quién, quién cambió un rol, quién alteró ajustes. La aplicación no tiene permiso para actualizar o borrar esas filas; la base de datos rechaza el intento.

  • Los secretos no llegan a los logs

    Los valores con forma de credencial se ofuscan antes de llegar a un sumidero de logs, y el mismo filtrado corre de forma independiente sobre los metadatos de auditoría.

  • No ejecutamos tu código

    El análisis de dependencias lee tu lockfile; nunca instala ni resuelve nada. No hay paso de build, ni ejecución de tests ni scripts de paquetes en ningún análisis.

  • El análisis del repositorio ocurre en un sandbox desechable sin red

    Cada análisis tiene su propio contenedor con la red deshabilitada, una imagen de solo lectura, límites de memoria y CPU y un corte por tiempo. El entorno se destruye al terminar el trabajo.

  • Las comprobaciones activas solo se ejecutan contra un dominio que hayas demostrado controlar

    La verificación es un registro DNS TXT o un archivo en /.well-known. Hasta que uno de los dos funcione, no enviamos ninguna petición a tu dominio.

  • Nuestro analizador no puede apuntar a una red privada

    Cada petición saliente resuelve primero el hostname, rechaza cualquier dirección que no sea pública y se conecta a la dirección que validó — así una respuesta DNS no puede cambiar entre la comprobación y la conexión. Las redirecciones se revalidan en cada salto.

  • Los clones del análisis son de solo lectura; las pull requests se abren solo si lo pides

    Cada análisis usa un token de lectura de corta vida. Un token de escritura se emite solo cuando nos pides abrir una pull request de corrección con IA o del sello, y esas ramas nunca se fusionan solas.

  • El modelo no ve archivos .env ni claves privadas

    El escaneo de secretos sí lee .env, .env.*, PEM y otros archivos de secretos — así es como una clave commitada se convierte en hallazgo. Esos archivos se descartan antes de construir los payloads de revisión o explicación. Los fragmentos de aplicación se ofuscan otra vez antes de salir del proceso.

En tus servidores

Qué puede y qué no puede hacer audixa-agent

El agente es la única pieza de Audixa que toca un servidor. Estas son sus reglas.
  • No abre ningún puerto y la nube nunca se conecta a él

    El agente consulta a Audixa por HTTPS saliente. Cada petición va firmada con una clave Ed25519 creada en el servidor; la clave privada nunca sale de él, y la clave de un servidor revocado deja de aceptarse.

  • Solo ejecuta las tareas de un catálogo fijo

    Auditorías, inventario, análisis de malware, cuarentena, restauración y copias de seguridad. La clase de recursos de cada tarea sale del catálogo, no de la petición, y una tarea que el agente no conoce se informa como tal, nunca como hecha.

  • Solo actúa sobre sitios que ha descubierto él mismo

    Una tarea nombra un sitio web y el agente lo busca entre los que encontró en el servidor. La nube no puede dirigirlo a una ruta arbitraria.

  • Un cambio solo cuenta como hecho con evidencia

    Una cuarentena solo se acepta si el hash del archivo coincide con el solicitado; una restauración, solo con la ruta restaurada. Si no, el registro queda como fallido, no como hecho.

  • Nunca saca archivos completos del servidor

    Solo metadatos, versiones, hashes, rutas, hallazgos y evidencia enmascarada. Nunca ficheros .env, claves privadas, credenciales de base de datos ni valores de wp-config.php. Los fragmentos de malware se enmascaran y se limitan a 200 bytes.

  • Cede el paso a tu tráfico

    Prioridad baja de CPU y disco, como máximo 3 tareas y 1 análisis pesado a la vez, y nada nuevo bajo presión. Las reglas completas están en la página de cómo funciona.

Límites

Qué no es un análisis

La sección más útil de esta página para decidir si Audixa encaja con lo que necesitas.
  • Un análisis limpio significa que las comprobaciones que ejecutamos no encontraron nada — no que tu aplicación sea segura. Te decimos qué comprobaciones se ejecutaron y cuáles no.
  • No intentamos explotar nada. Sin fuerza bruta, sin escaneo de puertos, sin cargas destructivas.
  • No revisamos la lógica de negocio que solo podría evaluar una persona que conoce tu producto.
  • No somos una certificación de cumplimiento. No emitimos atestaciones ISO, SOC 2 ni PCI, y un análisis no es una auditoría.
  • El análisis automatizado encuentra patrones. Se le escapan cosas y a veces marca algo que resulta estar bien — por eso cada hallazgo lleva un nivel de confianza y su evidencia.

Nunca te diremos que tu aplicación es segura, y no escribiremos una carta que lo diga. Lo máximo que una revisión automática puede afirmar con honestidad es qué comprobaciones se ejecutaron y qué encontraron — que es genuinamente útil, y es lo que dice cada informe de análisis.

Tratamiento de datos

Qué almacenamos, y durante cuánto tiempo

La retención, los proveedores que pueden ver algo y cómo pedir que se borren tus registros están en la página de privacidad, escritos como tablas y no como párrafos de tranquilidad.
Leer el aviso de privacidad

La versión corta

Tu código fuente no se retiene. Un análisis trabaja en un contenedor que se destruye al terminar el trabajo, y lo que sobrevive son los hallazgos más hasta tres líneas de contexto alrededor de cada coincidencia, con cualquier cosa que parezca un secreto ofuscada antes de almacenarse.

Las consultas enviadas desde este sitio se guardan 24 meses desde el último contacto, y las borramos antes si lo pides.

Lee el conjunto antes de conectar nada

Si un control que necesitas está en la lista planificada y no en la construida, conviene saberlo ahora. Dinos cuál y te diremos con honestidad cuándo llega.

Preguntar por un control concretoO lee qué ocurre durante un análisis

Sin cambios automáticos en tu código ni en tus servidores.