Skip to main content Link Search Menu Expand Document (external link)

Bloque 11 - Servicios inseguros, mensajes, tareas programadas y gestión de procesos

En los “servicios inseguros” nos muestra más búsquedas sobre estos que en la anterior versión del programa y al no tenerlos instalados nos da el color verde asociado a que es considerado lo más correcto. Veamos un ejemplo con telnet:

2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID INSE-8310 (Check if telnet client is installed)
2022-11-29 09:23:12 Test: Checking if telnet client is installed
2022-11-29 09:23:12 Result: telnet client is NOT installed
2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID INSE-8322 (Check if telnet server is installed)
2022-11-29 09:23:12 Test: Checking if telnet server is installed
2022-11-29 09:23:12 Result: telnet server is NOT installed
2022-11-29 09:23:12 ====

...

El protocolo de red TCP/IP telnet (Telecomunication Network) es utilizado para establecer conexiones remotas con otros ordenadores, aunque actualmente es SSH el más usado, este lleva activo desde la década de los 60 y usa el puerto 23, de manera predeterminada. El gran problema de telnet, es que la información desde un terminal a otro viaja sin ningún tipo de cifrado, solamente en texto plano. Para un atacante, esta información es extremadamente fácil de conseguir, si tenemos en cuenta que tanto el usuario como la contraseña para establecer la comunicación también viene como texto plano, la brecha de seguridad es enorme.

Esto es un ejemplo de servicios que pueden ser peligrosos, pero no significa que si necesitas usarlo no puedas; quizás limitar su uso a casos muy concretos y maximizar las configuraciones de estos servicios para que el impacto en la seguridad sea mínimo.

Mensajes

En el apartado Corrección 6 de Resultados e implementación de mejoras, añadimos mensajes a /etc/issue y /etc/issue.net y nos dice que es “débil”, comprobamos a qué se refiere viendo uno de ellos:

2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID BANN-7128 (Check issue.net banner file)
2022-11-29 09:23:12 Test: Checking file /etc/issue.net
2022-11-29 09:23:12 Result: file /etc/issue.net exists
2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID BANN-7130 (Check issue.net banner file contents)
2022-11-29 09:23:12 Test: Checking file /etc/issue.net contents for legal key words
2022-11-29 09:23:12 Result: Found only 0 key words, to warn unauthorized users and could be increased
2022-11-29 09:23:12 Suggestion: Add legal banner to /etc/issue.net, to warn unauthorized users [test:BANN-7130] [details:-] [solution:-]


...

Hace referencia a “palabras clave legales” pero en /var/log/lynis-report.dat no nos da ninguna pista tampoco:

suggestion[]=BANN-7126|Add a legal banner to /etc/issue, to warn unauthorized users|-|-|
weak_banner_file[]=/etc/issue
suggestion[]=BANN-7130|Add legal banner to /etc/issue.net, to warn unauthorized users|-|-|

...

Buscando por internet no he encontrado exactamente a que se refiere, pero imagino que será algo parecido a esto:

********************************************************************
*                                                                  *
* This system is for the use of authorized users only.  Usage of   *
* this system may be monitored and recorded by system personnel.   *
*                                                                  *
* Anyone using this system expressly consents to such monitoring   *
* and is advised that if such monitoring reveals possible          *
* evidence of criminal activity, system personnel may provide the  *
* evidence from such monitoring to law enforcement officials.      *
*                                                                  *
********************************************************************

Tareas programadas

Comprueba el funcionamiento de crontab y busca los archivos que haya relacionados con este servicio:

2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Action: Performing tests from category: Scheduled tasks
2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID SCHD-7702 (Check status of cron daemon)
2022-11-29 09:23:12 Result: cron daemon running
2022-11-29 09:23:12 ====

...

2022-11-29 09:23:12 Test: check if we can access /etc/cron.hourly (escaped: /etc/cron.hourly)
2022-11-29 09:23:12 Result: file is owned by our current user ID (0), checking if it is readable
2022-11-29 09:23:12 Result: file /etc/cron.hourly is readable (or directory accessible).
2022-11-29 09:23:12 Test: searching files in /etc/cron.hourly
2022-11-29 09:23:12 Result: no files found in /etc/cron.hourly
2022-11-29 09:23:12 Test: checking directory /etc/cron.daily
2022-11-29 09:23:12 Result: found directory /etc/cron.daily
2022-11-29 09:23:12 Test: check if we can access /etc/cron.daily (escaped: /etc/cron.daily)
2022-11-29 09:23:12 Result: file is owned by our current user ID (0), checking if it is readable
2022-11-29 09:23:12 Result: file /etc/cron.daily is readable (or directory accessible).
2022-11-29 09:23:12 Test: searching files in /etc/cron.daily
2022-11-29 09:23:12 Result: found one or more files in /etc/cron.daily. Analyzing files..
2022-11-29 09:23:12 Result: Found cronjob (/etc/cron.daily): /etc/cron.daily/popularity-contest
2022-11-29 09:23:12 Result: Found cronjob (/etc/cron.daily): /etc/cron.daily/logrotate
2022-11-29 09:23:12 Result: Found cronjob (/etc/cron.daily): /etc/cron.daily/aptitude
2022-11-29 09:23:12 Result: Found cronjob (/etc/cron.daily): /etc/cron.daily/aide

