Skip to content

Security: whitea133/msutils

Security

SECURITY.md

AI Security Module - msutils

MindSpore AI 安全工具箱,让对抗样本研究更简单

本模块提供完整的 AI 安全工具,包括对抗攻击、防御方法和鲁棒性评估。

🚀 快速开始

安装

pip install msutils

对抗攻击

from msutils.security import FGSM, PGD
from mindspore import Model

# 创建攻击
attack = FGSM(model, epsilon=0.03)

# 生成对抗样本
adversarial_images = attack.generate(images, labels)

防御方法

from msutils.security import AdversarialTraining, InputTransformation

# 对抗训练
defender = AdversarialTraining(model, attack)
defender.train(train_dataset, epochs=10)

# 输入变换防御
transforms = [RandomHorizontalFlip(), RandomCrop()]
defender = InputTransformation(model, transforms)

鲁棒性评估

from msutils.security import evaluate_robustness, auto_attack

# 单一攻击评估
results = evaluate_robustness(model, test_dataset, attack)

# 多攻击自动评估
results = auto_attack(model, test_dataset)

📦 模块列表

攻击模块 (msutils.security.attacks)

类名 说明 论文
FGSM 快速梯度符号攻击 Goodfellow et al., 2014
PGD 投影梯度下降攻击 Madry et al., 2017
BIM 基础迭代攻击 Kurakin et al., 2016
CW Carlini-Wagner 攻击 Carlini & Wagner, 2017
DeepFool DeepFool 攻击 Moosavi-Dezfooli et al., 2016

防御模块 (msutils.security.defenses)

类名 说明
AdversarialTraining 对抗训练
InputTransformation 输入变换防御
Randomization 随机化防御
GaussianNoise 高斯噪声防御

评估模块 (msutils.security.evaluation)

函数名 说明
evaluate_robustness 评估模型鲁棒性
auto_attack 自动多攻击评估
perturbation_analysis 扰动分析
compute_adversarial_distance 计算对抗距离
certify_robustness 认证鲁棒性

📊 使用示例

完整示例:评估模型鲁棒性

import mindspore
from mindspore import nn, Model
from msutils.security import FGSM, evaluate_robustness

# 1. 创建模型
model = YourModel()

# 2. 创建攻击
attack = FGSM(model, epsilon=0.03)

# 3. 评估
results = evaluate_robustness(
    model=model,
    test_dataset=test_dataset,
    attack=attack,
    num_samples=1000
)

# 4. 查看结果
print(f"Clean accuracy: {results['clean_accuracy']:.2%}")
print(f"Adversarial accuracy: {results['adversarial_accuracy']:.2%}")

对抗训练示例

from msutils.security import PGD, AdversarialTraining

# 创建 PGD 攻击
pgd_attack = PGD(model, epsilon=0.03, alpha=0.01, steps=10)

# 创建对抗训练器
defender = AdversarialTraining(
    model=model,
    attack=pgd_attack,
    epsilon=0.03
)

# 训练
defender.train(train_dataset, epochs=10)

多攻击评估示例

from msutils.security import auto_attack

# 自动评估多种攻击
results = auto_attack(
    model=model,
    test_dataset=test_dataset,
    epsilon=0.03,
    num_samples=1000
)

# 打印结果
for attack_name, metrics in results.items():
    print(f"{attack_name}:")
    print(f"  Clean: {metrics['clean_accuracy']:.2%}")
    print(f"  Adversarial: {metrics['adversarial_accuracy']:.2%}")

🎓 学术用途

如果你在学术研究中使用了 msutils,请引用:

@software{msutils2026,
  title = {msutils: MindSpore Development Toolkit},
  author = {whitea133},
  year = {2026},
  url = {https://github.com/whitea133/msutils}
}

📚 相关论文

  1. FGSM: Explaining and Harnessing Adversarial Examples
  2. PGD: Towards Deep Learning Models Resistant to Adversarial Attacks
  3. CW: Towards Evaluating the Robustness of Neural Networks
  4. DeepFool: DeepFool: A Simple and Accurate Method to Fool Deep Neural Networks

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📝 许可

MIT License

There aren't any published security advisories