Karton:基于Python、Redis和MinIO实现的分布式恶意软件处理框架

Karton是一个基于Python、Redis和MinIO的恶意软件处理框架,提供了任务调度、文件识别、解压、配置提取等功能。它还包括Yara匹配器和自动化解码工具,支持与其他管道集成,强化恶意软件分析能力。Karton还包括一个Flask仪表板用于管理和监控任务,以及与MWDB的报告工具进行交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Karton

Karton是一款基于Python、Redis和MinIO实现的分布式恶意软件处理框架,Karton也是一个用于创建灵活轻量级恶意软件分析后端的健壮框架。广大研究人员可以使用Karton来将恶意软件分析系统接入至其他管道中,以实现更强大的恶意软件分析功能。

Karton系统

Karton系统中有一些组件是通用的,并且适用于各种角色的研究人员。下面给出的是Karton系统的架构图,以及各个系统组件的简单介绍。

karton

这个项目库中包含了karton.system服务,这是Karton系统的主服务,负责系统内的任务调度。它还包含karton.core模块,其他系统可以直接将其当作库来使用。

karton-dashboard

一个简单的Flask仪表盘,负责任务和队列的管理以及监控。

karton-classifier

一个“路由”,可以识别样本/文件,并根据文件格式生成各种任务类型。

karton-archive-extractor

通用档案解压工具,负责提取上传至系统的压缩文档。

karton-config-extractor

恶意软件提取工具,它使用了Yara规则和Python模块来提取恶意软件样本中的静态配置,病毒其进行分析。

karton-mwdb-reporter

管道中非常重要的一部分。报告工具需要向[ MWDB](https://github.com/CERT-Polska/mwdb-
core)提交分析期间生成的所有文件、标签、注释和其他数据。

karton-yaramatcher

对管道中的所有文件自动运行Yara规则,并对样本进行标记。

karton-asciimagic

负责使用常见的方法对文件进行解码,比如说Base64等等。

karton-autoit-ripper

一个围绕[ AutoIt-Ripper](https://github.com/nazywam/AutoIt-
Ripper)的小型封装工具,用于从已编译的AutoIt可执行文件中提取嵌入式AutoIt脚本和资源。

DRAKVUF Sandbox

自动黑盒恶意软件分析系统,带有DRAKVUF引擎。

工具安装

由于Karton基于Python开发,因此在使用之前需要确保本地设备已经安装并配置好了Python环境。Karton的安装非常简单,我们可以直接使用“pip
install”命令来安装:

pip3 install karton-core

如需安装整个后端环境,我们还需要安装好MinIO和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__":
    # Here comes the main loop
    GenericUnpacker().loop()

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值