API安全:威胁建模、认证与授权全解析
1. API安全威胁建模
在API安全领域,威胁建模是一项至关重要的工作。它能帮助我们识别和评估API系统可能面临的各种威胁,从而采取有效的措施来保障系统的安全。
1.1 安全指令强化
API端点的请求可能包含任意负载,包括头部和数据负载。攻击者可能会添加未知、错误或格式错误的头部和数据,试图获取访问权限或破坏系统。为了减轻这种风险,我们可以采取以下措施:
- 实施HTTP头部白名单 :在API网关中设置允许的HTTP头部列表,移除所有无效的头部。例如,攻击者可能会发送额外的HTTP头部,如 X-Assert-Role=Admin
或 X-Impersonate=Admin
,希望这些头部不被移除并被内部使用,从而获得额外的权限。通过设置白名单,可以有效防止此类攻击。
1.2 评估威胁风险
当我们完成威胁建模并列出一系列威胁后,了解修复这些威胁的优先级至关重要。我们可以使用DREAD方法来评估威胁,这是一种定性的风险计算方法,基于以下几个方面进行评分:
| 类别 | 描述 |
| — | — |
| 损害(Damage) | 攻击造成的危害程度如何? |
| 可重复性(Reproducibility) | 攻击是否容易被重复? |
| 可利用性(Exploitability) | 发起成功攻击的难易程度如何? |
| 受影响用户(Affected Users) | 有多少用户会受到影响? |
| 可发现性(Discov