selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

freki logo

Self-host freki

v1.0.0

Open-source static malware analysis with web UI and API

ReleaseOpen SourceAGPL-3.0
Docker ComposeCompose file & guide
docker-compose up
Updated2 years ago
LanguageYARA
Setup difficultyModerate
MobileResponsive
Stars
446
Port
8000 (Freki Flask app served by gunicorn inside the container (proxied by the bundled Nginx on 80/443).)
Requires
MariaDB
Home pageSign up pageAnalysis page: general informationAnalysis page: VirusTotal detectionAnalysis page: static analysisAnalysis page: community commentsProfile page

What is freki?

Freki is a free, open-source malware analysis platform aimed at researchers and small teams who want an analysis instance on their own hardware. It computes a wide set of hashes for submitted files (from MD5 and the SHA families up to CRC32 and SSDEEP), performs static analysis of PE samples covering their headers, sections, imports, capabilities and embedded strings, runs YARA pattern matching, and queries the VirusTotal API for detection reports. Everything is reachable through a web interface with user accounts, community comments on samples and free sample downloads, plus a REST API for use from other projects. Deployment is documented via Docker Compose (a Flask app container, MariaDB and Nginx, configured through a .env file) or a step-by-step manual install on Ubuntu/Debian, Arch Linux or Fedora/RHEL using Python 3, a virtualenv and MariaDB. Freki describes itself as a collaborative alternative inspired by VirusTotal and MalwareBazaar rather than a full replacement; the newest tagged release is v1.0.0 from 2020 and several documentation pages are still marked "Coming soon".

Should you self-host freki?

freki scores 42/100 on selfhost.directory (how scoring works) and ranks #62 of 78 in Security. It has 446 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is AGPL-3.0-licensed and written mostly in YARA.

Its closest alternative on selfhost.directory is urlvet (46/100, 110 stars). It scores higher overall, so compare the two before you pick. See freki vs urlvet side by side.

Features

  • Community Comments
  • File hash extraction
  • PE static analysis
  • REST API
  • Sample Downloads
  • User Management
  • VirusTotal lookups
  • Web Interface
  • Yara Pattern Matching

freki README

How to install freki

Install freki with Docker Compose

Environment variables
FREKI_SECRET_KEY, VT_MASTER_KEY, DB_PASSWORD, DB_ROOT_PASSWORD
  1. Install Docker and Docker Compose.
  2. Edit the .env file.
  3. If you are going to use it in production, edit freki.conf to enable HTTPS.
  4. Run docker-compose up or make.

Compose stack builds three containers: the Freki app, a MariaDB database and an Nginx reverse proxy exposing ports 80/443.

How to configure freki

  • DB_PASSWORDMySQL password for the Freki and root users

    MySQL password for the Freki and root users

  • DB_ROOT_PASSWORD
  • FREKI_MYSQL_HOSTHost of the MySQL/MariaDB server Freki connects to (in Docker Compose it is the fixed db container address).

    Host of the MySQL/MariaDB server Freki connects to (in Docker Compose it is the fixed db container address).

  • FREKI_MYSQL_PASSWORDMySQL password for the Freki user (exported manually in the step-by-step install; set from DB_PASSWORD in Docker).

    MySQL password for the Freki user (exported manually in the step-by-step install; set from DB_PASSWORD in Docker).

  • FREKI_SECRET_KEYInstance secret key

    Instance secret key

  • FREKI_VT_MASTER_KEYContainer environment variable that receives the administrator VirusTotal key from VT_MASTER_KEY in .env.

    Container environment variable that receives the administrator VirusTotal key from VT_MASTER_KEY in .env.

  • VT_MASTER_KEYVT master key, used in case the user did not provide his key

    VT master key, used in case the user did not provide his key

freki releases & version history

FAQ

How can I have my own instance?

You can run it via Docker or install everything by hand, as described in the administrator documentation.

What is the difference to VirusTotal?

VirusTotal is great but paid for sample downloads; Freki is described as a collaborative alternative inspired by it and by MalwareBazaar, that you can run privately and extend.

Who can use Freki?

Anyone who wants a malware analysis tool running locally or publicly, whether for a small group or an open instance.

More in Research

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…