API 代理问题的形式化分析
密码学与安全
2023-02-28 v1
摘要
在 API 之上实现安全机制需要清晰理解每个 API 的语义,以确保安全权限在所有可能为攻击者执行相同功能的 API 上被一致且完整地实施。遗憾的是,API 并非设计为“语义正交”,它们常常重叠,例如为同一功能提供不同的性能点。这使得安全机制必须发现并考量 API 代理(API proxies),即一组共同近似某一其他 API 功能的 API。由于缺乏 API 代理关系结构的完整视图,当前安全机制以临时且被动的方式应对,即在新的 API 代理被揭露并遭攻击者滥用时更新实现。我们分析了发现 API 代理关系的问题,并证明其复杂性为 NP 完全,这使得对由数万 API 构成的现代 API 面计算精确的 API 代理信息代价过高。随后我们提出一种简单启发式算法来近似相同的 API 代理信息,并论证该过近似可安全用于安全目的,仅有的代价是部分效用损失。最后我们给出若干兼具理论与实际意义的开放问题,以及解决 API 代理问题的潜在新方向。
引用
@article{arxiv.2302.13525,
title = {Formal Analysis of the API Proxy Problem},
author = {Somesh Jha and Mihai Christodorescu and Anh Pham},
journal= {arXiv preprint arXiv:2302.13525},
year = {2023}
}