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

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

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

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

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

Категории

Все категории
Loading categories
chaosblade — Простой в использовании и мощный набор инструментов для экспериментов по хаос-инжинирингу.(Инструмент для инъекций хаос-экспериментов с открытым исходным кодом от Alibaba — простой, удобный и мощный) | Kitploit
Инструменты/GitHubGitHub/chaosblade-io/chaosblade
Безопасность облачной инфраструктурыБезопасность контейнеровDevSecOpsИнженерия Хаоса
GitHubchaosblade-io/chaosblade

chaosblade

Простой в использовании и мощный набор инструментов для экспериментов по хаос-инжинирингу.(Инструмент для инъекций хаос-экспериментов с открытым исходным кодом от Alibaba — простой, удобный и мощный)

Репозиторий
6.5k1.0k6 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

логотип

Chaosblade: простой в использовании и мощный инструментарий для хаос-инжиниринга

Build Status Financial Contributors on Open Collective codecov license CII Best Practices

Китайская версия README
Вики: DeepWiki

🔥🔥🔥 Крупное обновление:выпущен агент Chaosblade — Blade AI

изображение Blade AI выступает в качестве интеллектуального агентского слоя в экосистеме ChaosBlade: на базовом уровне он вызывает ChaosBlade для выполнения инъекции сбоев; на верхнем уровне он включает возможности оркестрации, такие как понимание намерений, аудит безопасности, проверка эффекта, безопасное восстановление и структурированная отчётность, — тем самым превращая учения по сбоям из процесса «ручного написания команд» в процесс, выполняемый через «диалоговое взаимодействие».

Подробную информацию см. в: Blade AI README

  • Релиз: blade-ai-v0.1.0
  • Ветка кода: blade-ai-v0.1.0

Введение

ChaosBlade — это инструмент с открытым исходным кодом от Alibaba для проведения экспериментальных инъекций, который следует принципам хаос-инжиниринга и моделям хаотических экспериментов, чтобы помогать предприятиям повышать отказоустойчивость распределённых систем и обеспечивать непрерывность бизнеса в процессе перехода компаний в облако или миграции на облачные нативные системы.

Chaosblade — это внутренний проект с открытым исходным кодом компании MonkeyKing. Он основан на почти десятилетней практике тестирования отказов и проведения учений Alibaba и сочетает в себе лучшие идеи и практики бизнес-подразделений Группы.

ChaosBlade не только прост в использовании, но и поддерживает множество экспериментальных сценариев. Сценарии включают:

  • Базовые ресурсы: такие экспериментальные сценарии, как CPU, память, сеть, диск, процессы и другие;
  • Java-приложения: например, базы данных, кэши, сообщения, сама JVM, микросервисы и т. д. Можно также указать любой метод класса для инъекции различных сложных экспериментальных сценариев;
  • C++-приложения: например, указание произвольных методов или строк экспериментального кода для инъекции задержки, подмена переменных и возвращаемых значений;
  • контейнеры: такие экспериментальные сценарии, как уничтожение контейнера, CPU в контейнере, память, сеть, диск, процессы и другие;
  • облачные нативные платформы: например, экспериментальные сценарии для CPU, памяти, сети, диска и процессов на узлах платформы Kubernetes, сценарии для сети Pod и самого Pod, такие как уничтожение Pod'ов, а также контейнерные сценарии, например упомянутый выше сценарий для Docker-контейнера;

