跳过导航,直接进入主要内容跳过导航,直接进入主要内容跳过导航,直接进入主要内容

mibee-fingerprints-go

MiBee 指纹库的参考 Go 引擎:加载 YAML 规则文件,对采集到的 Evidence 逐条求值,产出 ServiceIdentity 断言。实现与适配器规范 (fingerprint-spec.md)一致。

安装

go get github.com/Mi-Bee-Studio/mibee-fingerprints-go@v0.1.0

用法

import fp "github.com/Mi-Bee-Studio/mibee-fingerprints-go"

// 加载内嵌规则(编译进二进制——零配置)。
rc := &fp.RuleClassifier{}
if err := rc.LoadEmbeddedDefaults(); err != nil {
    log.Fatal(err)
}

// 对证据分类。
identities := rc.Classify(evidence)
for _, id := range identities {
    fmt.Printf("%s:%d → %s (conf=%.2f brand=%s)\n",
        ip, id.Port, id.Service, id.Confidence, id.Metadata["inferred_brand"])
}

类型

type Evidence struct {
    Kind       string            // "banner"、"snmp"、"http"、"tls" 等
    Port       int
    RawData    map[string]string // 协议相关载荷
    Confidence float64           // [0,1]
    // ……(见 fingerprint.go)
}

type ServiceIdentity struct {
    Service    string            // "ssh"、"http"、"camera" 等
    Port       int
    Confidence float64
    Metadata   map[string]string // brand、version、os_type 等
    // ……
}

规则格式

规则 YAML 文件与规范格式说明见 MiBee Steward 仓库的 docs/fingerprint-spec.md。

测试

go test ./...     # 全部测试,含 2554 条规则的完整语料加载
go test -race ./...

许可证

本模块按层双许可,与 MiBee Steward 主仓库保持一致:

层 许可证
源代码(*.go) GNU AGPLv3(或更新版本)
指纹语料(fingerprint-assets/*.yaml) CC-BY-SA 4.0

两层均为 copyleft:衍生 Go 代码须以 AGPLv3(或更新版本)发布,衍生指纹语料 须以 CC-BY-SA 4.0 发布。若 AGPLv3 无法覆盖你的源代码使用场景(闭源衍生、 不开源之 SaaS 等),可洽商业许可——见主仓库的 LICENSE-COMMERCIAL.md。

AGPLv3 全文见 LICENSE, 第三方署名见 NOTICE。 语料来源(Rapid7 Recog Apache-2.0、IEEE OUI、IANA PEN 及 nmap NPSL 排除项)亦记录于 NOTICE。

可访问性增强功能已加载,支持焦点管理、键盘导航和屏幕阅读器
页面已加载完成,可访问性功能已启用