首页> 外文OA文献 >An executable formal semantics of PHP with applications to program analysis
【2h】

An executable formal semantics of PHP with applications to program analysis

机译:pHp的可执行形式语义,带有用于程序分析的应用程序

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Nowadays, many important activities in our lives involve the web. However, the software and protocols on which web applications are based were not designed with the appropriate level of security in mind. Many web applications have reached a level of complexity for which testing, code reviews and human inspection are no longer sufficient quality-assurance guarantees. Tools that employ static analysis techniques are needed in order to explore all possible execution paths through an application and guarantee the absence of undesirable behaviours. To make sure that an analysis captures the properties of interest, and to navigate the trade-offs between efficiency and precision, it is necessary to base the design and the development of static analysis tools on a firm understanding of the language to be analysed. When this underlying knowledge is missing or erroneous, tools can’t be trusted no matter what advanced techniques they use to perform their task. In this Thesis, we introduce KPHP, the first executable formal semantics of PHP, one of the most popular languages for server-side web programming. Then, we demonstrate its practical relevance by developing two verification tools, of increasing complexity, on top of it - a simple verifier based on symbolic execution and LTL model checking and a general purpose, fully configurable and extensible static analyser based on Abstract Interpretation. Our LTL-based tool leverages the existing symbolic execution and model checking support offered by K, our semantics framework of choice, and constitutes a first proof-of-concept of the usefulness of our semantics. Our abstract interpreter, on the other hand, represents a more significant and novel contribution to the field of static analysis of dynamic scripting languages (PHP in particular). Although our tool is still a prototype and therefore not well suited for handling large real-world codebases, we demonstrate how our semantics-based, principled approach to the development of verification tools has lead to the design of static analyses that outperform existing tools and approaches, both in terms of supported language features, precision, and breadth of possible applications.
机译:如今,我们生活中许多重要的活动都涉及到网络。但是,Web应用程序所基于的软件和协议在设计时并未考虑到适当的安全级别。许多Web应用程序已经达到了某种程度的复杂性,因此测试,代码审查和人工检查不再是足够的质量保证保证。需要使用静态分析技术的工具,以探索通过应用程序的所有可能的执行路径,并确保不存在不良行为。为了确保分析能够捕获到感兴趣的属性,并在效率和精度之间进行权衡,有必要在静态分析工具的设计和开发过程中充分理解要分析的语言。当这些基础知识缺失或错误时,无论工具使用何种高级技术来执行任务,都将无法获得信任。在本文中,我们介绍了KPHP,这是PHP的第一种可执行形式语义,它是服务器端Web编程中最流行的语言之一。然后,我们通过开发两个验证工具来证明其实用性,这些工具的复杂性在不断增加,这是一个基于符号执行和LTL模型检查的简单验证程序,以及一个基于抽象解释的通用,可完全配置和扩展的静态分析器。我们基于LTL的工具利用了我们选择的语义框架K提供的现有符号执行和模型检查支持,并构成了语义有用性的第一个概念验证。另一方面,我们的抽象解释器代表了对动态脚本语言(尤其是PHP)的静态分析领域的更重要和新颖的贡献。尽管我们的工具仍然是原型,因此不适合处理大型现实世界的代码库,但我们演示了基于语义的,有原则的验证工具开发方法如何导致静态分析的设计优于现有工具和方法,无论是受支持的语言功能,精度还是可能的应用范围。

著录项

  • 作者

    Filaretti Daniele;

  • 作者单位
  • 年度 2016
  • 总页数
  • 原文格式 PDF
  • 正文语种
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号