martes, 7 de febrero de 2012

Escarbando en los log del servidor de Wizard I


Bienvenidos una vez mas...

Esta es la historia real de un administrador de servidores al que llamaremos wizard el cual tenía una experiencia considerable en la materia, pero se confió y como son las cosas en este ámbito perdió...

Todo comenzó cuando wizard se dejo convencer y siguiendo las sugerencias que le dio uno de sus proveedores, instalo un sistema para  VoIP basado en asterisk no a mano como estaba acostumbrado sino que monto una distribución de Linux “especializada para sistemas VoIP” denominada "Elastix" y tal como se lo había dicho su  proveedor simplemente fue correr el asistente y en muy poco tiempo todo estaba corriendo de maravilla (segun el proveedor con elastix a parte de que era más sencillo hacer las cosas, este detectaba automáticamente la tarjeta análoga que había proporcionado).

Para ampliar las funcionalidades de su asterisk wizard agrego algunas librerías y componentes unos libres y otros demo, pero como los demo tenían limitaciones uso sus conocimientos de desarrollador para hacer algunos scripts haciendo que los complementos demo quedaran "full-crack".

Todo estaba muy bien en este jardín del edén (el área de servidores), hasta que a wizard se le entregó una carta que había enviado uno de los ISP, notificándole a la empresa que se les había limitado el servicio de llamadas debido a que se habían disparado de repente las llamadas internacionales.

Enseguida wizard me contactó y esto es parte de lo que se encontró:
Wizard en el momento en que fue notificado a parte de sentirse totalmente indefenso, volvió a su servidor y desde la interface web pudo verificar que habían modificado algunas configuraciones y adicional a esto se había agregado una extensión tipo IAX2 cuyo número era 123123, así que tomando esto como referencia y simplemente por darle una mano a wizard a cambio de que me permitiera contar su historia, me dispuse a iniciar la verificación de los archivos log.

(Vale la pena aclarar que esto que se hizo no tiene ninguna validez legal ya que en estos casos se debe llevar un debido proceso, desde el levantamiento de la evidencia para dar inicio y continuidad con la cadena de custodia, en fin)

En la ubicación /var/log se tenían los siguientes directorios y archivos de log.


Iniciando con base en la información que había proporcionado wizard y comentándoles que muchos de estos log estaban vacios, se me ocurrió iniciar por los log de asterisk, y elastix.


Admitiendo que nunca antes había analizado los log de un sistema de este tipo prácticamente lo que hice fue analizar el contenido de cada log y tratar de obtener la mayor información posible de los mismos.
En el archivo Master.csv del directorio cdr-csv se pudo confirmar que desde la extensión 123123 se habían realizado las llamadas en cuestión, así como cuales se habían contestado y cuáles no.


Buscando mas información con base en la extensión se pudo verificar que nuestro intruso había realizado cambios en la configuración del sistema pues como se puede ver en la siguiente imagen, este intento salir por varios proveedores en este caso Jumblo y a través de un dispositivo gsm conectado al servidor.


Adicional sobre este mismo archivo se realizaron búsquedas con base en los números marcados que había identificado el ISP, pero todo apuntaba a la extensión 123123.

En días próximos al incidente (que fue cuando wizard me contactó) se pudo encontrar información en los archivos full del 1 al 5 haciendo búsquedas usando como filtro el número de la extensión. Aquí mi critica al respecto, en ese momento vi que no me daban el registro completo de todo el tiempo que llevaba en funcionamiento el Sistema y en este punto cuando wizard me facilitó los log para realizar esta publicación ya solo hay registros desde el 28 de Octubre, pero ¿y el resto? Desafortunadamente mis apreciados lectores en este sistema estos log se borran automáticamente cosa que no debería ser así. Adicional a esto les comento que los otros log que hacen parte del directorio de asterisk están “vacios”, por lo tanto si no se hace pronto la revisión de los log como en este caso nos vamos a quedar en ceros.

Pero siguiendo con la búsqueda se pudo encontrar en el directorio /var/log/elastix la información de autenticación (esta si está completa) sobre la interface web de elastix. Como podemos ver a continuación.



Desafortunadamente tal y como me lo comento wizard las extensiones IAX2 no mantienen registro del origen de la conexión, por lo cual hasta este punto no se había hablado de direcciones IP de origen, pero en este log pudimos encontrar registros de acceso exitoso desde días antes a que se realizaran las llamadas.

Haciendo el respectivo seguimiento y verificación en algunas listas negras, se pudo encontrar que las  IP desde las cuales se había tenido acceso nuestro atacante eran proxies en este caso uno palestino, tal como se muestra a continuación.


Así como también se muestra una la referencia de uno de los tantos nodos de la red tor.



Con base en esta información se logro realizar la identificación de algunos rangos de horas que usaba nuestro atacante para acceder al sistema los cuales estaban entre 5 – 8 de la mañana (tratando de crear un perfil del atacante), sin embargo nuestro atacante en un momento por X o Y motivo erró y olvidó activar sus tan usados proxy dándonos información del posible origen real de estos accesos no autorizados.


Pero no todo termina ahí, Si wizard afirmaba que las contraseñas que había usado en la configuración de su elastix eran seguras, ¿Como logro este personaje el acceso al sistema?, ¿Obtuvo acceso total al mismo?, ¿Las llamadas fueron el único incidente que ocurrió?

La respuesta de varias de las preguntas anteriores los sorprenderá, pero para no hacer esto muy largo y para no aburrirlos más, en la siguiente publicación (la próxima semana) abordaremos gran parte de esto.

Conclusiones por el momento.

Teniendo como referencia el hecho que los log en este caso se borraban de forma automática, les digo que no solo debemos confiarnos de que nuestros servicios guardan sus log, sino que también debemos hacer que nuestro servidor guarde otros log adicionales a los predefinidos, lo cual nos va a servir de respaldo en un caso como este o para verificar la integridad de los mismos.
Como fue en este caso si se tienen interfaces de administración web las cuales que permiten realizar una gestión más agradable, debemos limitar el acceso a las mismas solo permitiendo conexiones a estas desde determinadas direcciones IP.

Hasta la siguiente parte y gracias a D7n0 por la motivación que me dio para escribir esta entrada, ¿pues quien no quisiera tener acceso a su blog?, pero mi buen amigo ahora está bastante ocupado y ya era hora de iniciar con el mío !!!

Carlos Andrés Rodallega
carlosrodallega@gmail.com
@crodallega

No hay comentarios:

Publicar un comentario