Haciendo pruebas en un servidor Ubuntu Server 12.04.04 LTS me encontré con un proceso desconocido llamado "whoopsie". Nunca antes había visto ese proceso en otros sistemas GNU/Linux, por lo que me llamó poderosamente la atención, e inmediatamente me surgieron dos preguntas: ¿Qué es el proceso whoopsie? y ¿Cómo hago para desactivarlo/eliminarlo/desinstalarlo?. Es sabido que muchos administradores de sistemas tenemos la manía de tendencia a desinstalar, eliminar y desactivar todo software/proceso que no sea absolutamente necesario.

Al ejecutar ps aux, me encontré con un proceso "whoopsie" sospechoso corriendo a nombre del usuario homónimo:

root@ubuntu:~# ps aux | tail
daemon     943  0.0  0.0  16912   384 ?        Ss   10:15   0:00 atd
root       980  0.0  0.1  54456  1552 tty1     Ss   10:15   0:00 /bin/login --
whoopsie   982  0.0  0.3 187664  4012 ?        Ssl  10:15   0:00 whoopsie
root       995  0.0  0.0      0     0 ?        S    10:15   0:00 [flush-253:0]
root       996  0.0  0.0      0     0 ?        S    10:15   0:00 [flush-252:0]
root      1138  0.1  0.4  21680  4200 tty1     S+   10:16   0:00 -bash
root      1212  0.0  0.3  73444  3620 ?        Ss   10:18   0:00 sshd: root@pts/0
root      1354  0.2  0.3  21568  4036 pts/0    Ss   10:18   0:00 -bash
root      1412  0.0  0.1  16880  1220 pts/0    R+   10:19   0:00 ps aux
root      1413  0.0  0.2  21568  2600 pts/0    D+   10:19   0:00 -bash

¿Qué demonios es "whoopsie"?

Al consultar la ruta al binario utilizando en comando which, el ejecutable se encuentra instalado en el directorio /usr/bin:

root@ubuntu:~# which whoopsie
/usr/bin/whoopsie

Pero no posee página de manual y la ayuda es completamente inútil (felicitaciones Canonical, sigan haciendo así de bien las cosas):

root@ubuntu:~# man whoopsie
No manual entry for whoopsie
See 'man 7 undocumented' for help when manual pages are not available.
root@ubuntu:~# whoopsie --help
Usage:
  whoopsie [OPTION...]

Help Options:
  -h, --help           Show help options

Application Options:
  -f, --foreground     Run in the foreground

Aunque afortunadamente el manejador de paquetes APT me da algo de información al respecto:

root@ubuntu:~# apt-cache search whoopsie
whoopsie - Ubuntu crash database submission daemon

Investigando un poco en la Wiki de Ubuntu descubrí que Whoopsie es parte del sistema de tracking de errores de Ubuntu (ErrorTracker):

    This program responsible for uploading crash reports is called Whoopsie. It’s always running on Ubuntu systems, watching the /var/crash directory for files ending in .upload. When it sees one of these, it checks to see if there’s a high-speed internet connection. If it cannot find one, it waits to send the report until later. Otherwise, it opens the matching .crash file and converts it into binary JSON data then sends this information to http://daisy.ubuntu.com.

Whoopsie toma los reportes de errores y crash generados por el sistema Apport cada vez que una aplicación falla y los envía a los servidores de Canonical para ser procesados. Los datos recolectados por estos reportes ayudan a priorizar los problemas más urgentes (errors.ubuntu.com).

El demonio whoopsie corre por defecto tanto en las instalaciones Desktop como Server. Aunque en la versión server sólo envia los reportes si se ejecuta manualmente apport-cli.

¿Cómo deshabilito el demonio whoopsie en Ubuntu Server?

Para deshabilitar el demonio o servicio Whoopsie en Ubuntu server, editar el archivo de configuración (/etc/default/whoopsie) y configurar la variable report_crashes en false

root@ubuntu:~# cat /etc/default/whoopsie

[General]
report_crashes=true
root@ubuntu:~# nano /etc/default/whoopsie
root@ubuntu:~# cat /etc/default/whoopsie

[General]
report_crashes=false

Luego ejecutar service whoopsie stop o stop whoopsie para detener al demonio:

root@ubuntu:~# service whoopsie stop
whoopsie stop/waiting

¿Y qué hay de Apport?

En Ubuntu, si un proceso en el sistema es terminado por una señal debido a un fallo o "crash" (por ejemplo violación de segmento de memoria, error de bus, excepción de punto flotante, excepción no capturada en lenguajes de alto nivel, etc.) el demonio apport es invocado inmediatamente para generar un reporte inicial en un archivo dentro del directorio /var/crash/.

Ya que hemos deshabilitando Whoopsie, hagamos lo mismo con Apport, pues no tiene sentido crear reportes de errores que nunca serán enviados.

Poner en cero la variable enabled en el archivo de configuración /etc/default/apport:

root@ubuntu:~# cat /etc/default/apport
# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=1
root@ubuntu:~# nano /etc/default/apport
root@ubuntu:~# cat /etc/default/apport
# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=0

Luego, detener el demonio apport ejecutando service apport stop o stop apport:

root@ubuntu:~# service apport stop
apport stop/waiting

¿Cómo deinstalo Whoopsie?

Si se desea desinstalar Whoopsie y Apport, simplemente ejecutar:

root@ubuntu:~# apt-get remove whoopsie apport

Conclusiones y pensamientos personales

Tal vez los usuarios de Ubuntu (o cualquier otra distribución GNU/Linux) puedan aducir que hay una cuestión moral por la cual no deberíamos deshabilitar Apport y Whoopsie. Es decir, por un lado mi empresa se beneficia utilizando Ubuntu, el cual se distribuye de forma libre y gratuita bajo la licencia GPL, pero por otro no deseo colaborar enviando mis reportes de errores. A simple vista parece un comportamiento mezquino.

Mi pensamiento es que los sistemas informáticos no entienden de moral y estas cuestiones. Y en sistemas, antes que la moral está la seguridad de la información. Un reporte de error generado por Apport puede contener un volcado de memoria del núcleo del sistema operativo, stack traces, segmentos de archivos de log, etc. Entre estos datos se puede encontrar cualquier tipo de información sensible como contraseñas, números de tarjetas de crédito, números de serie, etc. Es el tipo de información que se debe proteger a toda costa, por lo que entiendo que no está bien enviar información potencialmente sensible a Canonical ni ninguna otra compañía. No por pensar que los de Canonical son malos, sino simplemente porque una vulnerabilidad o penetración en sus sistemas puede liberar esta información a todo el mundo.

El otro punto a analizar es el consumo de recursos (memoria/CPU/disco) de estos demonios. En sistemas críticos se debe optimizar el consumo de recursos, por lo que deshabilitar todo demonio/servicio no absolutamente necesario es una decisión lógica y totalmente válida.


Tal vez pueda interesarte


Compartí este artículo