Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
tarian — eBPF 기반 Kubernetes 런타임 보안 에이전트로, 알 수 없는 프로세스와 파일 변경을 감지하고 사전 등록된 제약 조건을 적용하며, 랜섬웨어 및 기타 공격을 완화하기 위해 포드 삭제 또는 경고를 자동화합니다. | Kitploit
도구/GitHubGitHub/kube-tarian/tarian
Container SecurityMalware AnalysisCloud SecurityDevSecOpsThreat IntelligenceIntrusion Detection
GitHubkube-tarian/tarian

tarian

eBPF 기반 Kubernetes 런타임 보안 에이전트로, 알 수 없는 프로세스와 파일 변경을 감지하고 사전 등록된 제약 조건을 적용하며, 랜섬웨어 및 기타 공격을 완화하기 위해 포드 삭제 또는 경고를 자동화합니다.

저장소 보기
58152년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Tarian

Kubernetes에서 실행되는 애플리케이션을 신뢰할 수 있는 프로세스와 신뢰할 수 있는 파일 서명을 미리 등록하여 악의적인 공격으로부터 보호하세요. Tarian은 알 수 없는 프로세스와 등록된 파일의 변경 사항을 감지하여 경고를 보내고 자동 조치를 취합니다. Kubernetes 환경을 랜섬웨어로부터 지키세요!

우리는 이 프로젝트를 오픈소스로 유지하여 사랑하는 Kubernetes 생태계에 대한 공격에 맞서 싸우고자 합니다. 지속적인 기여를 통해 커뮤니티가 함께 위협에 대응할 수 있습니다.

Build status Go Report Card codecov


Tarian은 어떻게 작동하나요?

Tarian Cluster Agent는 Kubernetes 클러스터에서 실행되며 알 수 없는 프로세스와 알 수 없는 파일 변경 사항을 감지하여 Tarian Server에 보고하고, 선택적으로 위반된 파드를 삭제하는 조치를 취합니다. 새 프로세스를 감지하기 위해 eBPF를 사용합니다. 파일 변경 감지를 위해 Tarian Cluster Agent는 메인 애플리케이션 파드에 사이드카 컨테이너를 주입하여 설정된 경로에서 파일 체크섬을 확인하고 Tarian Server에 등록된 체크섬과 비교합니다. Tarian은 개발 환경부터 프로덕션 환경까지 애플리케이션 파드의 일부가 되어, 컨테이너에서 실행되어야 하는 프로세스와 감시할 파일 서명, 알림 및 감지된 변경 사항에 따른 조치(파드 자체 파괴)를 Tarian DB에 등록할 수 있습니다. 탐지 메커니즘을 시프트-레프트(shift-left)하세요!

만약 컨테이너 내에서 Tarian의 등록 DB에 없는 알 수 없는 변경이 발생하면 Tarian은 어떻게 반응하나요?

알 수 없는 변경이 발생하면 Tarian은 단순히 보안팀에 관찰된 분석 정보를 알릴 수 있습니다. 그러면 보안 엔지니어는 해당 변경 사항이 위협인지 아닌지 판단하여 Tarian DB에 등록할 수 있습니다. 또한 분석 결과에 따라 해당 변경이 다시 발생했을 때 취할 조치를 구성할 수 있습니다.

커뮤니티의 기여는 Tarian을 통해 위협에 대응하는 데 어떻게 도움이 되나요?

보안 전문가가 분석하여 위협으로 표시한 새로운 탐지 사항은, 원한다면 모든 로그, 찾아야 할 문자열, 관찰 결과, 투명성, 구성할 조치 등과 함께 오픈소스 Tarian 커뮤니티 DB에 공유할 수 있습니다. 전문가들이 경고하고 커뮤니티와 공유하고자 하는 모든 것을 공유할 수 있습니다. Tarian 사용자는 이 정보를 활용하여 자신의 환경에서 사용하는 Tarian 앱에 조치를 구성할 수 있습니다. 이는 위협 및 그 대처 방법에 대한 정보를 공유하는 메커니즘입니다. 이를 통해 Tarian을 사용하는 모든 사람이 각자의 Kubernetes 환경에서 지식과 경험을 공유하며 함께 조치를 취할 수 있습니다.

