Freki Plataforma de Análisis de Malware de Código Abierto

Freki: Plataforma de Análisis de Malware de Código Abierto

Freki es una plataforma de análisis de malware gratuita y de código abierto. Fue construida para facilitar el análisis de malware y la ingeniería inversa.

También proporciona una API REST, por lo que se puede consultar y utilizar en diferentes proyectos.

Análisis de malware con Freki
Análisis de malware con Freki

Características

La versión actual soporta las siguientes características:

  • Extracción de hash: MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC32 y SSDEEP.
  • Consultas a la API de VirusTotal: Resultados AV.
  • Análisis estático de muestras de PE: Encabezados, secciones, importaciones, capacidades y cadenas.
  • Coincidencia de patrones con Yara.
  • Gestión de usuarios: Creación de cuentas para el envío de muestras y el uso de la API.
  • Comentarios de la comunidad: Los usuarios pueden comentar y debatir sobre las muestras.
  • Descarga de muestras: Todas las muestras están disponibles de forma gratuita.

¿Quién puede utilizarlo?

Cualquiera que quiera una herramienta de análisis de malware que funcione de forma local o pública. Puedes usarlo con un pequeño grupo de amigos o poner tu instancia a disposición de todo el mundo.

Perfil de usuario en Freki
Perfil de usuario en Freki

¿Cuál es la diferencia con VirusTotal?

Aunque VirusTotal es una gran herramienta para analizar diferentes archivos, tiene algunas limitaciones. Por ejemplo, hay que pagar para descargar muestras.

Otra gran herramienta es MalwareBazaar, ya que cubre algunas limitaciones de VirusTotal. Sin embargo, no puedes ejecutarlo en tu máquina privada ni añadir nuevas funciones.

Cabe destacar que Freki no es un sustituto de estas herramientas (sólo si lo deseas), sino una alternativa colaborativa muy inspirada en ellas.

Instalación

Página principal de Freki
Página principal de Freki

Ejecutar Freki es muy fácil, puede hacerlo a través de Docker o instalando todo a mano.

Ejecución con Docker

  1. Instalar Docker y Docker Compose.
  2. Clonar la última versión de Freki
$ git clone https://github.com/crhenr/freki.git
  1. Editar el archivo de configuración .env
$ cd freki
$ vi .env
# Clave secreta de la instancia
FREKI_SECRET_KEY=ChangeThis

# Clave maestra VT, utilizada en caso de que el usuario no haya proporcionado su clave
VT_MASTER_KEY=VirusTotalMasterKey

# Contraseña de MySQL para los usuarios Freki y root
DB_PASSWORD=SecretPassword
DB_ROOT_PASSWORD=AnotherSecretPassword
  1. Habilitar HTTPS. En este punto, deberías poder iniciar Freki. Sin embargo, una buena práctica (especialmente si va a hacer pública su instancia) es habilitar HTTPS.

Debes mover tu certificado y clave privada a una carpeta nginx/certs para que Docker Compose pueda montarla dentro del contenedor en /etc/nginx/certs.

Después de eso, necesitas editar el nginx/freki.conf a algo como esto:

server {
    listen 80;
    server_name 192.168.99.100;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name 192.168.99.100;
    ssl_certificate /etc/nginx/certs/fullchain.pem;
    ssl_certificate_key /etc/nginx/certs/privkey.pem;

    location / {
        proxy_pass http://freki:8000;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. ¡Ejecutar Freki!
$ make build

o,

$ docker-compose up -d

Instalación paso a paso

  • Instalar paquetes

Para Ubuntu/Debian

$ sudo apt install -y \
git python3 python3-dev python3-pip python3-mysqldb \
python3-setuptools python3-virtualenv \
automake libfuzzy-dev libssl-dev \
libffi-dev mariadb-server libmariadbclient-dev

Para Arch Linux

$ sudo pacman -S --noconfirm \
git python3 python-pip mysql-python \
python-setuptools python-virtualenv \
mariadb mariadb-libs ssdeep gcc automake

Para Fedora/RHEL

$ sudo dnf install -y \
git python3 python3-devel python3-pip \
python3-mysql python3-setuptools python3-virtualenv \
libffi-devel ssdeep-devel ssdeep-libs mariadb-server \
mariadb-devel
  • Crear un usuario de base de datos para Freki
$ sudo mysql_secure_installation
$ sudo mysql -u root -p

mysql> CREATE USER 'freki'@'localhost' IDENTIFIED BY 'tupassword';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'freki'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit
  • Crear una carpeta para almacenar las muestras cargadas
$ sudo mkdir /opt/freki
$ sudo chown -R youruser:usergroup /opt/freki
  • Clonar la última versión de Freki
$ git clone https://github.com/crhenr/freki.git
  • Crear e iniciar un nuevo virtualenv
$ cd freki/freki
$ virtualenv venv
$ source venv/bin/activate
  • Instalar los requisitos de Python
(venv) $ pip3 install -r requirements.txt
  • Exportar las variables de entorno necesarias
(venv) $ export FREKI_MYSQL_HOST="localhost"
(venv) $ export FREKI_MYSQL_PASSWORD="tupassword"
(venv) $ export FREKI_SECRET_KEY="tusecretkey"
  • ¡Ejecutar Freki!
(venv) $ python3 run.py

O,

(venv) $ gunicorn --bind 0.0.0.0:5000 run:app

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda