Importar o actualitzar la base de dades de vulnerabilitats amb Swarm o Podman

Aquest procediment descriu com actualitzar la base de dades de vulnerabilitats d’una instància de Cyberwatch desplegada en mode fora de línia amb Docker Swarm o Podman.

La base de dades de vulnerabilitats es pot actualitzar des d’un navegador web o des de la línia d’ordres. La importació des d’un navegador és adequada per a una actualització puntual de la base de dades de vulnerabilitats. En canvi, la importació des de la línia d’ordres és més adequada per a un ús freqüent, ja que es pot automatitzar.

Requisits previs

El procediment d’importació de la base de dades de vulnerabilitats requereix:

  • una màquina connectada a internet
  • credencials vàlides per accedir al repositori del programari Cyberwatch
  • una instància de Cyberwatch actualitzada i desplegada en mode fora de línia amb Swarm o Podman

Des d’un navegador

Aquesta secció descriu com obtenir i importar la base de dades de vulnerabilitats des d’un navegador web. És adequada per a un ús puntual

  1. Baixeu l’arxiu de vulnerabilitats des de l’adreça https://dl.cyberwatch.com/download_database. L’accés està protegit per una autenticació basic auth. Cyberwatch proporciona les credencials d’accés

  2. Inicieu la sessió a la interfície web de la instància de Cyberwatch amb un compte d’administrador

  3. Aneu a la pàgina visió general de l’administració

  4. Feu clic al botó «Puja», a prop del títol «Base de dades de seguretat»

  5. Importeu el fitxer que heu baixat abans i feu clic a «Actualitza»

Des de la línia d’ordres

Aquesta secció descriu com obtenir i importar la base de dades de vulnerabilitats des de la línia d’ordres. Està pensada perquè es pugui automatitzar.

Obtenir la base de dades

  1. Exporteu les variables de connexió a Cyberwatch a l’entorn (completeu-les amb les credencials que proporciona Cyberwatch):

     export CBW_USER=
     export CBW_PASSWORD=
    
  2. Obteniu la base de dades de vulnerabilitats:

    curl -u "$CBW_USER:$CBW_PASSWORD" \
       -sf https://dl.cyberwatch.com/download_database \
       -o vulnerability_db.zip
    
  3. (Opcional) Verifiqueu la integritat de la base de dades de vulnerabilitats:

    1. Extraieu l’arxiu:

      unzip vulnerability_db.zip
      
    2. Obteniu la clau pública de Cyberwatch:

      curl https://dl.cyberwatch.com/securitydb/cyberwatch.pub -o cyberwatch.pub
      
    3. Calculeu el sha256 de la base:

      head -c -1 cyberwatch.db | sha256sum | cut -f1 -d' '| tr -d '\n' > cyberwatch.db.sha256
      
    4. Verifiqueu la signatura:

      openssl dgst -sha256 -verify cyberwatch.pub -signature cyberwatch.sig cyberwatch.db.sha256
      

      El resultat d’aquesta ordre ha de ser Verified OK.

Importar l’arxiu a Cyberwatch

  1. Importeu l’arxiu vulnerability_db.zip a la màquina on està instal·lat Cyberwatch

  2. Connecteu-vos per SSH a la màquina on està instal·lat Cyberwatch

  3. Moveu el fitxer .zip a la carpeta /var/lib/cyberwatch/security_database:

    mv vulnerability_db.zip /var/lib/cyberwatch/security_database/vulnerability_db.zip
    

    Amb Podman, cal donar els drets sobre l’arxiu a l’usuari cyberwatch:
    sudo chown cyberwatch:cyberwatch /var/lib/cyberwatch/security_database/vulnerability_db.zip

  4. Reinicieu Cyberwatch:

    sudo cyberwatch restart
    
  5. Importeu les dades de la base de dades de vulnerabilitats:

    sudo cyberwatch exec sidekiq_master security_database_import_task
    

Automatitzar la importació amb una tasca cron

Podeu automatitzar la importació de la base de dades de seguretat amb una tasca planificada de cron, per exemple.

L’executable cyberwatch permet executar ordres directament als nostres contenidors amb l’ordre cyberwatch exec. Aquesta ordre equival a utilitzar l’ordre docker exec -it, que permet executar una ordre mitjançant un intèrpret d’ordres interactiu en un contenidor.

Tanmateix, aquest enfocament no funciona per als scripts que s’executen des d’una crontab, que no pot utilitzar un intèrpret d’ordres interactiu.

Per tant, l’ús de l’ordre cyberwatch exec per defecte en un script cridat per cron no tindrà cap efecte.

La solució és cridar la utilitat cyberwatch en mode no interactiu. Així, l’ordre de sincronització de la base de dades podria ser:

sudo exec_interactive=false cyberwatch exec sidekiq_master security_database_import_task

Una tasca cron es podria configurar de la manera següent amb un usuari sudoer:

# Ouverture de l'éditeur crontab
sudo crontab -e

# A la fin de l'éditeur, placer la ligne suivante qui permet un lancement de la tâche d'import tous les jours à 08h00 du matin :
0 8 * * * exec_interactive=false cyberwatch exec sidekiq_master security_database_import_task