알려진 위협에 대해 Tarian은 어떤 조치를 취하나요?

Tarian은 단순히 해당 파드를 자체 파괴합니다. 만약 멀웨어/바이러스가 환경의 나머지 부분으로 확산된다면, 결과는 잘 알려져 있습니다. 따라서 Tarian은 기본적으로 파드를 파괴하여 위험을 최대한 줄이도록 설계되었습니다. 새로운 파드 프로비저닝은 Kubernetes 배포가 처리합니다. Tarian은 사용자가 지시할 때만 파드 파괴를 수행합니다. 어떤 조치도 원하지 않는다면 구성하거나 트리거할 필요 없이 Tarian에게 알림만 보내도록 할 수 있습니다. Tarian은 기본적으로 위험을 줄이기 위해 사용자가 원하는 대로 작동합니다.

이미 Falco, Kube-Hunter, Kube-Bench, Calico Enterprise Security 등 네트워크, 인프라, 애플리케이션 수준에서 위협을 탐지하고 방지할 수 있는 많은 보안 도구(오픈소스 및 상용)가 있는데, 왜 또 다른 새로운 보안 도구인가요? 왜 Tarian인가요?

Tarian이 탄생한 주된 이유는 커뮤니티와 함께 Kubernetes에서의 위협에 맞서 싸우기 위해서입니다. 또 다른 이유는, 여전히 보안의 모든 계층을 뚫을 수 있는 정교한 공격이 존재하여 런타임 애플리케이션(원격 코드 실행)과 스토리지 볼륨에 접근하고, 인프라와 데이터를 손상시키거나 잠글 수 있는 공격이 있다면 어떻게 할 것인가 하는 질문에서 출발했습니다. 특히 랜섬웨어로 변질될 수 있는 공격에 대해 무엇을 하고 싶습니까? Tarian은 그러한 위험을 조치를 취함으로써 줄이도록 설계되었습니다. Tarian이 궁극적인 해결책은 아니라는 점을 알고 있지만, 커뮤니티가 지속적으로 지식을 공유할 때 위험을 줄이는 데 도움이 될 수 있다고 확신합니다. 기술적 관점에서 Tarian은 감염된 리소스를 파괴하여 위험을 줄이는 데 도움이 될 수 있습니다.

아키텍처 다이어그램

Arch. Diagram

요구 사항

  • 지원되는 Kubernetes 버전 (현재 1.22+)
  • 커널 버전 >= 5.8
  • eBPF CO-RE를 지원하는 BTF 정보가 포함된 커널. 일부 주요 Linux 배포판에는 커널 BTF가 이미 내장되어 있습니다. 커널에 BTF가 내장되어 있지 않다면, 사용자 정의 커널을 빌드해야 합니다. BPF CO-RE를 참조하세요.

인기 Kubernetes 환경/서비스에서 테스트됨:

네임스페이스 준비

root@kitploit:~
kubectl create namespace tarian-system

Dgraph 데이터베이스 설정

tarian 서버에서 접근 가능한 모든 Dgraph 설치 옵션을 사용할 수 있습니다.

tarian 설치

  1. Helm을 사용하여 tarian 설치
root@kitploit:~
helm repo add tarian https://kube-tarian.github.io/helm-charts
helm repo update

helm upgrade -i tarian-server tarian/tarian-server --devel -n tarian-system --set server.dgraph.address=DGRAPH_ADDRESS:PORT
helm upgrade -i tarian-cluster-agent tarian/tarian-cluster-agent --devel -n tarian-system
  1. 모든 파드가 준비될 때까지 대기
root@kitploit:~
kubectl wait --for=condition=ready pod --all -n tarian-system
  1. Dgraph 스키마 적용
root@kitploit:~
kubectl exec -ti deploy/tarian-server -n tarian-system -- ./tarian-server dgraph apply-schema

tarianctl CLI를 사용하여 tarian 설치

