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

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

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

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

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

Категории

Все категории
Loading categories
Cawdog — CAWODOG — это проект proof-of-concept, демонстрирующий, как защитить модели ИИ на Python, развёрнутые на офлайн-промышленных машинах. На трёх последовательных этапах (0 → 2) проект показывает: * как наивное Python-приложение с ИИ может быть тривиально подвергнуто обратной разработке, * как злоумышленники могут извлечь модели из упакованных бинарных файлов, * как усилить защиту развёртывания ИИ с помощью конвертации в ONNX, шифрования модели и отдельного движка выполнения. PoC использует игривую модель детектора собак («Группа господства кошачьего мира») для иллюстрации реальных концепций защиты интеллектуальной собственности, применимых к системам управления на базе ИИ, таким как платформа StarX от компании Starlinger. Он служит эталонной реализацией для сопровождающего технического документа «Hardening Python IP for Offline Industrial AI Deployments». | Kitploit
Инструменты/GitLabGitLab/lycis/cawdog
Безопасность встроенных системСтатический анализИнструменты шифрования/дешифрованияАнализ КодаОбратная инженерияБезопасность оборудования и IoTСтатьи и ИсследованияОбучение и Образование

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

CAWODOG — это проект proof-of-concept, демонстрирующий, как защитить модели ИИ на Python, развёрнутые на офлайн-промышленных машинах. На трёх последовательных этапах (0 → 2) проект показывает: * как наивное Python-приложение с ИИ может быть тривиально подвергнуто обратной разработке, * как злоумышленники могут извлечь модели из упакованных бинарных файлов, * как усилить защиту развёртывания ИИ с помощью конвертации в ONNX, шифрования модели и отдельного движка выполнения. PoC использует игривую модель детектора собак («Группа господства кошачьего мира») для иллюстрации реальных концепций защиты интеллектуальной собственности, применимых к системам управления на базе ИИ, таким как платформа StarX от компании Starlinger. Он служит эталонной реализацией для сопровождающего технического документа «Hardening Python IP for Offline Industrial AI Deployments».

Безопасность ИИ
GitLablycis/cawdog

Cawdog

Репозиторий
3910 месяцев назадЕщё не проверено
Поделиться

CAWODOG – PoC защиты интеллектуальной собственности для промышленного AI на Python

CAWODOG (Cat World Dominance Group) — это игровая, но реалистичная демонстрация концепции защиты моделей AI на Python, развертываемых на офлайн промышленных машинах.

Основная идея: взять небольшой классификатор изображений, распознающий собак («врага» CAWODOG), обернуть его в простое приложение, а затем постепенно укреплять развертывание против кражи ИС.

Данный PoC создан как дополнение к внутреннему техническому документу на тему:

Укрепление защиты интеллектуальной собственности на Python для офлайн промышленных развертываний AI


Цели

Этот репозиторий демонстрирует пошагово:

  • Насколько легко украсть модель из наивного развертывания на Python
  • Как структурировать приложение на Python на UI и движок
  • Как упаковать и укрепить движок с помощью:
    • Сборок Nuitka onefile
    • Экспорта в ONNX
    • Симметричного шифрования артефакта модели
  • Как выглядят действия атакующего на каждом этапе

Структура репозитория

.
├── 0/                     # Шаг 0 – Незащищенная базовая версия
│   ├── model/             # Код обучения и инференса
│   ├── app/               # Веб-интерфейс на Gradio
│   ├── requirements.txt
│   └── (optional) build / run helpers
│
├── 1/                     # Шаг 1 – Упаковано с Nuitka (Уровень 1)
│   ├── app/               # Тот же UI, адаптированная точка входа
│   ├── model/             # Та же логика модели, что и на шаге 0
│   ├── build.sh           # Скрипт сборки Nuitka onefile
│   └── requirements.txt
│
├── 2/                     # Шаг 2 – Зашифрованная модель ONNX (Уровень 2)
│   ├── model/             # Обучение + экспорт в ONNX + шифрование
│   ├── engine/            # Модуль движка (расшифровка + среда выполнения ONNX + оценка)
│   ├── app/               # UI, вызывающий только движок
│   ├── hardening/         # Ключ шифрования + утилиты (только для разработки)
│   ├── build.sh           # Скрипт сборки Nuitka onefile
│   └── requirements.txt
│
└── attacker/              # Инструменты атакующего (опционально, для демонстрации)
    ├── run_and_extract.sh # Находит временную папку Nuitka и выводит содержимое
    ├── steal_model.sh     # Копирует файл модели из извлеченной полезной нагрузки
    └── use_stolen_model.py# Использует украденную модель в отдельном скрипте

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

  • Python 3.13 (или 3.11+, если вы решите изменить сборку Nuitka)
  • Работающее виртуальное окружение (python -m venv .venv)
  • ОС: протестировано на macOS; на Linux должно работать с небольшими изменениями
  • Рекомендуется: знакомство с git, pip и базовыми командами командной строки

Большинство шагов требуют:

