Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Priv-QDNN — Código de pesquisa para avaliação de privacidade de redes neurais quantizadas: treina modelos alvo/sombra sob PTQ/QAT e executa ataques de inferência de associação (MIA, RMIA, caixa branca) com defesas de DP. | Kitploit
Ferramentas/GitHubGitHub/jefffffffu/priv-qdnn
PrivacidadeAprendizado de MáquinaPapers e PesquisaAprendizado e EducaçãoSegurança de IA
GitHubjefffffffu/priv-qdnn

Priv-QDNN

Código de pesquisa para avaliação de privacidade de redes neurais quantizadas: treina modelos alvo/sombra sob PTQ/QAT e executa ataques de inferência de associação (MIA, RMIA, caixa branca) com defesas de DP.

Ver Repositório
1há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Priv-QDNN

Este repositório contém uma base de código de pesquisa para avaliação de privacidade de redes neurais profundas quantizadas. Ele oferece suporte ao treinamento de modelos target/shadow sob configurações comuns de quantização pós-treinamento (PTQ) e treinamento ciente de quantização (QAT), salvando recursos intermediários de ataque em disco e executando um conjunto de ataques e métricas relacionados à inferência de associação (por exemplo, MIA, RMIA, WhiteBoxMIA, WhiteBoxMIA_Partial). A base de código também integra caminhos de treinamento com privacidade diferencial baseados em Opacus para modelos defendidos (por exemplo, variantes dropout / DP / adversariais nos scripts de exemplo fornecidos).

O fluxo de trabalho de avaliação é dividido em dois estágios: (1) treinamento (--training target|shadow|both) para materializar artefatos em save/<attack_method>/..., e (2) avaliação somente de ataque (--training None) que carrega posteriores/modelos salvos e reporta métricas em result/<attack_method>/....

Instalação

Você precisa de uma máquina com suporte a GPU NVIDIA para experimentos típicos. Recomendamos wheels de CUDA 12.1 para PyTorch (veja os comandos abaixo). Use Python 3.10 para corresponder às versões fixadas em requirements.txt.

Você pode instalar a maioria dos requisitos com:

conda create --name priv-qdnn python=3.10
conda activate priv-qdnn
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121

Notas:

  • Para PyTorch somente CPU, execute pip install -r requirements.txt sem --extra-index-url (wheels de CPU do PyPI, se disponíveis para a sua plataforma).
  • Se você usar os caminhos de quantização AdaRound / AIMET, precisará de uma instalação funcional do aimet-torch (veja quantization/PTQ/adaround.py). Se o pip não conseguir resolver o aimet-torch na sua plataforma, siga primeiro as instruções de instalação do Qualcomm AIMET e depois instale as dependências restantes.

Datasets

Os datasets não estão incluídos neste repositório. Quatro são suportados, e eles diferem na quantidade de configuração necessária.

CIFAR-100 e CINIC-10 (automático)

Ambos são obtidos no primeiro uso em data/, então nenhuma etapa manual é necessária — apenas certifique-se de que a máquina tenha acesso à rede na primeira vez que executar um experimento.

  • CIFAR-100 é baixado por torchvision.datasets.CIFAR100(..., download=True) em data/load_data.py.
  • CINIC-10 é baixado e extraído por fetch_cinic10() em data/cinic10.py a partir do espelho Edinburgh DataShare. É um arquivo grande, então reserve tempo e espaço em disco para a primeira execução.

Texas100 e Location (manual)

Estes dois não têm downloader automático. Obtenha os arquivos brutos, descompacte-os em data/<dataset>/raw/ e então converta-os para os arquivos .npy que os loaders esperam.

DatasetArquivo bruto
Texas100https://www.comp.nus.edu.sg/~reza/files/dataset_texas.tgz
Locationhttps://github.com/privacytrustlab/datasets (o conjunto location)

Layout esperado após a descompactação:

data/texas/raw/texas/100/feats
data/texas/raw/texas/100/labels
data/location/raw/bangkok

Em seguida, construa as divisões de treino/teste:

python data/prepare_tabular.py --dataset both

--dataset aceita texas, location ou both. Use --raw_root para apontar para um local diferente (padrão data/<dataset>/raw), e --test_size / --seed para alterar a divisão (padrões 0.2 e 41).