...

Si bien no aparece ningún error o configuración crítica, es importante revisar estas tareas y configurarlas según nuestras necesidades para evitar el consumo de ciertos recursos del servidor, que pueden ser limitados. Los datos que nos muestran pueden tener múltiples lecturas, no sólo centrarse en el término de seguridad al que va dirigido, un administrador también puede tomar estos datos para mejorar la eficiencia de sus servicios y gestionar adecuadamente los recursos de su sistema.

Gestión de procesos

En el apartado Corrección 6 instalmos auditd, dejado por defecto, y aquí nos aparece ya instalado. Pero antes de entrar en la sugerencia de sus reglas, vamos a ver información previa:

2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Action: Performing tests from category: Accounting
2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Skipped test ACCT-2754 (Check for available FreeBSD accounting information)
2022-11-29 09:23:12 Reason to skip: Incorrect guest OS (FreeBSD only)
2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Skipped test ACCT-2760 (Check for available OpenBSD accounting information)
2022-11-29 09:23:12 Reason to skip: Incorrect guest OS (OpenBSD only)
2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID ACCT-9622 (Check for available Linux accounting information)
2022-11-29 09:23:12 Test: Check accounting information
2022-11-29 09:23:12 Result: No accounting information available (/var/account/pacct, /var/log/account/pacct nor /var/log/pacct exist)
2022-11-29 09:23:12 Remark: Possibly there is another location where the accounting data is stored
2022-11-29 09:23:12 Suggestion: Enable process accounting [test:ACCT-9622] [details:-] [solution:-]
2022-11-29 09:23:12 Hardening: assigned partial number of hardening points (2 of 3). Currently having 185 points (out of 264)
2022-11-29 09:23:12 ====

...

Vemos que hace referencia a /var/log/pacct y nos recomienda habilitar la información de registros, esto se realiza instalando un paquete llamado psacct. Este programa mostrará el tiempo que los usuarios acceden al servidor, qué comando están emitiendo, cuántos procesos y mostrar los registros de los comandos. Aquí tenemos una guía de cómo instalarlo y los comandos que son asociados a esta herramienta, uno de ellos accton que al activarlo creará el registro al que nos hace referencia Lynis.

También nos habla de sysstat:

2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID ACCT-9626 (Check for sysstat accounting data)
2022-11-29 09:23:12 Test: check /etc/default/sysstat presence
2022-11-29 09:23:12 Result: sysstat not found via /etc/default/sysstat or /etc/cron.d/sysstat or as a systemd unit
2022-11-29 09:23:12 Suggestion: Enable sysstat to collect accounting (no results) [test:ACCT-9626] [details:-] [solution:-]
2022-11-29 09:23:12 ====

...

Es una colección de herramientas para depurar problemas de rendimiento en sistemas Gnu/Linux, también nos permitirá ver los datos de rendimiento del sistema en tiempo real, o analizar los datos de los archivos que estas herramientas pueden generar. Aquí hay un artículo sobre la instalación de estas herramientas y habilitarlo como un servicio que monitorice de manera continua.

Es momento de ver qué sugerencia nos hacer con las reglas de auditd:

2022-11-29 09:23:12 ====
2022-11-29 09:23:12 Performing test ID ACCT-9630 (Check for auditd rules)
2022-11-29 09:23:12 Test: Checking auditd rules
2022-11-29 09:23:12 Result: auditd rules empty
2022-11-29 09:23:12 Hardening: assigned partial number of hardening points (0 of 2). Currently having 189 points (out of 270)
2022-11-29 09:23:12 Suggestion: Audit daemon is enabled with an empty ruleset. Disable the daemon or define rules [test:ACCT-9630] [details:-] [solution:-]
2022-11-29 09:23:12 ====

...

Básicamente no tiene definida ninguna regla, por lo cuál es como si el servicio no estuviera funcionando a efectos prácticos, podríamos añadir algunas reglas de ejemplo:

## Registro de cambios en /etc/passwd

sudo auditctl -w /etc/passwd -p wa -k passwd_changes

## Registro de cambios en /var/www 

auditctl -w /var/www -p rwxa -k servicios


-w [ruta]-> insertar un registro en la ruta especificada

-p [r|w|x|a]-> filtro de permisos, r=lectura, w=escritura, x=ejecución y a=atributo.

-k ->  añade una clave para identificar una regla

Podemos encontrar una configuración más avanzada, como ejemplo, en este repositorio de Github.