从Web应用程序中提取数据库访问控制策略
软件工程
2024-12-13 v2
摘要
为了保护敏感用户数据,Web开发者通常依赖隐式的访问控制策略,他们通过访问检查和查询过滤器来实现。这种临时方法容易出错,因为这些分散的检查和过滤器容易放错位置或指定错误,并且缺乏显式策略阻碍了外部访问控制实施。更关键的是,人类很难辨别应用程序代码中嵌入了什么策略以及应用程序可能访问哪些数据——随着开发团队的演变,这个问题会恶化。本文解决策略提取问题:通过总结应用程序的数据查询来提取嵌入在应用程序中的访问控制策略。提取的策略经过错误审查后,可以独立作为应用程序数据访问的规范,并且可以在代码随时间变化时强制执行以确保合规性。我们介绍了Ote,一个用于Ruby-on-Rails Web应用程序的策略提取器。Ote使用混合执行来探索应用程序的执行路径,生成SQL查询及其触发条件的轨迹。然后,它将这些轨迹合并和简化成与观察到的行为一致的最终策略。我们将Ote应用于三个真实世界的应用程序,并将提取的策略与手写策略进行比较,揭示了后者中的几个错误。
引用
@article{arxiv.2411.11380,
title = {Extracting Database Access-control Policies From Web Applications},
author = {Wen Zhang and Dev Bali and Jamison Kerney and Aurojit Panda and Scott Shenker},
journal= {arXiv preprint arXiv:2411.11380},
year = {2024}
}