Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
tarian — Kubernetes向けのeBPFベースのランタイムセキュリティエージェントで、未知のプロセスやファイル変更を検出し、事前登録された制約を適用し、ランサムウェアやその他の攻撃を軽減するためにポッドの削除やアラートを自動化します。 | Kitploit
ツール/GitHubGitHub/kube-tarian/tarian
コンテナセキュリティマルウェア分析クラウドセキュリティDevSecOps脅威インテリジェンス侵入検知
GitHubkube-tarian/tarian

tarian

Kubernetes向けのeBPFベースのランタイムセキュリティエージェントで、未知のプロセスやファイル変更を検出し、事前登録された制約を適用し、ランサムウェアやその他の攻撃を軽減するためにポッドの削除やアラートを自動化します。

リポジトリを見る
58152年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Tarian

Kubernetes上で動作するアプリケーションを、信頼できるプロセスとファイル署名を事前登録することで悪意のある攻撃から保護します。Tarianは未知のプロセスや登録済みファイルへの変更を検出し、アラートを送信して自動化されたアクションを実行します。K8s環境をランサムウェアから守りましょう!

私たちはこのプロジェクトをオープンソースとして維持し、私たちのお気に入りのKubernetesエコシステムに対する攻撃と戦いたいと考えています。継続的な貢献により、コミュニティとして協力して脅威に立ち向かうことができます。

Build status Go Report Card codecov


Tarianの仕組みは?

Tarian Cluster AgentはKubernetesクラスター内で動作し、未知のプロセスやファイルへの未知の変更を検出してTarian Serverに報告し、オプションで違反したPodを削除するアクションを実行します。新しいプロセスの検出にはeBPFを使用します。ファイル変更検出のため、Tarian Cluster AgentはメインアプリケーションのPodにサイドカーコンテナを注入し、設定されたパスでファイルチェックサムを確認し、Tarian Serverに登録されたチェックサムと比較します。Tarianは開発環境から本番環境までアプリケーションのPodの一部となり、コンテナ内で何が行われ、何が実行されるべきか、監視するファイルシグネチャ、通知する内容、検出された変更に基づいて取るべきアクション(Podの自己破壊)をTarian DBに登録できます。検出メカニズムをシフトレフトしましょう!

コンテナ内でTarianの登録DBにない未知の変更が発生した場合、Tarianはどのように反応しますか?

未知の変更が発生した場合、Tarianは観測された分析結果をセキュリティチームに通知することができます。セキュリティエンジニアは、その変更が脅威とみなされるかどうかをTarian DBに登録できます。また、その分析に基づいて、その変更が再度発生した場合に取るべきアクションを設定できます。

コミュニティの貢献は、Tarianを介して脅威と戦うのにどのように役立ちますか?

セキュリティ専門家によって分析され、脅威としてマークされた新しい検出結果は、ログ、探すべき文字列、観察結果、透明性、設定すべきアクションなど、すべてをオープンソースのTarianコミュニティDBと共有することができます(選択した場合)。専門家が警告してコミュニティと共有したいものは基本的に何でも共有可能です。Tarianユーザーはその情報を利用して、自身の環境で使用するTarianアプリケーションでアクションを設定できます。これは脅威とその対処法に関する情報を共有する仕組みです。これにより、Tarianを使用する全員が知識と経験を共有し、それぞれのK8s環境で協力してアクションを実行できます。

Tarianは既知の脅威に基づいてどのようなアクションを実行しますか?

Tarianは、自身が動作しているPodを単純に自己破壊します。マルウェアやウイルスが環境全体に広がった場合の結果はご想像の通りです。そのため、TarianはPodを破壊することでリスクを可能な限り低減するように設計されています。新しいPodのプロビジョニングはK8sのデプロイメントが行います。Tarianは、あなたがそう指示した場合にのみPodの破壊を行います。アクションを実行したくない場合は、設定やトリガーは不要で、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. すべてのPodが準備完了になるまで待機
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 [flags]

フラグ:
      --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はミューテーティングAdmission Webhookを使用します。Webhookサーバーはポート9443で実行されます。そのため、マスターIPアドレス範囲からノードへのTCPポート9443のingressを許可する新しいファイアウォールルールを作成する必要があります。

詳細については、このトピックに関する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

Pod内でtarian agentを実行する

制約を作成したら、アノテーションを追加してPodにtarian-pod-agentを注入します:

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

このアノテーションが付いたPodには、追加のコンテナ(tarian-pod-agent)が注入されます。tarian-pod-agentコンテナは、登録された制約に基づいてランタイム環境を継続的に検証します。違反があれば報告され、tarianctl get eventsで確認できます。

デモ: 制約に違反するPodを試す

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)➖kernel < 5.8
Azure Kubernetes Service (AKS)➖kernel < 5.8