Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security最新文献

筛选
英文 中文
Using Precise Taint Tracking for Auto-sanitization 使用精确的污点跟踪进行自动消毒
Tejas Saoji, Thomas H. Austin, C. Flanagan
{"title":"Using Precise Taint Tracking for Auto-sanitization","authors":"Tejas Saoji, Thomas H. Austin, C. Flanagan","doi":"10.1145/3139337.3139341","DOIUrl":"https://doi.org/10.1145/3139337.3139341","url":null,"abstract":"Taint analysis has been used in numerous scripting languages such as Perl and Ruby to defend against various form of code injection attacks, such as cross-site scripting (XSS) and SQL-injection. However, most taint analysis systems simply fail when tainted information is used in a possibly unsafe manner. In this paper, we explore how precise taint tracking can be used in order to secure web content. Rather than simply crashing, we propose that a library-writer defined sanitization function can instead be used on the tainted portions of a string. With this approach, library writers or framework developers can design their tools to be resilient, even if inexperienced developers misuse these libraries in unsafe ways. In other words, developer mistakes do not have to result in system crashes to guarantee security. We implement both coarse-grained and precise taint tracking in JavaScript, and show how our precise taint tracking API can be used to defend against SQL injection and XSS attacks. We further evaluate the performance of this approach, showing that precise taint tracking involves an overhead of approximately 22%.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127368531","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
Short Paper: Towards Information Flow Reasoning about Real-World C Code 短文:关于真实世界C代码的信息流推理
Samuel Grütter, Toby C. Murray
{"title":"Short Paper: Towards Information Flow Reasoning about Real-World C Code","authors":"Samuel Grütter, Toby C. Murray","doi":"10.1145/3139337.3139345","DOIUrl":"https://doi.org/10.1145/3139337.3139345","url":null,"abstract":"Strangely, despite much recent success proving information flow control (IFC) security for C programs, little work has investigated how to prove IFC security directly against C code, as opposed to over an abstract specification. We consider what a suitable IFC logic for C might look like, and propose a suitable continuation-passing style IFC security definition for C code. We discuss our ongoing work implementing these ideas in the context of an existing full-featured, sound program verification framework for C, the Verified Software Toolchain, supported by the verified C complier CompCert.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124924465","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}
引用次数: 2
Simplicity: A New Language for Blockchains 简单:区块链的新语言
Russell O'Connor
{"title":"Simplicity: A New Language for Blockchains","authors":"Russell O'Connor","doi":"10.1145/3139337.3139340","DOIUrl":"https://doi.org/10.1145/3139337.3139340","url":null,"abstract":"Simplicity is a typed, combinator-based, functional language without loops and recursion, designed to be used for crypto-currencies and blockchain applications. It aims to improve upon existing crypto-currency languages, such as Bitcoin Script and Ethereum's EVM, while avoiding some of the problems they face. Simplicity comes with formal denotational semantics defined in Coq, a popular, general purpose software proof assistant. Simplicity also includes operational semantics that are defined with an abstract machine that we call the Bit Machine. The Bit Machine is used as a tool for measuring the computational space and time resources needed to evaluate Simplicity programs. Owing to its Turing incompleteness, Simplicity is amenable to static analysis that can be used to derive upper bounds on the computational resources needed, prior to execution. While Turing incomplete, Simplicity can express any finitary function, which we believe is enough to build useful ``smart contracts'' for blockchain applications.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"86 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134448432","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}
引用次数: 86
CFG Construction Soundness in Control-Flow Integrity 控制流程完整性中的CFG施工稳健性
Gang Tan, T. Jaeger
{"title":"CFG Construction Soundness in Control-Flow Integrity","authors":"Gang Tan, T. Jaeger","doi":"10.1145/3139337.3139339","DOIUrl":"https://doi.org/10.1145/3139337.3139339","url":null,"abstract":"Control-Flow Integrity (CFI) is an intensively studied technique for hardening software security. It enforces a Control-Flow Graph (CFG) by inlining runtime checks into target programs. Many methods have been proposed to construct the enforced CFG, with different degrees of precision and sets of assumptions. However, past CFI work has not made attempt at justifying their CFG construction soundness using formal semantics and proofs. In this paper, we formalize the CFG construction in two major CFI systems, identify their assumptions, and prove their soundness; the soundness proof shows that their computed sets of targets for indirect calls are safe over-approximations.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"122 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124185609","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}
引用次数: 8
Encoding DCC in Haskell 在Haskell中编码DCC
Maximilian Algehed, Alejandro Russo
{"title":"Encoding DCC in Haskell","authors":"Maximilian Algehed, Alejandro Russo","doi":"10.1145/3139337.3139338","DOIUrl":"https://doi.org/10.1145/3139337.3139338","url":null,"abstract":"The seminal work on the Dependency Core Calculus (DCC) shows how monads not only can be used for embedding effects in purely functional languages but also to statically track data dependencies. Such types of analysis have applications in research areas like security, partial evaluation, and slicing, where DCC plays the role of a unifying formalism. For a Haskell programmer, putting DCC into practice raises many interesting conceptual and implementation concerns. Specifically, DCC uses a non-standard bind operator, i.e., with a different type signature than that provided by monads. In fact, embedding such non-standard bind operator opens the door for many design decisions. Furthermore, it is unclear if DCC extends to traditional methods used by Haskell programmers to handle effects (such as monad transformers). In this work, we describe a novel encoding of DCC in Haskell, with a focus on its use for security-although our results also apply to the other domains. We address the concerns mentioned above and show how our implementation of DCC can be seen as a direct translation from its typing rules via the use of closed type families and type classes-two advanced type-system features of Haskell. We also analyze what kind of effects DCC is compatible with and which ones it cannot secure. We also derive an alternative formulation of DCC based on fmap and a corresponding non-standard join.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"96 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132973316","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}
引用次数: 19
Languages for Oblivious Computation 遗忘计算的语言
M. Hicks
{"title":"Languages for Oblivious Computation","authors":"M. Hicks","doi":"10.1145/3139337.3139349","DOIUrl":"https://doi.org/10.1145/3139337.3139349","url":null,"abstract":"1 OBLIVIOUS COMPUTATION Cloud computing allows users to delegate data storage and computing needs to cloud service providers. Doing so relieves users from the need to purchase and maintain their own computing infrastructure, but requires sharing potentially sensitive data with the provider. Researchers have been exploring how to mitigate the risk of doing so by developing privacy preserving computing technology. The idea is to employ hardware and/or software that can compute a function y = f (x1,x2, ...,xn ) obliviously, meaning that despite producing an answer, the service provider learns nothing about x1, ...,xn or y in the process. Such technology effectively implements a secure abstract machine that receives encrypted inputs, computes the requested function using encrypted memory, and returns an encrypted result, which the client can decrypt. Such an abstract machine might employ cryptographic algorithms and/or secure processors (e.g., FHE [1] or Intel SGX1). While a secure abstract machine stops an attacker from reading sensitive values directly, it does not defeat an attacker who can infer such values from a computation’s side channels, such as its patterns of memory accesses or instruction timings. Indeed, a cloud provider could easily measure such patterns. A countermeasure is to augment the abstract machine to store code and data in oblivious RAM (ORAM) [2]. ORAM is a data structure that regularly changes the mapping between a data block’s logical address and its physical address. While the abstract machine always knows the up-to-date mapping, the adversary does not, and as a result the address trace is indistinguishable from a random sequence. While secure against a snooping adversary, ORAM unfortunately incurs a substantial slowdown in practical situations: each read/write requires additional operations (to update the mapping) that are polylogarithmic in the size of the memory.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131835787","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
Modular Synthesis of Heap Exploits 堆漏洞的模块化合成
D. Repel, Johannes Kinder, L. Cavallaro
{"title":"Modular Synthesis of Heap Exploits","authors":"D. Repel, Johannes Kinder, L. Cavallaro","doi":"10.1145/3139337.3139346","DOIUrl":"https://doi.org/10.1145/3139337.3139346","url":null,"abstract":"Memory errors continue to compromise the security of today's systems. Recent efforts to automatically synthesize exploits for stack-based buffer overflows promise to help assess a vulnerability's severity more quickly and alleviate the burden of manual reasoning. However, generation of heap exploits has been out of scope for such methods thus far. In this paper, we investigate the problem of automatically generating heap exploits, which, in addition to finding the vulnerability, requires intricate interaction with the heap manager. We identify the challenges involved in automatically finding the right parameters and interaction sequences for such attacks, which have traditionally required manual analysis. To tackle these challenges, we present a modular approach that is designed to minimize the assumptions made about the heap manager used by the target application. Our prototype system is able to find exploit primitives in six binary implementations of Windows and UNIX-based heap managers and applies these to successfully exploit two real-world applications.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123908689","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}
引用次数: 31
Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security 2017年安全编程语言与分析研讨会论文集
Nataliia Bielova, Marco Gaboardi
{"title":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","authors":"Nataliia Bielova, Marco Gaboardi","doi":"10.1145/3139337","DOIUrl":"https://doi.org/10.1145/3139337","url":null,"abstract":"It is our great pleasure to welcome you to the 12th ACM SIGSAC Workshop on Programming Languages and Analysis for Security (PLAS 2017), co-located with the ACM Conference on Computer and Communications Security (CCS). Over its now more than ten-year history, PLAS has provided a unique forum for researchers and practitioners to exchange ideas about programming language and program analysis techniques with the goal of improving the security of software systems. \u0000 \u0000This year, PLAS received a good number of submissions attesting the continued vitality of the community whose work sits at the intersection of programming languages and security. PLAS 2017 welcomed the submission of both long research papers as well as short papers presenting preliminary or exploratory work aiming at generating lively discussions at the workshop. PLAS 2017 attracted 16 submissions-of which, 6 were short papers-from 9 countries (Australia, France, Germany, India, Singapore, Sweden, Taiwan, UK, USA), with authors spanning both academia and industry. \u0000 \u0000PLAS 2017 is delighted to have two excellent invited talks: \u0000Authorization Contracts, Stephen Chong (Harvard University) \u0000Languages for Oblivious Computation, Michael Hicks (University of Maryland)","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"204 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116505661","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}
引用次数: 2
Authorization Contracts 授权合约
Stephen Chong
{"title":"Authorization Contracts","authors":"Stephen Chong","doi":"10.1145/3139337.3139348","DOIUrl":"https://doi.org/10.1145/3139337.3139348","url":null,"abstract":"Software components have a wide variety of access control requirements. A one-size-fits-all access control framework will not meet the needs of all of these components. We propose an expressive framework for implementing access control monitors for components. The basis of the framework is a novel concept: the authority environment. An authority environment associates rights with an execution context. The building blocks of access control monitors in our framework are authorization contracts: software contracts that manage authority environments. We've used the framework to implement diverse access control mechanisms (including discretionary access control, stack inspection, history-based access control, and object capabilities), and to write custom access control monitors for three case studies.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129775663","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
A Sequent Calculus for Counterfactual Reasoning 反事实推理的序贯演算
McKenna McCall, L. Loh, Limin Jia
{"title":"A Sequent Calculus for Counterfactual Reasoning","authors":"McKenna McCall, L. Loh, Limin Jia","doi":"10.1145/3139337.3139342","DOIUrl":"https://doi.org/10.1145/3139337.3139342","url":null,"abstract":"Counterfactual conditions such as \"if A were not true, then C would not have been true\" have been formally studied by philosophers for causal claims for decades. Counterfactuals are often used informally in practice for diagnosing systems and identifying errors or misconfigurations. This paper develops a proof theory for counterfactual reasoning of Horn clauses, which have applications in domains including security and database and program analysis. The application to security that this paper focuses on is modeling and reasoning about probing attacks in Datalog-based trust management systems, where an attacker can apply counterfactual reasoning to obtain sensitive information embedded in the system. Our work is inspired by a Hilbert-style axiomatized system for counterfactual reasoning for Horn clauses, which are hard to use to construct proofs or study properties of the system. To alleviate this difficulty, we develop a sequent calculus from first principles. We show that the sequent calculus has cut elimination and is sound and complete with regard to the corresponding Hilbert style axiomatized system. We also show how to construct proofs that model practical counterfactual reasoning scenarios in trust management systems using our sequent calculus rules.","PeriodicalId":329351,"journal":{"name":"Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128681193","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
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
相关产品
×
本文献相关产品
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信