GitHub 릴리스 페이지에서 tarianctl 바이너리를 다운로드하세요.

실행:

root@kitploit:~
tarianctl install

설치를 사용자 정의하려면 다음 플래그를 사용할 수 있습니다.

root@kitploit:~
Tarian을 Kubernetes에 설치합니다.

사용법:
  tarianctl install [플래그]

플래그:
      --agents-values strings   Tarian Cluster Agent 및 Node Agent용 Helm values 파일 경로
      --charts string           tarian Helm 차트 디렉토리 경로
      --dgraph-values strings   DGraph용 Helm values 파일 경로
  -h, --help                    install 명령어 도움말
  -n, --namespace string        Tarian을 설치할 네임스페이스 (기본값 "tarian-system")
      --nats-values strings     Nats용 Helm values 파일 경로
      --server-values strings   Tarian Server용 Helm values 파일 경로

전역 플래그:
  -k, --kubeconfig string                 사용할 kubeconfig 파일 경로
  -e, --log-formatter string              유효한 로그 포맷터: json, text(기본값) (기본값 "text")
  -l, --log-level string                  유효한 로그 레벨: debug, info(기본값), warn/warning, error, fatal (기본값 "info")
  -s, --server-address string             통신할 tarian 서버 주소 (기본값 "localhost:50051")
  -c, --server-tls-ca-file string         서버가 TLS 연결에 사용하는 CA 파일
  -t, --server-tls-enabled                활성화되면 TLS를 사용하여 서버와 통신
  -i, --server-tls-insecure-skip-verify   true로 설정하면 서버의 인증서 체인과 호스트 이름 검증을 건너뜀 (기본값 true)

설정

Helm 차트 values 파일을 참조하세요.

  • tarian-server
  • tarian-cluster-agent

클라우드/벤더별 설정

프라이빗 GKE 클러스터

프라이빗 GKE 클러스터는 기본적으로 마스터-노드 통신을 포트 443과 10250으로 제한하는 방화벽 규칙을 생성합니다. tarian-pod-agent 컨테이너를 주입하기 위해 tarian은 변경 승인 웹훅(mutating admission webhook)을 사용합니다. 웹훅 서버는 포트 9443에서 실행됩니다. 따라서 마스터 IP 주소 범위에서 노드의 TCP 포트 9443으로의 인그레스를 허용하는 새 방화벽 규칙을 만들어야 합니다.

자세한 내용은 GKE 문서를 참조하세요: https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#add_firewall_rules.

사용법

tarianctl을 사용하여 tarian-server 제어

  1. GitHub 릴리스 페이지에서 다운로드
  2. 파일을 추출하고 tarianctl을 PATH 디렉토리로 복사
  3. Ingress 또는 port-forward를 통해 tarian-server를 머신에 노출합니다. 이 예제에서는 port-forward를 사용합니다:
root@kitploit:~
kubectl port-forward svc/tarian-server -n tarian-system 41051:80
  1. 환경 변수로 서버 주소 설정
root@kitploit:~
export TARIAN_SERVER_ADDRESS=localhost:41051

위반 이벤트 확인

root@kitploit:~
tarianctl get events

프로세스 제약 조건 추가

root@kitploit:~
tarianctl add constraint --name nginx --namespace default \
  --match-labels run=nginx \
  --allowed-processes=pause,tarian-pod-agent,nginx 
root@kitploit:~
tarianctl get constraints

파일 제약 조건 추가

root@kitploit:~
tarianctl add constraint --name nginx-files --namespace default \
  --match-labels run=nginx \
  --allowed-file-sha256sums=/usr/share/nginx/html/index.html=38ffd4972ae513a0c79a8be4573403edcd709f0f572105362b08ff50cf6de521
root@kitploit:~
tarianctl get constraints

파드에서 tarian agent 실행

제약 조건이 생성된 후, 어노테이션을 추가하여 tarian-pod-agent를 파드에 주입합니다:

root@kitploit:~
metadata:
  annotations:
    pod-agent.k8s.tarian.dev/threat-scan: "true"

