前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Karton:基于Python、Redis和MinIO实现的分布式恶意软件处理框架

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

作者头像
FB客服
发布2022-11-14 15:50:45
5200
发布2022-11-14 15:50:45
举报
文章被收录于专栏:FreeBuf

关于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提交分析期间生成的所有文件、标签、注释和其他数据。

karton-yaramatcher

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

karton-asciimagic

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

karton-autoit-ripper

一个围绕AutoIt-Ripper的小型封装工具,用于从已编译的AutoIt可执行文件中提取嵌入式AutoIt脚本和资源。

DRAKVUF Sandbox

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

工具安装

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

代码语言:javascript
复制
pip3 install karton-core

如需安装整个后端环境,我们还需要安装好MinIO和Redis。

工具使用

如需使用Karton,你需要提供一个从Karton继承的类:

代码语言:javascript
复制
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:https://github.com/CERT-Polska/karton

参考资料

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于Karton
  • Karton系统
    • karton
      • karton-dashboard
        • karton-classifier
          • karton-archive-extractor
            • karton-config-extractor
              • karton-mwdb-reporter
                • karton-yaramatcher
                  • karton-asciimagic
                    • karton-autoit-ripper
                      • DRAKVUF Sandbox
                      • 工具安装
                      • 工具使用
                      • (向右滑动,查看更多)
                      • 项目地址
                      • 参考资料
                      相关产品与服务
                      云数据库 Redis
                      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档