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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kubeclarity — KubeClarityは、コンテナイメージとファイルシステムのソフトウェア部品表(SBOM)および脆弱性の検出と管理のためのツールです。 | Kitploit
ツール/GitHubGitHub/openclarity/kubeclarity
脆弱性スキャナーコンテナセキュリティ脆弱性分析構成監査クラウドセキュリティDevSecOpsサプライチェーンセキュリティArchived
GitHubopenclarity/kubeclarity

kubeclarity

KubeClarityは、コンテナイメージとファイルシステムのソフトウェア部品表(SBOM)および脆弱性の検出と管理のためのツールです。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

[!IMPORTANT] KubeClarityは非推奨となり、openclarity/openclarityに引き継がれました。

詳細はリリースのお知らせをご確認ください。

このプロジェクトは更新されません。移行を推奨します。

KubeClarity ロゴ

KubeClarityは、コンテナイメージとファイルシステムのソフトウェア部品表(SBOM)および脆弱性を検出・管理するためのツールです。ランタイムのK8sクラスターとCI/CDパイプラインの両方をスキャンし、ソフトウェアサプライチェーンセキュリティを強化します。

目次

  • なぜ?
    • SBOMと脆弱性検出の課題
    • 解決策
  • 機能
    • 統合されたSBOM生成ツールと脆弱性スキャナー
  • アーキテクチャ
  • はじめに
    • KubeClarityバックエンド
      • Helmを使用したインストール
      • Helmを使用したアンインストール
      • デモデータを使用したローカルでのビルドと実行
    • CLI
      • インストール
      • SBOMの生成
      • 脆弱性スキャン
      • 結果をKubeClarityバックエンドにエクスポート
  • 高度な設定
    • ローカルのDockerイメージを入力としたSBOM生成
    • ローカルのDockerイメージを入力とした脆弱性スキャン
    • CLIのプライベートレジストリサポート
    • K8sランタイムスキャンのプライベートレジストリサポート
    • 異なるCI/CDステージ間でのSBOMと脆弱性のマージ
    • 異なるSBOMフォーマットの出力
    • CLIのリモートスキャナーサーバー
  • 制限事項
  • ロードマップ
  • 貢献
  • ライセンス

なぜ?

SBOMと脆弱性検出の課題

  • 効果的な脆弱性スキャンには、正確なソフトウェア部品表(SBOM)の検出が必要です:
    • さまざまなプログラミング言語とパッケージマネージャー
    • さまざまなOSディストリビューション
    • パッケージの依存関係情報は通常ビルド時に除去される
  • どのスキャナー/SBOMアナライザーが最適か?
  • 何をスキャンすべきか:Gitリポジトリ、ビルド、コンテナイメージ、ランタイム?
  • スキャナー/アナライザーごとに独自のフォーマットがある - 結果をどう比較するか?
  • 発見されたSBOMと脆弱性をどう管理するか?
  • 新たに発見された脆弱性はアプリケーションにどのような影響を与えるか?

解決策

  • 脆弱性スキャンを2つのフェーズに分離:
    • SBOMを生成するためのコンテンツ分析
    • SBOMをスキャンして脆弱性を検出
  • プラグイン可能なインフラストラクチャを作成:
    • 複数のコンテンツアナライザーを並行実行
    • 複数の脆弱性スキャナーを並行実行
  • KubeClarity CLIを使用して異なるCIステージ間で結果をスキャンおよびマージ
  • デプロイ後に発見された脆弱性を検出するためのランタイムK8sスキャン
  • スキャンしたリソース(イメージ/ディレクトリ)を定義済みアプリケーションにグループ化し、オブジェクトツリーの依存関係(アプリケーション、リソース、パッケージ、脆弱性)をナビゲート

