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

图片[1]-Karton:基于Python、Redis和MinIO实现的分布式恶意软件处理框架-NGC660安全实验室

关于Karton

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

Karton系统

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

图片[2]-Karton:基于Python、Redis和MinIO实现的分布式恶意软件处理框架-NGC660安全实验室

karton

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

karton-dashboard

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

karton-classifier

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

karton-archive-extractor

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

karton-config-extractor

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

karton-mwdb-reporter

管道中非常重要的一部分。报告工具需要向MWDB提交分析期间生成的所有文件、标签、注释和其他数据。

karton-yaramatcher

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

karton-asciimagic

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

karton-autoit-ripper

一个围绕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()

项目地址

Karton:GitHub传送门

参考资料

https://karton-core.readthedocs.io/en/latest/getting_started.html#installation

https://github.com/c3rb3ru5d3d53c/karton-unpacker

https://github.com/raw-data/karton-die-classifier

https://github.com/raw-data/karton-retdec-unpacker

https://github.com/W3ndige/karton-similarity

本文转载于FreeBuf.COM,原作者:Alpha_h4ck
原地址:Karton:基于Python、Redis和MinIO实现的分布式恶意软件处理框架 – FreeBuf网络安全行业门户
若侵权请联系删除

© 版权声明
THE END
喜欢就支持一下吧
点赞6赏点小钱 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容