• Stars
    star
    100
  • Rank 340,703 (Top 7 %)
  • Language
    Dockerfile
  • License
    BSD 3-Clause "New...
  • Created over 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Automated Docker MISP container - Malware Information Sharing Platform and Threat Sharing

Docker MISP Container

Latest Update: 4-14-2020

Following the Official MISP Ubuntu 18.04 LTS build instructions.

Latest Upstream Change Included: a62bca4e169c919413bba4e6ce978e30aae9183e

Github repo + build script here: https://github.com/harvard-itsecurity/docker-misp (note: after a git pull, update build.sh with your own passwords/FQDN, and then build the image)

What is this?

This is an easy and highly customizable Docker container with MISP - Malware Information Sharing Platform & Threat Sharing (http://www.misp-project.org)

Our goal was to provide a way to setup + run MISP in less than a minute!

We follow the official MISP installation steps everywhere possible, while adding automation around tedious manual steps and configurations.

We have done this without sacrificing options and the ability to customize MISP for your unique environment! Some examples include: auto changing the salt hash, auto initializing the database, auto generating GPG keys, auto generating working + secure configs, and adding custom passwords/domain names/email addresses/ssl certificates.

The misp-modules extensions functionality has been included and can be accessed from http://[dockerhostip]:6666/modules. (thanks to Conrad)

Build Docker container vs using Dockerhub binary?

We always recommend building your own Docker MISP image using our "build.sh" script. This allows you to change all the passwords and customize a few config options.

That said, you can pull down the Dockerhub binary image, but this is not supported or recommended. It's there purely for convenience, and so that you can "get a feel" for MISP without building it. It will by default contain "LOCALHOST" as all configured host everywhere, and this will only work on the same system or if you proxy/port forward.

Building your own MISP Docker image is incredibly simple:

git clone https://github.com/harvard-itsecurity/docker-misp.git
cd docker-misp

# modify build.sh, specifically for:
# 1.) all passwords (MYSQL, GPG)
# 2.) change at LEAST "MISP_FQDN" to your FQDN (domain)

# Build the docker image - will take a bit, but it's a one time thing!
# Run this from the root of "docker-misp"
./build.sh

This will produce an image called: harvarditsecurity/docker-misp

How to run it in 3 steps:

About $docker-root - If you are running Docker on a Mac, there are some mount directory restrictions by default (see: https://docs.docker.com/docker-for-mac/osxfs/#namespaces). Your $docker-root needs to be either one of the supported defaults ("Users", "Volumes", "private", or "tmp"), otherwise, you must go to "Preferences" -> "File Sharing" and add your chosen $docker-root to the list.

We would suggest using /docker for your $docker-root, and if using a Mac, adding that to the File Sharing list.

Once you have your DB directory created (mkdir -p /docker/misp-db), follow the 3 steps:

1. Initialize Database

docker run -it --rm \
    -v $docker-root/misp-db:/var/lib/mysql \
    harvarditsecurity/misp /init-db

2. Start the container

docker run -it -d \
    -p 443:443 \
    -p 80:80 \
    -p 3306:3306 \
    -p 6666:6666 \
    -v $docker-root/misp-db:/var/lib/mysql \
    harvarditsecurity/misp

3. Access Web URL

Go to: https://localhost (or your "MISP_FQDN" setting)

Login: [email protected]
Password: admin

And change the password! :)

What can you customize/pass during build?

You can customize the build.sh script to pass custom:

  • MYSQL_MISP_PASSWORD
  • POSTFIX_RELAY_HOST
  • MISP_FQDN
  • MISP_EMAIL
  • MISP_GPG_PASSWORD

See build.sh for an example on how to customize and build your own image with custom defaults.

How to use custom SSL Certificates:

During run-time, override /etc/ssl/private

docker run -it -d \
    -p 443:443 \
    -p 80:80 \
    -p 3306:3306 \
    -v $docker-root/certs:/etc/ssl/private \
    -v $docker-root/misp-db:/var/lib/mysql \
    harvarditsecurity/misp

And in your /certs dir, create private/public certs with file names:

  • misp.key
  • misp.crt

Security note in regards to key generation:

We have added "rng-tools" in order to help with entropy generation, since users have mentioned that during the pgp generation, some systems have a hard time creating enough "randomness". This in turn uses a pseudo-random generator, which is not 100% secure. If this is a concern for a production environment, you can either 1.) take out the "rng-tools" part from the Dockerfile and re-build the container, or 2.) replace the keys with your own! For most users, this should not ever be an issue. The "rng-tools" is removed as part of the build process after it has been used.

