Desplegar Cyberwatch conforme a la CCN-STIC 807
La guía CCN-STIC 807 (Criptología de empleo en el Esquema Nacional de Seguridad), publicada por el Centro Criptológico Nacional (CCN) español, define los requisitos criptográficos aplicables a las organizaciones sujetas al Esquema Nacional de Seguridad (ENS). Impone, en particular, el uso de protocolos criptográficos de última generación (TLS 1.3) y el control de los componentes desplegados.
Esta página describe las adaptaciones que deben realizarse en el despliegue de Cyberwatch para cumplir con estos requisitos. Completa el despliegue estándar con Swarm y la página Desplegar Cyberwatch en un entorno endurecido.
Las recomendaciones de esta página se aplican únicamente a las organizaciones que efectivamente están sujetas a la CCN-STIC 807. No son necesarias para un despliegue estándar y pueden complicar innecesariamente la instalación en otros contextos.
1. Desactivación de Elasticsearch y Kibana integrados
Por defecto, Cyberwatch integra sus propias instancias de Elasticsearch y Kibana. En un entorno sujeto a la CCN-STIC 807, estos contenedores integrados deben ser desactivados, ya que su configuración criptográfica no está controlada por la organización.
Siga el procedimiento desactivación de los contenedores integrados (bandera CBW_DISABLE_ELK), documentado para Docker Swarm, Podman y el chart Helm.
Si las funcionalidades que dependen de Elasticsearch y Kibana siguen siendo necesarias, es posible conectar Cyberwatch a un Elastic Stack desplegado internamente y configurado conforme a su política de seguridad. El procedimiento de configuración de un Elastic Stack externo describe los ajustes requeridos (URL, autenticación, certificado CA, método de verificación TLS).
2. Descarga del paquete Cyberwatch mediante TLS 1.3
El despliegue estándar añade el repositorio de Cyberwatch y luego instala el paquete a través del gestor de paquetes de la distribución (apt, dnf).
Según el sistema operativo, el cliente TLS del gestor de paquetes no siempre dispone de los requisitos previos necesarios (negociación de TLS 1.3) para ser conforme a la CCN-STIC 807. En ese caso, no configure el repositorio de Cyberwatch: descargue el paquete manualmente con curl forzando TLS 1.3, y luego instálelo localmente.
Recupere los paquetes cyberwatch y cosign adaptados a la distribución forzando TLS 1.3 con las opciones --tlsv1.3 --tls-max 1.3:
La instalación del paquete Cyberwatch puede requerir la adición de dependencias que aún no estén presentes en el sistema, como docker, logrotate, openssl, bash-completion o curl, por ejemplo. Estas deberán instalarse desde los repositorios de la distribución correspondiente.
Para distribuciones basadas en Debian (repositorio apt):
# El nombre exacto del paquete cosign (con versión) es visible en https://dl.cyberwatch.com/apt/incoming/
curl --tlsv1.3 --tls-max 1.3 -JLO https://dl.cyberwatch.com/apt/incoming/cyberwatch.deb
curl --tlsv1.3 --tls-max 1.3 -JLO https://dl.cyberwatch.com/apt/incoming/cosign_<version>.deb
sudo dpkg -i cosign*.deb
sudo dpkg -i cyberwatch.deb
Para distribuciones basadas en Red Hat (repositorio rpm):
# El nombre exacto del paquete cosign (con versión) es visible en https://dl.cyberwatch.com/rpm/incoming/
curl --tlsv1.3 --tls-max 1.3 -JLO https://dl.cyberwatch.com/rpm/incoming/cyberwatch.rpm
curl --tlsv1.3 --tls-max 1.3 -JLO https://dl.cyberwatch.com/rpm/incoming/cosign-<version>.rpm
sudo rpm -i cosign*.rpm
sudo rpm -i cyberwatch.rpm
3. Importación de las imágenes de contenedores mediante docker load
La instalación descarga a continuación las imágenes de los contenedores desde el registro de Cyberwatch (harbor.cyberwatch.fr) utilizando el demonio Docker.
El cliente TLS del demonio Docker oficial actualmente no es conforme a la CCN-STIC 807. Por lo tanto, no debe utilizarse para recuperar las imágenes. En su lugar, descargue el archivo de las imágenes desde dl.cyberwatch.com (en TLS 1.3) y luego impórtelas localmente con docker load.
Siga el procedimiento descargar e importar las imágenes de los contenedores forzando TLS 1.3 en la descarga con curl:
export CBW_USER=
export CBW_PASSWORD=
curl --tlsv1.3 --tls-max 1.3 -u "$CBW_USER:$CBW_PASSWORD" -JLO https://dl.cyberwatch.com/download_images
docker image load -i images_cbwonpremise_*.tar.gz
Desactive la descarga de imágenes configurando la variable CBW_NO_PULL="true" en el archivo /etc/cyberwatch/config.env.
Al estar las imágenes presentes en la caché local, el demonio Docker no necesita recuperarlas del registro durante la configuración.
4. Bloqueo de las conexiones salientes del demonio Docker
Incluso con las imágenes cargadas localmente y CBW_NO_PULL="true", el demonio Docker sigue siendo susceptible de emitir conexiones hacia el registro: al desplegar la stack, Docker Swarm intenta, en particular, resolver el digest de las imágenes. Como el cliente TLS del demonio no es conforme a la CCN-STIC 807, estas conexiones residuales deben ser bloqueadas.
Para ello, configure en el servicio docker un proxy intencionadamente inalcanzable, que haga fallar inmediatamente cualquier conexión saliente del demonio:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOL
[Service]
Environment="HTTP_PROXY=http://127.0.0.2:9"
Environment="HTTPS_PROXY=http://127.0.0.2:9"
EOL
Aplique los cambios:
sudo systemctl daemon-reload
sudo systemctl restart docker
Aplique esta configuración en cada nodo Cyberwatch (maestro/satélite).
5. Configuración de Cyberwatch
Una vez instalado el paquete, importadas las imágenes, desactivado ELK y configurado el proxy de Docker, configure la aplicación:
sudo cyberwatch configure
Continúe después con el asistente de instalación como se describe en el despliegue estándar con Swarm.
Esta página cubre el despliegue recomendado con Docker Swarm. Los mismos principios se aplican a los despliegues con Podman: la desactivación de ELK está documentada, y la importación manual de las imágenes en TLS 1.3 sigue la misma lógica (podman image load, precarga en el registro del clúster). De igual modo, para Kubernetes, es necesario configurar la opción global.image.pullPolicy: Never en el values.yml y cargar las imágenes según el motor de almacenamiento de imágenes asociado al clúster Kubernetes. Esto solo es necesario en caso de que la descarga de imágenes no cumpla los requisitos respecto a TLS 1.3.
Soporte técnico
Para cualquier consulta relativa a un despliegue sujeto a la CCN-STIC 807, contacte con el soporte Cyberwatch:
- por correo electrónico en support@cyberwatch.com
- por teléfono al +33 1 84 80 88 84