이 어노테이션이 있는 파드에는 추가 컨테이너(tarian-pod-agent)가 주입됩니다. tarian-pod-agent 컨테이너는 등록된 제약 조건에 따라 런타임 환경을 지속적으로 검증합니다. 위반 사항이 보고되며, tarianctl get events로 확인할 수 있습니다.

데모: 제약 조건을 위반하는 파드 시험

root@kitploit:~
kubectl apply -f https://raw.githubusercontent.com/kube-tarian/tarian/main/dev/config/monitored-pod/configmap.yaml
kubectl apply -f https://raw.githubusercontent.com/kube-tarian/tarian/main/dev/config/monitored-pod/pod.yaml

# 준비될 때까지 대기
kubectl wait --for=condition=ready pod nginx

# 알 수 없는 프로세스 실행 시뮬레이션
kubectl exec -ti nginx -c nginx -- sleep 15

# tarian에서 보고되는지 확인
tarianctl get events

Alert Manager 통합

Tarian은 기본적으로 Prometheus Alert Manager와 함께 제공됩니다. 다른 alert manager 인스턴스를 사용하려면:

root@kitploit:~
helm install tarian-server tarian/tarian-server --devel \
  --set server.alert.alertManagerAddress=http://alertmanager.monitoring.svc:9093 \
  --set alertManager.install=false \
  -n tarian-system

비활성화하려면 alertManagerAddress 값을 비워두면 됩니다.

문제 해결

docs/troubleshooting.md를 참조하세요.

자동 제약 조건 등록

tarian-pod-agent가 등록 모드로 실행되면, 알 수 없는 프로세스와 파일을 위반으로 보고하는 대신 자동으로 새 제약 조건으로 등록합니다. 이는 수동 등록 시간을 절약하는 데 유용합니다.

제약 조건 등록을 활성화하려면 cluster-agent를 구성해야 합니다.

root@kitploit:~
helm install tarian-cluster-agent tarian/tarian-cluster-agent --devel -n tarian-system \
  --set clusterAgent.enableAddConstraint=true
root@kitploit:~
metadata:
  annotations:
    # 프로세스와 파일 체크섬 모두 등록
    pod-agent.k8s.tarian.dev/register: "processes,files"
    # 자동 등록에서 제외할 특정 경로
    pod-agent.k8s.tarian.dev/register-file-ignore-paths: "/usr/share/nginx/**/*.txt"

자동 제약 조건 등록은 개발/스테이징 클러스터에서도 수행할 수 있어 프로덕션에서 변경 사항을 줄일 수 있습니다.

지원되는 기타 어노테이션

root@kitploit:~
metadata:
  annotations:
    # tarian-pod-agent가 파일 체크섬을 확인하는 빈도 지정
    pod-agent.k8s.tarian.dev/file-validation-interval: "1m"

TLS로 tarian-server 보호

TLS로 tarian-server를 보호하려면 TLS 인증서가 포함된 시크릿을 생성하세요. 수동으로 시크릿을 생성하거나 Cert Manager를 사용할 수 있습니다. 시크릿이 준비되면 Helm 차트 값에 이름을 전달합니다:

root@kitploit:~
helm upgrade -i tarian-server tarian/tarian-server --devel -n tarian-system \
  --set server.tlsSecretName=tarian-server-tls

기여

docs/contributing.md를 참조하세요.

행동 강령

CODE_OF_CONDUCT.md를 참조하세요.

코드 소유자 및 관리자 목록

MAINTAINERS.md를 참조하세요.

Slack 채널 "tarian"에 참여하세요

Kube-Tarian-Slack

도구 다운로드
환경작동 여부비고
Kind v0.14.0✔️
Minikube v1.26.0✔️
Linode Kubernetes Engine (LKE) 1.22✔️
Digital Ocean Kubernetes Engine (DOKS) 1.22✔️
Google Kubernetes Engine (GKE) 1.22✔️
Amazon Elastic Kubernetes Engine (EKS)➖커널 < 5.8
Azure Kubernetes Service (AKS)➖커널 < 5.8