Using a reverse proxy/SSL offloading (Traefik, Caddy, HAProxy, Nginx, etc)

You will need to removing the SSL block (see: /etc/apache2/sites-available/default-ssl.conf)

And replace the HTTP block (see: /etc/apache2/sites-available/000-default.conf with:

<VirtualHost *:80>
ServerAdmin admin@localhost
ServerName localhost
DocumentRoot /var/www/MISP/app/webroot
<Directory /var/www/MISP/app/webroot>
Options -Indexes
AllowOverride all
</Directory>
LogLevel warn
ErrorLog /var/log/apache2/misp_error.log
CustomLog /var/log/apache2/misp_access.log combined
ServerSignature Off
</VirtualHost>

If you don't want to build a new image with this, you can simply add to your run-time: (note again: $docker-root is the place holder for your docker container and configs path)

-v $docker-root/apache.conf:/etc/apache2/sites-available/000-default.conf

Contributions:

Conrad Crampton: @radder5 - RNG Tools and MISP Modules

Jeremy Barlow: @jbarlow-mcafee - Cleanup, configs, conveniences, python 2 vs 3 compatibility

Matt Saunders: @matt-saunders - Fixed all install warnings and errors

Matija ÄŒoklica: @XizzoR - Discovered problem where GPG key was empty, lots of python/misp modules debugging (thanks!)

Help/Questions/Comments:

For help or more info, feel free to contact Ventz Petkov: [email protected]

More Repositories

1

MISP

MISP (core software) - Open Source Threat Intelligence and Sharing Platform
PHP
4,717
star
2

misp-galaxy

Clusters and elements to attach to MISP events or attributes (like threat actors)
Python
439
star
3

misp-warninglists

Warning lists to inform users of MISP about potential false-positives or other information in indicators
Python
412
star
4

PyMISP

Python library using the MISP Rest API
Python
381
star
5

misp-modules

Modules for expansion services, enrichment, import and export in MISP and other tools.
Python
344
star
6

misp-training

MISP trainings, threat intel and information sharing training materials with source code
TeX
316
star
7

x_old_misp_docker

MISP Docker (XME edition)
Shell
283
star
8

misp-book

User guide of MISP
Shell
253
star
9

misp-taxonomies

Taxonomies used in MISP taxonomy system and can be used by other information sharing tool.
Python
237
star
10

misp-dashboard

A live dashboard for a real-time overview of threat intelligence from MISP instances
JavaScript
184
star
11

MISP-maltego

Set of Maltego transforms to inferface with a MISP Threat Sharing instance, and also to explore the whole MITRE ATT&CK dataset.
Python
156
star
12

misp-docker

A production ready Dockered MISP
Shell
156
star
13

misp-objects

Definition, description and relationship types of MISP objects
Python
83
star
14

MISP-Taxii-Server

An OpenTAXII Configuration for MISP
Python
79
star
15

mail_to_misp

Connect your mail client/infrastructure to MISP in order to create events based on the information contained within mails.
Python
67
star
16

MISP-STIX-Converter

A utility repo to assist with converting between MISP and STIX formats
Python
64
star
17

misp-cloud

misp-cloud - Cloud-ready images of MISP
Shell
64
star
18

misp-stix

MISP-STIX-Converter - Python library to handle the conversion between MISP and STIX formats
Python
49
star
19

best-practices-in-threat-intelligence

Best practices in threat intelligence
HTML
44
star
20

misp-playbooks

MISP Playbooks
Jupyter Notebook
41
star
21

misp-rfc

Specifications used in the MISP project including MISP core format
HTML
41
star
22

misp-vagrant

Deploy MISP Project software with Vagrant.
Shell
41
star
23

threat-actor-intelligence-server

A simple ReST server to lookup threat actors (by name, synonym or UUID) and returning the corresponding MISP galaxy information about the known threat actors.
Python
37
star
24

intelligence-icons

intelligence-icons is a collection of icons and diagrams for building training and marketing materials around Intelligence sharing; including but not limited to CTI, MISP Threat Sharing, STIX 2.
JavaScript
35
star
25

misp-compliance

Legal, procedural and policies document templates for operating MISP and information sharing communities
33
star
26

misp-packer

Build Automated Machine Images for MISP
Shell
29
star
27

MISPego

Maltego Transform to put entities into MISP events
Python
26
star
28

misp-training-lea

Practical Information Sharing between Law Enforcement and CSIRT communities using MISP
TeX
26
star
29

PyTaxonomies

Python module to use the MISP Taxonomies
Python
26
star
30

misp-workbench

MISP Workbench
Python
26
star
31

PyMISPWarningLists

Pythonic way to work with the warning lists defined there: https://github.com/MISP/misp-warninglists
Python
26
star
32

misp-wireshark

Lua plugin to extract data from Wireshark and convert it into MISP format
Lua
23
star
33

ansible

MISP - Ansible installation script
PHP
22
star
34

misp-website

MISP website (hugo-based)
HTML
21
star
35

misp-takedown

A curses-style interface for automatic takedown notification based on MISP events.
Python
20
star
36

misp-graph

A tool to convert MISP XML files (events and attributes) into graphs
Python
20
star
37

PyMISPGalaxies

Pythonic way to work with the galaxies defined there: https://github.com/MISP/misp-galaxy
Python
17
star
38

misp-grafana

A real-time Grafana dashboard using MISP ZeroMQ message queue and InfluxDB
Python
13
star
39

misp-privacy-aware-exchange

A privacy-aware exchange module to securely and privately share your indicators
Python
13
star
40

misp-sighting-server

MISP sighting server is a fast sighting server to store and look-up sightings on attributes (network indicators, file hashes, system indicators) in a space efficient way.
Python
13
star
41

data-processing

Scripts to process big chunks of data from MISP and do in depth correlations on samples.
Python
12
star
42

yara-misp

Export MISP attributes in Yara
Python
12
star
43

misp-workflow-blueprints

Library of blueprints usable in MISP Workflows
Shell
11
star
44

MISP-sizer

Sizing your MISP instance
JavaScript
11
star
45

cexf

Common Exercise Format - CEXF
Python
10
star
46

misp-guard

misp-guard is a mitmproxy addon that inspects and blocks outgoing events to external MISP instances via sync mechanisms (pull/push) based on a set of customizable block rules.
Python
10
star
47

misp-bump

Simple and secure synchronisation of MISP instances with mobile phones
Java
9
star
48

evtx-toolkit

Tool to read EVTX files including SYSMON and convert to JSON, MISP Objects and Graph stream
Python
9
star
49

misp-decaying-models

MISP decaying models
Shell
9
star
50

threat-intelligence-browser

A browser for the threat intelligence knowledge base of the MISP project galaxies
JavaScript
9
star
51

MISP-presentations

8
star
52

misp-noticelist

Notice lists to inform users of MISP about legal or technical implication for some attributes, categories and objects
8
star
53

dockerized_training_environment

A training environment, with docker.
Python
8
star
54

misp-opendata

Tool to submit / delete data from MISP to opendata portal
Python
8
star
55

MISP-RPM

RPM packages for MISP
Makefile
8
star
56

misp-standard.org

misp-standard.org website
HTML
7
star
57

PyIntel471

Python API for PyIntel471
Python
7
star
58

misp-bloomfilter

A tool to create bloom filters from MISP records to share IOCs with others without breaking confidentiality.
Python
6
star
59

matrix-misp-bot

Very basic MISP bot for matrix.
Python
6
star
60

misp-expansion

MISP expansion - a browser extension (Firefox and Chrome) to lookup on MISP
JavaScript
5
star
61

misp-darwin

MISP darwin is a model and tools to automatically translate in natural language technical or structured information from MISP
Python
5
star
62

mail_to_misp_test

Test emails for mail to misp
4
star
63

LuaMISP

Lua Library to create and manipulate MISP entities
Lua
3
star
64

pdf_fonts

PDF Fonts used by PyMISP PDFtools export to support internalization
3
star
65

misp-usage-statistics

MISP usage statistics using bokeh (as a static webpage)
Python
3
star
66

misp-sighting-tools

Tools to support sighting from various sources (e.g. network pcap) to sight attributes in MISP instances
Python
3
star
67

misp-monitoring

Tools and documentation related to MISP instance monitoring in production/corporate environments
Shell
3
star
68

pypraware

Python Privacy Aware (pypraware) module containing script for misp-privacy-aware-exchange
Python
3
star
69

misp-stix-tests

STIX files for testing misp-stix and various libraries
2
star
70

misp_dockerized_testing

Test MISP instances using a dockerized infrastructure
Python
2
star
71

widget-collection

PHP
1
star
72

cakephp

CakePHP (v2.x branch + updates)
PHP
1
star
73

PyMISPObjectTemplates

Python API to create and update MISP Object templates
Python
1
star