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

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

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

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

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

Категории

Все категории
Loading categories
trajan — Мультиплатформенный инструмент для обнаружения уязвимостей CI/CD и автоматизации атак, предназначенный для выявления уязвимостей в конфигурациях пайплайнов. | Kitploit
Инструменты/GitHubGitHub/praetorian-inc/trajan
Статический анализСканеры уязвимостейАнализ КодаАудит конфигурацииБезопасность облачных средDevSecOpsОбнаружение СекретовРазведка угрозБезопасность Цепочки ПоставокНеправильная Конфигурация
GitHubpraetorian-inc/trajan
176134 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

trajan

Мультиплатформенный инструмент для обнаружения уязвимостей CI/CD и автоматизации атак, предназначенный для выявления уязвимостей в конфигурациях пайплайнов.

Репозиторий
trajan

Trajan: Сканер безопасности CI/CD

Trajan сканирует конвейеры CI/CD на уязвимости безопасности, которые злоумышленники используют для компрометации цепочек поставок ПО. Он поддерживает GitHub Actions, GitLab CI, Azure DevOps, Jenkins и JFrog.

Go Version License

Что он делает

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

  • 32 плагина обнаружения для нескольких платформ CI/CD
  • 24 плагина атаки для нескольких платформ CI/CD
  • Графовый анализ с отслеживанием потока данных и обнаружением шлюзов
  • Браузерный сканер через WebAssembly (не требуется серверная часть)
  • Цепочки атак для многоэтапных последовательностей с автоматической передачей контекста

[!NOTE] Trajan находится в активной разработке. Некоторые функции могут быть неполными, возможны шероховатости. Если вы столкнулись с проблемами, пожалуйста, откройте их.

Установка

Предварительно собранные бинарные файлы доступны на странице релизов.

root@kitploit:~
go install github.com/praetorian-inc/trajan/cmd/trajan@latest

Или соберите из исходников:

root@kitploit:~
git clone https://github.com/praetorian-inc/trajan.git
cd trajan && make build

Требования

  • Go версии 1.24 или новее
  • Персональный токен доступа GitHub с областью repo (для частных репозиториев) или public_repo (только для публичных репозиториев)

SDK библиотеки (pkg/lib)

Trajan может быть встроен как библиотека Go для программного сканирования безопасности CI/CD. Пакет pkg/lib предоставляет публичный SDK, который объединяет внутренний реестр платформ Trajan, движок обнаружения и сканер в единый высокоуровневый API.

Быстрый старт (библиотека)

root@kitploit:~
import "github.com/praetorian-inc/trajan/pkg/lib"

result, err := lib.Scan(ctx, lib.ScanConfig{
    Platform:    "github",
    Token:       os.Getenv("GH_TOKEN"),
    Org:         "myorg",
    Repo:        "myrepo",
    Concurrency: 10,
    Timeout:     5 * time.Minute,
})
if err != nil {
    log.Fatal(err)
}

for _, f := range result.Findings {
    fmt.Printf("[%s] %s in %s: %s\n", f.Severity, f.Type, f.WorkflowFile, f.Evidence)
}

SDK API

ScanConfig

root@kitploit:~
type ScanConfig struct {
    Platform    string        // Платформа CI/CD (обязательно)
    Token       string        // Токен аутентификации API
    BaseURL     string        // Пользовательский базовый URL для самостоятельных экземпляров
    Org         string        // Организация/владелец
    Repo        string        // Имя репозитория (пустое = сканировать все репозитории организации)
    Concurrency int           // Параллельные рабочие процессы обнаружения (по умолчанию: 10)
    Timeout     time.Duration // Максимальная длительность сканирования (по умолчанию: 5 мин)
    LocalPath   string        // Локальный путь файловой системы (файл или каталог) для офлайн-сканирования
}

ScanResult

root@kitploit:~
type ScanResult struct {
    Findings          []detections.Finding   // Обнаруженные уязвимости безопасности
    Workflows         []platforms.Workflow   // Обнаруженные файлы рабочих процессов CI/CD
    Errors            []error                // Нефатальные ошибки во время сканирования
    SkippedDetections []string               // Имена обнаружений, пропущенных в режиме LocalPath (только API); всегда пусто в режиме API
}

Пример интеграции (платформа Chariot)

SDK используется платформой управления поверхностью атаки Chariot для выполнения сканирования безопасности CI/CD как возможности:

