Informazioni tecniche sulle connessioni agentless per i sistemi Linux
L’utilizzo di connessioni agentless per monitorare sistemi Linux è possibile fornendo a Cyberwatch un account che consenta la connessione all’asset tramite il protocollo SSH. Il protocollo SSH fornisce diversi metodi per gestire l’autenticazione (password, chiavi SSH) degli account da autorizzare.
Creare un account SSH con autenticazione tramite nome utente / password
Ad esempio, è possibile utilizzare il comando seguente:
sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'
sudo passwd cyberwatch # Attention il faudra saisir ici le mot de passe à attribuer au compte
Spiegazione: questo comando crea un account denominato «cyberwatch» e consente di definire la password di questo account.
Creare un account SSH con autenticazione tramite chiave pubblica / chiave privata
Generazione della chiave SSH
Su una macchina Linux dedicata alla generazione delle chiavi, generare una chiave RSA a 4096 bit:
ssh-keygen -t rsa -b 4096
Per impostazione predefinita, questa chiave verrà salvata nei file ~/.ssh/id_rsa (chiave privata) e ~/.ssh/id_rsa.pub (chiave pubblica).
Le chiavi SSH con passphrase non sono supportate.
Creazione dell’utente e configurazione della chiave
Sull’asset Linux da proteggere, creare un utente ‘cyberwatch’ tramite il comando:
sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'
Dalla macchina Linux dedicata alla generazione delle chiavi, trasferire la chiave pubblica generata al punto 1 sull’asset Linux da proteggere. A tal fine è possibile utilizzare il comando:
cat ~/.ssh/id_rsa.pub | ssh [user]@[host] 'sudo tee -a /home/cyberwatch/.ssh/authorized_keys'
avendo cura di sostituire [user] e [host] con i parametri di connessione dell’asset da monitorare.
Facoltativo - concedere i diritti sudoers SENZA TTY a Cyberwatch
Per alcune operazioni, come la distribuzione delle patch, l’esecuzione di alcune scansioni o la verifica degli script di conformità, i diritti sudoers sono necessari per l’esecuzione dei comandi associati sull’asset.
Concedere questi diritti non è strettamente necessario: Cyberwatch è in grado di avviare le proprie scansioni delle vulnerabilità predefinite senza disporre di diritti specifici sugli asset monitorati.
Di seguito è riportato uno dei modi per configurare questi diritti sugli asset al fine di consentire a Cyberwatch di eseguire le operazioni menzionate.
Sull’asset di destinazione, tramite SSH, utilizzare il comando seguente:
sudo visudo
Aggiungere alla fine del file le righe seguenti:
# cyberwatch privileges
cyberwatch ALL=(ALL) NOPASSWD:ALL
Defaults:cyberwatch !requiretty
Spiegazione: questo comando modifica il file /etc/sudoers e configura i diritti dell’utente denominato «cyberwatch» in modo che sia sudoer e disattiva il TTY.
Dettaglio dei diritti sudoers minimi necessari per distribuire le patch sui sistemi Linux
I sistemi Linux forniscono metodi che consentono di limitare i diritti sudoers all’utilizzo di alcuni comandi soltanto. Ciò può essere utile se si desidera consentire a Cyberwatch di eseguire alcune operazioni specifiche come la distribuzione delle patch.
Ciò non sarà tuttavia sufficiente per consentire a Cyberwatch di eseguire le analisi di conformità, poiché non è possibile stabilire un elenco completo dei comandi che potrebbero essere eseguiti e che richiedono diritti sudoers.
Un modo per limitare i diritti sudoers dell’utente utilizzato per il monitoraggio di un asset Linux consiste nel limitare i suoi diritti sudoers ai comandi seguenti:
id
apt-get/yum/pacman
shutdown
ss
dmidecode
docker
Ecco una breve spiegazione dei motivi per cui autorizzare questi comandi:
idè il primo comando eseguito da Cyberwatch durante la connessione a un asset; consente di determinare se Cyberwatch dispone o meno di diritti sudoers sull’assetapt-get/yum/pacmansono gestori di pacchetti tipicamente utilizzati sui diversi sistemi Linux (elenco non esaustivo); verranno utilizzati da Cyberwatch durante la distribuzione delle patch in base al sistema operativoshutdownverrà utilizzato se si desidera avviare un riavvio degli asset da Cyberwatchssviene utilizzato per la scansione delle porte; autorizzare l’esecuzione di questo comando con diritti sudoers consente a Cyberwatch di recuperare i processi associati alle diverse portedmidecodeviene utilizzato per recuperare i metadati del BIOS; il comando richiede diritti sudoersdockerserve a eseguire la scansione delle vulnerabilità delle immagini Docker trovate sull’asset
Per un asset che utilizza apt, un esempio di configurazione del file /etc/sudoers potrebbe essere:
# cyberwatch privileges
Cmnd_Alias CBW = /usr/bin/id, /usr/bin/apt-get, /sbin/shutdown, /usr/bin/ss, /usr/sbin/dmidecode, /usr/bin/docker
cyberwatch-agent ALL=(ALL) NOPASSWD:SETENV: CBW
Defaults:cyberwatch-agent !requiretty