機能

  • ダッシュボード
    • 重要度別の修正可能な脆弱性
    • 脆弱性トップ5の要素(アプリケーション、リソース、パッケージ)
    • 新しい脆弱性のトレンド
    • ライセンスタイプ別のパッケージ数
    • プログラミング言語別のパッケージ数
    • 一般カウンター
  • アプリケーション
    • K8sランタイムでのアプリケーション自動検出
    • アプリケーションの作成/編集/削除
    • アプリケーションごとに関連項目へナビゲート:
      • リソース(イメージ/ディレクトリ)
      • パッケージ
      • 脆弱性
      • リソースで使用されているライセンス
  • アプリケーションリソース(イメージ/ディレクトリ)
    • リソースごとに関連項目へナビゲート:
      • アプリケーション
      • パッケージ
      • 脆弱性
  • パッケージ
    • パッケージごとに関連項目へナビゲート:
      • アプリケーション
      • リンク可能なリソース一覧と検出したSBOMアナライザー
      • 脆弱性
  • 脆弱性
    • 脆弱性ごとに関連項目へナビゲート:
      • アプリケーション
      • リソース
      • 検出したスキャナー一覧
  • K8sランタイムスキャン
    • オンデマンドまたはスケジュールスキャン
    • 対象ネームスペースの自動検出
    • 影響を受ける要素(アプリケーション、リソース、パッケージ、脆弱性)ごとのスキャン進捗と結果ナビゲーション
    • CIS Dockerベンチマーク
  • CLI(CI/CD)
    • 複数の統合コンテンツアナライザー(Syft、cyclonedx-gomod)を使用したSBOM生成
    • 複数の統合スキャナー(Grype、Dependency-track)を使用したSBOM/イメージ/ディレクトリの脆弱性スキャン
    • 異なるCI/CDステージ間でのSBOMと脆弱性のマージ
    • KubeClarityバックエンドへの結果エクスポート
  • API
    • KubeClarityのAPIはこちらからアクセスできます。

統合されたSBOM生成ツールと脆弱性スキャナー

KubeClarityコンテンツアナライザーは以下のSBOM生成ツールと統合しています:

  • Syft
  • Cyclonedx-gomod
  • Trivy

KubeClarity脆弱性スキャナーは以下のスキャナーと統合しています:

  • Grype
  • Dependency-Track
  • Trivy

アーキテクチャ

はじめに

KubeClarityバックエンド

Helmを使用したインストール:

  1. Helmリポジトリを追加 ```shell helm repo add kubeclarity https://openclarity.github.io/kubeclarity

    root@kitploit:~
  2. KubeClarityのデフォルトチャート値を保存する

    root@kitploit:~
    helm show values kubeclarity/kubeclarity > values.yaml
    
  3. values.yamlの設定を確認し、必要に応じて値を更新してください。サポートされているSBOMジェネレーターと脆弱性スキャナーを有効にして設定するには、Helm valuesの"vulnerability-scanner"セクションにある"analyzer"と"scanner"の設定を確認してください。

  4. HelmでKubeClarityをデプロイする ```shell helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity

    root@kitploit:~

または、OpenShift Restricted SCC 互換のインストール: ```shell helm install --values values.yaml --create-namespace kubeclarity kubeclarity/kubeclarity -n kubeclarity --set global.openShiftRestricted=true
--set kubeclarity-postgresql.securityContext.enabled=false --set kubeclarity-postgresql.containerSecurityContext.enabled=false
--set kubeclarity-postgresql.volumePermissions.enabled=true --set kubeclarity-postgresql.volumePermissions.securityContext.runAsUser="auto"
--set kubeclarity-postgresql.shmVolume.chmod.enabled=false

root@kitploit:~
3. KubeClarity UI にポートフォワーディングする:   ```shell
kubectl port-forward -n kubeclarity svc/kubeclarity-kubeclarity 9999:8080
  1. ブラウザでKubeClarity UIを開きます: http://localhost:9999/

注記
KubeClarityには以下のK8s権限が必要です:

権限

