Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pgm-attack — PGMインデックスに対するポイズニング攻撃の研究コードで、学習型インデックスの性能を低下させる敵対的データを生成する方法を示しています。 | Kitploit
ツール/GitHubGitHub/atsukisato/pgm-attack
機械学習論文と研究AIセキュリティ敵対的攻撃
GitHubatsukisato/pgm-attack

pgm-attack

PGMインデックスに対するポイズニング攻撃の研究コードで、学習型インデックスの性能を低下させる敵対的データを生成する方法を示しています。

リポジトリを見る
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. 実験

各実行は ./scripts/run_experiment.sh <config.json> を介して1つの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 — 実験JSONを解析するために ./scripts/run_experiment.sh で必要です。

プロジェクト構成

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 と同じですが、1 CPU と OMP_NUM_THREADS=1 を使用してシングルスレッドで実行します。

3つすべてがイメージ pgm_poisoning:latest と、スクリプトと同じケーパビリティ/ボリューム設定を使用します。

ツールをダウンロード
パス役割
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によるプロットおよび表出力スクリプト。