El Security Content Automation Protocol, también conocido por sus siglas SCAP o S’CAP, es conjunto de especificaciones del NIST para expresar (formatos y nomenclaturas) y manipular información relacionada con la seguridad sobre fallos y configuraciones, de una forma estandarizada. De esta forma se permite automatizar, en cierto grado, el chequeo (búsqueda) de vulnerabilidades, evaluar posibles impactos de vulnerabilidades, la gestión de vulnerabilidades, mediciones de seguridad, y evaluación de políticas a adoptar.
OpenSCAP es un ecosistema que provee herramientas y políticas configurables para una implementación rápida, costo efectiva y flexible del proceso de cumplimiento de políticas de seguridad y evaluación de vulnerabilidades.
- sudo apt install libopenscap8
Para realizar la ejecución de una evaluación de vulnerabilidades, debemos descargar el formato OVAL, donde están las reglas/verificaciones de la base de datos CVE (de las siglas del inglés Common Vulnerabilities and Exposures).
- Descargar el archivo comprimido con el formato OVAL:
wget https://security-metadata.canonical.com/oval/com.ubuntu.$(lsb_release -cs).usn.oval.xml.bz2
- Descomprimir el archivo descargado:
bunzip2 com.ubuntu.$(lsb_release -cs).usn.oval.xml.bz2
<img src=”/assets/img/posts/Openscap/image3”
- Una vez tenemos el XML, ejecutamos oscap para evaluar el sistema:
-
- sudo oscap oval eval –report report.html com.ubuntu.$(lsb_release -cs).usn.oval.xml
-
- Esto nos genera un reporte en formato HTML que puede ser estudiado en cualquier navegador. En el presente resultado se nos muestra que el sistema no presenta ninguna vulnerabilidad, asumimos debido a que en el proceso de instalación se descargaron las últimas actualizaciones, en caso contrario deben ser atendidas con el respectivo procedimiento de actualización y parches.
Otra evaluación que realizaremos es las reglas de STIG del producto: Canonical Ubuntu 18.04 STIG Benchmark - Ver 2, Rel 1. El formato que presentan estas reglas es el XCCDF y lo que ejecuta es un benchmark para saber el porcentaje de cumplimiento de las reglas.
· Para descargar el benchmark de STIG para Ubuntu Server 18.04:
wget https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_CAN_Ubuntu_18-04_V2R1_STIG_SCAP_1-2_Benchmark.zip
- Una vez descargado, se descomprime el ZIP para obtener el archivo XML con las reglas.
-
- unzip U_CAN_Ubuntu_18-04_V2R1_STIG_SCAP_1-2_Benchmark.zip
-
- Para ejecutar el benchmark se realiza el siguiente comando:
-
- sudo oscap xccdf eval –report report.html U_CAN_Ubuntu_18-04_V2R1_STIG_SCAP_1-2_Benchmark.xml
Este mostrará en la consola la ejecución de cada una de las reglas y su resultado. Este resultado también se puede observar en HTML a través del parámetro –report y el nombre del archivo en nuestro caso report.html. El cual veremos a continuación, donde nos presenta el status actual del servidor recién instalado.
Como se puede observar el score obtenido es de 20.56%, donde solo 22 reglas son cumplidas a cabalidad y 85 fallaron. En el siguiente paso veremos cómo cumplir la mayoría de forma automática y algunos de forma manual.
Ansible
Es un proyecto de código abierto patrocinado por Red Hat. Su función principal es proveer un lenguaje y herramienta de automatización. Casos de uso como Administración de configuración, despliegue de aplicativos, entrega continua, seguridad y cumplimiento, son posibles a través de esta herramienta.
Nuestro caso se uso es el de seguridad y cumplimiento, necesitamos de una manera automática cumplir con la mayoría de las reglas que se presentan en el benchmark. Para ello DISA nos provee los scripts para ser ejecutados con Ansible. Antes que nada, procedamos con la instalación.
· Actualizar el repositorio de apt:
sudo apt update
· Instalar el paquete software-properties-common:
sudo apt install software-properties-common
· Agregar al repositorio la ppa:ansible/ansible
sudo apt-add-repository –yes –update ppa:ansible/ansible
· Con esto ya podemos instalar el paquete ansible
sudo apt install ansible
Una vez instalado nos descargamos el paquete que posee los scripts y roles, procedemos a la configuración del ambiente.
· Descargar el contenido ansible proveído por DISA:
- Extraemos el contenido con el siguiente comando:
-
- unzip U_Canonical_Ubuntu_18-04_LTS_V2R1_STIG_Ansible.zip
-
- Extraemos el archivo ubuntu1804STIG-ansible.zip
- Configuramos la variable de entorno STIG_PATH a la ruta donde se encuentra el archivo XML que contiene la reglas del benchmark en formato XDDCF.
-
- export STIG_PATH=/home/sysadmin/roles/ubuntu1804STIG/files/U_CAN_Ubuntu_18-04_LTS_STIG_V2R2_Manual-xccdf.xml
-
- Procedemos con la ejecución de la remediación de las reglas de manera automática:
-
- sudo -E bash enforce.sh
-
Una vez terminada la ejecución, volvemos a realizar la evaluación del benchmark sin sobrescribir el resultado anterior, solo cambiamos el nombre de reporte de salida.
sudo oscap xccdf eval –report report_ansible.html U_CAN_Ubuntu_18-04_V2R1_STIG_SCAP_1-2_Benchmark.xml
En este nuevo reporte observamos un avance significativo, al aplicar de manera automática las reglas del benchmark de STIG. En la siguiente imagen veremos que el porcentaje de cumplimiento es ahora de 82.92% y solo faltarían 14 reglas por revisar o arreglar para así tener un mayor porcentaje de cumplimiento.
El resultado final buscado con este manual de línea base es obtener un 100% de cumplimiento, todas las reglas poseen una sugerencia la cual remedia la advertencia o error encontrado por la regla. Si buscamos una de las 14 reglas que están fallando se podrá ver la descripción, la severidad de la regla, una descripción de como remediar el problema y un posible script.
Esta regla nos indica que el directorio /var/log debe tener el modo 0750 o menos permisivo. Para poder solventar este resultado, nos guiamos por el comando que se nos indica en la sección Remediation description.
sudo chmod 0750 /var/log
El resultado esperado al final de la aplicación de línea base en obtener un 99% de score al realizar el benchmark debe ser como se muestra a continuación:
La única regla por cumplir es la SRG-OS-000478-GPOS-00223 donde se solicita contactar al departamento de ventas de Canonical para adquirir el paquete anual llamado “Ubuntu Advantage”, el cual facilita un PPA para poder descargar los paquetes que poseen los algoritmos criptográficos de cifrado y hashes que son compliance con la norma NIST FIPS 140-2.
En caso de poseer dicha subscripción en la sección 9. Guiance del documento (Ubuntu 18.04 Kernel Crypto API Cryptographic Module version 2.0, 2020) puede encontrar los pasos de instalación y referencias acerca del proceso de instalación del nuevo kernel.