
Sanitização sem retreinamento que reordena unidades de redes neurais equivalentes por permutação para destruir malware incorporado por meio de ataques de esteganografia de pesos, preservando a precisão do modelo.
Código para o artigo NeuPerm: Disrupting the Extraction of Malware Hidden in Neural Network Parameters by Leveraging Permutation Symmetry.
NeuPerm é uma etapa de sanitização de custo zero e sem retreinamento que interrompe malware oculto em pesos de modelos pré-treinados ao reordenar unidades equivalentes por permutação. A permutação deixa a computação em nível de modelo inalterada enquanto destrói payloads embutidos por ataques de esteganografia de pesos como MaleficNet e EvilModel, com custo insignificante para a acurácia do modelo.
from neu_perm.perm import permute_model
# any supported CNN (vgg11/16, resnet50/101, densenet121,
# efficientnet_b0/b4, mobilenet_v2/v3_small) or LLM (llama-3.2-1b, qwen2.5-1.5b)
sanitized_sd = permute_model("vgg16", model.state_dict())
model.load_state_dict(sanitized_sd)
Patente pendente. Licenciado apenas para uso não comercial e não derivado
(Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International) —
consulte LICENSE.
O repositório fornece um script por experimento do artigo, e os CSVs que
sustentam as tabelas e figuras do artigo estão versionados em results/.
Consulte REPRODUCTION.md para o índice
artefato-do-artigo → script/CSV e para os conjuntos de dados, modelos e
payloads que você deve fornecer por conta própria.
conda env create -n neuperm -f environment.yaml
conda activate neuperm
pip install -e .
As dependências estão fixadas para Python 3.9.18, PyTorch 2.1.0 (CUDA 11.8) e
torchvision 0.16.0, com transformers do HuggingFace para os dois LLMs; o
conjunto exato está em environment.yaml e requirements-lock.txt.
Nota: se você tem
pyenvinstalado, seus shims podem permanecer à frente do bin do conda noPATHmesmo apósconda activate. Verifique comwhich python— ele deve imprimir.../envs/neuperm/bin/python. Se retornar um caminho~/.pyenv/shims/, executepyenv shell systemprimeiro, ou invoque o binário do ambiente diretamente.
Consulte CITATION.cff.