Bloquear el tráfico RPCBIND

Publicado 05-04-2016

Esta semana recibíamos un aviso de “German Federal Office for Information Security (BSI)” acerca de unas máquinas que tenemos en un centro de datos en Alemania. En dicho aviso se nos alertaba acerca de un puerto, el 111, que estaba abierto a Internet y que podría ser objeto de utilización maliciosa para ataques DDoS, es decir, denegación de servicios distribuida.

A continuación un extracto de dicho aviso:

The Portmapper service (portmap, rpcbind) is required for mapping RPC requests (remote procedure calls) to a network service. The Portmapper service is needed e.g. for mounting network shares using the Network File System (NFS). The Portmapper service runs on port 111 tcp/udp [1].

In addition to being abused for DDoS reflection/amplification attacks, the Portmapper service can be used by attackers to obtain information on the target network like available RPC services or network shares.

In the past months, systems responding to Portmapper requests from the Internet have been increasingly abused for participating in DDoS reflection/amplification attacks [2].

The Shadowserver 'Open Portmapper Scanning Project' identifies systems responding to Portmapper requests from the Internet which can be abused for DDoS reflection/amplification attacks if no countermeasures have been implemented.

Sólo una máquina de un cliente estaba afectada, y por suerte disponemos de un firewall previo a dicha máquina. Desconocemos exactamente a qué vulnerabilidad se refieren, parece ser una que aprovecha este servicio para reenviar tráfico, y tras un examen de dicha máquina concluimos que su seguridad no había sida comprometida, pero en estos casos siempre es mejor curarse en salud y tras hablar con el cliente comprobamos que efectivamente no estaba utilizando para nada el servicio portmap, rpcbind o NFS.

Tras dichas comprobaciones sólo quedaba cerrar el puerto en nuestro firewall, que no es otra cosa que un sistema GNU/Linux con el famoso software Shorewall, un magnífico firewall que se configura con unos sencillos ficheros y que no nos cansaremos de recomendar.

La regla que añadimos es muy sencilla:

SECTION ALL
# Deny all the RPC traffic
DROP all all tcp,udp sunrpc,nfs

Esta regla lo que hace es descartar, DROP, cualquier tráfico desde y hacia cualquier parte por los puertos sunrpc y NFS, si queremos saber cuales son:

#> cat /etc/services | egrep "sunrpc|nfs"
sunrpc		111/tcp		portmapper	# RPC 4.0 portmapper
sunrpc		111/udp		portmapper
nfs		2049/tcp			# Network File System
nfs		2049/udp			# Network File System

Por supuesto hay que reiniciar de forma controlada el firewall:

#> shorewall safe-restart
Do you want to accept the new firewall configuration? [y/n] y
New configuration has been accepted

Y ya estamos a buenas con el BSI.

Ni qué decir tiene que podríamos hilar mucho más fino, pero si en alguna máquina necesitamos esos puertos, lo que no es común, podremos aceptarlos con otra regla de firewall.

Comentarios por Disqus