All Projects → CERT-Polska → Karton

CERT-Polska / Karton

Licence: bsd-3-clause
Distributed malware processing framework based on Python, Redis and MinIO.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Karton

Visualize logs
A Python library and command line tools to provide interactive log visualization.
Stars: ✭ 128 (-4.48%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Malware-Zoo
Hashes of infamous malware
Stars: ✭ 18 (-86.57%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Mwdb Core
Malware repository component for samples & static configuration with REST API interface.
Stars: ✭ 125 (-6.72%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
awesome-executable-packing
A curated list of awesome resources related to executable packing
Stars: ✭ 720 (+437.31%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Malice
VirusTotal Wanna Be - Now with 100% more Hipster
Stars: ✭ 1,253 (+835.07%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Malware-Machine-Learning
Malware Machine Learning
Stars: ✭ 26 (-80.6%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Owlyshield
Owlyshield is an EDR framework designed to safeguard vulnerable applications from potential exploitation (C&C, exfiltration and impact))..
Stars: ✭ 281 (+109.7%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Malware-Sample-Sources
Malware Sample Sources
Stars: ✭ 214 (+59.7%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Fileintel
A modular Python application to pull intelligence about malicious files
Stars: ✭ 97 (-27.61%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
pyc2bytecode
A Python Bytecode Disassembler helping reverse engineers in dissecting Python binaries by disassembling and analyzing the compiled python byte-code(.pyc) files across all python versions (including Python 3.10.*)
Stars: ✭ 70 (-47.76%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Malware Feed
Bringing you the best of the worst files on the Internet.
Stars: ✭ 69 (-48.51%)
Mutual labels:  cybersecurity, malware-analysis, malware-research
Malboxes
Builds malware analysis Windows VMs so that you don't have to.
Stars: ✭ 900 (+571.64%)
Mutual labels:  malware-analysis, malware-research
Thezoo
A repository of LIVE malwares for your own joy and pleasure. theZoo is a project created to make the possibility of malware analysis open and available to the public.
Stars: ✭ 7,849 (+5757.46%)
Mutual labels:  malware-analysis, malware-research
Yargen
yarGen is a generator for YARA rules
Stars: ✭ 795 (+493.28%)
Mutual labels:  malware-analysis, malware-research
Besafe
BeSafe is robust threat analyzer which help to protect your desktop environment and know what's happening around you
Stars: ✭ 21 (-84.33%)
Mutual labels:  cybersecurity, malware-analysis
Apkid
Android Application Identifier for Packers, Protectors, Obfuscators and Oddities - PEiD for Android
Stars: ✭ 999 (+645.52%)
Mutual labels:  malware-analysis, malware-research
Drebin
Drebin - NDSS 2014 Re-implementation
Stars: ✭ 52 (-61.19%)
Mutual labels:  malware-analysis, malware-research
Malwarelab vm Setup
Setup scripts for my Malware Analysis VMs
Stars: ✭ 126 (-5.97%)
Mutual labels:  malware-analysis, malware-research
See
Sandboxed Execution Environment
Stars: ✭ 770 (+474.63%)
Mutual labels:  malware-analysis, malware-research
Analyst Casefile
Maltego CaseFile entities for information security investigations, malware analysis and incident response
Stars: ✭ 41 (-69.4%)
Mutual labels:  malware-analysis, malware-research

Karton

Distributed malware processing framework based on Python, Redis and MinIO.

The idea

Karton is a robust framework for creating flexible and lightweight malware analysis backends. It can be used to connect malware* analysis systems into a robust pipeline with very little effort.

We're in the automation business since a long time. We're dealing with more and more threats, and we have to automate everything to keep up with incidents. Because of this, we often end up with many scripts stuck together with duct tape and WD-40. These scripts are written by analysts in the heat of the moment, fragile and ugly - but they work, and produce intel that must be stored, processed further, sent to other systems or shared with other organisations.

We needed a way to take our PoC scripts and easily insert them into our analysis pipeline. We also wanted to monitor their execution, centralise logging, improve robustness, reduce development inertia... For this exact purpose, we created Karton.

* while Karton was designed with malware analysis in mind, it works nicely in every microservice-oriented project.

Installation

Installation is as easy as a single pip install command:

pip3 install karton-core

In order to setup the whole backend environment you will also need MinIO and Redis, see the docs for details.

Example usage

To use karton you have to provide class that inherits from Karton.

from karton.core import Karton, Task, Resource

class GenericUnpacker(Karton):
    """
    Performs sample unpacking
    """
    identity = "karton.generic-unpacker"
    filters = [
        {
            "type": "sample",
            "kind": "runnable",
            "platform": "win32"
        }
    ]

    def process(self, task: Task) -> None:
        # Get sample object
        packed_sample = task.get_resource('sample')
        # Log with self.log
        self.log.info(f"Hi {packed_sample.name}, let me analyze you!")
        ...
        # Send our results for further processing or reporting
        task = Task(
            {
               "type": "sample",
               "kind": "raw"
            }, payload = {
               "parent": packed_sample,
               "sample": Resource(filename, unpacked)
            })
        self.send_task(task)

if __name__ == "__main__":
    # Here comes the main loop
    GenericUnpacker().loop()

Karton systems

Some Karton systems are universal and useful to everyone. We decided to share them with the community.

karton

This repository. It contains the karton.system service - main service, responsible for dispatching tasks within the system. It also contains the karton.core module, that is used as a library by other systems.

karton-dashboard

A small Flask dashboard for task and queue management and monitoring.

karton-classifier

The "router". It recognises samples/files and produces various task types depending on the file format. Thanks to this, other systems may only listen for tasks with a specific format (for example, only zip archives).

karton-archive-extractor

Generic archive unpacker. Archives uploaded into the system will be extracted, and every file will be processed individually.

karton-config-extractor

Malware extractor. It uses Yara rules and Python modules to extract static configuration from malware samples and analyses. It's a fishing rod, not a fish - we don't share the modules themselves. But it's easy to write your own!

karton-mwdb-reporter

A very important part of the pipeline. Reporter submits all files, tags, comments and other intel produced during the analysis to MWDB. If you don't use MWDB yet or just prefer other backends, it's easy to write your own reporter.

karton-yaramatcher

Automatically runs Yara rules on all files in the pipeline, and tags samples appropriately. Rules not included ;).

karton-asciimagic

Karton system that decodes files encoded with common methods, like hex, base64, etc. (You wouldn't believe how common it is).

karton-autoit-ripper

A small wrapper around AutoIt-Ripper that extracts embedded AutoIt scripts and resources from compiled AutoIt executables.

Coming soon:

karton-drakvuf

Uploads incoming samples to drakvuf-sandbox for dynamic analysis.

karton-misp-pusher

A reporter, that submits observed events to MISP.

This is how these systems can be used to form a basic malware analysis pipeline:

Co-financed by the Connecting Europe Facility by of the European Union

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].