
Authors:
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)
クラウドネイティブ環境が急速に進化する今日、サイバー・ディセプション(欺き技術)は、実被害が生じる前に攻撃者を攪乱する有望なアプローチとして注目されています。サイバー・ディセプションとは、インフラ全体にトラップやデコイ、ハニートークンを戦略的に配置し、攻撃者を検知・遅延・分析する手法です。Kubernetes のようなコンテナオーケストレーション基盤を利用すれば、アプリケーションのソースコードへ手を加えずシームレスに導入できます。
Koney は、Kubernetes 専用に設計された新しいサイバー・ディセプション オーケストレーション フレームワークです。オペレーター型のデプロイモデルを採用し、システム運用者が多彩なディセプション技術を「コードとして」記述・展開・ローテーション・監視・廃止できます。本稿では、Koney の設計・実装・実運用例を詳細に解説し、Bash や Python による CLI 使用例・サンプルコードを通じて、開発者が Kubernetes クラスタへディセプションを統合する方法を示します。
この記事を読み終えるころには、次の点を理解できるでしょう。
サイバー・ディセプションの有効性は広く知られているものの、導入をためらう組織は少なくありません。その主な理由は次のとおりです。
Koney は次の重要課題に対処します。
サービスメッシュ(Istio 等)やカーネル内機構(eBPF 等)のクラウドネイティブ技術を活用し、既存コンテナアプリへ透過的にディセプションを組み込みます。運用負荷を最小化しつつ、保守性・スケーラビリティ・パフォーマンスを重視した設計思想が特徴です。
Koney を理解する上で重要な Kubernetes の基本用語を整理します。
# Pod 内のネットワークトラフィックを確認
kubectl exec -it <pod-name> -- tcpdump -i eth0 -nn
このコマンドで異常トラフィックを検知できます。Koney も同様に、サイドカーや eBPF プローブを用いて通常機能を阻害せずディセプションを注入します。
ディセプションポリシーは、インフラへ展開するデコイやトラップの設定・挙動を定義する文書です。Koney ではこれらを「コードとして」管理し、既存のツールチェーンでバージョン管理・レビューを容易にします。
ハニーファイル・ハニートークン・ハニードキュメント・ハニーディレクトリなど、高価値を装った疑似データを作成し、アクセスをトリガにログやアラートを発生させます。
apiVersion: koney/v1
kind: DeceptionPolicy
metadata:
name: honeytoken-policy
spec:
trapType: fileSystem
details:
fileName: "secrets.txt"
content: "username: admin\npassword: Pa$w0rd123"
triggerAlert: true
HTTP トラフィックを対象に、偽エンドポイント注入・ヘッダ改変・レスポンスボディ改変・ページ全体のスプーフィングを行います。
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/Namespace をラベル等で細かく指定可能です。
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
Koney は Kubernetes オペレーターとして動作し、ディセプションのライフサイクル(セットアップ・ローテーション・アラート・クリーンアップ)を自動化します。
Pod 内でコマンドを実行し、ファイルを作成・設定変更を行います。
kubectl exec -it <pod-name> -- /bin/sh -c "echo 'dummy data' > /app/honeytoken.txt"
専用ボリューム(例: ConfigMap)をマウントしてハニーファイルを注入。
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 の Envoy フィルタで 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
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
if __name__ == "__main__":
parse_tetragon_log('/var/log/tetragon/deception.log')
Envoy フィルタで 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
多種多様なディセプションをサポートし、テストベッドで 90% 以上の検知率を達成しました。
既存研究をベースに、Kubernetes 向けにスケール可能な形で実装。
Istio 統合により動的 HTTP 操作を自動化。
ポリシー-as-Code 手法を発展させ、ライフサイクル全体を自動化。
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"
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"
# ポリシーを適用
kubectl apply -f filesystem-honeytoken.yaml
kubectl apply -f webapp-deception.yaml
# Koney オペレーターのログを監視
kubectl logs -f deployment/koney-operator -n security
Python スクリプトで tetragon ログを解析し、SIEM へ通知することで自動隔離まで実現可能です。
補足:
Koney は、コンテナ化環境を守るためのサイバー・ディセプションを民主化する重要な一歩となります。読者の皆様もぜひ Kubernetes クラスタで Koney を試し、その進化に貢献してください。
Happy Decepting!
キーワード: サイバー・ディセプション, Kubernetes, Koney オペレーター, サイバーセキュリティ, ハニーポット, ハニートークン, Istio, Service Mesh, eBPF, DevSecOps, コンテナセキュリティ, Policy-as-code
このコンテンツが価値あるものだと感じたなら、私たちの包括的な47週間のエリートトレーニングプログラムで何が達成できるか想像してみてください。ユニット8200の技術でキャリアを transformed した1,200人以上の学生に参加しましょう。