Инкапсуляция сценариев по доменам в отдельные проекты позволяет не только стандартизировать сценарии в рамках домена, но и облегчает горизонтальное и вертикальное расширение сценариев. Следуя модели хаотических экспериментов, можно единообразно вызывать CLI chaosblade. В настоящее время включены следующие проекты:

  • chaosblade: инструмент управления хаотическими экспериментами, включающий команды для создания экспериментов, уничтожения экспериментов, запроса экспериментов, подготовки экспериментальных сред и отмены экспериментальных сред. Это инструмент выполнения хаотических экспериментов; способы выполнения включают CLI и HTTP. Предоставляет полные команды, экспериментальные сценарии и описания параметров сценариев, а управление простое и понятное.
  • chaosblade-spec-go: определение модели хаотических экспериментов на языке Golang; сценарии, реализованные на Golang, легко реализуются на основе этой спецификации.
  • chaosblade-exec-os: реализация экспериментальных сценариев для базовых ресурсов.
  • chaosblade-exec-docker: реализация экспериментальных сценариев для Docker-контейнеров, стандартизированная через вызовы Docker API.
  • chaosblade-exec-cri: реализация экспериментальных сценариев для контейнеров, стандартизированная через вызовы CRI.
  • chaosblade-operator: реализованы экспериментальные сценарии для платформы Kubernetes; хаотические эксперименты определяются стандартным методом CRD Kubernetes, что очень удобно: с помощью методов работы с ресурсами Kubernetes можно создавать, обновлять и удалять экспериментальные сценарии, в том числе с использованием kubectl, client-go и т. д., а также с помощью описанного выше инструмента CLI chaosblade.
  • chaosblade-exec-jvm: реализация экспериментальных сценариев для Java-приложений с использованием технологии Java Agent для динамического подключения, без каких-либо изменений кода и с нулевой стоимостью использования. Также поддерживается отключение агента и полная утилизация всех ресурсов, созданных агентом.
  • chaosblade-exec-cplus: реализация экспериментальных сценариев для C++-приложений с использованием технологии GDB для инъекции сбоев на уровне методов и строк кода.
  • chaosblade-box: обладает возможностями платформы хаос-инжиниринга и платформы тестирования устойчивости. Дополнительную информацию о возможностях платформы тестирования устойчивости см. в ветке main2.

Быстрый старт

Это руководство поможет вам выполнить первую инъекцию сбоя в Kubernetes менее чем за 5 минут с помощью ChaosBlade. В качестве минимального примера мы внесём сбой перегрузки CPU в Pod.

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

Перед началом убедитесь, что у вас есть:

  • доступ через kubectl к работающему кластеру Kubernetes (kubectl cluster-info выполняется успешно)
  • целевое пространство имён как минимум с одним работающим Pod (по умолчанию: default)
  • установленный ChaosBlade:
    • загружен и распакован набор инструментов CLI chaosblade (бинарный файл blade находится в вашем PATH)
    • развёрнут chaosblade-operator в вашем кластере (требуется для сценариев Kubernetes)

Установите оператор с помощью Helm:

root@kitploit:~
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace

Проверьте, что оператор запущен:

root@kitploit:~
kubectl get pods -n chaosblade

Внесите первый сбой (перегрузка CPU)

Выполните сбой полной загрузки CPU для Pod в пространстве имён default:

root@kitploit:~
blade create k8s pod-cpu fullload   --cpu-percent 80   --kubeconfig ~/.kube/config   --names <pod-name>   --namespace default

Если инъекция прошла успешно, ChaosBlade возвращает JSON-результат, содержащий uid эксперимента. Сохраните этот uid, чтобы позже проверить статус или уничтожить эксперимент:

root@kitploit:~
{"code":200,"success":true,"result":"<experiment-uid>"}

Проверка статуса эксперимента

root@kitploit:~
blade status <experiment-uid>

Восстановление (уничтожение сбоя)

Всегда выполняйте восстановление после учений, чтобы вернуть объект в нормальное состояние:

root@kitploit:~
blade destroy <experiment-uid>

Вот и всё! Вы прошли полный цикл «инъекция — проверка — восстановление». Чтобы изучить другие сценарии, выполните blade create k8s -h или обратитесь к документу Практика хаос-инжиниринга в облачных нативных средах.

Команды CLI

Вы можете загрузить последнюю версию набора инструментов chaosblade со страницы Releases, распаковать её и использовать. Если вы хотите выполнять инъекцию сбоев в сценариях, связанных с Kubernetes, необходимо установить chaosblade-operator. Подробные документы по использованию на китайском языке см. в chaosblade-help-zh-cn .