Helmを使用したアンインストール:

  1. Helmアンインストール ```shell helm uninstall kubeclarity -n kubeclarity

    root@kitploit:~
  2. リソースのクリーンアップ

    デフォルトでは、Helm は StatefulSet の PVC と PV を削除しません。以下のコマンドを実行して、それらをすべて削除してください:

    root@kitploit:~
    kubectl delete pvc -l app.kubernetes.io/instance=kubeclarity -n kubeclarity
    

デモデータを使用したローカルでのビルドと実行

  1. UI とバックエンドをビルドし、バックエンドをローカルで起動します(2つのオプション):

    1. Docker を使用する場合:
      1. UI とバックエンドをビルドします(イメージタグは VERSION で設定):
        root@kitploit:~
        VERSION=test make docker-backend
        
      2. デモデータを使用してバックエンドを実行します:
        root@kitploit:~
        docker run -p 8080:8080 -e FAKE_RUNTIME_SCANNER=true -e FAKE_DATA=true -e ENABLE_DB_INFO_LOGS=true -e DATABASE_DRIVER=LOCAL ghcr.io/openclarity/kubeclarity:test run
        
    2. ローカルビルド:
      1. UI とバックエンドをビルドします
        root@kitploit:~
        make ui && make backend
        
      2. ビルド済みサイトをコピーします:
        root@kitploit:~
        cp -r ./ui/build ./site
        
      3. デモデータを使用してバックエンドをローカルで実行します:
        root@kitploit:~
        FAKE_RUNTIME_SCANNER=true DATABASE_DRIVER=LOCAL FAKE_DATA=true ENABLE_DB_INFO_LOGS=true ./backend/bin/backend run
        
  2. ブラウザで KubeClarity UI を開きます:http://localhost:8080/

CLI

KubeClarity には、ローカルで実行可能な CLI が含まれており、特に CI/CD パイプラインに役立ちます。 イメージやディレクトリを分析して SBOM を生成し、脆弱性をスキャンできます。 結果は KubeClarity バックエンドにエクスポートできます。

インストール

バイナリ配布

リリースページ からお使いの OS 用のリリース配布物をダウンロードしてください。

kubeclarity-cli バイナリを展開し、PATH に追加すれば、すぐに使用できます!

Docker イメージ

Docker イメージは ghcr.io/openclarity/kubeclarity-cli で利用可能です。 利用可能なタグのリストは こちら にあります。

ローカルコンパイル

``` make cli ``` `./cli/bin/cli`を`kubeclarity-cli`としてPATHにコピーしてください。

SBOM生成

使用方法:``` kubeclarity-cli analyze <image/directory name> --input-type <dir|file|image(default)> -o

root@kitploit:~
例:```
kubeclarity-cli analyze --input-type image nginx:latest -o nginx.sbom

オプションで、使用するコンテンツアナライザのリストを ANALYZER_LIST 環境変数を使って、スペース区切りで設定できます(例: ANALYZER_LIST="<analyzer 1 name> <analyzer 2 name>")

例:``` ANALYZER_LIST="syft gomod" kubeclarity-cli analyze --input-type image nginx:latest -o nginx.sbom

root@kitploit:~
### 脆弱性スキャン

使用方法:```
kubeclarity-cli scan <image/sbom/directoty/file name> --input-type <sbom|dir|file|image(default)> -f <output file>

例:``` kubeclarity-cli scan nginx.sbom --input-type sbom

root@kitploit:~
オプションで、使用する脆弱性スキャナーをスペース区切りで指定したリストを `SCANNERS_LIST` 環境変数で設定できます(例:`SCANNERS_LIST="<Scanner1 name> <Scanner2 name>"`)

例:```
SCANNERS_LIST="grype trivy" kubeclarity-cli scan nginx.sbom --input-type sbom

KubeClarity バックエンドへの結果のエクスポート

CLI の結果を KubeClarity バックエンドにエクスポートするには、KubeClarity バックエンドで定義されたアプリケーション ID を使用する必要があります。 アプリケーション ID は、UI の [Applications] 画面または KubeClarity API を使用して確認できます。

SBOM のエクスポート```