pip install -r requirements.txt

Шаг 0 – Базовая версия (незащищенная)

Папка: 0/ Цель: Простое Python-приложение с обученной моделью и простым веб-интерфейсом. Без защиты.

Что содержит

  • Небольшой классификатор изображений (PyTorch + torchvision), обученный различать:
    • dog против not_dog
  • Скрипт обучения (model_training.py), который:
    • автоматически разделяет data/dog и data/not_dog на обучающую и проверочную выборки
    • сохраняет файл модели, например model/models/dog_model.pt
  • Скрипт инференса (model_inference.py), который:
    • загружает dog_model.pt
    • возвращает вероятность 'собаки'
    • вычисляет простой 'вражеский счет' как игрушечную эвристику
  • Приложение Gradio (app/gradio_app.py), которое:
    • позволяет загружать изображения в браузере
    • вызывает инференс + вражеский счет
    • показывает вероятности и результат CAWODOG

Как запустить Шаг 0

Из корня репозитория:

cd 0
python -m venv .venv
source .venv/bin/activate          # on Windows: .venv\Scripts\activate
pip install -r requirements.txt
  1. Подготовьте данные:

    0/data/
      dog/
        <dog images>.jpg
      not_dog/
        <non-dog images>.jpg
    
  2. Обучите модель:

    python -m model.model_training
    

    Это создаст что-то вроде:

    model/models/dog_model.pt
    
  3. Запустите приложение Gradio:

    python -m app.gradio_app
    
  4. Откройте напечатанный URL (по умолчанию http://127.0.0.1:7860) и протестируйте с изображениями.

Свойства безопасности

  • Файл модели хранится как незашифрованные веса PyTorch (файл .pt).
  • Вся логика модели и логика оценки находятся в читаемом Python-коде.
  • Любой может скопировать каталог проекта и использовать всё заново.

Это картина «до».

Шаг 1 – Укрепление уровня 1 (Nuitka Onefile)

Папка: 1/ Цель: Упаковать приложение в один исполняемый файл с помощью Nuitka. Эффект безопасности: Заставляет приложение выглядеть как продукт, но не защищает ИС.

Что изменилось по сравнению с шагом 0

  • Выделенная точка входа для Nuitka (например, app/main.py или cawodog_app.py)
  • Скрипт сборки (build.sh), который:
    • устанавливает зависимости
    • запускает Nuitka с флагами --standalone и --onefile
    • включает файл модели в бандл (dog_model.pt)
  • Результатом является однофайловый бинарник (например, cawodog_step1_nuitka).

Пример сборки (упрощённо)

cd 1
source .venv/bin/activate
./build.sh

После сборки вы получите что-то вроде:

./cawodog_step1_nuitka

Запуск запустит интерфейс Gradio, как и раньше, но теперь из одного исполняемого файла.

Моделирование атакующего (опционально, с использованием attacker/)

Папка attacker показывает, как атакующий может:

  1. Запустить однофайловый бинарник (который распаковывается во временную папку)
  2. Найти каталог распаковки Nuitka onefile внутри $TMPDIR
  3. Скопировать dog_model.pt из этого каталога
  4. Использовать use_stolen_model.py для выполнения предсказаний вне приложения

Ключевой вывод: Уровень 1 — не значимая защита. Это упаковка, а не безопасность.

Шаг 2 – Укрепление уровня 2 (Зашифрованный движок ONNX)

Папка: 2/ Цель: Ввести реальную защиту ИС на уровне модели. Эффект безопасности: Конкуренты не смогут использовать модель, просто скопировав файл.

Основные концепции

  1. Преобразование формата модели
    • Конвертируйте dog_model.pt → dog_model.onnx с помощью экспорта PyTorch в ONNX.
  2. Шифрование модели
    • Зашифруйте dog_model.onnx с помощью AES-GCM в dog_model.enc
    • Сохраните симметричный ключ в hardening/dev_model.key (для целей PoC)
  3. Абстракция движка
    • Введите engine/core.py, который:
      • расшифровывает dog_model.enc во время выполнения
      • загружает его в ONNX Runtime
      • предоставляет функции, такие как predict_is_dog() и enemy_score()
  4. UI как оркестратор
    • app/gradio_app.py больше не видит сырые файлы модели или внутренности.
    • Он только вызывает функции движка.

Типичный рабочий процесс для шага 2

cd 2
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Обучите (или повторно используйте) модель (так же, как на шаге 0, но внутри 2/):

    python -m model.model_training
    
  2. Экспортируйте в ONNX:

    python -m model.export_to_onnx
    # produces model/models/dog_model.onnx
    
  3. Зашифруйте модель ONNX:

    python -m hardening.encrypt_model
    # produces model/models/dog_model.enc and hardening/dev_model.key
    
  4. Соберите с Nuitka (через build.sh):

    ./build.sh
    

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

  5. Запустите полученный однофайловый бинарник. Интерфейс должен вести себя так же, как и раньше.

Свойства безопасности

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