Cascading and Proxy Membership Inference Attack (NDSS 2026)
August 17, 2025 · View on GitHub
This repository contains the official implementation of two novel membership inference attacks (MIAs) presented in our NDSS 2026 paper:
- CMIA (Cascading Membership Inference Attack): An adaptive attack that incorporates membership dependencies through iterative cascading rounds
- PMIA (Proxy Membership Inference Attack): A non-adaptive attack that uses proxy data for likelihood ratio testing
Overview
CMIA: Cascading Membership Inference Attack
CMIA is a new attack-agnostic framework that leverages membership dependencies for attacks. The attack operates through multiple cascading iterations, where each round uses memberships from previous rounds to improve attack performance.
Key Features:
- Iterative Cascading: Multiple rounds of attack with membership information propagation
- Anchor-based Training: Uses high-confidence predictions as anchors for conditional shadow model training
- Adaptive Thresholding: Dynamically determines positive and negative thresholds using reference models
- Membership Dependencies: Incorporates relationships between sample membership statuses
PMIA: Proxy Membership Inference Attack
PMIA is a non-adaptive attack that uses proxy data to perform likelihood ratio testing without requiring access to the target model's training data distribution.
Key Features:
- Proxy-based Approach: Uses adversary's own data as proxy for likelihood ratio computation
- Multiple Proxy Variants:
- Global Proxy: Uses all adversary's data as a single proxy
- Class-based Proxy: Uses same-class instances as proxy
- Instance-based Proxy: Uses similar instances as proxy
- Non-adaptive: Does not require access to the target model's training data for shadow training
Code Architecture
CMIA Framework
CMIA/
├── run_shadow.py # Shadow model training
├── run_anchor.py # Anchor generation and threshold determination
├── run_attack.py # Main attack execution
├── shadow.py # Shadow model implementation
├── anchor.py # Anchor-based training logic
├── attacks/ # Attack implementations
├── config/ # Configuration files for different datasets
├── models/ # Neural network architectures
└── utils/ # Utility functions
PMIA Framework
PMIA/
├── run_shadow.py # Shadow model training
├── run_attack.py # Main attack execution
├── shadow.py # Shadow model implementation
├── attack.py # Attack orchestration
├── attacks/ # Attack implementations
├── config/ # Configuration files
├── models/ # Neural network architectures
└── utils/ # Utility functions
Usage
CMIA (Cascading Membership Inference Attack)
CMIA operates through multiple cascading rounds. Each round consists of three main steps:
1. Shadow Model Training
cd CMIA
# Train shadow models for the current round
python run_shadow.py --dataset cifar10 --cur_round 1
2. Anchor Generation and Threshold Determination
# Generate anchors and determine thresholds for the next round
python run_anchor.py --dataset cifar10 --cur_round 1 --attack lira
3. Attack Execution
# Run the attack for the current round
python run_attack.py --dataset cifar10 --cur_round 1 --attack lira
# Continue for additional rounds...
PMIA (Proxy Membership Inference Attack)
PMIA requires shadow model training followed by attack execution with different proxy variants:
1. Shadow Model Training
cd PMIA
# Train shadow models
python run_shadow.py --dataset cifar10
2. Attack Execution
Choose one of the three proxy variants:
# Global proxy (using all adversary's data)
python run_attack.py --dataset cifar10 --attack pglobal
# Class-based proxy (using same class instances)
python run_attack.py --dataset cifar10 --attack pclass
# Instance-based proxy (using similar instances)
python run_attack.py --dataset cifar10 --attack pinstance
Configuration
Dataset Configuration
Both frameworks support multiple datasets through configuration files:
cifar10.yml: CIFAR-10 dataset configurationcifar100.yml: CIFAR-100 dataset configurationmnist.yml: MNIST dataset configurationfmnist.yml: Fashion-MNIST dataset configuration
Citation
Please cite our paper if our work is useful for your research:
@inproceedings{du2026cascading,
title={Cascading and Proxy Membership Inference Attack},
author={Du, Yuntao and Li, Jiacheng and Chen, Yuetian and Zhang, Kaiyuan and Yuan, Zhizhen and Xiao, Hanshen and Ribeiro, Bruno and Li, Ninghui},
booktitle={Proceedings of the Network and Distributed System Security Symposium (NDSS)},
year={2026}
}