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

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

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

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

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

Категории

Все категории
Loading categories
pgm-attack — Код исследования атак отравления на PGM-index, демонстрирующий, как создавать состязательные данные для деградации производительности обученных индексов. | Kitploit
Инструменты/GitHubGitHub/atsukisato/pgm-attack
Машинное ОбучениеСтатьи и ИсследованияБезопасность ИИСостязательная Атака
GitHubatsukisato/pgm-attack

pgm-attack

Код исследования атак отравления на PGM-index, демонстрирующий, как создавать состязательные данные для деградации производительности обученных индексов.

Репозиторий
1111 дней назадЕщё не проверено

Популярное

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

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

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

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

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

PGM-attack

Обзор

Официальный код для нашей статьи Poisoning Attacks on the PGM-index.

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

1. Клонирование и подмодули

root@kitploit:~
git clone [REPOSITORY LINK]
cd pgm-index-poisoning
git submodule update --init --recursive

2. Сборка

root@kitploit:~
./scripts/build.sh

Требуется CMake (см. Зависимости). Результаты сохраняются в build/ (бинарные файлы по умолчанию в build/bin).

3. Загрузка, предобработка и синтетические данные

root@kitploit:~
./scripts/download_alex_dataset.sh       # ALEX
./scripts/download_mgbench.sh            # mgbench
./scripts/download_sosd_datasets.sh      # SOSD
./scripts/preprocess_alex_dataset.sh     # ALEX
./scripts/preprocess_mgbench.sh          # mgbench
./scripts/generate_synthetic_dataset.sh  # synthetic

4. Эксперименты

Каждый запуск принимает один JSON-конфиг через ./scripts/run_experiment.sh <config.json>. Примеры:

4.1 Максимизация максимальной ошибки (например, n=16, последовательный метод)

root@kitploit:~
./scripts/run_experiment.sh "configs/experiments/poison_attack/maximize_maxerror_consec/baseline_n16.json"

4.2 Минимизация покрытия легитимных ключей (например, epsilon=2, последовательный метод)

root@kitploit:~
./scripts/run_experiment.sh "configs/experiments/poison_attack/minimize_segment_length/baseline_epsilon2.json"

4.3 Максимизация m_opt (пример PGM-index)

root@kitploit:~
./scripts/run_experiment.sh "configs/experiments/poison_attack/inject_poisons_to_minimize_segment_length_swing_lambda_with_theta/baseline.json"

4.4 Верхняя граница m_opt (пример, зависящий от экземпляра)

root@kitploit:~
./scripts/run_experiment.sh "configs/experiments/upper_bound/fix_w_per_block/baseline.json"

4.5 Запуск всех экспериментов (пакетный режим)

Запускает полный список конфигов экспериментов из scripts/run_all_experiment.sh (отредактируйте этот файл, чтобы изменить набор).

root@kitploit:~
./scripts/run_all_experiment.sh

5. Графики и таблицы

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

root@kitploit:~
./scripts/plot.sh
./scripts/print_table.sh

Рисунки и журналы записываются в fig/. Сначала установите зависимости Python: pip install -r requirements.txt.

Зависимости

  • Инструментарий C++: g++, make и CMake (скрипт сборки настраивает проект с помощью CMake и собирает через cmake --build, который обычно вызывает Make).
  • Python 3 с пакетами из requirements.txt (скрипты построения графиков / таблиц).
  • jq — требуется ./scripts/run_experiment.sh для разбора JSON экспериментов.

Структура проекта

Docker

Соберите образ один раз:

root@kitploit:~
./docker_build.sh
  • docker_run.sh — Интерактивный контейнер: монтирует репозиторий в /workspace, выделяет 8 CPU (0–7), открывает bash, чтобы вы могли собирать и запускать команды вручную.
  • docker_run_all.sh — Фоновый запуск: выполняет ./scripts/run_all_experiment.sh внутри контейнера (8 CPU) и записывает stdout в results/run_all.log.
  • docker_run_all_single_cpu.sh — То же, что и docker_run_all.sh, но с одним CPU и OMP_NUM_THREADS=1 для однопоточных запусков.

Все три используют образ pgm_poisoning:latest и те же настройки capabilities / томов, что и в скриптах.

Скачать инструмент
ПутьНазначение
src/Исходники C++ (атаки, бенчмарки PGM, инструменты, верхние границы).
configs/experiments/JSON-конфиги экспериментов (пути в poison_attack/, upper_bound/ и т. д.).
scripts/Сборка, данные, run_experiment.sh, run_all_experiment.sh, plot.sh, print_table.sh.
third_party/Git-подмодули (PGM-index, FITing-Tree, RadixSpline).
data/, results/, fig/Данные, результаты запусков и сгенерированные рисунки / журналы таблиц.
plot/Python-скрипты для построения графиков и вывода таблиц.