Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
kube-linter — KubeLinter — это инструмент статического анализа, который проверяет YAML-файлы Kubernetes и чарты Helm, чтобы гарантировать, что представленные в них приложения соответствуют лучшим практикам. | Kitploit
Инструменты/GitHubGitHub/stackrox/kube-linter
Статический анализБезопасность контейнеровАудит конфигурацииБезопасность облачных средDevSecOpsНеправильная Конфигурация
GitHubstackrox/kube-linter

kube-linter

KubeLinter — это инструмент статического анализа, который проверяет YAML-файлы Kubernetes и чарты Helm, чтобы гарантировать, что представленные в них приложения соответствуют лучшим практикам.

Репозиторий
3.5k2733 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Статический анализ для Kubernetes

Go Report Card

Что такое KubeLinter?

KubeLinter анализирует YAML-файлы Kubernetes, диаграммы Helm и манифесты Kustomize и проверяет их на соответствие различным лучшим практикам с акцентом на производственную готовность и безопасность.

KubeLinter запускает разумные проверки по умолчанию, предназначенные для предоставления полезной информации о ваших YAML-файлах Kubernetes, диаграммах Helm и манифестах Kustomize. Это помогает командам проверять часто и на ранних этапах на предмет ошибок конфигурации безопасности и лучших практик DevOps. Некоторые распространенные примеры включают запуск контейнеров от имени непривилегированного пользователя, обеспечение минимальных привилегий и хранение конфиденциальной информации только в секретах.

KubeLinter настраивается, поэтому вы можете включать и отключать проверки, а также создавать собственные проверки в зависимости от политик, которым вы хотите следовать в своей организации.

Когда проверка lint завершается ошибкой, KubeLinter сообщает рекомендации по устранению возможных проблем и возвращает ненулевой код выхода.

Документация

Посетите https://docs.kubelinter.io для получения подробной документации по установке, использованию и настройке KubeLinter.

Установка KubeLinter

Бинарные файлы Kube-linter можно найти здесь: https://github.com/stackrox/kube-linter/releases/latest

Использование Go

Чтобы установить с помощью Go, выполните следующую команду:

root@kitploit:~
go install golang.stackrox.io/kube-linter/cmd/kube-linter@latest

В противном случае загрузите последний бинарный файл из Releases и добавьте его в свой PATH.

Использование Homebrew для macOS или LinuxBrew для Linux

Чтобы установить с помощью Homebrew или LinuxBrew, выполните следующую команду:

root@kitploit:~
brew install kube-linter

Использование nix-shell

root@kitploit:~
nix-shell -p kube-linter

Использование docker

root@kitploit:~
docker pull stackrox/kube-linter:latest

Разработка

Предварительные требования

  • Убедитесь, что у вас установлен Go, перед сборкой из исходного кода.

Сборка KubeLinter

Установка KubeLinter из исходного кода так же проста, как выполнение следующих шагов:

  1. Сначала клонируйте репозиторий KubeLinter.

    root@kitploit:~
    git clone [email protected]:stackrox/kube-linter.git
    
  2. Затем скомпилируйте исходный код. Это создаст бинарные файлы kube-linter для каждой платформы и поместит их в папку .gobin.

    root@kitploit:~
    make build
    
  3. Наконец, вы готовы начать использовать KubeLinter. Проверьте версию, чтобы убедиться, что KubeLinter успешно установлен.

    root@kitploit:~
    .gobin/kube-linter version
    

Тестирование KubeLinter

Существует несколько уровней тестирования. Каждый уровень должен быть пройден.

  1. модульные тесты go:

    root@kitploit:~
    make test
    
  2. сквозные интеграционные тесты:

    root@kitploit:~
    make e2e-test
    
  3. и, наконец, сквозные интеграционные тесты с использованием bats-core:

    root@kitploit:~
    make e2e-bats
    

Проверка образов KubeLinter

Образы KubeLinter подписаны с помощью cosign. Мы рекомендуем проверять образ перед его использованием.

После установки cosign вы можете использовать открытый ключ KubeLinter для проверки образа KubeLinter с помощью:

root@kitploit:~
cat kubelinter-cosign.pub
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEl0HCkCRzYv0qH5QiazoXeXe2qwFX
DmAszeH26g1s3OSsG/focPWkN88wEKQ5eiE95v+Z2snUQPl/mjPdvqpyjA==
-----END PUBLIC KEY-----


cosign verify --key kubelinter-cosign $IMAGE_NAME

KubeLinter также предоставляет подписи cosign без ключа.

Вы можете проверить образ KubeLinter с помощью:

root@kitploit:~
# NOTE: Keyless signatures are NOT PRODUCTION ready.

COSIGN_EXPERIMENTAL=1 cosign verify $IMAGE_NAME

Использование KubeLinter

Локальная проверка YAML

