Autopsia de un problema que no era un problema

Como relataba, este semestre me tocó impartir Informática Forense y así, es algo «obligado» presentar la herramienta Autopsy. En ocasiones anteriores, dado que en la mayoría de los casos mis alumnos son usuarios de Windows, uso la versión de esta herramienta para este sistema operativo (para el que se distribuye con un instalador). Pero este semestre he tenido un alumno con Mac y tanto para macOS como para Linux no hay un instalador; la herramienta debe ser compilada. Así que se volvió importante revisar la construcción de la herramienta en macOS.

En una ocasión previa, pude compilarla sin problema, siendo sólo detenido durante alguna acción en la que la herramienta colapsaba. Problema al que ya no le di continuidad, dado que terminé por usar la versión para Windows en una máquina virtual.

El tiempo pasó y hoy, al tratar de construir la herramienta, he notado que las pocas guías1,2 (las que valen la pena seguir) que uno puede hallar en la Internet sobre el tema también han quedado rebasadas. Claro, queda la documentación que el desarrollador del producto ofrece, pero no es muy didáctica, que digamos.

Realmente aquí se han presentado dos problemas. Primero con la construcción de The Sleuth Kit y luego con Autopsy 4. Principalmente, el problema con The Sleuth Kit es sobre la distribución de Java a usar. Creo que la forma en la que esto se fue documentando ha dado lugar a muchas confusiones. En mi página de apuntes sobre The Sleuth Kit doy mayores detalles sobre esto.

Dependiendo de la versión usada de la distribución de Java que hace Bellsoft, más la versión de The Sleuth Kit que se busque compilar, serán los problemas que uno pueda enfrentar (que son varios). Tras varios esfuerzos y problemas, las instrucciones que yo he recopilado en mi mencionada página de apuntes permiten seguir un camino claro para lograr una compilación exitosa de este producto.

Sin embargo, esto no nos exenta de otras dificultades o de algunas equivocaciones involuntarias. Aquí relato algo de esto último.

A pesar de haber logrado construir la mencionada suite de componentes de The Sleuth Kit al momento de arrancar Autopsy 4 me topé con este problema.

y en la consola de la aplicación (la sesión en Terminal desde donde se lanzó) también se leía:

$ bin/autopsy
2025-10-17T18:21:56.330653Z main ERROR Log4j API could not find a logging provider.
Library not found in jar (libtsk_jni)
SleuthkitJNI: failed to load libtsk_jni

Aunque el mensaje en la consola y en la interfaz gráfica es claro sobre lo que ocurre, resulta extraño, pues existe una biblioteca con ese nombre que es resultado de la creación de The Sleuth Kit.

$ file /usr/local/lib/libtsk_jni.dylib
/usr/local/lib/libtsk_jni.dylib: Mach-O 64-bit dynamically linked shared library arm64

La revisión de la documentación del producto y algunas consultas en Internet me llevaron a formular muchas hipótesis, a revisar varias cosas, a probar muchas más y a aprender mucho en el proceso. Inicialmente pensé que el problema no era uno como tal y meramente un detalle con el formato de un archivo de configuración y, derivado de ello, así nombré a este post, pero posteriormente el problema apareció de nuevo sepultando mis ideas de un problema inexistente. Creo que toda la experimentación que uno hace termina dejando o moviendo cosas que le hacen creer que ciertas acciones solucionan algo cuando se trata de otras o alguna combinación de ellas (razón por la que siempre hago un ejercicio de instalación y desinstalación varias veces, hasta tener la certeza de la reproducibilidad de resultados). Ya he procedido con la actualización de este post y la que Ud. está leyendo, estimado lector, es la versión final.

Primero, el archivo etc/autopsy.conf, que se obtiene tras la descompactación del paquete para su instalación (ver página de apuntes sobre Autopsy para detalles al respecto), queda con un formato DOS, y cuando es script de arranque es invocado, se generan algunos mensajes de error:

$ bin/autopsy
...
: command not foundconf: line 18:
: command not foundconf: line 56:
: command not foundconf: line 59:
: command not foundconf: line 64:
: command not foundconf: line 67:
...

Uno puede cambiar el formato de DOS a Unix abriendo el archivo en vi y aplicando las siguientes acciones:

:e ++ff=dos
:setlocal ff=unix
:wq

Como escribía, pensé que el cambio de DOS a Unix había sido la causa de que la lectura del archivo de configuración terminara colocando algo más y así no se encontrara lo que debiera encontrarse. Pero la causa raíz es otra.

Como señalé anteriormente la librería reportada (/usr/local/lib/libtsk_jni.dylib) existe, pero el programa la busca en otro lado y en otra forma. El script unix_setup.sh, que se indica, debe ser ejecutado para «instalar» Autopsy 4, copia esta y varias otras bibliotecas dentro de la estructura de directorios de la aplicación (supongo que es para hacerla «autocontenida» de alguna forma). La mencionada biblioteca dinámica debería ser incluida en un JAR que lleva el nombre sleuthkid-<version>.jar. Si exploramos el contenido de esta con:

$ jar tf autopsy/modules/ext/sleuthkit-4.14.0.jar | grep -i tsk_jni
NATIVELIBS/amd64/mac/libtsk_jni.jnilib
NATIVELIBS/x86_64/mac/libtsk_jni.jnilib
$

veremos que el JAR sólo incluye archivos para «arquitecturas Intel» y parece que en los XML de construcción de The Sleuth Kit no están contempladas arquitecturas de 64 bits adicionales a las de Intel o AMD. Aunque, si se revisan los XML de construcción de Autopsy, veremos que estos sí las contemplan, pero esto se queda perdido en algún punto.

Un arreglo rápido para salvar este obstáculo es actualizar el JAR manualmente, que se logra desde el directorio raíz de Autopsy con:

$ mkdir -p NATIVELIBS/aarch64/mac
$ cp /usr/local/lib/libtsk_jni.dylib NATIVELIBS/aarch64/mac/libtsk_jni.jnilib
$ sudo jar uf /usr/local/share/java/sleuthkit-4.14.0.jar NATIVELIBS/aarch64/mac/libtsk_jni.jnilib

y tras lo cual deberá ejecutarse nuevamente unix_setup.sh. El resultado podrá comprobarse con

$  jar tf autopsy/modules/ext/sleuthkit-4.14.0.jar | grep -i tsk_jni
NATIVELIBS/amd64/mac/libtsk_jni.jnilib
NATIVELIBS/x86_64/mac/libtsk_jni.jnilib
NATIVELIBS/aarch64/mac/libtsk_jni.jnilib

que deberá mostrar la biblioteca agregada. Adicionalmente, hecha la actualización del JAR y antes de ejecutar a Autopsy 4 conviene limpiar un par de directorios de soporte: ~/Library/Application\ Support/Autopsy y ~/Library/Caches/Autopsy. Con esto, el problema que impide arrancar la aplicación por no hallar la biblioteca de Java debería solucionarse.

Referencias

  1. ArcPoint Forensics, «Installing Autopsy on macOS Big Sur«, medium.com, web. Published: 2021.09.30; visited: 2025.10.15. URL: https://arcpointforensics.medium.com/installing-autopsy-on-macos-big-sur-1e9cff8fa5ef.
  2. «Installing Autopsy on MacOS Catalina«, github.io, repository. Visited: 2025.10.15. URL: https://slo-sleuth.github.io/tools/InstallingAutopsyOnMacOS.html.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.