跳转到主要内容

分布式恶意软件分析编排框架

项目描述

Karton

基于Python、Redis和S3的分布式恶意软件处理框架。

理念

Karton是一个强大的框架,用于创建灵活和轻量级的恶意软件分析后端。它可以很容易地将恶意软件分析系统连接到一个强大的管道中。

我们已经从事自动化业务很长时间。我们处理的威胁越来越多,我们必须自动化一切以跟上事件。因此,我们经常使用很多脚本粘合在一起,使用橡皮泥和WD-40。这些脚本是在分析员的紧张时刻编写的,脆弱而丑陋 - 但它们有效,并且产生了必须存储、进一步处理、发送到其他系统或与其他组织共享的情报。

我们需要一种方式,可以将我们的PoC脚本轻松插入到我们的分析管道中。我们还希望监控它们的执行,集中日志记录,提高鲁棒性,减少开发惯性...为此目的,我们创建了Karton

*虽然Karton是为恶意软件分析设计的,但它非常适合任何面向微服务的项目。

安装

安装就像一个简单的pip install命令一样简单

pip3 install karton-core

为了设置整个后端环境,您还需要S3兼容的存储和Redis,有关详细信息,请参阅文档

示例用法

要使用Karton,您必须提供继承自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__":
    GenericUnpacker.main()

Karton系统

一些Karton系统是通用的,对每个人都很有用。我们决定与社区分享它们。

karton

此仓库。它包含karton.system服务 - 主服务,负责在系统中调度任务。它还包含karton.core模块,该模块被其他系统用作库。

karton-dashboard

一个小型Flask仪表板,用于任务、队列管理和监控。

karton-classifier

“路由器”。它识别样本/文件,并根据文件格式产生各种任务类型。因此,其他系统只需监听具有特定格式的任务(例如,仅zip存档)。

karton-archive-extractor

通用存档解包器。上传到系统的存档将被解包,每个文件都将单独处理。

karton-config-extractor

恶意软件提取器。它使用Yara规则和Python模块从恶意软件样本和分析了静态配置。它是一根钓竿,而不是鱼 - 我们不共享模块本身。但写自己的很容易!

karton-mwdb-reporter

管道的重要组成部分。报告者将分析过程中产生的所有文件、标签、注释和其他情报提交到MWDB。如果您尚未使用MWDB或更喜欢其他后端,编写自己的报告者很容易。

karton-yaramatcher

自动在管道中的所有文件上运行Yara规则,并相应地标记样本。不包括规则;)。

karton-asciimagic

能够解码使用常见方法编码的文件的Karton系统,如hexbase64等。(你不会相信它有多普遍)。

karton-autoit-ripper

围绕AutoIt-Ripper的小型包装器,可以从编译的AutoIt可执行文件中提取嵌入的AutoIt脚本和资源。

DRAKVUF沙箱

带有DRAKVUF引擎的自动化黑盒恶意软件分析系统,不需要在虚拟机OS上安装代理。


这些系统可以这样使用,以形成一个基本的恶意软件分析管道:[图片链接]

采用Karton框架的社区项目

c3rb3ru5d3d53c/karton-unpacker

一个模块化的Karton框架服务,使用Qiling框架解包常见的打包器,如UPX等。

c3rb3ru5d3d53c/mwcfg / c3rb3ru5d3d53c/mwcfg-modules

适用于MalDuck的丰富功能模块化恶意软件配置提取工具

raw-data/karton-die-classifier

Detect-It-Easy分类器,适用于Karton框架

raw-data/karton-retdec-unpacker

适用于Karton框架的RetDec解包器模块

W3ndige/aurora / W3ndige/karton-similarity

具有模块化思想的恶意软件相似性平台。

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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

此版本没有可用的源分发文件。请参阅有关 生成分发存档 的教程。

构建分发

karton_core-5.5.0-py3-none-any.whl (50.5 kB 查看哈希值)

上传时间 Python 3

由以下支持