首页 > 最新文献

ACM Workshop on Programming Languages and Analysis for Security最新文献

英文 中文
WEBLOG: a declarative language for secure web development WEBLOG:用于安全web开发的声明性语言
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465119
Timothy L. Hinrichs, Daniele Rossetti, G. Petronella, V. Venkatakrishnan, A. Sistla, L. Zuck
WEBLOG is a declarative language for web application development designed to automatically eliminate several security vulnerabilities common to today's web applications. In this paper, we introduce Weblog, detail the security vulnerabilities it eliminates, and discuss how those vulnerabilities are eliminated. We then evaluate Weblog's ability to build and secure real-world applications by comparing traditional implementations of 3 existing small- to medium-size web applications to Weblog implementations.
WEBLOG是一种用于web应用程序开发的声明性语言,旨在自动消除当今web应用程序中常见的几个安全漏洞。在本文中,我们介绍了Weblog,详细介绍了它消除的安全漏洞,并讨论了如何消除这些漏洞。然后,我们通过比较3个现有中小型web应用程序与Weblog实现的传统实现,来评估Weblog构建和保护实际应用程序的能力。
{"title":"WEBLOG: a declarative language for secure web development","authors":"Timothy L. Hinrichs, Daniele Rossetti, G. Petronella, V. Venkatakrishnan, A. Sistla, L. Zuck","doi":"10.1145/2465106.2465119","DOIUrl":"https://doi.org/10.1145/2465106.2465119","url":null,"abstract":"WEBLOG is a declarative language for web application development designed to automatically eliminate several security vulnerabilities common to today's web applications. In this paper, we introduce Weblog, detail the security vulnerabilities it eliminates, and discuss how those vulnerabilities are eliminated. We then evaluate Weblog's ability to build and secure real-world applications by comparing traditional implementations of 3 existing small- to medium-size web applications to Weblog implementations.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130307620","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Faceted execution of policy-agnostic programs 策略不可知程序的分面执行
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465121
Thomas H. Austin, Jean Yang, C. Flanagan, Armando Solar-Lezama
It is important for applications to protect sensitive data. Even for simple confidentiality and integrity policies, it is often difficult for programmers to reason about how the policies should interact and how to enforce policies across the program. A promising approach is policy-agnostic programming, a model that allows the programmer to implement policies separately from core functionality. Yang et al. describe Jeeves, a programming language that supports information flow policies describing how to reveal sensitive values in different output channels. Jeeves uses symbolic evaluation and constraint-solving to produce outputs adhering to the policies. This strategy provides strong confidentiality guarantees but limits expressiveness and implementation feasibility. We extend Jeeves with faceted values, which exploit the structure of sensitive values to yield both greater expressiveness and to facilitate reasoning about runtime behavior. We present a faceted semantics for Jeeves and describe a model for propagating multiple views of sensitive information through a program. We provide a proof of termination-insensitive non-interference and describe how the semantics facilitate reasoning about program behavior.
对于应用程序来说,保护敏感数据非常重要。即使对于简单的机密性和完整性策略,程序员通常也很难推断出策略应该如何交互以及如何在整个程序中执行策略。一种很有前途的方法是策略不可知编程,这种模型允许程序员将策略与核心功能分开实现。Yang等人描述了Jeeves,这是一种支持信息流策略的编程语言,它描述了如何在不同的输出通道中显示敏感值。Jeeves使用符号求值和约束求解来生成符合策略的输出。该策略提供了强大的机密性保证,但限制了表达性和实现可行性。我们用分面值扩展Jeeves,它利用敏感值的结构来产生更强的表达能力,并促进对运行时行为的推理。我们提出了Jeeves的面形语义,并描述了一个通过程序传播敏感信息的多个视图的模型。我们提供了对终止不敏感的不干扰的证明,并描述了语义如何促进对程序行为的推理。
{"title":"Faceted execution of policy-agnostic programs","authors":"Thomas H. Austin, Jean Yang, C. Flanagan, Armando Solar-Lezama","doi":"10.1145/2465106.2465121","DOIUrl":"https://doi.org/10.1145/2465106.2465121","url":null,"abstract":"It is important for applications to protect sensitive data. Even for simple confidentiality and integrity policies, it is often difficult for programmers to reason about how the policies should interact and how to enforce policies across the program. A promising approach is policy-agnostic programming, a model that allows the programmer to implement policies separately from core functionality. Yang et al. describe Jeeves, a programming language that supports information flow policies describing how to reveal sensitive values in different output channels. Jeeves uses symbolic evaluation and constraint-solving to produce outputs adhering to the policies. This strategy provides strong confidentiality guarantees but limits expressiveness and implementation feasibility.\u0000 We extend Jeeves with faceted values, which exploit the structure of sensitive values to yield both greater expressiveness and to facilitate reasoning about runtime behavior. We present a faceted semantics for Jeeves and describe a model for propagating multiple views of sensitive information through a program. We provide a proof of termination-insensitive non-interference and describe how the semantics facilitate reasoning about program behavior.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"5 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114115270","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 63
Security completeness: towards noninterference in composed languages 安全完整性:在组合语言中实现无干扰
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465122
Andreas Gampe, J. Ronne
Ensuring that software protects its users' privacy has become an increasingly pressing challenge. Requiring software to be certified with a secure type system is one enforcement mechanism. Protecting privacy with type systems, however, has only been studied for programs written entirely in a single language, whereas software is frequently implemented using multiple languages specialized for different tasks. This paper presents an approach that facilitates reasoning over composed languages. It outlines sufficient requirements for the component languages to lift privacy guarantees of the component languages to well-typed composed programs, significantly lowering the burden necessary to certify that such composite programs safe. The approach relies on computability and security-level separability. This paper defines completeness with respect to secure computations and formally establishes conditions sufficient for a security-typed language to be complete. We demonstrate the applicability of the results with a case study of three seminal security-typed languages.
确保软件保护用户隐私已成为一个日益紧迫的挑战。要求软件通过安全类型系统认证是一种强制机制。然而,使用类型系统保护隐私,只研究了完全用一种语言编写的程序,而软件经常使用专门用于不同任务的多种语言实现。本文提出了一种促进组合语言推理的方法。它概述了组件语言的充分需求,以将组件语言的隐私保证提升到类型良好的组合程序,从而大大降低了证明此类组合程序安全所必需的负担。该方法依赖于可计算性和安全级别的可分离性。本文定义了安全计算的完备性,并形式化地建立了安全类型语言完备的充分条件。我们通过对三种重要的安全类型语言的案例研究来证明结果的适用性。
{"title":"Security completeness: towards noninterference in composed languages","authors":"Andreas Gampe, J. Ronne","doi":"10.1145/2465106.2465122","DOIUrl":"https://doi.org/10.1145/2465106.2465122","url":null,"abstract":"Ensuring that software protects its users' privacy has become an increasingly pressing challenge. Requiring software to be certified with a secure type system is one enforcement mechanism. Protecting privacy with type systems, however, has only been studied for programs written entirely in a single language, whereas software is frequently implemented using multiple languages specialized for different tasks.\u0000 This paper presents an approach that facilitates reasoning over composed languages. It outlines sufficient requirements for the component languages to lift privacy guarantees of the component languages to well-typed composed programs, significantly lowering the burden necessary to certify that such composite programs safe. The approach relies on computability and security-level separability. This paper defines completeness with respect to secure computations and formally establishes conditions sufficient for a security-typed language to be complete. We demonstrate the applicability of the results with a case study of three seminal security-typed languages.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131896920","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Position paper: Sapper -- a language for provable hardware policy enforcement 立场文件:Sapper——一种可证明的硬件策略执行语言
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465214
Xun Li, Vineeth Kashyap, J. Oberg, Mohit Tiwari, Vasanth Ram Rajarathinam, R. Kastner, T. Sherwood, B. Hardekopf, F. Chong
We describe Sapper, a language for creating critical hardware components that have provably secure information flow. Most systems that enforce information flow policies place the hardware microarchitecture within the trusted computing base, and also assume that the observable behavior of that microarchitecture is fully and correctly documented. However, the reality is that this behavior is incompletely (and sometimes incorrectly) specified, and that the microarchitecture itself often contains implementation bugs. This fact means that all such systems are vulnerable to attack by exploiting undocumented or buggy hardware features. Sapper addresses this problem by enabling flexible and efficient hardware design that is provably secure with respect to a given information flow policy. Sapper uses a hybrid approach that leverages unique language features and static analysis to determine a set of dynamic checks that are automatically inserted into the hardware design. These checks are provably sufficient to guarantee that the resulting hardware prevents all explicit, implicit, and timing channels even if the hardware is otherwise buggy or poorly documented.
我们将描述Sapper,这是一种用于创建具有可证明的安全信息流的关键硬件组件的语言。大多数执行信息流策略的系统都将硬件微体系结构置于可信计算基础中,并且还假定该微体系结构的可观察行为得到了完整和正确的记录。然而,实际情况是这种行为没有被完全(有时是不正确的)指定,而且微体系结构本身经常包含实现错误。这一事实意味着所有此类系统都容易受到利用未记录或有缺陷的硬件特性的攻击。Sapper通过实现灵活高效的硬件设计来解决这个问题,这种硬件设计对于给定的信息流策略来说是安全的。Sapper使用一种混合方法,利用独特的语言特性和静态分析来确定一组自动插入硬件设计的动态检查。这些检查足以保证生成的硬件能够防止所有显式、隐式和定时通道,即使硬件在其他方面存在错误或文档记录不佳。
{"title":"Position paper: Sapper -- a language for provable hardware policy enforcement","authors":"Xun Li, Vineeth Kashyap, J. Oberg, Mohit Tiwari, Vasanth Ram Rajarathinam, R. Kastner, T. Sherwood, B. Hardekopf, F. Chong","doi":"10.1145/2465106.2465214","DOIUrl":"https://doi.org/10.1145/2465106.2465214","url":null,"abstract":"We describe Sapper, a language for creating critical hardware components that have provably secure information flow. Most systems that enforce information flow policies place the hardware microarchitecture within the trusted computing base, and also assume that the observable behavior of that microarchitecture is fully and correctly documented. However, the reality is that this behavior is incompletely (and sometimes incorrectly) specified, and that the microarchitecture itself often contains implementation bugs. This fact means that all such systems are vulnerable to attack by exploiting undocumented or buggy hardware features. Sapper addresses this problem by enabling flexible and efficient hardware design that is provably secure with respect to a given information flow policy. Sapper uses a hybrid approach that leverages unique language features and static analysis to determine a set of dynamic checks that are automatically inserted into the hardware design. These checks are provably sufficient to guarantee that the resulting hardware prevents all explicit, implicit, and timing channels even if the hardware is otherwise buggy or poorly documented.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131229668","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Knowledge inference for optimizing secure multi-party computation 基于知识推理的安全多方计算优化
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465117
Aseem Rastogi, Piotr (Peter) Mardziel, M. Hicks, Matthew A. Hammer
In secure multi-party computation, mutually distrusting parties cooperatively compute functions of their private data; in the process, they only learn certain results as per the protocol (e.g., the final output). The realization of these protocols uses cryptographic techniques to avoid leaking information between the parties. A protocol for a secure computation can sometimes be optimized without changing its security guarantee: when the parties can use their private data and the revealed output to infer the values of other data, then this other data need not be concealed from them via cryptography. In the context of automatically optimizing secure multi-party computation, we define two related problems, knowledge inference and constructive knowledge inference. In both problems, we attempt to automatically discover when and if intermediate variables in a protocol will (eventually) be known to the parties involved in the computation. We formally state the two problems and describe our solutions. We show that our approach is sound, and further, we characterize its completeness properties. We present a preliminary experimental evaluation of our approach.
在安全多方计算中,互不信任的各方合作计算各自私有数据的函数;在这个过程中,它们只根据协议学习某些结果(例如,最终输出)。这些协议的实现使用了加密技术来避免双方之间的信息泄漏。用于安全计算的协议有时可以在不改变其安全保证的情况下进行优化:当各方可以使用他们的私有数据和显示的输出来推断其他数据的值时,那么其他数据就不需要通过加密技术对他们隐藏。在自动优化安全多方计算的背景下,我们定义了两个相关问题:知识推理和构造知识推理。在这两个问题中,我们都试图自动发现协议中的中间变量何时以及是否(最终)为参与计算的各方所知。我们正式地陈述了这两个问题并描述了我们的解决方案。我们证明了我们的方法是可靠的,并进一步描述了它的完备性。我们对我们的方法进行了初步的实验评估。
{"title":"Knowledge inference for optimizing secure multi-party computation","authors":"Aseem Rastogi, Piotr (Peter) Mardziel, M. Hicks, Matthew A. Hammer","doi":"10.1145/2465106.2465117","DOIUrl":"https://doi.org/10.1145/2465106.2465117","url":null,"abstract":"In secure multi-party computation, mutually distrusting parties cooperatively compute functions of their private data; in the process, they only learn certain results as per the protocol (e.g., the final output). The realization of these protocols uses cryptographic techniques to avoid leaking information between the parties. A protocol for a secure computation can sometimes be optimized without changing its security guarantee: when the parties can use their private data and the revealed output to infer the values of other data, then this other data need not be concealed from them via cryptography.\u0000 In the context of automatically optimizing secure multi-party computation, we define two related problems, knowledge inference and constructive knowledge inference. In both problems, we attempt to automatically discover when and if intermediate variables in a protocol will (eventually) be known to the parties involved in the computation. We formally state the two problems and describe our solutions. We show that our approach is sound, and further, we characterize its completeness properties. We present a preliminary experimental evaluation of our approach.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121713122","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
GlassTube: a lightweight approach to web application integrity glassstube:一种轻量级的web应用完整性方法
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465432
Per A. Hallgren, Daniel T. Mauritzson, A. Sabelfeld
The HTTP and HTTPS protocols are the corner stones of the modern web. From a security point of view, they offer an all-or- nothing choice to web applications: either no security guarantees with HTTP or both confidentiality and integrity with HTTPS. How- ever, in many scenarios confidentiality is not necessary and even undesired, while integrity is essential to prevent attackers from compromising the data stream. We propose GlassTube, a lightweight approach to web application integrity. GlassTube guarantees integrity at application level, without resorting to the heavyweight HTTPS protocol. GlassTube prevents man-in-the-middle attacks and provides a general method for integrity in web applications and smartphone apps. GlassTube is easily deployed in the form of a library on the server side, and offers flexible deployment options on the client side: from dynamic code distribution, which requires no modification of the browser, to browser plugin and smartphone app, which allow smooth key predistribution. The results of a case study with a web-based chat indicate a boost in the performance compared to HTTPS, achieved with no optimization efforts.
HTTP和HTTPS协议是现代网络的基石。从安全的角度来看,它们为web应用程序提供了一个全有或全无的选择:要么使用HTTP不提供安全保证,要么使用HTTPS同时提供机密性和完整性。然而,在许多情况下,机密性是不必要的,甚至是不希望的,而完整性是必不可少的,以防止攻击者破坏数据流。我们提出glass stube,一种轻量级的web应用完整性方法。GlassTube保证了应用程序级别的完整性,而无需诉诸重量级的HTTPS协议。glassstube可以防止中间人攻击,并为web应用程序和智能手机应用程序的完整性提供了一种通用方法。glassstube很容易以库的形式部署在服务器端,并在客户端提供灵活的部署选项:从动态代码分发(不需要修改浏览器)到浏览器插件和智能手机应用程序(允许平滑的密钥预分发)。一个基于web的聊天案例研究的结果表明,与HTTPS相比,在没有优化的情况下,性能得到了提升。
{"title":"GlassTube: a lightweight approach to web application integrity","authors":"Per A. Hallgren, Daniel T. Mauritzson, A. Sabelfeld","doi":"10.1145/2465106.2465432","DOIUrl":"https://doi.org/10.1145/2465106.2465432","url":null,"abstract":"The HTTP and HTTPS protocols are the corner stones of the modern web. From a security point of view, they offer an all-or- nothing choice to web applications: either no security guarantees with HTTP or both confidentiality and integrity with HTTPS. How- ever, in many scenarios confidentiality is not necessary and even undesired, while integrity is essential to prevent attackers from compromising the data stream.\u0000 We propose GlassTube, a lightweight approach to web application integrity. GlassTube guarantees integrity at application level, without resorting to the heavyweight HTTPS protocol. GlassTube prevents man-in-the-middle attacks and provides a general method for integrity in web applications and smartphone apps. GlassTube is easily deployed in the form of a library on the server side, and offers flexible deployment options on the client side: from dynamic code distribution, which requires no modification of the browser, to browser plugin and smartphone app, which allow smooth key predistribution. The results of a case study with a web-based chat indicate a boost in the performance compared to HTTPS, achieved with no optimization efforts.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"94 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130719800","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
Fault-tolerant non-interference: invited talk abstract 容错不干扰:特邀演讲摘要
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2489089
David Sands
This work is about specifying and ensuring security in unreliable systems. We study systems which are subject to transient faults -- soft errors that cause stored values to be corrupted. Transient faults occur in hardware when a high-energy particle strikes a transistor, resulting in a spontaneous bit-flip. Such events have been acknowledged as the source of major crashes in server systems. The trend towards lower threshold voltages and tighter noise margins means that susceptibility to transient faults is increasing. From a security perspective, transient faults are a known attack vector. For instance, it has been shown that a single bit flip, regardless of how is triggered, can compromise the value of a secret key in some public key and authentication systems. Fault tolerance techniques aim to preserve properties of systems despite such transient faults. Preservation of functional correctness, however, comes at a high cost, and seems to inevitably require some special form of hardware-level replication. For the predominantly-software-based techniques, with one or two notable exceptions, most works do not give precise, formal guarantees. In this work, rather than attempting to preserve full functional behaviour in the presence of faults, we consider the novel problem of guaranteeing security: faults may cause a program to go wrong, but even if it goes wrong it should not leak sensitive data, no matter if the code is crafted with malicious intent. The particular security characterization we study is non-interference, an information-flow security property which says that public outputs of a program (the low security channel) do not reveal anything about its secrets (the high security inputs). Our approach has two distinguishing features. Firstly, it does not rely on special purpose fault tolerant hardware, and secondly, it makes its assumptions precise and provides formal guarantees. We study this problem for a RISC-style machine for which the only fault-tolerant component is the ROM containing the code, but otherwise contains no special fault-tolerant components. We devise a transformation technique for programs which generates fault-tolerant noninterfering code, up to a fixed number of faults. The method is based on a strong separation of resources between different security levels, inspired by the recent technique of Secure Multi-Execution, together with a carefully chosen code and data layout, and a robust protocol for data access and control flow modifications. We prove that the transformation method yields noninterfering programs in the presence of faults, and that it preserves the meaning of a class of reasonable programs -- those which use a bounded amount of storage and which are not sensitive to exactly where in memory code and data are located.
这项工作是关于在不可靠的系统中指定和确保安全性。我们研究易发生瞬态故障的系统——导致存储值损坏的软错误。当高能粒子撞击晶体管时,硬件会发生瞬态故障,导致自发的位翻转。这类事件被认为是服务器系统中主要崩溃的根源。阈值电压越来越低,噪声边界越来越紧,这意味着对暂态故障的敏感性正在增加。从安全角度来看,瞬态故障是一种已知的攻击向量。例如,已经证明,单个比特翻转,无论如何触发,都可能危及某些公钥和身份验证系统中的秘密密钥的值。容错技术的目的是在这种瞬态故障下保持系统的特性。然而,保持功能正确性的代价很高,而且似乎不可避免地需要某种特殊形式的硬件级复制。对于主要基于软件的技术,除了一两个明显的例外,大多数作品都没有给出精确的、正式的保证。在这项工作中,我们不是试图在存在错误的情况下保留完整的功能行为,而是考虑保证安全性的新问题:错误可能导致程序出错,但即使它出错,也不应该泄露敏感数据,无论代码是否带有恶意。我们研究的特定安全特征是不干扰,这是一种信息流安全属性,它表示程序的公开输出(低安全通道)不会泄露任何有关其秘密(高安全输入)的信息。我们的方法有两个显著特点。首先,它不依赖于专用的容错硬件;其次,它使其假设精确并提供形式化保证。我们研究了一个risc风格的机器,其中唯一的容错组件是包含代码的ROM,但不包含特殊的容错组件。我们设计了一种程序转换技术,该技术可以在固定数量的错误下生成容错的无干扰代码。该方法基于不同安全级别之间的资源分离,受最新的安全多执行技术的启发,加上精心选择的代码和数据布局,以及用于数据访问和控制流修改的健壮协议。我们证明了这种转换方法在存在故障的情况下产生非干扰程序,并且它保留了一类合理程序的意义——这些程序使用有限的存储空间,并且对内存中代码和数据的确切位置不敏感。
{"title":"Fault-tolerant non-interference: invited talk abstract","authors":"David Sands","doi":"10.1145/2465106.2489089","DOIUrl":"https://doi.org/10.1145/2465106.2489089","url":null,"abstract":"This work is about specifying and ensuring security in unreliable systems. We study systems which are subject to transient faults -- soft errors that cause stored values to be corrupted. Transient faults occur in hardware when a high-energy particle strikes a transistor, resulting in a spontaneous bit-flip. Such events have been acknowledged as the source of major crashes in server systems. The trend towards lower threshold voltages and tighter noise margins means that susceptibility to transient faults is increasing.\u0000 From a security perspective, transient faults are a known attack vector. For instance, it has been shown that a single bit flip, regardless of how is triggered, can compromise the value of a secret key in some public key and authentication systems.\u0000 Fault tolerance techniques aim to preserve properties of systems despite such transient faults. Preservation of functional correctness, however, comes at a high cost, and seems to inevitably require some special form of hardware-level replication. For the predominantly-software-based techniques, with one or two notable exceptions, most works do not give precise, formal guarantees.\u0000 In this work, rather than attempting to preserve full functional behaviour in the presence of faults, we consider the novel problem of guaranteeing security: faults may cause a program to go wrong, but even if it goes wrong it should not leak sensitive data, no matter if the code is crafted with malicious intent. The particular security characterization we study is non-interference, an information-flow security property which says that public outputs of a program (the low security channel) do not reveal anything about its secrets (the high security inputs).\u0000 Our approach has two distinguishing features. Firstly, it does not rely on special purpose fault tolerant hardware, and secondly, it makes its assumptions precise and provides formal guarantees.\u0000 We study this problem for a RISC-style machine for which the only fault-tolerant component is the ROM containing the code, but otherwise contains no special fault-tolerant components. We devise a transformation technique for programs which generates fault-tolerant noninterfering code, up to a fixed number of faults. The method is based on a strong separation of resources between different security levels, inspired by the recent technique of Secure Multi-Execution, together with a carefully chosen code and data layout, and a robust protocol for data access and control flow modifications. We prove that the transformation method yields noninterfering programs in the presence of faults, and that it preserves the meaning of a class of reasonable programs -- those which use a bounded amount of storage and which are not sensitive to exactly where in memory code and data are located.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"66 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124540505","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Position paper: the science of boxing 立场文件:拳击的科学
Pub Date : 2013-06-20 DOI: 10.1145/2465106.2465120
M. Lester
The ubiquity of Web 2.0 applications handling sensitive information means that static analysis of applications written in JavaScript has become an important security problem. The highly dynamic nature of the language makes this difficult. The eval construct, which allows execution of a string as program code, is particularly notorious in this regard. Eval is a form of metaprogramming construct: it allows generation and manipulation of program code at run time. Other metaprogramming formalisms are more principled in their behaviour and easier to reason about; consider, for example, Lisp-style code quotations, which we call staged metaprogramming. We argue that, instead of trying to reason directly about uses of eval, we should first transform them to staged metaprogramming, then analyse the transformed program. To demonstrate the feasibility of this approach, we describe an algorithm for transforming uses of eval on strings encoding program text into uses of staged metaprogramming with quoted program terms. We present our algorithm in the context of a JavaScript-like language augmented with staged metaprogramming.
处理敏感信息的Web 2.0应用程序无处不在,这意味着对用JavaScript编写的应用程序进行静态分析已成为一个重要的安全问题。这种语言的高度动态性使得这很难做到。eval结构允许将字符串作为程序代码执行,在这方面尤其臭名昭著。Eval是元编程结构的一种形式:它允许在运行时生成和操作程序代码。其他元编程形式在行为上更有原则,更容易推理;例如,考虑lisp风格的代码引用,我们称之为分阶段元编程。我们认为,与其试图直接推断eval的用法,不如先将它们转换为分阶段元编程,然后分析转换后的程序。为了证明这种方法的可行性,我们描述了一种算法,用于将eval对字符串编码程序文本的使用转换为使用带引号的程序术语的分阶段元编程。我们在类似javascript的语言的上下文中展示了我们的算法,并增强了分阶段元编程。
{"title":"Position paper: the science of boxing","authors":"M. Lester","doi":"10.1145/2465106.2465120","DOIUrl":"https://doi.org/10.1145/2465106.2465120","url":null,"abstract":"The ubiquity of Web 2.0 applications handling sensitive information means that static analysis of applications written in JavaScript has become an important security problem. The highly dynamic nature of the language makes this difficult. The eval construct, which allows execution of a string as program code, is particularly notorious in this regard. Eval is a form of metaprogramming construct: it allows generation and manipulation of program code at run time. Other metaprogramming formalisms are more principled in their behaviour and easier to reason about; consider, for example, Lisp-style code quotations, which we call staged metaprogramming. We argue that, instead of trying to reason directly about uses of eval, we should first transform them to staged metaprogramming, then analyse the transformed program. To demonstrate the feasibility of this approach, we describe an algorithm for transforming uses of eval on strings encoding program text into uses of staged metaprogramming with quoted program terms. We present our algorithm in the context of a JavaScript-like language augmented with staged metaprogramming.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121293590","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Calculating bounds on information leakage using two-bit patterns 使用两位模式计算信息泄漏边界
Pub Date : 2011-06-05 DOI: 10.1145/2166956.2166957
Ziyuan Meng, Geoffrey Smith
Theories of quantitative information flow have seen growing interest recently, in view of the fundamental importance of controlling the leakage of confidential information, together with the pragmatic necessity of tolerating intuitively "small" leaks. Given such a theory, it is crucial to develop automated techniques for calculating the leakage in a system. In this paper, we address this question in the context of deterministic imperative programs and under the recently-proposed min-entropy measure of information leakage, which measures leakage in terms of the confidential information's vulnerability to being guessed in one try by an adversary. In this context, calculating the maximum leakage of a program reduces to counting the number of feasible outputs that it can produce. We approach this task by determining patterns among pairs of bits in the output, for instance by determining that two bits must be unequal. By counting the number of solutions to the two-bit patterns, we obtain an upper bound on the number of feasible outputs and hence on the leakage. We explore the effectiveness of our approach on a number of case studies, in terms of both efficiency and accuracy.
鉴于控制机密信息泄漏的根本重要性,以及容忍直觉上“小”泄漏的实用必要性,定量信息流理论最近受到越来越多的关注。考虑到这样的理论,开发自动计算系统泄漏的技术是至关重要的。在本文中,我们在确定性命令式程序的背景下解决了这个问题,并在最近提出的信息泄漏的最小熵度量下解决了这个问题,该度量是根据机密信息在一次尝试中被对手猜测的脆弱性来度量泄漏。在这种情况下,计算程序的最大泄漏减少到计算它可以产生的可行输出的数量。我们通过确定输出中比特对之间的模式来完成这项任务,例如确定两个比特必须是不相等的。通过计算两位模式的解的个数,我们得到了可行输出的个数的上界,从而得到了泄漏的上界。我们在一些案例研究中探讨了我们的方法在效率和准确性方面的有效性。
{"title":"Calculating bounds on information leakage using two-bit patterns","authors":"Ziyuan Meng, Geoffrey Smith","doi":"10.1145/2166956.2166957","DOIUrl":"https://doi.org/10.1145/2166956.2166957","url":null,"abstract":"Theories of quantitative information flow have seen growing interest recently, in view of the fundamental importance of controlling the leakage of confidential information, together with the pragmatic necessity of tolerating intuitively \"small\" leaks. Given such a theory, it is crucial to develop automated techniques for calculating the leakage in a system. In this paper, we address this question in the context of deterministic imperative programs and under the recently-proposed min-entropy measure of information leakage, which measures leakage in terms of the confidential information's vulnerability to being guessed in one try by an adversary. In this context, calculating the maximum leakage of a program reduces to counting the number of feasible outputs that it can produce. We approach this task by determining patterns among pairs of bits in the output, for instance by determining that two bits must be unequal. By counting the number of solutions to the two-bit patterns, we obtain an upper bound on the number of feasible outputs and hence on the leakage. We explore the effectiveness of our approach on a number of case studies, in terms of both efficiency and accuracy.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128861076","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 43
SAFERPHP: finding semantic vulnerabilities in PHP applications SAFERPHP:查找PHP应用程序中的语义漏洞
Pub Date : 2011-06-05 DOI: 10.1145/2166956.2166964
Sooel Son, Vitaly Shmatikov
Web applications are vulnerable to semantic attacks such as denial of service due to infinite loops caused by malicious inputs and unauthorized database operations due to missing security checks. Unlike "conventional" threats such as SQL injection and cross-site scripting, these attacks exploit bugs in the logic of the vulnerable application and cannot be discovered using data-flow analysis alone. We give the first characterization of these types of vulnerabilities in PHP applications, develop novel inter-procedural algorithms for discovering them in PHP source code, and implement these algorithms as part of SaferPHP, a framework for static security analysis of PHP applications. SaferPHP uncovered multiple, previously unreported vulnerabilities in several popular Web applications.
Web应用程序容易受到语义攻击,例如由于恶意输入导致的无限循环而拒绝服务,以及由于缺少安全检查而导致的未经授权的数据库操作。与SQL注入和跨站点脚本等“传统”威胁不同,这些攻击利用易受攻击的应用程序逻辑中的错误,并且无法仅使用数据流分析来发现。我们首次描述了PHP应用程序中的这些类型的漏洞,开发了新的过程间算法,用于在PHP源代码中发现它们,并将这些算法作为SaferPHP的一部分实现,SaferPHP是一个PHP应用程序静态安全分析框架。SaferPHP在几个流行的Web应用程序中发现了多个以前未报告的漏洞。
{"title":"SAFERPHP: finding semantic vulnerabilities in PHP applications","authors":"Sooel Son, Vitaly Shmatikov","doi":"10.1145/2166956.2166964","DOIUrl":"https://doi.org/10.1145/2166956.2166964","url":null,"abstract":"Web applications are vulnerable to semantic attacks such as denial of service due to infinite loops caused by malicious inputs and unauthorized database operations due to missing security checks. Unlike \"conventional\" threats such as SQL injection and cross-site scripting, these attacks exploit bugs in the logic of the vulnerable application and cannot be discovered using data-flow analysis alone.\u0000 We give the first characterization of these types of vulnerabilities in PHP applications, develop novel inter-procedural algorithms for discovering them in PHP source code, and implement these algorithms as part of SaferPHP, a framework for static security analysis of PHP applications. SaferPHP uncovered multiple, previously unreported vulnerabilities in several popular Web applications.","PeriodicalId":119000,"journal":{"name":"ACM Workshop on Programming Languages and Analysis for Security","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115037196","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 62
期刊
ACM Workshop on Programming Languages and Analysis for Security
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1