
Assainissement sans réentraînement qui réordonne les unités de réseau neuronal équivalentes par permutation afin de détruire les malwares intégrés via des attaques de stéganographie par poids, tout en préservant la précision du modèle.
Code pour l'article NeuPerm: Disrupting the Extraction of Malware Hidden in Neural Network Parameters by Leveraging Permutation Symmetry.
NeuPerm est une étape d'assainissement à coût nul et sans réentraînement qui perturbe les malwares cachés dans les poids de modèles pré-entraînés en réordonnant les unités équivalentes par permutation. La permutation laisse le calcul au niveau du modèle inchangé tout en détruisant les charges utiles intégrées par des attaques de stéganographie par poids telles que MaleficNet et EvilModel, à un coût négligeable pour la précision du modèle.
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)
Brevet en instance. Sous licence pour un usage non commercial et sans dérivés uniquement (Creative
Commons Attribution-NonCommercial-NoDerivatives 4.0 International) — voir
LICENSE.
Le dépôt fournit un script par expérience de l'article, et les CSV qui étayent
les tableaux et figures de l'article sont versionnés sous results/. Voir
REPRODUCTION.md pour l'index artefact d'article → script/CSV
et pour les jeux de données, modèles et charges utiles que vous devez fournir vous-même.
conda env create -n neuperm -f environment.yaml
conda activate neuperm
pip install -e .
Les dépendances sont épinglées pour Python 3.9.18, PyTorch 2.1.0 (CUDA 11.8) et
torchvision 0.16.0, avec HuggingFace transformers pour les deux LLM ; l'ensemble exact
se trouve dans environment.yaml et requirements-lock.txt.
Note : si vous avez
pyenvinstallé, ses shims peuvent rester devant le bin de conda sur lePATHmême aprèsconda activate. Vérifiez avecwhich python— il devrait afficher.../envs/neuperm/bin/python. S'il renvoie un chemin~/.pyenv/shims/, exécutez d'abordpyenv shell system, ou invoquez directement le binaire de l'environnement.
Voir CITATION.cff.