The SBOM can be exported to KubeClarity backend by setting the BACKEND_HOST env variable and the -e flag.

Note: Until TLS is supported, BACKEND_DISABLE_TLS=true should be set.

BACKEND_HOST= BACKEND_DISABLE_TLS=true kubeclarity-cli analyze --application-id -e -o

For example:

BACKEND_HOST=localhost:9999 BACKEND_DISABLE_TLS=true kubeclarity-cli analyze nginx:latest --application-id 23452f9c-6e31-5845-bf53-6566b81a2906 -e -o nginx.sbom

root@kitploit:~
#### 脆弱性スキャン結果のエクスポート```
# The vulnerability scan result can be exported to KubeClarity backend by setting the BACKEND_HOST env variable and the -e flag.
# Note: Until TLS is supported, BACKEND_DISABLE_TLS=true should be set.

BACKEND_HOST=<KubeClarity backend address> BACKEND_DISABLE_TLS=true kubeclarity-cli scan <image> --application-id <application ID> -e

# For example:
SCANNERS_LIST="grype" BACKEND_HOST=localhost:9999 BACKEND_DISABLE_TLS=true kubeclarity-cli scan nginx.sbom --input-type sbom  --application-id 23452f9c-6e31-5845-bf53-6566b81a2906 -e

高度な設定

ローカルDockerイメージを入力としたSBOM生成```

Local docker images can be analyzed using the LOCAL_IMAGE_SCAN env variable

For example:

LOCAL_IMAGE_SCAN=true kubeclarity-cli analyze nginx:latest -o nginx.sbom

root@kitploit:~
## ローカルDockerイメージを入力として使用した脆弱性スキャン```
# Local docker images can be scanned using the LOCAL_IMAGE_SCAN env variable

# For example:
LOCAL_IMAGE_SCAN=true kubeclarity-cli scan nginx.sbom

CLI向けプライベートレジストリサポート

KubeClarity cli は、プライベートレジストリの認証情報を保存する設定ファイルを読み取ることができます。

設定ファイルのレジストリセクションの例:``` registry: auths: - authority: <registry 1> username: <username for registry 1> password: <password for registry 1> - authority: <registry 2> token: <token for registry 2>

root@kitploit:~
Example registry config without authority: (in this case these credentials will be used for all registries)```
registry:
  auths:
    - username: <username>
      password: <password>

CLIの設定ファイルを指定する```

The default config path is $HOME/.kubeclarity or it can be specified by --config command line flag.

kubeclarity <scan/analyze> --config

For example:

kubeclarity scan registry/nginx:private --config $HOME/own-kubeclarity-config

root@kitploit:~
## K8sランタイムスキャンのプライベートレジストリサポート

Kubeclarityは、レジストリ認証のためにgoogle/go-containerregistryの[k8schain](https://github.com/google/go-containerregistry/tree/main/pkg/authn/k8schain#k8schain)を使用しています。必要なサービス資格情報がk8schainによって検出できない場合は、以下で説明するシークレットを介して定義できます。

さらに、サービス資格情報が"kubeclarity"名前空間にない場合は、CREDS_SECRET_NAMESPACEをkubeclarity Deploymentに設定してください。Helm [charts](https://github.com/openclarity/kubeclarity/blob/HEAD/charts)を使用する場合、CREDS_SECRET_NAMESPACEはkubeclarityのインストール先リリース名前空間に設定されます。

### Amazon ECR

`AmazonEC2ContainerRegistryFullAccess`権限を持つ[AWS IAMユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console)を作成します。

ユーザー資格情報(`AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、`AWS_DEFAULT_REGION`)を使用して、以下のシークレットを作成します。```
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: ecr-sa
  namespace: kubeclarity
type: Opaque
data:
  AWS_ACCESS_KEY_ID: $(echo -n 'XXXX'| base64 -w0)
  AWS_SECRET_ACCESS_KEY: $(echo -n 'XXXX'| base64 -w0)
  AWS_DEFAULT_REGION: $(echo -n 'XXXX'| base64 -w0)
EOF

注意:

  1. Secret名は ecr-sa にする必要があります
  2. Secretデータキーは AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION に設定する必要があります

Google GCR

Artifact Registry Reader 権限を持つ Googleサービスアカウント を作成します。

サービスアカウントのJSONファイルを使用して、以下のSecretを作成します。``` kubectl -n kubeclarity create secret generic --from-file=sa.json gcr-sa

