
Авторы:
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)
В бурно развивающемся облачно-нативном мире киберобман становится перспективным подходом, позволяющим нарушать планы злоумышленников до того, как они нанесут реальный ущерб. Киберобман предполагает стратегическое размещение ловушек, приманок или honeytoken-ов по всей инфраструктуре с целью обнаружения, задержки и анализа потенциальных атакующих. Благодаря широкому распространению платформ оркестрации контейнеров, таких как Kubernetes, подобные техники можно внедрять прозрачно — без доступа к исходному коду приложений и без его модификации.
Koney — новый фреймворк оркестрации киберобмана, специально разработанный для Kubernetes. Используя модель оператора, Koney позволяет командам описывать, развёртывать, ротировать, мониторить и, при необходимости, удалять разнообразные техники обмана «как код». В этой статье мы детально рассмотрим внутреннее устройство Koney, его проектирование, реализацию и реальные сценарии применения. Также приведены примеры кода и командной строки (Bash и Python), которые показывают, как разработчики могут интегрировать киберобман в свои кластеры Kubernetes.
После прочтения вы узнаете:
Материал рассчитан как на новичков, так и на опытных специалистов, желающих применять облачно-нативный обман.
Несмотря на очевидные преимущества киберобмана в раннем обнаружении и сдерживании атак, многие организации не спешат внедрять такие технологии. Причины включают:
Koney отвечает на два критически важных вопроса:
Фреймворк использует облачно-нативные технологии (например, сервис-мэш Istio и встроенные eBPF-механизмы ядра) для прозрачного внедрения обмана в существующие контейнерные приложения. Цель — упростить эксплуатационные аспекты: поддерживаемость, масштабируемость и производительность, устранив технические барьеры, мешающие внедрению.
Для понимания Koney важно владеть основными терминами Kubernetes.
# Просмотр сетевого трафика внутри pod-а
kubectl exec -it <pod-name> -- tcpdump -i eth0 -nn
Эта команда помогает обнаружить аномальные всплески трафика, что может указывать на сканирование или эксфильтрацию данных. Аналогично Koney использует сайдкары и eBPF-пробы для внедрения обмана без нарушения работы приложений.
Политики киберобмана описывают конфигурацию и логику приманок и ловушек. В Koney они хранятся «как код», что позволяет версионировать и рецензировать их стандартными инструментами.
Здесь применяются honeyfile-ы, honeytoken-ы, honeydocument-ы и honeydirectory. Они имитируют ценные активы; доступ к ним сигнализирует о возможной атаке.
Пример 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
Веб-ловушки нацелены на HTTP-трафик: внедрение фиктивных эндпоинтов, изменение заголовков и тел ответов или подмена страниц.
Предопределённые ответы на несуществующие пути (например, фальшивый /wp-admin) заманивают атакующего.
Подмена «Server» может ввести злоумышленника в заблуждение относительно используемого ПО.
Изменение HTML/CSS/JS, например добавление фиктивной строки в robots.txt.
Пример 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
Политики задают область применения — по меткам, неймспейсам и т. д.
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
Ловушка разворачивается только в pod-ах с меткой role: sensitive, снижая число ложных срабатываний и издержек.
Оператор автоматизирует полный жизненный цикл обмана: установку, ротацию, оповещение и удаление.
Оператор выполняет команды внутри контейнера, создавая файлы или изменяя конфигурацию.
# Создать honeytoken в pod-е
kubectl exec -it <pod-name> -- /bin/sh -c "echo 'dummy data' > /app/honeytoken.txt"
Приманка поставляется через отдельный том, подключённый к контейнеру.
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, оператор перехватывает и модифицирует 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
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
Koney охватывает:
В тестовом кластере обнаруживаемость известных техник атак превысила 90 %.
…
…
…
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>Эта страница — приманка. Любой несанкционированный доступ логируется.</p>
</body>
</html>
triggerAlert: true
rotationInterval: "12h"
# Применение политик
kubectl apply -f filesystem-honeytoken.yaml
kubectl apply -f webapp-deception.yaml
# Просмотр логов оператора
kubectl logs -f deployment/koney-operator -n security
Python-скрипты и SIEM-интеграции далее анализируют события и, при необходимости, изолируют pod.
Дополнительная литература:
Koney демонстрирует, как современные техники оркестрации могут сочетаться с приёмами обмана, обеспечивая более проактивную защиту контейнерных сред. Попробуйте Koney в своих кластерах Kubernetes и присоединяйтесь к развитию технологий киберобмана.
Счастливого обмана!
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.