Implementing a security mechanism on top of APIs requires clear understanding of the semantics of each API, to ensure that security entitlements are enforced consistently and completely across all APIs that could perform the same function for an attacker. Unfortunately, APIs are not designed to be "semantically orthogonal" and they often overlap, for example by offering different performance points for the same functionality. This leaves it to the security mechanism to discover and account for API proxies, i.e., groups of APIs which together approximate the functionality of some other API. Lacking a complete view of the structure of the API-proxy relationship, current security mechanisms address it in an ad-hoc and reactive manner, by updating the implementation when new API proxies are uncovered and abused by attackers. We analyze the problem of discovering API-proxy relationships and show that its complexity makes it NP-complete, which makes computing exact information about API proxies prohibitively expensive for modern API surfaces that consist of tens of thousands of APIs. We then propose a simple heuristic algorithm to approximate the same API-proxy information and argue that this overapproximation can be safely used for security purposes, with only the downside of some utility loss. We conclude with a number of open problems of both theoretical and practical interest and with potential directions towards new solutions for the API-proxy problem.
翻译:在API上实施安全机制需要明确理解每个API的语义,以确保所有能够对攻击者履行相同功能的API都一致和彻底地执行安全应享权利,确保在所有能够对攻击者履行相同功能的API上实施一致和完全地执行安全应享权利。不幸的是,API不是设计成“模拟正反向”的,而且往往重叠,例如为同一功能提供不同的性能点。这就让安全机制发现和核算API的代理问题,即与某些其他API功能相近的AIPI集团,从而发现和核算API的代理问题。缺乏对API-代理关系结构的完整了解,目前的安全机制以临时和被动的方式解决这个问题,在攻击者发现和滥用新的API流动时更新执行程序。我们分析了发现API-代理关系的问题,并表明其复杂性使得NP-完整的问题,这使得有关API的准确信息过于昂贵,现代API表面有成千上万个AIPI的功能。我们随后建议采用一种简单的超常代性安全算法,用AIPI-primal dalationalalationalationalistial missional made made made made made made made made made made messationalsuballationalside ex ex ex ex ex ex ex ex asildal ex ex</s>