Documentation
¶
Overview ¶
Package engine 是 v2.0 六微服务架构中检测引擎的实现。
本包目前是 PR3 引入的空骨架,后续 PR 将逐步搬入:
- rule/ CEL + Sigma + Falco + Tetragon 转换规则
- sequence/ Markov 转移 / n-gram 序列异常 / 端口扫描滑动窗口
- ml/ ONNX Runtime CPU 推理 (IForest / LightGBM / MiniLM)
- storyline/ 攻击链关联 + ATT&CK 战术映射
- kube/ K8s Audit Event 检测 (从 manager.biz.kube_detector 搬入)
- response/ observe/protect 模式下的响应动作
设计文档: docs/engine-design.md / docs/engine-detection-design.md
Index ¶
- Constants
- Variables
- func IncBackpressureDrop()
- func IncMessageFailed(reason string)
- func IncMessageReceived()
- func NewHTTPHandler(logger *zap.Logger) http.Handler
- func ObservePipeline(start time.Time, outcome string)
- func ObserveStage(stageName string, start time.Time)
- func RecordAlert(stageName, ruleID, severity string)
- func RecordStageError(stageName string)
- type AbnormalLoginStage
- type Alert
- type AlertEnvelope
- type AlertProducer
- type AnomalyStage
- type AntiRootkitStage
- type BruteForceStage
- type CelRuleStage
- type ConfigChangeAuditStage
- type HoneypotStage
- type KafkaConsumer
- type KubeAuditStage
- type MLStage
- type MessageHandler
- type Pipeline
- type PipelineEvent
- type PipelineMetrics
- type PrivEscalationStage
- type PrivilegeStage
- type QuarantineAuditStage
- type RASPStage
- type ReverseShellStage
- type RootkitStage
- type SequenceStage
- type Stage
- type StorylineStage
- type WebshellStage
Constants ¶
const ConsumerGroupID = "mxcwpp-engine"
ConsumerGroupID 是 Engine 服务的 Kafka ConsumerGroup, 与 Consumer 服务的 "mxcwpp-writers" 互不冲突, 同一份 mxcwpp.agent.* 消息会被两个 group 各消费一次。
const Version = "0.1.0-skeleton"
Version 是 Engine 服务的语义化版本。
Variables ¶
var SubscribedTopics = []string{
"mxcwpp.agent.ebpf",
"mxcwpp.agent.events",
"mxcwpp.agent.scanner",
"mxcwpp.agent.baseline",
"mxcwpp.vuln.advisory",
}
SubscribedTopics 是 Engine ConsumerGroup B 订阅的 Topic 集合。 详见 docs/architecture.md §4.2 ConsumerGroup 拓扑。
Functions ¶
func NewHTTPHandler ¶
NewHTTPHandler 构造空骨架 HTTP handler,仅暴露 /health 与 /metrics 占位。
后续 PR 将在此挂入: /rules CRUD / /alerts query / /feedback 等。
func ObservePipeline ¶
ObservePipeline 单次 pipeline 处理记录.
Types ¶
type AbnormalLoginStage ¶
type AbnormalLoginStage struct {
// contains filtered or unexported fields
}
AbnormalLoginStage 异常登录检测 (地理 / 时间 / IP / 用户 四维)。
func NewAbnormalLoginStage ¶
func NewAbnormalLoginStage(d *intrusion.AbnormalLoginDetector, logger *zap.Logger) *AbnormalLoginStage
NewAbnormalLoginStage 构造。
func (*AbnormalLoginStage) Name ¶
func (s *AbnormalLoginStage) Name() string
Name 满足 Stage interface。
func (*AbnormalLoginStage) Process ¶
func (s *AbnormalLoginStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 处理 sshd "Accepted password" 等成功登录事件。
type Alert ¶
type Alert struct {
AlertID string
RuleID string
Severity string
ATTCKTactic string
ATTCKTechnique string
WouldAction json.RawMessage
Action json.RawMessage
Payload json.RawMessage
}
Alert 是 Pipeline 产出的告警 (转换为 AlertEnvelope 后推送)。
type AlertEnvelope ¶
type AlertEnvelope struct {
AlertID string `json:"alert_id"`
TenantID string `json:"tenant_id"`
HostID string `json:"host_id,omitempty"`
RuleID string `json:"rule_id"`
Severity string `json:"severity"`
Mode string `json:"mode"` // observe / protect
DetectedAt time.Time `json:"detected_at"`
ATTCKTactic string `json:"attck_tactic,omitempty"`
ATTCKTechnique string `json:"attck_technique,omitempty"`
WouldAction json.RawMessage `json:"would_action,omitempty"`
Action json.RawMessage `json:"action,omitempty"`
ActionResult json.RawMessage `json:"action_result,omitempty"`
AttackChain json.RawMessage `json:"attack_chain,omitempty"`
Payload json.RawMessage `json:"payload,omitempty"`
TraceID string `json:"trace_id,omitempty"`
}
AlertEnvelope 是 Engine 产出的告警消息体 (落 Kafka mxcwpp.engine.alert)。
字段对齐 docs/operating-modes.md §6:
- Mode: observe / protect
- WouldAction: observe 模式预期动作
- Action / ActionResult: protect 模式实际动作
type AlertProducer ¶
type AlertProducer struct {
// contains filtered or unexported fields
}
AlertProducer 是 Engine 向 Kafka 推送告警的生产者 (P0-1: SyncProducer → Async).
异步发送 + ack callback. Publish RT 从 SyncProducer 的 P99 ~50ms 降到 sync.Pool put 级别 (<10μs). 失败由 Errors() goroutine 兜底重投 1 次 + 写 DLQ.
func NewAlertProducer ¶
NewAlertProducer 构造告警 producer (Async + batch).
func (*AlertProducer) Publish ¶
func (p *AlertProducer) Publish(ctx context.Context, env AlertEnvelope) error
Publish 异步推送告警 (P0-1: 非阻塞, RT < 10μs 入队).
Partition Key = "{tenant_id}:{host_id}" 保证同主机告警有序. 队列满返 backpressure error (调用方可决定丢弃 / 缓存重投).
func (*AlertProducer) Stats ¶
func (p *AlertProducer) Stats() (succeeded, failed uint64)
Stats 累计计数.
type AnomalyStage ¶
type AnomalyStage struct {
// contains filtered or unexported fields
}
AnomalyStage 接入 anomaly.Detector (IForest 异常检测)。
把 host_metrics 类事件喂给 Detector.Ingest, Detector 内部累积训练 + 触发告警 (异步写 anomaly_alerts 表 + 通过自有通道告警), 因此 Stage.Process 返回空 Alert 数组。
后续 PR 可改造 Detector 暴露 Alert chan, 让 Pipeline 也能拿到异常告警走统一 Producer 链路。
func NewAnomalyStage ¶
func NewAnomalyStage(d *anomaly.Detector, logger *zap.Logger) *AnomalyStage
NewAnomalyStage 构造 anomaly stage。
func (*AnomalyStage) Process ¶
func (s *AnomalyStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 把 ev 喂给 anomaly.Detector。仅处理 host_metrics 类事件。
type AntiRootkitStage ¶
type AntiRootkitStage struct {
// contains filtered or unexported fields
}
AntiRootkitStage 处理 Agent 端 Anti-Rootkit Scanner 上报 (P1-4).
与 RootkitStage 区别:
RootkitStage — 接 process/file/kmod 事件做模式匹配 (用户态 cmdline) AntiRootkitStage — 接 Agent rootkit/scanner.go 周期 5min 自检结果 (内核完整性)
DataType 3006 (Agent rootkit/scanner.go 周期上报):
kmod_hidden — /proc/modules vs /sys/module 差异 known_rootkit_kmod — /proc/modules 命中已知 rootkit 名 syscall_drift — sys_call_table 地址变化 pid_hidden — /proc PID 列表与 getdents 差异
func NewAntiRootkitStage ¶
func NewAntiRootkitStage(logger *zap.Logger) *AntiRootkitStage
NewAntiRootkitStage 构造.
func (*AntiRootkitStage) Process ¶
func (s *AntiRootkitStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 处理 DataType 3006 事件。
type BruteForceStage ¶
type BruteForceStage struct {
// contains filtered or unexported fields
}
BruteForceStage 接入入侵检测六件套之"暴力破解"。
仅处理 syslog / journal_watcher 类事件 (DataType 6010-6019 预留)。 命中阈值后产 Alert,其中 would_action 含 ip_block 建议。
func NewBruteForceStage ¶
func NewBruteForceStage(d *intrusion.BruteForceDetector, logger *zap.Logger) *BruteForceStage
NewBruteForceStage 构造。
func (*BruteForceStage) Process ¶
func (s *BruteForceStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 解析 sshd 失败登录事件并喂给 detector。
type CelRuleStage ¶
type CelRuleStage struct {
// contains filtered or unexported fields
}
CelRuleStage 把 PipelineEvent 喂给 celengine.Engine, 返回命中的 DetectionRule 对应的 Alert(s)。
v2 拆分: Engine 服务独立 deploy 时, alertGen 直接 upsert alerts 表 (取代旧 架构 Consumer 内嵌 cel 写 DB 的路径). Kafka mxcwpp.engine.alert 仍推送, 供后续 ML / SOAR / 通知 异步消费.
func NewCelRuleStage ¶
func NewCelRuleStage(cel *celengine.Engine, logger *zap.Logger) *CelRuleStage
NewCelRuleStage 构造 CEL 规则 stage。
func (*CelRuleStage) Process ¶
func (s *CelRuleStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 把 ev.Payload 解码为 fields map,调用 celEngine.Evaluate。
func (*CelRuleStage) WithAlertGenerator ¶
func (s *CelRuleStage) WithAlertGenerator(g *celengine.AlertGenerator) *CelRuleStage
WithAlertGenerator 注入 AlertGenerator, 让 stage 在命中时直接 upsert alerts 表. 不调时 stage 仅返 Alert slice (pipeline 推 Kafka), 不写 DB.
type ConfigChangeAuditStage ¶
type ConfigChangeAuditStage struct {
// contains filtered or unexported fields
}
ConfigChangeAuditStage 处理高敏配置变更事件 → 告警 (P5-5).
Data flow:
ConfigChangeWorker.applySystemConfig / applyKubeCluster 写入 Kafka → Pipeline 收 PipelineEvent.DataType=14501 (配置变更审计) → 本 Stage 命中高敏 key → 产 Alert
高敏 key 判定:
- 前缀 kms.* / secret.* / password.* / token.* → severity=critical
- 前缀 feature.protect / mode.* / iam.role.* → severity=high
- 其它 → severity=info (仍上报便于审计回溯)
func NewConfigChangeAuditStage ¶
func NewConfigChangeAuditStage(logger *zap.Logger) *ConfigChangeAuditStage
NewConfigChangeAuditStage 构造.
func (*ConfigChangeAuditStage) Name ¶
func (s *ConfigChangeAuditStage) Name() string
Name 满足 Stage interface.
func (*ConfigChangeAuditStage) Process ¶
func (s *ConfigChangeAuditStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 仅处理 DataType=14501 (配置变更审计) 与 14502 (隔离箱审计).
type HoneypotStage ¶
type HoneypotStage struct {
// contains filtered or unexported fields
}
HoneypotStage 反勒索 honeypot 检测。
仅处理 DataType 7020-7029 (Agent av-scanner 上报的 honeypot 触发事件)。
func NewHoneypotStage ¶
func NewHoneypotStage(d *honeypot.Detector, logger *zap.Logger) *HoneypotStage
NewHoneypotStage 构造。
func (*HoneypotStage) Process ¶
func (s *HoneypotStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 仅处理 honeypot 类事件。
type KafkaConsumer ¶
type KafkaConsumer struct {
// contains filtered or unexported fields
}
KafkaConsumer 是 Engine 的 Kafka ConsumerGroup 消费器。
启动模型:
- 一个 sarama ConsumerGroup 实例订阅 SubscribedTopics
- 内部 goroutine 循环 Consume()
- ctx 取消时优雅退出
func NewKafkaConsumer ¶
func NewKafkaConsumer(brokers []string, handler MessageHandler, logger *zap.Logger) (*KafkaConsumer, error)
NewKafkaConsumer 构造 ConsumerGroup B。
brokers: Kafka broker 地址列表 handler: 消息处理函数 (nil 时使用 noop)
func (*KafkaConsumer) Start ¶
func (c *KafkaConsumer) Start(ctx context.Context)
Start 启动消费循环。ctx 取消时优雅退出。 调用方应在 defer 中 Close。
type KubeAuditStage ¶
type KubeAuditStage struct {
// contains filtered or unexported fields
}
KubeAuditStage 接入 engine/kube.KubeDetector, 把 K8s Audit Event 喂给检测引擎,内部规则命中由 KubeAlarmService 派发。
由于 KubeDetector 直接走 KubeAlarmService 写 kube_alarms 表 + 通知, 本 Stage 不返回 Alert 数组 (告警已由 alarm service 异步派发)。 后续 PR 可改造 KubeDetector 暴露 Alert chan, 让 Engine Pipeline 也接管。
func NewKubeAuditStage ¶
func NewKubeAuditStage(d *kube.KubeDetector, logger *zap.Logger) *KubeAuditStage
NewKubeAuditStage 构造 K8s audit stage。
func (*KubeAuditStage) Process ¶
func (s *KubeAuditStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 仅处理 K8s audit 类事件 (DataType 5070-5099 K8s 资产 / 7080-7099 K8s alarm)。
ev.Payload 应可解码为 model.AuditEvent。
type MLStage ¶
type MLStage struct {
// contains filtered or unexported fields
}
MLStage 用 ml.Registry 中的所有模型对事件做推理。
每个 Model 独立产 Alert (一个事件可触发多个 model 命中)。 分数阈值 (默认 0.7) 以上才产 Alert。
func NewMLStage ¶
NewMLStage 构造 ML stage。
type MessageHandler ¶
type MessageHandler func(ctx context.Context, msg *sarama.ConsumerMessage) error
MessageHandler 是单条 Kafka 消息的处理函数。
返回 error 时该消息走 DLQ;返回 nil 即 commit offset。 Engine 检测层 (rule/sequence/ml/storyline) 实现该 interface, PR13 仅给 noop 占位,真实实现由后续 PR 引入。
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline 把 Kafka 消息按"规则 → 序列 → ML → Storyline"4 层引擎处理, 命中告警时通过 AlertProducer 发到 mxcwpp.engine.alert。
设计文档: docs/engine-detection-design.md
func NewPipeline ¶
func NewPipeline(producer *AlertProducer, resolver *mode.MemoryResolver, stages []Stage, logger *zap.Logger) *Pipeline
NewPipeline 构造检测管线。
func (*Pipeline) Handler ¶
func (p *Pipeline) Handler() MessageHandler
Handler 把 Pipeline 包装成 engine.MessageHandler, 供 KafkaConsumer 注入。
type PipelineEvent ¶
type PipelineEvent struct {
TenantID string `json:"tenant_id"`
AgentID string `json:"agent_id"`
HostID string `json:"host_id"`
DataType int32 `json:"data_type"`
Topic string `json:"-"`
Partition int32 `json:"-"`
Offset int64 `json:"-"`
ReceivedAt time.Time `json:"received_at"`
Payload json.RawMessage `json:"payload"`
// contains filtered or unexported fields
}
PipelineEvent 是 Engine 内部统一事件 schema (解码自 Kafka).
type PipelineMetrics ¶
type PipelineMetrics struct {
MessageReceived prometheus.Counter
MessageProcessed prometheus.Counter
MessageFailed *prometheus.CounterVec // 标签 reason
PipelineDuration *prometheus.HistogramVec // 标签 outcome
StageDuration *prometheus.HistogramVec // 标签 stage_name
StageAlerts *prometheus.CounterVec // 标签 stage_name, severity
AlertsProduced *prometheus.CounterVec // 标签 rule_id, severity
StageErrors *prometheus.CounterVec // 标签 stage_name
BackpressureDrop prometheus.Counter
}
PipelineMetrics 全部 engine 指标.
type PrivEscalationStage ¶
type PrivEscalationStage struct {
// contains filtered or unexported fields
}
PrivEscalationStage 本地提权检测。
func NewPrivEscalationStage ¶
func NewPrivEscalationStage(d *intrusion.PrivEscalationDetector, logger *zap.Logger) *PrivEscalationStage
NewPrivEscalationStage 构造。
func (*PrivEscalationStage) Name ¶
func (s *PrivEscalationStage) Name() string
Name 满足 Stage interface。
func (*PrivEscalationStage) Process ¶
func (s *PrivEscalationStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 仅处理进程事件。
type PrivilegeStage ¶
type PrivilegeStage struct {
// contains filtered or unexported fields
}
PrivilegeStage 处理 Agent 上报的 privilege escalation 事件 (P1-3).
DataType 3005 (内核态提权 hook 上报):
30 commit_creds — UID/GID/cap 切换 31 setuid — setreuid/setresuid 32 setgid — setregid/setresgid 33 ptrace — ptrace 注入 (T1055.008) 34 mount — mount 调用 (T1611 容器逃逸) 35 kmod_load — LKM rootkit 加载 (T1547.006)
规则:
- UID 0→0 + cap 提升 → high
- 非 root 提到 root → critical
- ptrace 跨进程 → high
- mount 含 /proc/self/exe 或 cgroup → critical (容器逃逸)
- kmod_load 命中 已知 rootkit 名 → critical
func NewPrivilegeStage ¶
func NewPrivilegeStage(logger *zap.Logger) *PrivilegeStage
NewPrivilegeStage 构造.
func (*PrivilegeStage) Process ¶
func (s *PrivilegeStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 处理 DataType 3005 事件。
type QuarantineAuditStage ¶
type QuarantineAuditStage struct {
// contains filtered or unexported fields
}
QuarantineAuditStage 处理隔离箱事件 → 告警.
隔离意味检测到 webshell / virus / suspicious 文件, 默认 high 严重. 还原操作 → medium (可能是误报恢复).
func NewQuarantineAuditStage ¶
func NewQuarantineAuditStage(logger *zap.Logger) *QuarantineAuditStage
NewQuarantineAuditStage 构造.
func (*QuarantineAuditStage) Name ¶
func (s *QuarantineAuditStage) Name() string
Name 满足 Stage interface.
func (*QuarantineAuditStage) Process ¶
func (s *QuarantineAuditStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 处理 DataType=14502 (隔离箱审计).
type RASPStage ¶
type RASPStage struct {
// contains filtered or unexported fields
}
RASPStage 处理 Agent 上报的 RASP 事件 (Java/PHP/Python/Node)。
严格 read-only:
- 永远只产 Alert (告警 + storyline 关联)
- 不下发 action_kill / action_throw_exception 等阻断指令
- mode 字段在落 Kafka 前被 EnsureObserveMode 强制改 observe
- 即便全局 mode.Resolver=protect, RASP 仍走 observe 路径
DataType 段: 4000-4099 (RASP 事件, Agent 上报)
type ReverseShellStage ¶
type ReverseShellStage struct {
// contains filtered or unexported fields
}
ReverseShellStage 反弹 shell 检测。
func NewReverseShellStage ¶
func NewReverseShellStage(d *intrusion.ReverseShellDetector, logger *zap.Logger) *ReverseShellStage
NewReverseShellStage 构造。
func (*ReverseShellStage) Process ¶
func (s *ReverseShellStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 仅处理进程类事件 (DataType 3000-3001 process_exec)。
type RootkitStage ¶
type RootkitStage struct {
// contains filtered or unexported fields
}
RootkitStage Rootkit/后门检测。
func NewRootkitStage ¶
func NewRootkitStage(d *intrusion.RootkitDetector, logger *zap.Logger) *RootkitStage
NewRootkitStage 构造。
func (*RootkitStage) Process ¶
func (s *RootkitStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 处理多种事件类型 (process_exec / file_create / kernel_module_load)。
type SequenceStage ¶
type SequenceStage struct {
// contains filtered or unexported fields
}
SequenceStage 接入 celengine.SequenceDetector, 检测 N 次内多事件触发的序列模式 (暴力破解 / 多次失败登录 / 反弹shell 多步)。
func NewSequenceStage ¶
func NewSequenceStage(d *celengine.SequenceDetector, logger *zap.Logger) *SequenceStage
NewSequenceStage 构造 sequence stage。
func (*SequenceStage) Process ¶
func (s *SequenceStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 把 ev 喂给 detector,返回命中的 SequenceRule -> Alert。
type Stage ¶
type Stage interface {
Name() string
Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
}
Stage 是 Pipeline 中的一层检测处理器。
每个 Stage 接收 PipelineEvent (从 Kafka 消息解码得到), 检测命中时返回 Alert(s),不命中返回空 slice。
type StorylineStage ¶
type StorylineStage struct {
// contains filtered or unexported fields
}
StorylineStage 把事件喂给 storyline.Engine 关联攻击链。
Storyline 不直接产 Alert (它累积事件构建 story), 而是异步把已成熟的 story 推送到 mxcwpp.engine.storyline Topic。 这里 Stage.Process 返回空 Alert 数组,仅做 Ingest 副作用。
func NewStorylineStage ¶
func NewStorylineStage(se *storyline.Engine, logger *zap.Logger) *StorylineStage
NewStorylineStage 构造 storyline stage。
func (*StorylineStage) Process ¶
func (s *StorylineStage) Process(_ context.Context, ev PipelineEvent) ([]Alert, error)
Process 把事件喂给 storyline,无 Alert 直接返回。
故事完成时由 storyline.Engine 内部 goroutine 推 Kafka mxcwpp.engine.storyline, 与 Pipeline 主链解耦。
type WebshellStage ¶
type WebshellStage struct {
// contains filtered or unexported fields
}
WebshellStage 检测文件落地/修改事件中的 Web 后门启发式特征。
func NewWebshellStage ¶
func NewWebshellStage(d *intrusion.WebshellDetector, logger *zap.Logger) *WebshellStage
NewWebshellStage 构造。
func (*WebshellStage) Process ¶
func (s *WebshellStage) Process(ctx context.Context, ev PipelineEvent) ([]Alert, error)
Process 处理 FIM 文件事件 (DataType 6001 FIM)。
Source Files
¶
- consumer.go
- engine.go
- metrics.go
- pipeline.go
- producer.go
- stage_abnormal_login.go
- stage_anomaly.go
- stage_anti_rootkit.go
- stage_audit.go
- stage_cel.go
- stage_honeypot.go
- stage_intrusion.go
- stage_kube.go
- stage_ml.go
- stage_privilege.go
- stage_rasp.go
- stage_revshell_priv.go
- stage_rootkit.go
- stage_sequence.go
- stage_storyline.go
- stage_webshell.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package adaudit — AD / LDAP 域控审计 (EDR-4).
|
Package adaudit — AD / LDAP 域控审计 (EDR-4). |
|
Package anomaly implements server-side ML anomaly detection.
|
Package anomaly implements server-side ML anomaly detection. |
|
Package baseline implements the Server-side Behavior Detection Engine (BDE) baseline.
|
Package baseline implements the Server-side Behavior Detection Engine (BDE) baseline. |
|
Package celengine 实现基于 CEL-Go 的实时检测规则引擎 支持从数据库加载 CEL 表达式规则,对 Kafka 消费事件进行实时评估并生成告警
|
Package celengine 实现基于 CEL-Go 的实时检测规则引擎 支持从数据库加载 CEL 表达式规则,对 Kafka 消费事件进行实时评估并生成告警 |
|
Package honeypot 实现反勒索 honeypot 服务端检测逻辑。
|
Package honeypot 实现反勒索 honeypot 服务端检测逻辑。 |
|
Package intrusion 实现入侵检测六件套:
|
Package intrusion 实现入侵检测六件套: |
|
Package kube — Pod Security Standards 检查器 (B10).
|
Package kube — Pod Security Standards 检查器 (B10). |
|
Package microseg 实现微隔离 (Microsegmentation) 流量观察 + 策略推荐 + Enforcement。
|
Package microseg 实现微隔离 (Microsegmentation) 流量观察 + 策略推荐 + Enforcement。 |
|
Package ml 是 Engine 的本地机器学习推理抽象。
|
Package ml 是 Engine 的本地机器学习推理抽象。 |
|
Package rasp 实现 RASP (Runtime Application Self-Protection) 服务端事件接收与检测。
|
Package rasp 实现 RASP (Runtime Application Self-Protection) 服务端事件接收与检测。 |
|
Package rollout — 规则灰度推送 (B6).
|
Package rollout — 规则灰度推送 (B6). |
|
Package ruleimport 把 Falco / Sigma / Tetragon 规则转成 mxcwpp CEL 规则。
|
Package ruleimport 把 Falco / Sigma / Tetragon 规则转成 mxcwpp CEL 规则。 |
|
Package rulesync 实现基于 Git 仓库的检测规则同步 定期从远程 Git 仓库拉取规则 YAML,增量同步到 detection_rules 表
|
Package rulesync 实现基于 Git 仓库的检测规则同步 定期从远程 Git 仓库拉取规则 YAML,增量同步到 detection_rules 表 |
|
Package scheduler 是 v2.0 Engine 服务的调度器集合,承担:
|
Package scheduler 是 v2.0 Engine 服务的调度器集合,承担: |
|
Package storyline aggregates Agent-side story_id-tagged events into attack storylines on the Server.
|
Package storyline aggregates Agent-side story_id-tagged events into attack storylines on the Server. |