Distribuire Cyberwatch in conformità con il CCN-STIC 807
La guida CCN-STIC 807 (Criptología de empleo en el Esquema Nacional de Seguridad), pubblicata dal Centro Criptológico Nacional (CCN) spagnolo, definisce i requisiti crittografici applicabili alle organizzazioni soggette all’Esquema Nacional de Seguridad (ENS). Impone in particolare l’utilizzo di protocolli crittografici allo stato dell’arte (TLS 1.3) e il controllo dei componenti distribuiti.
Questa pagina descrive gli adattamenti da apportare alla distribuzione di Cyberwatch per rispettare tali requisiti. Integra la distribuzione standard con Swarm e la pagina Distribuire Cyberwatch in un ambiente sottoposto a hardening.
Le raccomandazioni di questa pagina si applicano esclusivamente alle organizzazioni effettivamente soggette al CCN-STIC 807. Non sono necessarie per una distribuzione standard e possono complicare inutilmente l’installazione negli altri contesti.
1. Disattivazione di Elasticsearch e Kibana integrati
Per impostazione predefinita, Cyberwatch integra le proprie istanze Elasticsearch e Kibana. In un ambiente soggetto al CCN-STIC 807, questi container integrati devono essere disattivati, poiché la loro configurazione crittografica non è sotto il controllo dell’organizzazione.
Seguire la procedura Disattivazione dei container integrati (flag CBW_DISABLE_ELK), documentata per Docker Swarm, Podman e il chart Helm.
Se le funzionalità basate su Elasticsearch e Kibana restano necessarie, è possibile connettere Cyberwatch a un Elastic Stack distribuito internamente e configurato in conformità con la policy di sicurezza dell’organizzazione. La procedura di configurazione di un Elastic Stack esterno descrive le impostazioni richieste (URL, autenticazione, certificato CA, metodo di verifica TLS).
2. Download del pacchetto Cyberwatch in TLS 1.3
La distribuzione standard aggiunge il repository Cyberwatch e poi installa il pacchetto tramite il gestore di pacchetti della distribuzione (apt, dnf).
A seconda del sistema operativo, il client TLS del gestore di pacchetti non sempre dispone dei prerequisiti necessari (negoziazione di TLS 1.3) per essere conforme al CCN-STIC 807. In questo caso, non configurare il repository Cyberwatch: scaricare il pacchetto manualmente con curl forzando TLS 1.3, quindi installarlo localmente.
Recuperare i pacchetti cyberwatch e cosign adatti alla distribuzione forzando TLS 1.3 con le opzioni --tlsv1.3 --tls-max 1.3:
L’installazione del pacchetto Cyberwatch può richiedere l’aggiunta di dipendenze non ancora presenti sul sistema, come ad esempio docker, logrotate, openssl, bash-completion o curl. Queste andranno installate dai repository della distribuzione interessata.
Per le distribuzioni basate su Debian (repository apt):
# Le nom exact du paquet cosign (versionné) est visible sur 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
Per le distribuzioni basate su Red Hat (repository rpm):
# Le nom exact du paquet cosign (versionné) est visible sur 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. Importazione delle immagini dei container tramite docker load
L’installazione scarica quindi le immagini dei container dal registry Cyberwatch (harbor.cyberwatch.fr) tramite il daemon Docker.
Il client TLS del daemon Docker ufficiale non è attualmente conforme al CCN-STIC 807. Non deve quindi essere utilizzato per recuperare le immagini. Scaricare invece l’archivio delle immagini da dl.cyberwatch.com (in TLS 1.3) e importarle localmente con docker load.
Seguire la procedura Scaricare e importare le immagini dei container forzando TLS 1.3 sul download 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
Disattivare il download delle immagini configurando la variabile CBW_NO_PULL="true" nel file /etc/cyberwatch/config.env.
Poiché le immagini sono presenti nella cache locale, il daemon Docker non ha bisogno di recuperarle dal registry durante la configurazione.
4. Blocco delle connessioni in uscita del daemon Docker
Anche con le immagini caricate localmente e CBW_NO_PULL="true", il daemon Docker può ancora avviare connessioni verso il registry: durante la distribuzione dello stack, Docker Swarm tenta in particolare di risolvere il digest delle immagini. Poiché il client TLS del daemon non è conforme al CCN-STIC 807, queste connessioni residue devono essere bloccate.
A tal fine, configurare sul servizio docker un proxy volutamente irraggiungibile, che fa fallire immediatamente qualsiasi connessione in uscita del daemon:
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
Applicare le modifiche:
sudo systemctl daemon-reload
sudo systemctl restart docker
Applicare questa configurazione su ogni nodo Cyberwatch (master/satellite).
5. Configurazione di Cyberwatch
Dopo aver installato il pacchetto, importato le immagini, impostato la disattivazione di ELK e configurato il proxy Docker, configurare l’applicazione:
sudo cyberwatch configure
Proseguire quindi con la procedura guidata di installazione come descritto nella distribuzione standard con Swarm.
Questa pagina copre la distribuzione consigliata con Docker Swarm. Gli stessi principi si applicano alle distribuzioni Podman: la disattivazione di ELK è documentata anche per Podman e l’importazione manuale delle immagini in TLS 1.3 segue la stessa logica (podman image load, precaricamento nel registry del cluster). Analogamente per Kubernetes, è necessario configurare global.image.pullPolicy: Never nel values.yml e caricare le immagini in base al motore di storage delle immagini associato al cluster Kubernetes. Ciò è necessario solo nel caso in cui il download delle immagini non rispetti i requisiti relativi a TLS 1.3.
Supporto tecnico
Per qualsiasi domanda relativa a una distribuzione soggetta al CCN-STIC 807, contattare il supporto Cyberwatch:
- via e-mail all’indirizzo support@cyberwatch.com
- telefonicamente al numero +33 1 84 80 88 84