当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Inductive verification of data model invariants in web applications using first-order logic
Automated Software Engineering ( IF 2.0 ) Pub Date : 2018-12-12 , DOI: 10.1007/s10515-018-0249-2
Ivan Bocić , Tevfik Bultan , Nicolás Rosner

Modern software applications store their data in remote cloud servers. Users interact with these applications using web browsers or thin clients running on mobile devices. A key concern for these applications is the correctness of the actions that update the data store, which are triggered by user requests. Considering that modern applications store and manage data for millions (even billions) of users, misuse or loss of user data can have catastrophic consequences. In this paper, we focus on automated discovery of data store bugs in applications that use development frameworks that are RESTful, enforce the Model–View–Controller architecture, and use Object Relational Mapping libraries to manipulate data. We present a formal data model for data stores and data store manipulation in such applications. We have developed a framework for verification of data models via translation to First Order Logic (FOL), followed by automated theorem proving. Due to the undecidability of FOL, this automated approach does not always produce a conclusive answer. We investigate the use of many-sorted logic in data model verification in order to improve the effectiveness of this approach. Many-sorted logic allows us to specify type information explicitly, thus lightening the burden of reasoning about type information during theorem proving. Our experimental results demonstrate that our verification approach is scalable to real-world web applications and is able to detect bugs in them.

中文翻译:

使用一阶逻辑对 Web 应用程序中的数据模型不变量进行归纳验证

现代软件应用程序将其数据存储在远程云服务器中。用户使用 Web 浏览器或在移动设备上运行的瘦客户端与这些应用程序进行交互。这些应用程序的一个关键问题是更新数据存储的操作的正确性,这些操作由用户请求触发。考虑到现代应用程序为数百万(甚至数十亿)用户存储和管理数据,滥用或丢失用户数据可能会带来灾难性后果。在本文中,我们专注于自动发现使用 RESTful 开发框架、实施模型-视图-控制器架构并使用对象关系映射库来操作数据的应用程序中的数据存储错误。我们为此类应用程序中的数据存储和数据存储操作提供了一个正式的数据模型。我们开发了一个框架,用于通过转换为一阶逻辑 (FOL) 来验证数据模型,然后是自动定理证明。由于 FOL 的不确定性,这种自动化方法并不总能产生决定性的答案。我们研究了多分类逻辑在数据模型验证中的使用,以提高这种方法的有效性。多排序逻辑允许我们明确指定类型信息,从而减轻在定理证明过程中推理类型信息的负担。我们的实验结果表明,我们的验证方法可扩展到现实世界的 Web 应用程序,并且能够检测其中的错误。这种自动化方法并不总能得出结论性的答案。我们研究了多分类逻辑在数据模型验证中的使用,以提高这种方法的有效性。多排序逻辑允许我们明确指定类型信息,从而减轻在定理证明过程中推理类型信息的负担。我们的实验结果表明,我们的验证方法可扩展到现实世界的 Web 应用程序,并且能够检测其中的错误。这种自动化方法并不总能得出结论性的答案。我们研究了多分类逻辑在数据模型验证中的使用,以提高这种方法的有效性。多排序逻辑允许我们明确指定类型信息,从而减轻在定理证明过程中推理类型信息的负担。我们的实验结果表明,我们的验证方法可扩展到现实世界的 Web 应用程序,并且能够检测其中的错误。
更新日期:2018-12-12
down
wechat
bug