ARM-software/PAF

GitHub: ARM-software/PAF

ARM官方的物理攻击学习框架,用于研究故障注入和侧信道攻击原理并帮助加固代码防御能力。

Stars: 26 | Forks: 6

.. SPDX-FileCopyrightText: Copyright 2021,2022,2024,2025 Arm Limited and/or its affiliates SPDX-License-Identifier: Apache-2.0 根据 Apache 许可证 2.0 版(“许可证”)获得许可; 除非遵守许可证,否则您不得使用此文件。 您可以在以下网址获取许可证副本: ``` http://www.apache.org/licenses/LICENSE-2.0 ``` 除非适用法律要求或书面同意,否则根据许可证分发的软件 均按“原样”提供, 不附带任何明示或暗示的担保或条件。 请参阅许可证以了解许可证下的特定语言管理权限和 限制。 此文件是 PAF(Physical Attack Framework)的一部分。 |BadgeLicence| |CIUbuntu2204| |CIUbuntu2404| |CImacOS14| |CImacOS15| .. |BadgeLicence| image:: https://img.shields.io/github/license/ARM-software/PAF :alt: PAF 许可证 :target: https://github.com/ARM-software/PAF/blob/main/LICENSE.txt .. |CIUbuntu2204| image:: https://github.com/ARM-software/PAF/actions/workflows/ubuntu-2204.yml/badge.svg :alt: Ubuntu 22.04 上的最新构建状态 (x86 & arm 架构) :target: https://github.com/ARM-software/PAF/actions/workflows/ubuntu-2204.yml .. |CIUbuntu2404| image:: https://github.com/ARM-software/PAF/actions/workflows/ubuntu-2404.yml/badge.svg :alt: Ubuntu 24.04 上的最新构建状态 (x86 & arm 架构) :target: https://github.com/ARM-software/PAF/actions/workflows/ubuntu-2404.yml .. |CImacOS14| image:: https://github.com/ARM-software/PAF/actions/workflows/macos-14.yml/badge.svg :alt: macOS Sonoma 上的最新构建状态 (arm 架构) :target: https://github.com/ARM-software/PAF/actions/workflows/macos-14.yml .. |CImacOS15| image:: https://github.com/ARM-software/PAF/actions/workflows/macos-15.yml/badge.svg :alt: macOS Sequoia 上的最新构建状态 (arm 架构) # :target: https://github.com/ARM-software/PAF/actions/workflows/macos-15.yml # PAF,Physical Attack Framework 欢迎使用 PAF!PAF 是一套工具和库,用于学习物理攻击(例如故障注入和侧信道攻击),并有望帮助加强代码库以抵御这些威胁。 # 需求 要从源代码构建 PAF,您需要一个兼容 C++17 的 C++ 编译器, 以及 `CMake `_。 PAF 的大量工具假定您至少可以访问 Tarmac traces。这些是程序执行的详细追踪,它们由许多 Arm 产品生成,例如 CPU 的软件模型(例如 FastModel)。 PAF 具备直接驱动 FastModel 并执行多项分析的能力。为了使用此功能,您需要拥有访问 `FastModel `_ 的权限 # 构建 构建 PAF 最简单的方法是: .. code-block:: bash $ cmake -S . -B build $ cmake --build build 一种稍微进阶的构建和测试 PAF 的方法是:使用 ``clang`` 编译器、``Ninja`` 构建系统,在带有调试信息的发布模式下构建,并生成 ``compile_commands.json`` 文件,如下所示: .. code-block:: bash $ CC=clang CXX=clang++ cmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \ -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON $ ln -s build/compile_commands.json . $ ninja -C build/ $ ninja -C build/ check # 测试 PAF 包含单元测试和应用程序级测试。单元测试可以使用 ``test`` 目标执行,无需外部依赖。 应用程序级测试则完全不同,因为它需要访问交叉编译器和 FastModel。如果您有权使用它们,``CMake`` 可以使用以下命令为您设置测试环境: .. code-block:: bash $ CC=clang CXX=clang++ cmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \ -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON \ -DFVP_MODEL_DIR:PATH=/opt/FastModels/11.12/FVP_MPS2_Cortex-M3_CC312/models/Linux64_GCC-6.4/FVP_MPS2_Cortex-M3_CC312 \ -DFVP_PLUGINS_DIR:PATH=/opt/FastModels/11.12/FastModelsPortfolio_11.12/plugins/Linux64_GCC-6.4 \ -DARM_GCC_INSTALL_DIR:PATH=/opt/gcc-arm-none-eabi-10-2020-q4-major # 使用与文档 有关 PAF 及其提供的工具和如何使用它们的更多信息,请参阅 `主文档 `_。 # 许可证 PAF 在 `Apache v2.0 许可证 `_ 下分发。 # 第三方软件 PAF 使用了未包含在 PAF 源代码存储库中的第三方软件。PAF 的配置和构建系统 `CMake` 会自动下载、配置和构建这些第三方软件。由于每个第三方软件都有其特定的许可证,您必须检查它们的许可证是否符合您的特定要求。 PAF 所需的第三方软件包括: - `tarmac-trace-utilities `_, 在 https://github.com/ARM-software/tarmac-trace-utilities/blob/main/LICENSE.txt 下获得许可, 该库为 PAF 提供了高效处理 tarmac traces 的基础。 - `pyyaml `_、 `pyelftools `_ 和 `tqdm `_,被 ``run-model.py`` 及其辅助工具使用。 - `GoogleTest `_, 在 https://github.com/google/googletest/blob/main/LICENSE 下获得许可, 是 PAF 使用的单元测试框架。 - `numpy `_,在 https://github.com/numpy/numpy/blob/main/LICENSE.txt 下获得许可, 被某些单元测试使用。 其他可以通过 PAF 的配置和构建系统选择性地与 PAF 一起使用的第三方软件: - `GTKWave `_:PAF 使用 ``fstapi`` 来支持 ``fst`` 文件,如同 ``GTKWave`` 在 ``src/helpers/fst`` 文件夹中发布的那样。引用 GTKWave 的 `LICENSE.txt` 文件中的话: ``src/helpers`` 中的转储文件处理源代码在 MIT 许可证下授权,以促进更广泛的重用。 默认情况下,CMake 会使用 `fstapi`。但是,可以在配置时通过传递 ``-DWITH_GTKWAVE_FST_SUPPORT:BOOL=OFF`` 来禁用它,以放弃对 `fst` 文件格式的支持。 # 安全 要报告此项目中的安全漏洞,请遵循 `安全策略 `_ 中的指导。 # 反馈、贡献与支持 请使用与此存储库关联的 GitHub issue 跟踪器提供反馈。 非常欢迎代码贡献。请确保它们遵循 PAF 其余代码中使用的风格,并通过 GitHub pull requests 提交。
标签:ARM架构, Bash脚本, CISA项目, CTF训练, 侧信道分析, 信息安全教学, 密码学攻击, 嵌入式安全, 开源安全工具, 故障注入攻击, 旁路攻击, 漏洞分析, 物理攻击框架, 白盒密码学, 硬件安全, 网络安全, 网络安全教育, 芯片安全, 路径探测, 逆向工具, 逆向工程平台, 隐私保护