chaosblade поддерживает вызовы через CLI и HTTP. Поддерживаются следующие команды:

  • prepare: псевдоним — p, подготовка перед экспериментом по хаос-инжинирингу. Например, для тестирования Java-приложений необходимо подключить java-агент. Допустим, нужно протестировать приложение с именем business: выполните blade p jvm --process business на целевом хосте. Если подключение прошло успешно, возвращается uid для запроса статуса или отзыва агента.
  • revoke: псевдоним — r, отмена ранее выполненной подготовки к эксперименту по хаос-инжинирингу, например, отключение java-агента. Команда: blade revoke UID
  • create: псевдоним — c, создание эксперимента по хаос-инжинирингу. Команда: blade create [TARGET] [ACTION] [FLAGS]. Например, чтобы вызвать задержку 3 с при обращении потребителя Dubbo к интерфейсу xxx.xxx.Service, выполняется команда blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service; если инъекция прошла успешно, возвращается uid эксперимента для запроса статуса и уничтожения эксперимента.
  • destroy: псевдоним — d, уничтожение эксперимента по хаос-инжинирингу, например, уничтожение упомянутого выше эксперимента с задержкой Dubbo. Команда: blade destroy UID
  • status: псевдоним — s, запрос статуса этапа подготовки или эксперимента. Команда: blade status UID или blade status --type create
  • server: запуск веб-сервера, предоставление HTTP-сервиса и вызов chaosblade через HTTP-запросы. Например, выполните на целевой машине xxxx: , чтобы провести эксперимент с полной загрузкой CPU:

Используйте команду blade help [COMMAND] или blade [COMMAND] -h для просмотра справки

Демонстрация возможностей

Загрузите демонстрационный образ chaosblade и попробуйте использовать набор инструментов blade

demo.gif

Команда загрузки образа:

root@kitploit:~
docker pull chaosbladeio/chaosblade-demo

Запуск демонстрационного контейнера:

root@kitploit:~
docker run -it --privileged chaosbladeio/chaosblade-demo

После входа в контейнер вы можете прочитать файл README.txt, чтобы выполнить хаотический эксперимент. Приятного использования!

Cloud Native

chaosblade-operator — это инструмент инъекции хаотических экспериментов для облачных нативных платформ. Он следует модели хаотических экспериментов для стандартизации экспериментальных сценариев и определяет эксперимент как ресурсы CRD Kubernetes, сопоставляя экспериментальные модели с атрибутами ресурсов Kubernetes, что обеспечивает очень удобное сочетание моделей хаотических экспериментов с декларативным дизайном Kubernetes. Опираясь на модели хаотических экспериментов для удобной разработки сценариев, он также хорошо интегрирует концепции проектирования Kubernetes: через kubectl или написание кода можно напрямую вызывать API Kubernetes для создания, обновления и удаления хаотических экспериментов, а статус ресурсов наглядно показывает статус выполнения эксперимента, что стандартизирует инъекцию сбоев в Kubernetes. Помимо выполнения экспериментов описанными выше способами, можно также использовать метод CLI chaosblade для очень удобного выполнения экспериментальных сценариев Kubernetes и запроса статуса эксперимента. Подробности см. в китайском документе: Практика хаос-инжиниринга в облачных нативных средах

Сборка

Подробности см. в BUILD.md.

Ошибки и обратная связь

Сообщения об ошибках, вопросы и обсуждения, пожалуйста, отправляйте через GitHub Issues.

Вы также можете связаться с нами:

  • Группа Dingding (рекомендуется для китайских пользователей): 23177705
  • Группа Slack: chaosblade-io
  • Комната Gitter: сообщество chaosblade
  • Электронная почта: [email protected]
  • Twitter: chaosblade.io

Участие в разработке

Мы приветствуем любой вклад, даже если это просто пунктуация. Подробности см. в CONTRIBUTING. О лестнице продвижения участников сообщества см.: (Contributor Ladder)

Регистрация компаний

Изначальная цель нашего проекта с открытым исходным кодом — снизить порог внедрения хаос-инжиниринга на предприятиях, поэтому мы высоко ценим использование проекта в компаниях. Приглашаем всех сюда: ISSUE. После регистрации вы будете приглашены в корпоративную группу рассылки, чтобы обсуждать проблемы, с которыми сталкивается хаос-инжиниринг при внедрении в компании, и делиться опытом внедрения.

Участники

Участники, вносящие код

Этот проект существует благодаря всем, кто вносит вклад. [Внести вклад].

Лицензия

Chaosblade распространяется под лицензией Apache License, Version 2.0. Полный текст лицензии см. в LICENSE.

Скачать инструмент
blade server start -p 9526
curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"