Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
566 visualizaciones desde el 8 de Marzo del 2018
1.003,5 KB
6 paginas
Creado hace 15a (18/08/2008)
seguridad
Análisis forense
Análisis forense
usando software libre
Roman Valls
La información mostrada en este artículo corresponde a un análisis forense
realizado a un sistema GNU/Linux en producción. Se ha eliminado la información
detallada sobre este sistema, dejando únicamente las partes relevantes en las
que se muestra el manejo de utilidades para llevar a cabo el análisis.Así pues,
en este informe daremos un repaso a las acciones que tomamos para realizar
una disección de un incidente de seguridad: determinación del origen del ataque,
adquisición y análisis. Todo esto desde un punto de vista meramente práctico,
mostrando el uso de las herramientas forenses y dejando de lado la parte legal del
incidente.
.
p
m
o
c
.
e
r
a
w
t
f
o
s
@
x
u
n
i
l
correos de otras organizaciones que nos
l A l inicio de la fase de detección, recibimos
temas. Usamos unas trazas NetFlow para confi rmar nuestras
reportan el ataque reiterado de una máquina
aparentemente comprometida hacia sus sis-
sospechas (Listado 1).
de 250GB. Este hecho nos va a obligar a usar compresión
durante el proceso de adquisición (posteriormente deberemos
descomprimir la imagen adquirida para poder analizar los datos).
De las herramientas disponibles al arrancar el liveCD, usaremos
AIR (http://www.forensicswiki.org/index.php?title=AIR) como
herramienta de captura. Esta utilidad también comprobará el
Se trata de un log que muestra repetidos intentos de acce-
hash MD5 de las imágenes de origen y destino. Generará un log
so al puerto 22 (SSH) de una máquina remota (se han omitido
resumen de las acciones ejecutadas, muy útil para defender que
los más de 200 intentos por brevedad). Usando whois y dig
se ha seguido un proceso que garantiza la integridad y veracidad
contra la IP de la máquina afectada conseguimos dar con su
de los datos (Listado 2). Como se ve en el listado, AIR actúa
localización física y nos ponemos en contacto con los afecta-
como frontend de dd, bzip2 y md5sum.
dos para realizar el análisis forense.
Finalmente, AIR nos confi rma que efectivamente no hay
Adquisición
Requerimos una imagen exacta del disco duro de la máquina
copia mostrando los respectivos hash MD5. A nivel de ad-
quisición de datos, hoy en día existen alternativas libres más
ya que todo el análisis se basa en las evidencias encontradas
interesantes que un simple dd comprimido con bzip2:
ni un solo bit de diferencia entre los datos originales y su
en dicho volcado de datos. Para adquirir una imagen completa
del sistema sin afectar al fi lesystem de éste, se recurre a
• DCFLdd: Nos permite hacer la captura y comprobado del
una distribución GNU/Linux llamada Helix (http://www.e-
hash al vuelo (http://www.forensicswiki.org/wiki/Dcfl dd)
fense.com/helix/index.php) que se ejecuta mediante un LiveCD.
• AFF: Advanced Forensics Format es un formato extensible
Nuestro disco duro origen (el de la máquina afectada) es de
que nos permite añadir metadatos adicionales junto con la
400GB. Por desgracia, sólo disponemos de un disco duro destino
imagen capturada así como compresión, y cifrado en su
20
Linux+ 6/2008
seguridad
Análisis forense
versión 2 (http://www.forensicswiki.org/index.
intensivo en búsquedas de patrones, por
una muestra de la actividad mientras el sistema
php?title=AFF)
ejemplo).
está vivo. Para hacer esto, podemos usar un
puerto de SPAN (http://en.wikipedia.org/wiki/
Una vez adquirida la imagen, podemos
volcarla posteriormente en la estación de
Captura de tráfi co
Hasta ahora se ha detallado la captura de datos
SPAN_port) de nuestro switch para capturar el
tráfi co que circula por todos los puertos de éste.
trabajo. En nuestro caso tenemos un RAID0,
post-mortem o dead-analysis, pero cabe decir
Así pues, lanzaríamos tshark, versión en modo
hardware que nos permite disponer de más
que si no dispusiéramos de las trazas NetFlow
texto de wireshark (http://www.sleuthkit.org/
capacidad de almacenamiento y velocidad
antes vistas, deberíamos hacer una captura del
mac-robber/desc.php):
en las lecturas (aconsejable para un uso
tráfi co que circula por la máquina para recoger
Listado 1. Confi rmamos nuestras sospechas
> Flows
# tshark -i eth0 -w outfi le
También podemos usar la conocida herramien-
ta tcpdump para realizar la captura en formato
> 2007-08-09 12:09:15.825 0.000 TCP 147.xx.xx.xx:43906 ->
pcap. Posteriormente podemos analizar el
> 192.yy.yy.yy:22 ....S. 0 1 60 0 0 60
tráfi co usando un disector de tráfi co como
> 1
wireshark.
> 2007-08-09 12:10:08.972 0.000 TCP 147.xx.xx.xx:60705 ->
> 192.yy.yy.yy:22 ....S. 0 1 60 0 0 60
> 1
> (...)
Listado 2. Log de volcado de AIR
Start DD (md5 inline): Thu Aug 30 02:10:58 MDT 2007
md5 hash will be calculated on /dev/sda.
Command-line:
Análisis de la evidencia
Una vez copiada la imagen adquirida en
el proceso anterior, realizamos un análisis
preliminar del sistema de fi cheros en busca
de fi cheros sospechosos. Para ello usaremos
el toolkit por excelencia en forenses UNIX:
Sleuthkit. Lanzamos pues mac-robber , que
analizará
los
timestamps del sistema de
fi cheros para construir un listado con fechas
de modifi cación de fi cheros y directorios (en
análisis forense se usa el término timeline para
dd if=/dev/sda skip=0 conv=noerror ibs=8192 2>> /usr/local/share/air/logs/
referirnos a este listado):
air.image.log | air-counter 2>> /usr/local/share/air/logs/air.buffer.data
| tee /usr/local/share/air/air-fi fo | md5sum > /tmp/hash.log 2>&1
# mac-robber /var /home > timeline_
dd if=/usr/local/share/air/air-fi fo 2>> /usr/local/share/air/logs/
robber.mac
air.image.log | bzip2 | dd of=/media/sdb1/volcat2-tscupc.bz2 seek=0
obs=8192 >> /usr/local/share/air/logs/air.image.log 2>&1
48838923+0 records in
781422768+0 records out
Mac-robber nos genera un listado compacto
pero poco manejable. Para facilitar su lectura
para un humano, disponemos de la herramienta
400088457216 bytes (400 GB) copied, 105649 seconds, 3.8 MB/s
mactime:
781422768+0 records in
781422768+0 records out
# mactime -b timeline_robber.mac >
400088457216 bytes (400 GB) copied, 105652 seconds, 3.8 MB/s
timeline_fi nal
165590314+1 records in
10349394+1 records out
84782240961 bytes (85 GB) copied, 105654 seconds, 802 kB/s
Command completed: Fri Aug 31 07:31:57 MDT 2007
Ahora observemos el Listado 3. Con la sa-
lida de este último y examinando los logs
de /var/log de la imagen, vemos que los
directorios y fi cheros de interés para este
Start VERIFY: Fri Aug 31 07:31:57 MDT 2007
forense son:
Verifying...
Command-line: dd if=/media/sdb1/volcat2.bz2 | bunzip2 | air-counter 2>>
/usr/local/share/air/logs/air.buffer.data | md5sum > /tmp/verify_hash.log
VERIFY SUCCESSFUL: Hashes match
Orig = 50d30762425e3a86f6bab0196dea63a9
Copy = 50d30762425e3a86f6bab0196dea63a9
Command completed: Mon Sep 3 01:54:41 MDT 2007
NetFlow
NetFlow es un estandar propietario de
Cisco(tm) usado en equipos de red para
recolectar información relacionada con el
tráfi co IP. Existen multitud de herramien-
tas libres que parsean, generan trazas o
muestran gráfi cas usando este formato:
http://www.networkuptime.com/tools/
netfl ow/
www.lpmagazine.org
21
seguridad
Análisis forense
• /var/tmp/... (nótese los ... contra los ha-
y comprometer otros servidores SSH, dejando
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-
bituales . & .. UNIX). (Crear un directorio
en segundo plano la instalación de PHP.
2006-2451) que afecta a kernels < 2.6.17.4 está
llamado ..., aunque rudimentaria, parece
ser una táctica para ocultar mínimamente
el directorio que almacena el malware)
•
/home/maillist: home del usuario afec-
Exploits locales
para elevar privilegios
El exploit que el atacante descarga es una vul-
presentado en el Listado 6. Este exploit aprove-
cha un fallo en la syscall PRCTL que permite es-
cribir un volcado de un proceso (coredump) a una
localización arbitraria del sistema de fi cheros. En
tado por el ataque
nerabilidad conocida (CVE-2006-2451, http://
este caso, se escribe en /etc/cron.d donde será
• Logs de sistema (/var/log/auth.log)
Listado 3. Directorios y fi cheros de interés
Por otro lado con la presencia de ssh-scan y
pass_fi le (Fichero con pares usuario:contra-
(...)
seña, ataque por diccionario) podemos correla-
Wed Aug 15 2007 09:38:32 16071 .a. -rwxr-xr-x 1006 503 6733921
cionar las intenciones del atacante con los logs
/var/tmp/.../.borwind/ps
NetFlow mostrados en la fase de detección.
Wed Aug 15 2007 09:47:27 842736 .a. -rwxr-xr-x 1006 503 6733922
Análisis de los logs
Según auth.log, el primer intento de acceso
/var/tmp/.../.borwind/ssh-scan
100662 m.. -rw-r--r-- 1006 503 6733924
/var/tmp/.../.borwind/mfu.txt
satisfactorio desde una IP de Rumania se pro-
Wed Aug 15 2007 13:37:59 950 .a. -rwxr-xr-x 1006 503 6733925
duce el 21 de julio y más tarde el 6 de agosto
/var/tmp/.../.borwind/start
desde otra IP, también de Rumania (Listado 4).
100662 .a. -rw-r--r-- 1006 503 6733924
Por desgracia, a causa de la rotación de
/var/tmp/.../.borwind/mfu.txt
logs de logrotate (sistema de rotado de fi cheros
4096 m.. drwxr-xr-x 1006 503 6733920
de
log comunmente usado para descartar
/var/tmp/.../.borwind
información antigua
Comentarios de: Análisis forense usando software libre (0)
No hay comentarios