root@kitploit:~
import trajanlib "github.com/praetorian-inc/trajan/pkg/lib"

result, err := trajanlib.Scan(ctx, trajanlib.ScanConfig{
    Platform: platformName,
    Token:    token,
    Org:      repo.Org,
    Repo:     repo.Name,
})
// Преобразование result.Findings → capmodel.Risk emissions

Быстрое использование

root@kitploit:~
# Сканирование репозитория GitHub
export GH_TOKEN=ghp_your_token
trajan github scan --repo owner/repo

# Сканирование организации GitHub
trajan github scan --org myorg --concurrency 20

# Сканирование проектов GitLab
export GITLAB_TOKEN=glpat_your_token
trajan gitlab scan --group mygroup

# Сканирование Azure DevOps
export AZURE_DEVOPS_PAT=your_pat
trajan ado scan --org myorg --repo myproject/myrepo

# Офлайн-сканирование: сканирование локальных файлов рабочих процессов без доступа к API
trajan github scan --path ./my-repo
trajan github scan --path ./.github/workflows/ci.yml

# Вывод в JSON
trajan github scan --repo owner/repo -o json > results.json

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

Охват платформ

Браузерное расширение

Trajan также компилируется в WebAssembly-бинарник, который работает полностью в браузере как единый HTML-файл. Он использует тот же движок обнаружения, плагины атак и логику перечисления, что и CLI, только скомпилированный в WASM. Веб-версия Trajan позволяет легко доставлять сканер в целевые среды в рамках оценки.

root@kitploit:~
make wasm       # собрать browser/trajan.wasm
make wasm-dist  # собрать автономный trajan-standalone.html

Архитектура

root@kitploit:~
graph TD
    subgraph CLI
        CMD[Cobra Commands]
    end

    subgraph Platforms
        GH[GitHub]
        GL[GitLab]
        ADO[Azure DevOps]
        JK[Jenkins]
        JF[JFrog]
    end

    CMD --> GH & GL & ADO & JK & JF

    subgraph SF[Scan Flow]
        API[Platform API] --> |fetch workflows| YAML[Workflow YAML]
        YAML --> P

        subgraph P[Parser]
            direction LR
            GHP[GitHub] ~~~ GLP[GitLab] ~~~ ADP[Azure] ~~~ JKP[Jenkins]
        end

        P --> NW[Normalized Workflow]
        NW --> GB[Graph Builder]
        GB --> Graph[Workflow → Job → Step Graph]
    end

    subgraph AE[Analysis Engine]
        direction LR
        TT[Taint Tracker] --> Tagged[Tagged Graph]
        Tagged --> DP[Detection Plugins]
        DP --> GA[Gate Analysis]
        GA --> Findings
    end

    subgraph AF[Attack Flow]
        direction LR
        AP[Attack Plugins] --> |artifacts| Session[Session Tracker]
        Session --> Cleanup
    end

    Graph --> AE
    AE --> AF

План развития

В активной разработке поддержка дополнительных платформ CI/CD:

  • Bitbucket Pipelines
  • CircleCI
  • AWS CodePipeline
  • Google Cloud Build

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

Руководство по разработке, созданию плагинов и структуре проекта см. в CONTRIBUTING.md.

Благодарности

Основано на исследованиях из Gato, Glato, Gato-X от Аднана Хана и GitHub Security Lab.

Лицензия

Apache 2.0. См. LICENSE.

Скачать инструмент
ФункцияОписание
lib.Scan(ctx, cfg)Полное сканирование: инициализация платформы → обнаружение рабочих процессов → выполнение обнаружения
lib.GetPlatform(name)Получить адаптер платформы по имени (github, gitlab, azuredevops, bitbucket, jenkins, jfrog)
lib.ListPlatforms()Список всех зарегистрированных имён платформ
lib.GetDetections(platform)Получить плагины обнаружения для конкретной платформы
lib.GetDetectionsForPlatform(platform)Получить платформо-специфичные и кроссплатформенные обнаружения
lib.ListDetectionPlatforms()Список платформ с зарегистрированными обнаружениями
ПлатформаОбнаруженияАтакиПеречисление
GitHub Actions119токены, репозитории, секреты
GitLab CI83токены, проекты, группы, секреты, раннеры, защита веток
Azure DevOps69токены, проекты, репозитории, конвейеры, подключения, пулы агентов, пользователи, группы и другое
Jenkins73доступ, задания, узлы, плагины
JFrogтолько сканирование--