Buster Sandbox Analyzer: instalación y primeros usos

Buster Sandbox Analyzer (en adelante BSA) es un analizador de comportamiento de malware de tipo sandbox, una herramienta diseñada para analizar los procesos y los cambios realizados en el sistema (ficheros, registro, puertos) para evaluar si son sospechosos.
 
Se basa en el  proyecto Sandboxie y además de evaluar malware ejecutándose en el sandbox, podemos utilizarlo para ver en detalle los cambios que realiza cualquier software al instalarse.


 
Esto incluye la posibilidad de analizar cualquier tipo de fichero (EXE, BAT, VBS, PDF, XLS, DOC, ...) si puede ejecutarse dentro de Sandboxie con la posibilidad de añadir librerías (DLL, OCX…) o instalar otro software adicional si es necesario.

 
Otra de las características a destacar de BSA es que oculta los procesos de sandboxie y otros para que los crypters y RATs que tienen activado el módulo anti-sandbox no impidan su análisis. Para ello hookea a nivel de kernel ZwQuerySystemInformation, por lo que es posible que el fichero BSA.SYS sea detectado por algunos antivirus como un rootkit (actualmente devuelven falsos positivos Rising, Sophos y TrendMicro).


Su autor, Pedro López, lleva casi 3 años desarrollándola y ha contactado con nosotros para que le echáramos un vistazo y viéramos qué aspectos consideráramos que podrían mejorarse. Es decir, funciones que no estén implementadas y que puedan servir para mejorar la calidad de los análisis, ya sea del estático o del dinámico, e identificación de comportamientos maliciosos que actualmente no estén incorporados.
 
Por esta razón y para que participéis en este análisis, vamos a compartir con vosotros dos entradas sobre esta potente herramienta: esta entrada en la que hablaremos básicamente de su instalación y primeros usos y una segunda que publicaremos más adelante con el análisis de un artefacto de malware para ver los resultados y proponer mejoras.

 
Como siempre, os agradeceríamos enormemente cualquier experiencia o comentario al respecto.


Pre-requisitos

 
-    Sandboxie
-    WinPCap (es recomendable su instalación pero, si por alguna oscura razón no quieres instalarlo, puedes copiar PACKET.DLL y WPCAP.DLL desde la carpeta PCAP al directorio donde se sitúa BSA.EXE).

 
Instalación

 
BSA es portable, así que simplemente descargaremos el rar de la última versión y lo descomprimiremos en el directorio que deseemos. Por ejemplo en d:\BSA:
 

 
Dentro del directorio podemos ver varios ficheros de configuración importantes:

 
    BSA.DAT: puntos de control de ficheros y entradas del registro
    config\APIExclude.TXT: APIs excluídas
    config\MA-Calc.ini: Umbrales de cálculo de riesgo
    config\MA-RATINGS.INI: Puntuación de seguridad para cada evento
    config\RegistryExclude.TXT: Entradas de registro excluídas
    config\WindowMessages.TXT: Mensajes de Windows excluídos
 

A continuación es recomendable crear un sandbox específico y dedicado para BSA (Control de Sandboxie -> Sandbox -> Crear Nueva Sandbox):

 
Ahora será necesario que añadamos las siguientes opciones en la configuración de Sandboxie (Sandboxie.ini localizado en la carpeta de Windows o la de la instalación del programa). Para ello modificaremos el fichero de configuración sandboxie.ini con nuestro editor favorito (Control de Sandboxie -> Configurar -> Editar Configuración):


  • Sección sandbox BSA[BSA]
-   InjectDll=D:\bsa\LOG_API\64\LOG_API32_VERBOSE.DLL
     InjectDll64= D:\bsa\LOG_API\64\LOG_API64_VERBOSE.DLL: se inyecta una DLL en cada proceso del sandbox para hookear funciones que procesan y envían “Mensajes de Windows” a la aplicación BSA (que se ejecuta fuera del sandbox).

       Si el sistema operativo donde se trabaja es de 64 bits es necesario especificar ambas librerías (son complementarias). 

       Las librerías ‘verbose’ registrarán las operaciones de ficheros y el registro. Aumentará el detalle pero disminuirá la velocidad de ejecución de BSA.

-    OpenWinClass=TFormBSA: especifica el nombre de la clase de BSA (fuera del sandbox) que puede ser accedida por el proceso ejecutándose en el sandbox.

-    NotifyDirectDiskAccess=y: con esta opción Sandboxie notificará cuando un programa está intentando obtener acceso fuera del sandbox (mensaje SBIE1313).

-    ProcessLimit1=20
     ProcessLimit2=30 (opcional): limita el número de procesos que Sandboxie permite en un sandbox a la vez. ProcessLimit1 indica el número de procesos a partir del cual el siguiente se ejecutará a partir de una pausa de 10 segundos. ProcessLimit2 indica el número a partir del cual el siguiente será terminado. Es decir, con la configuración propuesta sólo se permitirán 30 procesos concurrentes y a partir del proceso número 20 tardarán en ejecutarse 10 segundos. 

  • Sección configuración de usuario [UserSettings_xxxxxxxx]
