threat_model_fvp_r.rst 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. fvp_r-Platform Threat Model
  2. ***************************
  3. ************************
  4. Introduction
  5. ************************
  6. This document provides a threat model for TF-A fvp_r platform.
  7. ************************
  8. Target of Evaluation
  9. ************************
  10. In this threat model, the target of evaluation is the fvp_r platform of Trusted
  11. Firmware for A-class Processors (TF-A). The fvp_r platform provides limited
  12. support of AArch64 R-class Processors (v8-R64).
  13. This is a delta document, only pointing out differences from the general TF-A
  14. threat-model document, :ref:`Generic Threat Model`
  15. BL1 Only
  16. ========
  17. The most fundamental difference between the threat model for the current fvp_r
  18. implementation compared to the general TF-A threat model, is that fvp_r is
  19. currently limited to BL1 only. Any threats from the general TF-A threat model
  20. unrelated to BL1 are therefore not relevant to the fvp_r implementation.
  21. The fvp_r BL1 implementation directly loads a customer/partner-defined runtime
  22. system. The threat model for that runtime system, being partner-defined, is
  23. out-of-scope for this threat-model.
  24. Relatedly, all exceptions, synchronous and asynchronous, are disabled during BL1
  25. execution. So, any references to exceptions are not relevant.
  26. EL3 is Unsupported and All Secure
  27. =================================
  28. v8-R64 cores do not support EL3, and (essentially) all operation is defined as
  29. Secure-mode. Therefore:
  30. - Any threats regarding NS operation are not relevant.
  31. - Any mentions of SMCs are also not relevant.
  32. - Anything otherwise-relevant code running in EL3 is instead run in EL2.
  33. MPU instead of MMU
  34. ==================
  35. v8-R64 cores, running in EL2, use an MPU for memory management, rather than an
  36. MMU. The MPU in the fvp_r implementation is configured to function effectively
  37. identically with the MMU for the usual BL1 implementation. There are
  38. memory-map differences, but the MPU configuration is functionally equivalent.
  39. No AArch32 Support
  40. ==================
  41. Another substantial difference between v8-A and v8-R64 cores is that v8-R64 does
  42. not support AArch32. However, this is not believed to have any threat-modeling
  43. ramifications.
  44. Threat Assessment
  45. =================
  46. For this section, please reference the Threat Assessment under the general TF-A
  47. threat-model document, :ref:`Generic Threat Model`
  48. The following threats from that document are still relevant to the fvp_r
  49. implementation:
  50. - ID 01: An attacker can mangle firmware images to execute arbitrary code.
  51. - ID 03: An attacker can use Time-of-Check-Time-of-Use (TOCTOU) attack to
  52. bypass image authentication during the boot process.
  53. - ID 04: An attacker with physical access can execute arbitrary image by
  54. bypassing the signature verification stage using clock- or power-glitching
  55. techniques.
  56. - ID 05: Information leak via UART logs such as crashes
  57. - ID 06: An attacker can read sensitive data and execute arbitrary code
  58. through the external debug and trace interface.
  59. - ID 08: Memory corruption due to memory overflows and lack of boundary
  60. checking when accessing resources could allow an attacker to execute
  61. arbitrary code, modify some state variable to change the normal flow of
  62. the program, or leak sensitive.
  63. - ID 11: Misconfiguration of the Memory Protection Unit (MPU) may allow
  64. normal world software to access sensitive data or execute arbitrary code.
  65. Arguably, MPUs having fewer memory regions, there may be a temptation to
  66. share memory regions, making this a greater threat. However, since the
  67. fvp_r implementation is limited to BL1, since BL1's regions are fixed,
  68. and since the MPU configuration is equivalent with that for the fvp
  69. platform and others, this is not expected to be a concern.
  70. - ID 15: Improper handling of input data received over a UART interface may
  71. allow an attacker to tamper with TF-A execution environment.
  72. --------------
  73. *Copyright (c) 2021-2023, Arm Limited. All rights reserved.*