Запуск KubeLinter для проверки ваших YAML-файлов в самой простой форме требует всего двух шагов.

  1. Найдите YAML-файл, который вы хотите проверить на соответствие лучшим практикам безопасности и производственной готовности:

  2. Выполните следующую команду:

    root@kitploit:~
    kube-linter lint /path/to/your/yaml.yaml
    

Пример

Рассмотрим следующий пример файла спецификации пода pod.yaml. Этот файл содержит две проблемы производственной готовности и одну проблему безопасности:

Проблема безопасности:

  1. Контейнер в этом поде не работает с файловой системой только для чтения, что может позволить ему записывать в корневую файловую систему.

Производственная готовность:

  1. Лимиты памяти контейнера не установлены, что может позволить ему потреблять чрезмерный объем памяти.

    root@kitploit:~
    apiVersion: v1
    kind: Pod
    metadata:
      name: security-context-demo
    spec:
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
        fsGroup: 2000
      volumes:
      - name: sec-ctx-vol
        emptyDir: {}
      containers:
      - name: sec-ctx-demo
        image: busybox
        resources:
          requests:
            memory: "64Mi"
            cpu: "250m"
        command: [ "sh", "-c", "sleep 1h" ]
        volumeMounts:
        - name: sec-ctx-vol
          mountPath: /data/demo
        securityContext:
          allowPrivilegeEscalation: false
    
  2. Скопируйте приведенный выше YAML в pod.yaml и проверьте этот файл, выполнив следующую команду:

    root@kitploit:~
    kube-linter lint pod.yaml
    
  3. KubeLinter запускает свои проверки по умолчанию и сообщает рекомендации. Ниже приведен вывод нашей предыдущей команды.

    root@kitploit:~
    pod.yaml: (object: <no namespace>/security-context-demo /v1, Kind=Pod) The container "sec-ctx-demo" is using an invalid container image, "busybox". Please use images that are not blocked by the `BlockList` criteria : [".*:(latest)$" "^[^:]*$" "(.*/[^:]+)$"] (check: latest-tag, remediation: Use a container image with a specific tag other than latest.)
    
    pod.yaml: (object: <no namespace>/security-context-demo /v1, Kind=Pod) container "sec-ctx-demo" does not have a read-only root file system (check: no-read-only-root-fs, remediation: Set readOnlyRootFilesystem to true in the container securityContext.)
    
    pod.yaml: (object: <no namespace>/security-context-demo /v1, Kind=Pod) container "sec-ctx-demo" has memory limit 0 (check: unset-memory-requirements, remediation: Set memory limits for your container based on its requirements. Refer to https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits for details.)
    
    Error: found 3 lint errors
    

Несколько форматов вывода

KubeLinter поддерживает генерацию нескольких форматов вывода за один запуск. Это полезно для одновременного создания отчетов, читаемых человеком и машиной:

root@kitploit:~
kube-linter lint \
  --format sarif --output kube-linter.sarif \
  --format json --output kube-linter.json \
  --config .kube-linter.yaml \
  pod.yaml

Эта команда:

  • Создаст отчет в формате SARIF в файле kube-linter.sarif
  • Создаст отчет в формате JSON в файле kube-linter.json
  • Обработает файлы только один раз, повышая эффективность

Примечание: Несколько форматов требуют явных флагов --output. Для вывода одного формата в stdout используйте только один флаг --format без --output.

Для получения более подробной информации об использовании нескольких форматов вывода см. документацию.

Чтобы узнать больше об использовании и настройке KubeLinter, посетите страницу документации.

Упоминания/Обучающие материалы

Ниже приведены обучающие материалы по KubeLinter, написанные пользователями. Если у вас есть материал, который вы хотели бы добавить в этот список, отправьте PR!

  • Обеспечение лучших практик YAML с помощью KubeLinter на civo.com от Saiyam Pathak.
  • Анализ файлов Kubernetes на наличие ошибок с помощью KubeLinter на opensource.com от Jessica Cherry.
  • Как добавить новую проверку в KubeLinter? от Priyanka Saggu.
  • Расширение kube-linter для создания пользовательского шаблона от Gareth Healy.

ЛИЦЕНЗИЯ

KubeLinter распространяется под лицензией Apache License 2.0.

Сообщество

Если вы хотите взаимодействовать с сообществом KubeLinter, включая сопровождающих и других пользователей, вы можете присоединиться к рабочему пространству Slack здесь.

В будущем возможны критические изменения в использовании команд, флагов и форматов файлов конфигурации. Тем не менее, мы призываем вас использовать KubeLinter для тестирования YAML-файлов вашего окружения, посмотреть, что сломается, и внести свой вклад.

Напоминаем, что все участие в сообществе KubeLinter регулируется нашим кодексом поведения.


KubeLinter создан с ❤️ компанией StackRox и теперь поддерживается Red Hat.

Скачать инструмент