-    SbieCtrl_HideMessage =*: Desactiva los mensajes de Sandboxie.

Al final, el fichero de configuración quedará de la siguiente manera:

[UserSettings_xxxxxxxx]

SbieCtrl_UserName=vmotos
SbieCtrl_NextUpdateCheck=875344338989
SbieCtrl_UpdateCheckNotify=y
SbieCtrl_ShowWelcome=n
SbieCtrl_AutoApplySettings=n
SbieCtrl_WindowCoords=414,112,660,448
SbieCtrl_ActiveView=40031
SbieCtrl_ReloadConfNotify=n
SbieCtrl_BoxExpandedView=1,BSA,DefaultBox
SbieCtrl_HideMessage=*


[BSA]

ConfigLevel=7
AutoRecover=y
Template=AutoRecoverIgnore
Template=Firefox_Phishing_DirectAccess
Template=LingerPrograms
Template=BlockPorts
RecoverFolder=%Desktop%
RecoverFolder=%Favorites%
RecoverFolder=%Personal%
RecoverFolder=%{374DE290-123F-4565-9164-39C4925E467B}%
BorderColor=#00FFFF,ttl
DropAdminRights=y
Enabled=y
BoxNameTitle=y
FileRootPath=D:\Sandbox\BSA
InjectDll=D:\bsa\LOG_API\64\LOG_API32_VERBOSE.DLL
InjectDll64=D:\bsa\LOG_API\64\LOG_API64_VERBOSE.DLL
OpenWinClass=TFormBSA
NotifyDirectDiskAccess=y

ProcessLimit1=20
ProcessLimit2=30


Una vez modificado, procederemos a recargar la configuración de Sandboxie (Control de Sandboxie -> Configurar-> Recargar Configuración):



Y ya podemos ejecutar el programa principal (BSA.exe) indicando la ruta del Sandbox creado para el BSA:

 
Uso

 
Podemos comenzar un análisis pulsando el botón correspondiente de la ventana anterior, y os recomendamos también integrarlo con el shell de Windows para que aparezca la opción de ‘Analizar con BSA’  al pulsar el botón derecho del ratón:


 
También es posible ejecutar BSA de forma automática desde la línea de comandos, indicando el tiempo (-s) y el directorio (-f) o URL (-url) a procesar. Por ejemplo:

BSA.EXE -s 30 -f C:\TEST
BSA.EXE -s 30 – url http://www.hackplayers.com
BSA.EXE -s 30 -url C:\TEST\URLS.TXT (fichero conteniendo una lista de URLs)

¡Así que ya tenemos todo preparado para empezar a analizar malware!
No olvidéis mandarnos vuestro feedback si os animáis a probarlo o si ya lo habéis hecho. Eso sí, recordar que Sandboxie, el entorno que utiliza BSA, está diseñado para evitar específicamente cambios en el disco, es decir, con la instalación por defecto NO evitaremos que por ejemplo un determinado tipo de malware envíe información a Internet y, aunque esto es muy difícil, tampoco estaremos a salvo si llegamos a probar un malware que es capaz de evadir la seguridad del sandbox.
En cualquier caso, recomendamos probar BSA en un equipo destinado específicamente para ello (sin credenciales personales de ningún tipo).

6 comentarios:

  1. Chicos, varia en algo tener un usuarios administrador o usuario limitado???

    ResponderEliminar
  2. Con la actual configuración solo se analizarían de forma correcta los procesos de 64 bit. Si analizas un malware de 32 bit (la inmensa mayoría) te faltará la información relativa a la utilización de las APIs porque te falta un parámetro en el Sandboxie.INI:

    InjectDll=D:\bsa\LOG_API\64\LOG_API32_VERBOSE.DLL

    Ese parámetro no es excluyente de:

    InjectDll64=D:\bsa\LOG_API\64\LOG_API64_VERBOSE.DLL

    En realidad son complementarios y necesarios los dos cuando BSA corre en un sistema operativo de 64 bit.

    ResponderEliminar
  3. Moc: Para poder realizar determinadas acciones se necesita que BSA corra con privilegios de administrador.

    Por otro lado, un malware que se ejecute en una cuenta limitada mostrará menos comportamientos que uno que se ejecute en una cuenta de administrador.

    Como Sandboxie nos asegura (no al 100% porque eso en seguridad no existe) la contención del malware, es mejor analizar bajo una cuenta de administrador.

    ResponderEliminar
  4. Muchas gracias por la rápida respuesta. Me queda la ultima duda, la siguiente ruta:

    FileRootPath=c:\Sandbox\BSA

    No encuentro en donde esta creada la sandbox, así pongo la ruta correcta.

    Saludos

    ResponderEliminar
  5. FileRootPath es un comando que iría en la sección "[GlobalSettings]".

    Lo normal es que sea Sandboxie el que añada esa entrada en el fichero Sandboxie.ini.

    ResponderEliminar
  6. @anónimo FileRootPath puede ir también en la sección de un sandbox específico.

    En GlobalSettings puedes poner una ruta que sería válida para todos los sandboxes si no tienen un ruta definitida.

    http://www.sandboxie.com/index.php?FileRootPath

    Saludos!

    ResponderEliminar