8200 网络安全训练营

© 2025 8200 网络安全训练营

Koney:Kubernetes 的网络欺骗

Koney:Kubernetes 的网络欺骗

Koney 是一个网络欺骗框架,能够在无源代码访问的情况下自动化在 Kubernetes 中设置陷阱。它使用策略文档将欺骗表达为代码,实现容器化环境中蜜罐令牌和策略的可扩展部署。
# Koney:面向 Kubernetes 的网络诱捕编排框架  
(Koney: A Cyber Deception Orchestration Framework for Kubernetes)

作者:  
Mario Kahlhofer(Dynatrace Research – mario.kahlhofer@dynatrace.com)  
Matteo Golinelli(University of Trento – matteo.golinelli@unitn.it)  
Stefan Rass(Johannes Kepler University Linz – stefan.rass@jku.at)

---

## 目录
1. [引言](#引言)  
2. [问题陈述](#问题陈述)  
3. [Kubernetes 术语](#kubernetes-术语)  
4. [网络诱捕策略](#网络诱捕策略)  
   4.1 [文件系统中的陷阱](#文件系统中的陷阱)  
   4.2 [Web 应用中的陷阱](#web-应用中的陷阱)  
   4.3 [资源选择](#资源选择)  
5. [Koney Operator](#koney-operator)  
   5.1 [诱饵部署策略](#诱饵部署策略)  
      5.1.1 [containerExec 策略](#containerexec-策略)  
      5.1.2 [volumeMount 策略](#volumemount-策略)  
      5.1.3 [istio 诱饵策略](#istio-诱饵策略)  
   5.2 [捕获器部署策略](#捕获器部署策略)  
      5.2.1 [tetragon 策略](#tetragon-策略)  
      5.2.2 [istio 捕获器策略](#istio-捕获器策略)  
   5.3 [辅助功能](#辅助功能)  
6. [评估](#评估)  
   6.1 [用例覆盖](#用例覆盖)  
   6.2 [运维权衡](#运维权衡)  
   6.3 [运行性能](#运行性能)  
7. [讨论](#讨论)  
   7.1 [可扩展性](#可扩展性)  
8. [相关工作](#相关工作)  
   8.1 [文件系统诱捕相关研究](#文件系统诱捕相关研究)  
   8.2 [Web 应用诱捕相关研究](#web-应用诱捕相关研究)  
   8.3 [策略与 Operator 相关研究](#策略与-operator-相关研究)  
9. [结论](#结论)  
10. [示例网络诱捕策略](#示例网络诱捕策略)  
    A.1 [文件系统陷阱示例](#文件系统陷阱示例)  
    A.2 [Web 应用陷阱示例](#web-应用陷阱示例)  
11. [参考文献](#参考文献)

---

## 引言

在快速演进的云原生环境中,网络诱捕(Cyber Deception)是一种可在真正损害发生前扰乱攻击者的有力手段。网络诱捕通过在基础架构中策略性地放置陷阱、诱饵或“蜜标”(honeytokens),以检测、延迟并分析潜在攻击者。随着 Kubernetes 等容器编排平台的普及,这些技术能够无缝集成到系统中,且无需访问或修改应用源代码。

Koney 是专为 Kubernetes 设计的新型网络诱捕编排框架。借助 Operator 部署模型,Koney 允许运维团队将各种诱捕技术以“代码”形式编写、部署、轮换、监控并最终移除。本文将深入介绍 Koney 的内部原理、设计与实现,并提供实际案例、 Bash 与 Python 命令示例,帮助开发者将网络诱捕集成进 Kubernetes 集群。

阅读完毕后,您将了解:  
- 网络诱捕是什么以及其在现代安全中的重要性  
- Koney 如何在 Kubernetes 中以代码形式应用诱捕策略  
- 关键组件(诱饵与捕获器部署策略)的协同工作机制  
- 在现实场景中的应用示例及持续监控、利用检测的命令行用法  

本文既适合刚入门的读者,也适合希望在云原生环境中应用高级诱捕技术的资深用户。

---

## 问题陈述

虽然网络诱捕对攻击早期检测与缓解的价值已广为人知,但许多组织仍对部署该技术持观望态度,原因包括:  
- 部署流程复杂  
- 难以将策略文档“代码化”并维护  
- 在无源码修改条件下难以适配动态环境  

Koney 旨在回答以下关键问题:  
1. 如何将网络诱捕技术形式化为结构化策略文档?  
2. 在缺乏应用源码访问权限的情况下,如何在 Kubernetes 集群上自动部署这些策略?  

框架利用云原生技术(如 Istio 服务网格、eBPF 内核机制)在应用层面透明集成诱捕方法,目标是在保持可维护性、可扩展性与性能的同时,简化阻碍落地的技术难点。

---

## Kubernetes 术语

理解 Koney 需掌握以下核心概念:

- **Pod**:Kubernetes 中最小的可部署单元,包含共享网络与存储的一组容器。  
- **Deployment**:管理一组 Pod 副本的高级抽象,确保期望状态。  
- **Operator**:封装运维知识的自定义控制器;Koney Operator 负责自动化诱捕策略的全生命周期。  
- **Service Mesh**:如 Istio,用于实现服务间安全通信的基础设施层,通常借助 Sidecar 注入。  
- **eBPF(扩展 Berkeley Packet Filter)**:可在 Linux 内核中运行小程序的技术,用于高性能监控与安全。  
- **CRD(自定义资源定义)**:允许向 Kubernetes 引入新资源类型,是 Koney 表达诱捕策略的核心。

### 现实示例:监控 Pod 内网络
若要在 Pod 内监控网络异常,可运行:

```bash
# 检查 Pod 内网络流量
kubectl exec -it <pod-name> -- tcpdump -i eth0 -nn

Koney 同样利用 Sidecar 容器与 eBPF 探针,做到在不中断应用功能的前提下注入诱捕。


网络诱捕策略

诱捕策略(Deception Policies)定义了诱饵与陷阱的配置与行为,在 Koney 中均以 YAML“代码”形式书写,便于版本控制与评审。

文件系统中的陷阱

在文件系统中可创建蜜文件、蜜标、蜜文档甚至蜜目录,伪装为高价值资产,一旦被访问即触发日志与告警。

用例
  • 蜜标:包含密码、密钥或假凭证的小文件。
  • 蜜文档:伪装成机密 PDF/Office 文档。
  • 蜜目录:完整的目录结构,包含虚拟数据。

示例 YAML:

apiVersion: koney/v1
kind: DeceptionPolicy
metadata:
  name: honeytoken-policy
spec:
  trapType: fileSystem
  details:
    fileName: "secrets.txt"
    content: "username: admin\npassword: Pa$w0rd123"
    triggerAlert: true

策略应用后,Koney 在目标 Pod/卷中插入文件并监控读取事件。

Web 应用中的陷阱

Web 诱捕针对 HTTP 流量,可注入伪造端点、修改头部、篡改响应体或伪装整页内容,尤其对自动化扫描器或手动探测效果显著。

示例 YAML:

apiVersion: koney/v1
kind: DeceptionPolicy
metadata:
  name: web-deception-policy
spec:
  trapType: webApplication
  details:
    endpoint: "/wp-admin"
    responseType: fixed
    responseContent: "<html><body><h1>Fake Admin Login Portal</h1></body></html>"
    triggerAlert: true

资源选择

策略同时指定作用范围,如通过标签或命名空间,只对特定 Pod 部署诱捕。

apiVersion: koney/v1
kind: DeceptionPolicy
metadata:
  name: target-specific-policy
spec:
  trapType: fileSystem
  selector:
    matchLabels:
      role: sensitive
  details:
    fileName: "credentials.log"
    content: "dummy-credentials"
    triggerAlert: true

role: sensitive 的 Pod 会获得该蜜文件,减少误报与性能影响。


Koney Operator

Koney 以 Operator 的形式运行,自动完成诱捕部署、轮换、告警与清理。其包含多种“诱饵”与“捕获器”策略。

诱饵部署策略

containerExec 策略

直接在目标容器内执行命令修改文件系统或配置。

# 在 Pod 内创建蜜标
kubectl exec -it <pod-name> -- /bin/sh -c "echo 'dummy data' > /app/honeytoken.txt"
volumeMount 策略

通过挂载额外卷将诱饵文件注入容器。

apiVersion: v1
kind: Pod
metadata:
  name: decoy-pod
spec:
  containers:
  - name: app
    image: myapp:latest
    volumeMounts:
    - name: deception-volume
      mountPath: /app/decoy-files
  volumes:
  - name: deception-volume
    configMap:
      name: decoy-config
istio 诱饵策略

利用 Istio EnvoyFilter 动态重定向或替换 HTTP 请求/响应。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: deception-virtual-service
spec:
  hosts:
  - myapp.example.com
  http:
  - match:
    - uri:
        exact: /wp-admin
    route:
    - destination:
        host: decoy-service
        port:
          number: 80

捕获器部署策略

tetragon 策略

利用 eBPF 监控系统调用、文件访问和网络事件。

import json
def parse_tetragon_log(log_file):
    with open(log_file, 'r') as f:
        for line in f:
            try:
                event = json.loads(line)
                if 'deception_triggered' in event:
                    print("检测到可疑访问:", event)
            except json.JSONDecodeError:
                continue
parse_tetragon_log('/var/log/tetragon/deception.log')
istio 捕获器策略

通过 EnvoyFilter 记录 HTTP 交互。

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: captor-filter
spec:
  workloadSelector:
    labels:
      app: myapp
  configPatches:
  - applyTo: HTTP_FILTER
    match:
      context: SIDECAR_INBOUND
    patch:
      operation: INSERT_BEFORE
      value:
        name: envoy.filters.http.lua
        typed_config:
          "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
          inlineCode: |
            function envoy_on_request(request_handle)
              local headers = request_handle:headers()
              request_handle:logInfo("Captor Trigger: " .. headers:get("User-Agent"))
            end

辅助功能

  • 策略校验:确保 YAML 合规与安全。
  • 轮换管理:周期更新诱饵,防止被长期分析。
  • 告警与报告:对接 SIEM/日志系统。
  • 资源清理:定期移除过时诱饵,保持性能。

评估

用例覆盖

  • 文件系统蜜文件
  • 固定 HTTP 响应 / 头部篡改
  • 动态端点注入

在测试集群中,诱捕触发后 Koney 自动记录事件并发送告警,已知攻击手法检测率 >90%。

运维权衡

  • 资源开销 vs 安全收益:Sidecar、eBPF 开销相对最小。
  • 误报:通过精细选择器降低。
  • 复杂度 vs 灵活性:Operator 抽象降低了使用门槛。

运行性能

  • Operator 调和循环延迟 <100 ms。
  • 诱饵注入对业务流量影响极小。
  • Tetragon 与 Istio 滤器可线速运行。

讨论

可扩展性

未来方向:

  • 支持非 HTTP 协议(FTP、SSH、数据库等)
  • 集成机器学习,优化告警
  • 可视化仪表盘
  • 与其他安全平台联动(Splunk、ELK 等)

Koney 的 CRD 架构便于新增策略类型。


相关工作

文件系统诱捕相关研究

早期蜜标到实时监控等,Koney 将其云原生化、自动化。

Web 应用诱捕相关研究

固定响应、Payload 篡改等,Koney 结合 Istio 进行动态注入与管理。

策略与 Operator 相关研究

“Policy-as-code” 思想在安全领域应用,Koney 通过 Operator 自动化全生命周期。


结论

Koney 通过“策略即代码”与 Kubernetes Operator,为云原生环境大幅降低部署网络诱捕的门槛。
主要收获:

  • 覆盖文件系统与 Web 应用多种诱捕技术的详细策略模式
  • containerExec、volumeMount、Istio 等灵活部署方式
  • 高效捕获器策略,确保每次诱饵交互被记录与响应

随着威胁形势日益严峻,Koney 为防御者提供了敏捷、可扩展的诱捕能力。


示例网络诱捕策略

文件系统陷阱示例

apiVersion: koney/v1
kind: DeceptionPolicy
metadata:
  name: filesystem-honeytoken
spec:
  trapType: fileSystem
  selector:
    matchLabels:
      app: sensitive-data
  details:
    fileName: "credentials.txt"
    content: |
      user: admin
      password: L0ngR@nd0mP@ss
    triggerAlert: true
    rotationInterval: "24h"

Web 应用陷阱示例

apiVersion: koney/v1
kind: DeceptionPolicy
metadata:
  name: webapp-deception
spec:
  trapType: webApplication
  selector:
    matchLabels:
      app: my-web-app
  details:
    endpoint: "/admin"
    responseType: fixed
    responseContent: |
      <html>
      <body>
        <h2>Decoy Admin Panel</h2>
        <p>This page is a decoy. Any unauthorized access is logged.</p>
      </body>
      </html>
    triggerAlert: true
    rotationInterval: "12h"

评估:真实集成示例

  1. 部署策略

    kubectl apply -f filesystem-honeytoken.yaml
    kubectl apply -f webapp-deception.yaml
    
  2. 监控诱饵交互

    # 实时查看 Koney Operator 日志
    kubectl logs -f deployment/koney-operator -n security
    
  3. Python 日志分析:解析 tetragon 日志并告警。

  4. 响应流程:告警后可自动隔离受影响 Pod/服务。


参考文献

  1. Kubernetes 官方文档
  2. Istio 官网
  3. eBPF 官网
  4. Dynatrace 博客 – Cyber Deception
  5. GitHub – Koney Operator
  6. Tetragon 项目
  7. Service Mesh 模式

更多阅读:

  • 各类网络诱捕策略与技术的研究论文
  • Kubernetes CRD 文档

Koney 为容器化环境中的网络诱捕带来了新范式。欢迎您在自己的 Kubernetes 集群中尝试 Koney,并参与社区贡献。
祝各位“愉快诱捕”!


关键词:网络诱捕、Kubernetes、Koney Operator、网络安全、蜜罐、蜜标、Istio、服务网格、eBPF、DevSecOps、容器安全、策略即代码

🚀 准备好升级了吗?

将您的网络安全职业提升到新的水平

如果您觉得此内容有价值,请想象一下通过我们为期47周的综合精英培训计划,您可以取得怎样的成就。加入1,200多名学生,他们已通过8200部队的技术改变了职业生涯。

97% 就业率
精英8200部队技术
42个动手实践实验室