root@kitploit:~
注意:
1. シークレット名は `gcr-sa` でなければなりません
1. `sa.json` は、シークレット生成時のサービスアカウントのJSONファイル名でなければなりません
2. KubeClarityは [アプリケーションのデフォルト認証情報](https://developers.google.com/identity/protocols/application-default-credentials) を使用しています。これらは GCP から KubeClarity を実行する場合にのみ機能します。

## 異なるCI/CDステージ間でのSBOMと脆弱性のマージ```
# Additional SBOM will be merged into the final results when '--merge-sbom' is defined during analysis. The input SBOM can be CycloneDX XML or CyclonDX json format.
# For example:
ANALYZER_LIST="syft" kubeclarity-cli analyze nginx:latest -o nginx.sbom --merge-sbom inputsbom.xml

異なるSBOM形式の出力

kubeclarity-cli analyzeコマンドは、結果のSBOMを必要に応じて異なる形式で出力し、別のシステムと統合することができます。サポートされている形式は次のとおりです:

形式構成名
CycloneDX JSON (デフォルト)cyclonedx-json
CycloneDX XMLcyclonedx-xml
SPDX JSONspdx-json
SPDX Tag Value

警告
KubeClarityは内部的にCycloneDXを処理します。他の形式は変換を通じてサポートされています。変換処理は形式間の非互換性により情報が失われる可能性があるため、結果の出力にすべてのフィールドや情報が含まれることは保証されません。

デフォルト以外の形式を使用するようにkubeclarity-cliを構成するには、上記の構成名とともにANALYZER_OUTPUT_FORMAT環境変数を使用できます:``` ANALYZER_OUTPUT_FORMAT="spdx-json" kubeclarity-cli analyze nginx:latest -o nginx.sbom

root@kitploit:~
## CLI用リモートスキャナーサーバー

kubeclarity CLIを実行して脆弱性をスキャンする場合、CLIは関連する脆弱性データベースをkubeclarity CLIが実行されている場所にダウンロードする必要があります。CI/CDパイプラインでCLIを実行すると、実行ごとにデータベースがダウンロードされ、時間と帯域幅を浪費します。このため、サポートされているスキャナーのいくつかには、サーバーがデータベース管理と場合によってはアーティファクトのスキャンを担当するリモートモードがあります。

> ***注記***
>
> 以下の例は各スキャナーに対するものですが、非リモートモードと同じように組み合わせて一緒に実行することが可能です。

### Trivy

TrivyスキャナーはTrivyサーバーを使用したリモートモードをサポートしています。Trivyサーバーは、[trivy client-server mode](https://aquasecurity.github.io/trivy/v0.34/docs/references/modes/client-server/) に記載されているようにデプロイできます。Trivy CLIのインストール手順は[trivy install](https://aquasecurity.github.io/trivy/v0.34/getting-started/installation/) で入手できます。Aquaチームは、Kubernetes/Dockerでサーバーを実行するための公式コンテナイメージを提供しており、ここでの例ではそれを使用します。

サーバーを起動するには:```
docker run -p 8080:8080 --rm aquasec/trivy:0.41.0 server --listen 0.0.0.0:8080

サーバーを使用してスキャンを実行するには:``` SCANNERS_LIST="trivy" SCANNER_TRIVY_SERVER_ADDRESS="http://:8080" ./kubeclarity_cli scan --input-type sbom nginx.sbom

root@kitploit:~
Trivyサーバーは、トークンベースの認証も提供しており、防ぐために
Trivyサーバーインスタンスの不正使用を。それを有効にするには、実行することで
サーバーを追加のフラグを指定して:```
docker run -p 8080:8080 --rm aquasec/trivy:0.41.0 server --listen 0.0.0.0:8080 --token mytoken

そしてトークンをスキャナーに渡す:``` SCANNERS_LIST="trivy" SCANNER_TRIVY_SERVER_ADDRESS="http://:8080" SCANNER_TRIVY_SERVER_TOKEN="mytoken" ./kubeclarity_cli scan --input-type sbom nginx.sbom

root@kitploit:~
### Grype

Grypeは、[grype-server](https://github.com/portshift/grype-server)を使用したリモートモードをサポートしています。これはRESTfulなgrypeラッパーで、SBOMを受け取り、そのSBOMに対するgrypeスキャン結果を返すAPIを提供します。Grype-serverはコンテナイメージとして提供されているため、kubernetes内またはdockerスタンドアロンで実行できます。

サーバーを起動するには:```
docker run -p 9991:9991 --rm gcr.io/eticloud/k8sec/grype-server:v0.1.5

サーバーを使用してスキャンを実行するには:``` SCANNERS_LIST="grype" SCANNER_GRYPE_MODE="remote" SCANNER_REMOTE_GRYPE_SERVER_ADDRESS=":9991" SCANNER_REMOTE_GRYPE_SERVER_SCHEMES="https" ./kubeclarity_cli scan --input-type sbom nginx.sbom

root@kitploit:~
GrypeサーバーがTLSでデプロイされている場合、デフォルトのURLスキームを次のように上書きできます:```
SCANNERS_LIST="grype" SCANNER_GRYPE_MODE="remote" SCANNER_REMOTE_GRYPE_SERVER_ADDRESS="<grype server address>:9991" SCANNER_REMOTE_GRYPE_SERVER_SCHEMES="https" ./kubeclarity_cli scan --input-type sbom nginx.sbom

Dependency Track

設定例はこちらをご覧ください

制限事項

  1. Docker Image Manifest V2, Schema 2(https://docs.docker.com/registry/spec/manifest-v2-2/)をサポートしています。それ以前のバージョンのスキャンは失敗します。

ロードマップ

  • 追加のコンテンツアナライザー(SBOMジェネレーター)との統合
  • 追加の脆弱性スキャナーとの統合
  • UIでのCIS Dockerベンチマーク
  • Cosignを使用したイメージ署名
  • Cosignとin-totoを使用したCI/CDメタデータの署名とアテステーション(サプライチェーンセキュリティ)
  • システム設定とユーザー管理

コントリビューション

プルリクエストとバグ報告を歓迎します。

大きな変更については、まずGitHubでIssueを作成し、提案する変更とその影響について議論してください。

詳細については、このプロジェクトのコントリビューションガイドラインをご覧ください

ライセンス

Apache License, Version 2.0

ツールをダウンロード
理由
CREDS_SECRET_NAMESPACE (デフォルト: kubeclarity) 内のシークレットを読み取りプライベートイメージリポジトリをスキャンするためのイメージプルシークレットを設定できるようにするため。
KubeClarityデプロイメント名前空間内のConfigMapを読み取りスキャナージョブの設定テンプレートを取得するために必要。
クラスタースコープでPodを一覧表示スキャンが必要なターゲットPodを算出するために必要。
名前空間を一覧表示K8sランタイムスキャンUIでスキャンするターゲット名前空間を取得するために必要。
クラスタースコープでジョブを作成・削除ターゲットPodをその名前空間でスキャンするジョブを管理するために必要。
spdx-tv
Syft JSONsyft-json