CERT-Polska/karton-classifier
GitHub: CERT-Polska/karton-classifier
Karton 框架的文件类型分类器,负责对进入分析流水线的原始样本进行自动识别与标签化,驱动后续子系统按类型接收任务。
Stars: 8 | Forks: 12
# Classifier karton 服务
用于 Karton 框架的文件类型分类器。
样本的入口点。对标记为 `kind: raw` 的样本类型进行分类,
这使得它们可以被那些只接收特定
类型样本的子系统所使用(例如 `raw` => `runnable:win32:exe`)
**作者**:CERT.pl
**维护者**:psrok1, msm, nazywam
**消费:**
```
{
"type": "sample",
"kind": "raw"
"payload": {
"magic": "output from 'file' command",
"sample":
}
}
```
**产出:**
```
{
"type": "sample",
"stage": "recognized",
"kind": "runnable" # Executable format default for OS platform
|| "document" # Office document
|| "archive" # Archive containing samples (zip, e-mails)
|| "dump" # Dump from sandbox
|| "script", # Script (js/vbs/bat...)
|| "misc", # No platform or extension
"platform": "win32"
|| "win64"
|| "linux"
|| "android",
|| "macos",
|| "freebsd",
|| "netbsd",
|| "openbsd",
|| "solaris",
"extension": "*", # Expected file extension
"mime": "*", # Expected file mimetype
... (other fields are derived from incoming task)
}
```
**警告** 输出的 `mime` 字段在不同的 libmagic 版本中并不确定,可能会根据您使用的版本而变化。我们不建议创建直接监听该字段的消费者。
## 用法
首先,请确保您已设置核心系统:
然后从 PyPi 安装 karton-classifier:
```
$ pip install karton-classifier
$ karton-classifier
```
## YARA 规则分类器
自 karton-classifier v2.1.0 起,可以使用 YARA 规则来扩展分类器逻辑。
您可以通过传递 `--yara-rules` 并指定包含规则的目录路径来启用它。每条规则**必须**使用 meta 部分指定生成的 `kind`。支持其他 meta 属性(`platform` 和 `extension`),但它们是可选的。一个可用的规则如下所示:
```
rule pe_file
{
meta:
description = "classifies incoming windows executables"
kind = "runnable"
platform = "win32"
extension = "exe"
strings:
$mz = "MZ"
condition:
$mz at 0 and uint32(uint32(0x3C)) == 0x4550
}
```
需要考虑的一些注意事项:
* 分类器仍会正常处理文件,因此在某些情况下它可能会对同一个文件报告两次。
* 分类器将报告所有匹配的 Yara 规则(因此单个文件上的 N 个匹配项将创建 N 个任务)
* 传出的任务在任务 header 的 `rule-name` 中包含了匹配的规则名称
* 所有 Yara 规则必须具有 `.yar` 扩展名。指定目录中的所有其他文件都将被忽略。特别是,不支持 `.yara` 扩展名。
* 也不支持目录 - 所有 Yara 规则必须直接位于指定的目录中。

标签:DAST, DNS 反向解析, Karton, Python, YARA, 云资产可视化, 安全分析框架, 恶意软件分析, 文件分类, 无后门, 自动化分析, 跨站脚本, 逆向工具