LiSa: Sandbox para el Análisis Automatizado de Malware de Linux
LiSa: Sandbox para el Análisis Automatizado de Malware de Linux

LiSa: Sandbox para el Análisis Automatizado de Malware de Linux

Proyecto de análisis automatizado de malware de Linux en varias arquitecturas de CPU.

Características

  • Emulación QEMU.
  • Actualmente soporta x86_64, i386, arm, mips, aarch64.
  • Pequeñas imágenes construidas con buildroot.
  • Análisis estático basado en Radare2.
  • Análisis dinámico (comportamiento) usando módulos de kernel SystemTap – syscalls capturados, openfiles, árboles de procesos.
  • Estadísticas de red y análisis de comunicación DNS, HTTP, Telnet e IRC.
  • Análisis de puntos finales y configuración de listas negras.
  • Escalado con celery y RabbitMQ.
  • API REST | frontend.
  • Extensible mediante módulos de subanálisis e imágenes personalizadas.

Comenzar con LiSa

Requisitos

Obtener el repositorio.

$ git clone https://github.com/danieluhricek/lisa
$ cd lisa

Compilar.

# docker-compose build

Ejecutar el sandbox (ubicación predeterminada: http://localhost:4242).

# docker-compose up

Configuración

MaxMind GeoLite2

Regístrate para obtener tu clave API. Utiliza la clave API en la sección de argumentos de compilación de docker-compose.yml.

.
.
  worker:
    image: lisa-worker
    build:
      context: .
      dockerfile: ./docker/worker/Dockerfile
      args:
        maxmind_key: YOUR_KEY
    volumes:
      - "./data/storage:/home/lisa/data/storage"
      .
      .
      .
.
.

Alojamiento Web

Configura la dirección IP:puerto de tu servidor en el servicio nginx en docker-compose.yml.

Escalabilidad

Los workers son escalables.

# docker-compose up --scale worker=10

VPN

Puedes enrutar el tráfico de malware a través de OpenVPN. Para hacerlo:

  • Monta un volumen que contenga la configuración de OpenVPN (llamada config.ovpn).
  • Establece la variable de entorno VPN en la ruta del directorio de la configuración de OpenVPN.
.
.
  worker:
    image: lisa-worker
    build:
      context: .
      dockerfile: ./docker/worker/Dockerfile
    environment:
      - VPN=/vpn
    volumes:
      - "./data/storage:/home/lisa/data/storage"
      - "./vpn:/vpn"
.
.

Listas negras

Las listas negras utilizadas por defecto son:

  • bi_ssh_2_30d.ipset
  • firehol_level3.netset
  • firehol_webserver.netset
  • iblocklist_abuse_zeus.netset
  • normshield_all_wannacry.ipset
https://github.com/firehol/blocklist-ipsets

Si deseas utilizar otra lista negra, coloca archivos .ipset o .netset en data/blacklists. Todas estas listas negras se fusionan durante la compilación del servicio worker.

Añadir Nuevos Módulos de Subanálisis

El núcleo del proyecto LiSa admite 4 módulos básicos de análisis: static_analysis, dynamic_analysis, network_analysis y virustotal. Los módulos de subanálisis son basados en complementos. Para añadir un nuevo subanálisis y agregar su salida al json final, sigue estos pasos:

  • Crea una clase que herede de la clase AbstractSubAnalyzer e implementa el método run_analysis(), por ejemplo:
class NewSubAnalyzer(AbstractSubAnalyzer):
    def run_analysis(self):
        pass
  • Actualizar lista en lisa.config.py:
analyzers_config = [
    # core analyzers
    'lisa.analysis.static_analysis.StaticAnalyzer',
    'lisa.analysis.dynamic_analysis.DynamicAnalyzer',
    'lisa.analysis.network_analysis.NetworkAnalyzer',
    'lisa.analysis.virustotal.VirusTotalAnalyzer',

    # custom
    'module_of_new_analyzer.NewSubAnalyzer'
]

Ejecución de pruebas

# docker build -f ./docker/tests/Dockerfile -t lisa-tests .
# docker run lisa-tests

Funciones Próximas

  • Módulo YARA: Módulo YARA para hacer coincidir patrones en la salida JSON de LiSa.
  • Selección de imágenes: Más imágenes de Linux que contengan, por ejemplo, firmware de IoT.
https://github.com/danieluhricek/LiSa

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda