Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

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

pgm-attack

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

リポジトリを見る
1713日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

PGM-attack

概要

本論文 Poisoning Attacks on the PGM-index の公式コードです。

クイックスタート

1. クローンとサブモジュール

git clone https://github.com/atsukisato/pgm-attack.git
cd pgm-attack
git submodule update --init --recursive

2. ビルド

./scripts/build.sh

CMake が必要です(依存関係を参照)。出力は build/ 以下に生成されます(デフォルトではバイナリは build/bin に配置されます)。

3. ダウンロード、前処理、合成データ

./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、consecutive 法)

./scripts/run_experiment.sh "configs/experiments/poison_attack/maximize_maxerror_consec/baseline_n16.json"

4.2 カバーされる正当なキーを最小化する(例:epsilon=2、consecutive 法)

./scripts/run_experiment.sh "configs/experiments/poison_attack/minimize_segment_length/baseline_epsilon2.json"

4.3 m_opt を最大化する(PGM-index の例)

./scripts/run_experiment.sh "configs/experiments/poison_attack/inject_poisons_to_minimize_segment_length_swing_lambda_with_theta/baseline.json"

4.4 m_opt の上限(インスタンス依存の例)

./scripts/run_experiment.sh "configs/experiments/upper_bound/fix_w_per_block/baseline.json"

4.5 すべての実験を実行する(バッチ)

scripts/run_all_experiment.sh 内の実験設定の全リストを実行します(セットを変更するにはそのファイルを編集してください)。

./scripts/run_all_experiment.sh

5. プロットと表

リポジトリのルートから:

./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 で必要です。

プロジェクト構成

パス役割
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 のプロットおよび表出力スクリプト。

Docker

イメージを一度ビルドします:

./docker_build.sh
  • docker_run.sh — 対話型コンテナ:リポジトリを /workspace にマウントし、8 CPU(0–7)を割り当て、bash に入るので、手動でコマンドをビルドおよび実行できます。
  • docker_run_all.sh — デタッチ実行:コンテナ内(8 CPU)で ./scripts/run_all_experiment.sh を実行し、標準出力を results/run_all.log に書き込みます。
  • docker_run_all_single_cpu.sh — docker_run_all.sh と同じですが、シングルスレッド実行のために 1 CPU と OMP_NUM_THREADS=1 を使用します。

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

ツールをダウンロード