Isso grava os arquivos que data/tabular_datasets.py carrega:

data/<dataset>/{train_feats,train_labels,test_feats,test_labels}.npy

Se esses arquivos .npy estiverem ausentes, qualquer execução usando --dataset_name texas ou --dataset_name location falha com um FileNotFoundError que indica o caminho ausente.

Estrutura do Código do Priv-QDNN

  • attack: implementações de ataques e pontos de entrada de avaliação (MIA, RMIA, WhiteBox_MIA, etc.).
  • training: loops de treinamento de target/shadow e variantes de treinamento defendidas (ramificações DP / adversariais, utilitários).
  • model: definições de modelos e wrappers usados pelo treinamento e pelos ataques.
  • quantization: pipelines e auxiliares de quantização PTQ/QAT (incluindo a integração com AIMET AdaRound).
  • data: auxiliares de download de conjuntos de dados, scripts de preparação e wrappers de Dataset do PyTorch.
  • dp: utilitários de privacidade diferencial usados pelos caminhos de treinamento DP.
  • example: scripts shell para experimentos de ponta a ponta (coleta de dados de MIA + avaliação apenas de ataque / defesas).
  • experiment: estudos mecanísticos por trás da análise do artigo — pontuações de memorização no estilo LOOD (memorization.py) e as tabelas de quantização de norma de gradiente (grad_norm_quantization_table.py, grad_norm_range_normalized_table.py).
  • plot: geração de figuras e tabelas para o artigo; os PDFs e CSVs de saída ficam em plot/figures/.
  • main.py: ponto de entrada unificado da CLI (--training alterna entre os modos de treinamento e apenas de ataque).
  • parameter_parser.py: todos os argumentos de linha de comando e valores padrão.
  • extract_last_layer_grad_norm.py: normas L2 por amostra do gradiente do classificador da última camada para os subconjuntos de membros e não membros, reutilizadas pelas tabelas de experiment/.

Experimentos de Demonstração

Coleta de dados de inferência de associação + MIA apenas de ataque (CIFAR-100)

O padrão a seguir corresponde ao fluxo de trabalho pretendido do repositório: treinar com MIA para popular save/MIA/..., depois executar MIA com --training None.

# Stage 1: train target + shadow and save MIA artifacts
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --training both \
  --num_epochs 50 --trials 3 \
  --device cuda:0

# Stage 2: attack-only MIA evaluation (confidence threshold attack only)
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --compleaknr_attacks confidence \
  --training None \
  --trials 3 \
  --device cuda:0

Para cada execução de ataque, o console imprimirá o progresso da implementação de ataque correspondente (por exemplo, métricas por tentativa para MIA; execuções somente de ataque são salvas em result/MIA/...).

Escolhendo quais ataques de caixa-preta executar

--compleaknr_attacks controla a entrada MIA somente de ataque:

  • confidence — executa apenas o ataque de limiar de confiança. Ele consome apenas as posteriores salvas, portanto é rápido e não precisa de arquivos de modelo.
  • all (o padrão do argumento) — executa todas as seis variantes de caixa-preta: limiar de confiança, limiar de entropia, entropia modificada, dois ataques baseados em treino (LR/RF sobre posteriores, e sobre posteriores mais rótulo) e SAMIA.

Observe que os dois modos têm requisitos diferentes. As primeiras cinco variantes leem apenas as posteriores salvas, mas SAMIA carrega adicionalmente os modelos alvo e shadow salvos de save/MIA/.../target/<trial>/model.pth e save/MIA/.../shadow/0/model.pth e os consulta em entradas perturbadas para estimar a sensibilidade da saída. Isso ainda é caixa-preta no sentido de que apenas as saídas do modelo são usadas — sem gradientes ou ativações internas — mas requer que esses checkpoints estejam presentes, e é consideravelmente mais lento.

Se você omitir --compleaknr_attacks, todos os seis serão executados. Passe confidence explicitamente, como acima, quando quiser apenas o caminho rápido ou quando os checkpoints do modelo não estiverem disponíveis.

Scripts em lote (defesa + MIA)

Baixar ferramenta