kryptologyst/Red-Teaming-for-AI-Systems

GitHub: kryptologyst/Red-Teaming-for-AI-Systems

一个面向机器学习模型的对抗鲁棒性测试与红队评估综合框架,提供多种攻击算法、评估指标和可视化工具。

Stars: 0 | Forks: 0

# AI 系统的红队测试 这是一个用于对机器学习模型进行对抗性鲁棒性测试和红队测试的综合框架。本项目实现了多种对抗性攻击、鲁棒性评估指标以及可视化工具,旨在评估 AI 系统的安全性和可靠性。 ## ⚠️ 重要免责声明 **本工具仅供研究和教育目的使用。** 红队测试的输出可能不稳定或具有误导性,未经人工审查,不得用于受监管的决策。本工具不能替代专业的安全评估或人工判断。请始终验证结果,并充分考虑对抗性测试方法的局限性。 ## 快速入门 ### 安装说明 1. 克隆仓库: ``` git clone https://github.com/kryptologyst/Red-Teaming-for-AI-Systems.git cd Red-Teaming-for-AI-Systems ``` 2. 安装依赖项: ``` pip install -r requirements.txt # 或用于开发 pip install -e ".[dev]" ``` 3. 运行快速实验: ``` python scripts/run_experiment.py --config configs/default.yaml ``` 4. 启动交互式演示: ``` streamlit run demo/streamlit_app.py ``` ## 📁 项目结构 ``` red-teaming-ai/ ├── src/red_teaming/ # Main package │ ├── data/ # Data loading and preprocessing │ ├── models/ # Model definitions and training │ ├── attacks/ # Adversarial attack implementations │ ├── evaluation/ # Robustness evaluation metrics │ ├── visualization/ # Plotting and visualization tools │ └── utils/ # Utility functions ├── configs/ # Configuration files ├── scripts/ # Experiment scripts ├── demo/ # Interactive demo ├── tests/ # Unit tests ├── data/ # Data storage ├── assets/ # Generated plots and outputs └── docs/ # Documentation ``` ## 🔧 功能特性 ### 支持的数据集 - **鸢尾花数据集 (Iris Dataset)**:经典的分类数据集 - **合成数据 (Synthetic Data)**:可配置的合成数据集,用于测试 ### 支持的模型 - **随机森林 (Random Forest)**:具有良好可解释性的集成方法 - **逻辑回归 (Logistic Regression)**:线性基线模型 - **神经网络 (Neural Networks)**:基于 PyTorch 并具备鲁棒性特性的神经网络 - **支持向量机 (Support Vector Machines)**:基于核方法的模型 - **多层感知机 (Multi-layer Perceptrons)**:基于 Scikit-learn 的神经网络 ### 对抗性攻击 - **简单攻击**:高斯噪声、均匀噪声、类 FGSM 扰动 - **PyTorch 攻击**:FGSM、PGD、CW、DeepFool、AutoAttack(通过 torchattacks 实现) - **基于梯度的攻击**:针对具有梯度访问权限模型的自定义实现 ### 评估指标 - **准确率指标**:原始准确率与对抗准确率对比、准确率下降幅度 - **扰动分析**:L2/L∞ 范数、扰动统计 - **鲁棒性指标**:攻击成功率、鲁棒准确率 - **校准指标**:期望校准误差 (ECE)、最大校准误差 (MCE) ### 可视化工具 - 准确率对比图 - 扰动分析(分布分析、单特征分析) - 混淆矩阵(原始结果与对抗结果对比) - 鲁棒性曲线 - 校准曲线 - 排行榜可视化 ## 使用示例 ### 基础实验 ``` from red_teaming import DataLoader, ModelFactory, AttackFactory, RobustnessEvaluator # Load data data_loader = DataLoader(random_state=42) X, y, feature_names, target_names = data_loader.load_iris_dataset() X_train, X_test, y_train, y_test = data_loader.preprocess_data(X, y) # Train model model = ModelFactory.create_model("random_forest", random_state=42) robust_model = RobustModel(model, "Random Forest") robust_model.train(X_train, y_train) # Perform attack attack = AttackFactory.create_attack("gaussian", epsilon=0.1) attacker = AdversarialAttacker(robust_model.model, "Random Forest") result = attacker.perform_attack(X_test, y_test, attack) # Evaluate robustness evaluator = RobustnessEvaluator(robust_model.model, "Random Forest") robustness_report = evaluator.create_robustness_report( X_test, y_test, {"gaussian": result["X_adv"]} ) ``` ### 基于配置的实验 ``` # configs/custom.yaml data: dataset: "iris" test_size: 0.3 scale_features: true models: - name: "rf_model" type: "random_forest" params: n_estimators: 100 random_state: 42 attacks: - name: "gaussian_attack" type: "gaussian" epsilon: 0.1 ``` ``` python scripts/run_experiment.py --config configs/custom.yaml ``` ### 交互式演示 启动 Streamlit 演示进行交互式实验: ``` streamlit run demo/streamlit_app.py ``` 该演示提供: - 交互式参数调节 - 实时可视化 - 模型对比 - 详细的分析与解释 ## 测试 运行测试套件: ``` pytest tests/ ``` 运行带覆盖率报告的测试: ``` pytest --cov=src/red_teaming tests/ ``` ## 评估框架 ### 鲁棒性指标 该框架提供了全面的鲁棒性评估: 1. **基线性能**:标准分类指标 2. **对抗鲁棒性**:受攻击时的性能表现 3. **扰动分析**:对抗性扰动的统计分析 4. **校准评估**:模型置信度校准 5. **对比分析**:用于模型对比的排行榜 ### 排行榜 鲁棒性排行榜根据以下指标对模型进行排名: - 最差对抗准确率(主要指标) - 跨攻击的平均准确率下降幅度 - 校准误差 - 扰动幅度 ## 局限性与注意事项 ### 已知局限性 1. **攻击有效性**:简单的攻击可能无法反映真实世界的对抗场景 2. **数据集依赖性**:结果可能因数据集不同而有显著差异 3. **模型架构**:某些攻击仅适用于特定的模型类型 4. **计算成本**:高级攻击的计算成本可能很高 5. **可解释性**:对抗样本并不总是具有可解释性 ### 最佳实践 1. **多重攻击**:使用多种攻击类型和参数进行测试 2. **交叉验证**:使用多个随机种子和数据划分 3. **基线对比**:始终与简单的基线进行对比 4. **人工审查**:由领域专家验证结果 5. **文档记录**:记录所有实验参数和结果 ## 🛠️ 开发 ### 代码风格 本项目使用: - **Black** 进行代码格式化 - **Ruff** 进行代码检查 - **MyPy** 进行类型检查 - **Pre-commit** 钩子保证代码质量 配置开发环境: ``` pip install -e ".[dev]" pre-commit install ``` ### 贡献指南 1. Fork 本仓库 2. 创建功能分支 3. 进行修改并添加测试 4. 运行质量检查:`pre-commit run --all-files` 5. 提交 Pull Request ## 参考文献 ### 核心论文 - Goodfellow, I. J., Shlens, J., & Szegedy, C. (2014). Explaining and harnessing adversarial examples. arXiv preprint arXiv:1412.6572. - Madry, A., Makelov, A., Schmidt, L., Tsipras, D., & Vladu, A. (2017). Towards deep learning models resistant to adversarial attacks. arXiv preprint arXiv:1706.06083. - Carlini, N., & Wagner, D. (2017). Towards evaluating the robustness of neural networks. 2017 IEEE symposium on security and privacy (SP). ### 工具和库 - [torchattacks](https://github.com/Harry24k/adversarial-attacks-pytorch):PyTorch 对抗性攻击库 - [Captum](https://captum.ai/):PyTorch 的模型可解释性库 - [Adversarial Robustness Toolbox](https://github.com/Trusted-AI/adversarial-robustness-toolbox):IBM 的鲁棒性库 ## 许可证 本项目采用 MIT 许可证授权 - 详情请参见 [LICENSE](LICENSE) 文件。 ## 支持 如有问题、缺陷报告或想要贡献: - 在 GitHub 上提 Issue - 查看 `docs/` 中的文档 - 查看 `notebooks/` 中的示例 Notebook ## 更新日志 ### 版本 1.0.0 - 初始发布 - 基础对抗性攻击(高斯噪声、均匀噪声、类 FGSM) - PyTorch 攻击集成 - 综合评估框架 - 交互式 Streamlit 演示 - 鲁棒性排行榜 - 可视化工具 **请记住**:本工具仅供研究和教育目的使用。请务必验证结果,并在您的具体用例中充分考虑对抗性测试方法的局限性。 # Red-Teaming-for-AI-Systems
标签:AI可靠性评估, AI安全, Apex, Chat Copilot, CISA项目, Kubernetes, Linux系统监控, Python, Streamlit, 人工智能, 凭据扫描, 反取证, 后门攻击, 多语言支持, 安全可视化, 安全测试框架, 安全评估, 实时处理, 密码管理, 对抗攻击, 敏感信息检测, 数据展示, 数据科学与机器学习, 无后门, 机器学习, 模型安全, 模型规避, 深度学习, 用户模式Hook绕过, 红队, 红队评估, 网络安全, 访问控制, 逆向工具, 隐私保护, 鲁棒性测试