Kube-Hunter больше не находится в активном развитии. Если вы заинтересованы в сканировании кластеров Kubernetes на предмет известных уязвимостей, мы рекомендуем использовать Trivy. В частности, неверное сканирование Kubernetes от Trivy и сканирование уязвимости KBOM. Узнайте больше в Trivy Docs.
Kube-Hunter охотится за слабыми сторонами безопасности в кластерах Kubernetes. Инструмент был разработан для повышения осведомленности и видимости для проблем безопасности в средах Kubernetes. Вы не должны запускать Kube-Hunter на кластере Kubernetes, который у вас нет!
Запустите Kube-Hunter : Kube-Hunter доступен в качестве контейнера (Aquasec/Kube-Hunter), и мы также предлагаем веб-сайт по адресу kube-hunter.aquasec.com, где вы можете зарегистрироваться в Интернете, чтобы получить токен, позволяющий увидеть и делиться результатами в Интернете. Вы также можете запустить код Python самостоятельно, как описано ниже.
Изучите уязвимости : база знаний Kube-Hunter включает в себя статьи о обнаруженных уязвимостях и проблемах. Когда Kube-Hunter сообщает о проблеме, он покажет свой VID (идентификатор уязвимости), чтобы вы могли искать ее в KB по адресу https://aquasecurity.github.io/kube-hunter/
Если вы заинтересованы в интеграции Kube-Hunter с Kubernetes Att & CK Matrix продолжительным чтением
Демо-видео Kube-Hunter
Kube-Hunter теперь поддерживает новый формат матрицы Kubernetes Att & CK. В то время как уязвимости Kube-Hunter представляют собой коллекцию творческих методов, предназначенных для имитации злоумышленника в кластере (или за его пределами), Att & CK Miter определяет более общие стандартизированные категории методов для этого.
Вы можете думать об уязвимости Kube-Hunter как о небольших шагах для злоумышленника, который следует по пути более общей техники, к которой он будет стремиться. Большинство охотников и уязвимостей Kube-Hunter могут тесно подпадать под эти методы, поэтому мы перешли к стандарту матрицы.
Некоторые уязвимые уязвимости Kube-Hunter, которые мы не могли сопоставить с техникой General
Существует три разных способа запуска Kube-Hunter, каждый из которых обеспечивает другой подход к обнаружению слабостей в вашем кластере:
Запустите Kube-Hunter на любой машине (включая ваш ноутбук), выберите удаленное сканирование и дайте IP-адрес или доменное имя вашего кластера Kubernetes. Это даст вам обзор атакующих на установку Kubernetes.
Вы можете запустить Kube-Hunter непосредственно на машине в кластере и выбрать опцию, чтобы исследовать все локальные сетевые интерфейсы.
Вы также можете запустить Kube-Hunter в стручке в кластере. Это указывает на то, насколько будет обнаружен ваш кластер, если один из ваших прикладных стручков будет скомпрометирован (например, через уязвимость программного обеспечения). ( --pod -флаг )
Сначала проверьте эти предварительные условия .
По умолчанию Kube-Hunter откроет интерактивный сеанс, в котором вы сможете выбрать один из следующих параметров сканирования. Вы также можете указать опцию сканирования вручную из командной строки. Это ваши варианты:
Чтобы указать удаленные машины для охоты, выберите опцию 1 или используйте опцию --remote . Пример: kube-hunter --remote some.node.com
Чтобы указать сканирование интерфейса, вы можете использовать опцию --interface (это сканирует все сетевые интерфейсы машины). Пример: kube-hunter --interface
Чтобы указать конкретный CIDR для сканирования, используйте опцию --cidr . Пример: kube-hunter --cidr 192.168.0.0/24
SET --k8s-auto-discover-nodes Flag, чтобы запросить Kubernetes для всех узлов в кластере, а затем попытайтесь сканировать их все. По умолчанию он будет использовать конфигурацию в кластере для подключения к API Kubernetes. Если вы хотите использовать явный файл kubeconfig, установите --kubeconfig /location/of/kubeconfig/file .
Также обратите внимание, что это всегда делается при использовании режима --pod .
Чтобы имитировать злоумышленника на ранних стадиях, Kube-Hunter не требует аутентификации для охоты.
Выражать -вы можете предоставить Kube-Hunter с конкретным токеном с учетом обслуживания, который можно использовать при охоте, вручную пропуская токен носителя JWT в секрете обслуживания с флагом --service-account-token .
Пример:
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni... При Runing с флагом --pod Kube-Hunter использует токен учетной записи службы, установленную внутри стручки для аутентификации на услуги, которые он находит во время охоты.
--service-account-token токАктивная охота-это вариант, при котором Kube-Hunter будет использовать уязвимости, которые он находит, для изучения дальнейших уязвимостей. Основное различие между нормальной и активной охотой заключается в том, что нормальная охота никогда не изменит состояние кластера, в то время как активная охота может потенциально выполнять операции с изменением состояния на кластере, что может быть вредным .
По умолчанию Kube-Hunter не занимается активной охотой. Чтобы активно охотиться на кластер, используйте флаг --active . Пример: kube-hunter --remote some.domain.com --active
Вы можете увидеть список тестов с опцией --list : Пример: kube-hunter --list
Чтобы увидеть активные охотничьи тесты, а также пассивные: kube-hunter --list --active
Чтобы увидеть только отображение вашей сети узлов, запустите опцию --mapping . Пример: kube-hunter --cidr 192.168.0.0/24 --mapping Это выведет все узлы Kubernetes, найденные Kube-Hunter.
Чтобы управлять журналом, вы можете указать уровень журнала, используя опцию --log . Пример: kube-hunter --active --log WARNING Доступные уровни журналов:
По умолчанию отчет будет отправлен в stdout , но вы можете указать различные методы, используя опцию --dispatch . Пример: kube-hunter --report json --dispatch http доступные методы отправки:
При запуске в качестве капсула в среде Azure или AWS Kube-Hunter получит подсети из службы метаданных экземпляров. Естественно, это заставляет процесс обнаружения займет больше времени. Для жесткого сканирования подсети до A /24 CIDR используйте опцию --quick .
Пользовательская охота позволяет продвинутым пользователям контролировать то, что охотники зарегистрировались в начале охоты. Если вы знаете, что вы делаете , это может помочь, если вы хотите настроить процесс охоты и обнаружения Kube-Hunter для ваших нужд.
Пример:
kube-hunter --custom <HunterName1> <HunterName2>
Включение пользовательской охоты снимает всех охотников из процесса охоты, кроме данных охотников за белым списком.
Флаг --custom считывает список имен классов охотников, чтобы просмотреть все имена классов Kube-Hunter, вы можете объединить флаг --raw-hunter-names с --list .
Пример:
kube-hunter --active --list --raw-hunter-names
Примечание : из-за архитектурного дизайна Kube-Huner, всегда будут регистрироваться следующие «основные охотники/классы» (даже при использовании пользовательской охоты):
Есть три метода для развертывания Kube-Hunter:
Вы можете запустить Kube-Hunter прямо на своей машине.
Вам понадобится следующее установлено:
Установить:
pip install kube-hunter
Бегать:
kube-hunter
Клонировать репозиторий:
git clone https://github.com/aquasecurity/kube-hunter.git
Установить зависимости модуля. (Вы можете предпочесть это в виртуальной среде)
cd ./kube-hunter
pip install -r requirements.txt
Бегать:
python3 kube_hunter
Если вы хотите использовать Pyinstaller/Py2exe, вам нужно сначала запустить сценарий install_imports.py.
Aqua Security поддерживает контейнерную версию Kube-Hunter в aquasec/kube-hunter:aqua . Этот контейнер включает в себя этот исходный код, а также дополнительный (закрытый) плагин отчетности для загрузки результатов в отчет, который можно просмотреть по адресу kube-hunter.aquasec.com. Обратите внимание, что запуск контейнера aquasec/kube-hunter и отчеты о загрузке данных подлежат дополнительным условиям.
DockerFile в этом репозитории позволяет создавать контейнерную версию без плагина отчетности.
Если вы запустите контейнер-kube-Hunter с хост-сетью, он сможет исследовать все интерфейсы на хосте:
docker run -it --rm --network host aquasec/kube-hunter
Примечание для Docker для Mac/Windows: Имейте в виду, что «хост» для Docker для Mac или Windows - это виртуальная машина, которую Docker запускает контейнеры внутри. Поэтому указание --network host позволяет доступ к Kube-Hunter к сетевым интерфейсам этой виртуальной машины, а не к вашей машине. По умолчанию Kube-Hunter работает в интерактивном режиме. Вы также можете указать опцию сканирования с параметрами, описанными выше, например,
docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24
Эта опция позволяет выяснить, что может сделать злой контейнер для вашего кластера. Это дает представление о том, что может сделать злоумышленник, если бы они смогли пойти на компромисс, возможно, благодаря уязвимости программного обеспечения. Это может выявить значительно больше уязвимостей.
Пример файла job.yaml определяет задание, которое будет запускать Kube-Hunter в POD, используя настройки доступа к капсулу Kubernetes по умолчанию. (Вы можете изменить это определение, например, для запуска как пользователя, не являющегося корректом, или запустить в другом пространстве имен.)
kubectl create -f ./job.yamlkubectl describe job kube-hunterkubectl logs <pod name> Чтобы прочитать рекомендации по взносу, нажмите здесь
Этот репозиторий доступен в соответствии с лицензией Apache 2.0.