Blog

Archive for Ubuntu Precise LTS

KB: 07072014-001: Desactivando la llamada de sistema ptrace()

Índice de claves

Introducción

El siguiente artículo explica cómo deshabilitar la llamada ptrace en varias plataformas (ver la lista de plataformas soportadas). Al desactivar esta llamada, puede eliminar una fuente importante de problemas de seguridad y una característica del kernel utilizada en muchos ataques para implementar ataques de modificación de memoria de procesos en tiempo real que son difíciles de detectar.

El artículo propone deshabilitar la llamada ptrace() mediante la instalación de un módulo del kernel que deshabilita dicha llamada.

Plataformas soportadas

  • Debian Squeeze amd64
  • Debian Squeeze i686
  • Debian Wheezy amd64
  • Ubuntu Precise LTS 12.04 amd64
  • Linux Mint 13 Maya amd64

Instalando el módulo

Para instalar el módulo, tiene que actualizar su fichero /etc/apt/sources.list  para incluir la fuente apt apropiada. Vea el siguiente enlace para obtener la adecuada para su distribución:

https://dolphin.aspl.es/svn/publico/noptrace2/README

Después de eso, tan solo tiene que actualizar referencias e instalar con tan solo ejecutar lo siguiente::

apt-get update
apt-get install noptrace2

Después de eso, el módulo será compilado usando los ajustes actuales de su servidor/sistema y el módulo será cargado si no hay problemas.

¿Cómo compruebo que el módulo está bloqueando llamadas ptrace()?

Ejecutando el siguiente comando. Debería obtener algo como “No child processes”:

strace -p 1
Process 1 attached - interrupt to quit
detach: ptrace(PTRACE_DETACH, ...): No child processes
Process 1 detached

¿Cómo lo habilito/deshabilito temporalmente?

Puede utilizar el siguientecomando para parar/descargar el módulo que causa que llamada ptrace() sea bloqueada:

service noptrace2 stop

Al mismo tiempo, puede utilizar el siguiente comando para reactivar el módulo que bloquea la llamada ptrace():

service noptrace2 start

¿Esto genera alguna operación en el log que pueda inspeccionar?

Claro, eche un vistazo en el registro  /var/log/syslog. Debería encontrar algo como:

Jul 7 11:14:40 vulcan kernel: [4721108.617232] [noptrace2] ptrace syscall disabled
Jul 7 11:14:54 vulcan kernel: [4721122.990270] [noptrace2] ptrace() invoked against process 1 by process 20675
Jul 7 11:14:54 vulcan kernel: [4721122.990304] [noptrace2] ptrace() invoked against process 1 by process 20675
Jul 7 11:15:02 vulcan kernel: [4721130.689160] [noptrace2] ptrace() invoked against process 29912 by process 20746
Jul 7 11:15:02 vulcan kernel: [4721130.689188] [noptrace2] ptrace() invoked against process 29912 by process 20746
Jul 7 11:15:22 vulcan kernel: [4721150.219577] [noptrace2] ptrace syscall restored
Jul 7 11:15:44 vulcan kernel: [4721172.921028] [noptrace2] ptrace syscall disabled
Jul 7 18:11:15 vulcan kernel: [4746103.948870] [noptrace2] ptrace() invoked against process 1 by process 9821
Jul 7 18:11:15 vulcan kernel: [4746103.948897] [noptrace2] ptrace() invoked against process 1 by process 9821

¿Le gustó el artículo, lo encontró interesante o tiene algo que comentar?

Genial. Por favor, contacto con nosotros en http://www.core-admin.com/portal/es/about-us/contact o síganos en https://twitter.com/core_adm o https://twitter.com/aspl_es

Posted in: Administration, Debian, Debian Squeeze, Debian Wheezy, Linux Mint, Seguridad, Ubuntu, Ubuntu Precise LTS

Leave a Comment (0) →