Skip to main content

Showing 1–16 of 16 results for author: de Amorim, A A

Searching in archive cs. Search in all archives.
.
  1. Domain Reasoning in TopKAT

    Authors: Cheng Zhang, Arthur Azevedo de Amorim, Marco Gaboardi

    Abstract: TopKAT is the algebraic theory of Kleene algebra with tests (KAT) extended with a top element. Compared to KAT, one pleasant feature of TopKAT is that, in relational models, the top element allows us to express the domain and codomain of a relation. This enables several applications in program logics, such as proving under-approximate specifications or reachability properties of imperative program… ▽ More

    Submitted 29 April, 2024; originally announced April 2024.

    Comments: A version of this article is accepted at ICALP 2024

  2. arXiv:2401.16277  [pdf, other

    cs.PL cs.CR

    SECOMP: Formally Secure Compilation of Compartmentalized C Programs

    Authors: Jérémy Thibault, Roberto Blanco, Dongjae Lee, Sven Argo, Arthur Azevedo de Amorim, Aïna Linn Georges, Catalin Hritcu, Andrew Tolmach

    Abstract: Undefined behavior in C often causes devastating security vulnerabilities. One practical mitigation is compartmentalization, which allows developers to structure large programs into mutually distrustful compartments with clearly specified privileges and interactions. In this paper we introduce SECOMP, a compiler for compartmentalized C code that comes with machine-checked proofs guaranteeing that… ▽ More

    Submitted 1 July, 2024; v1 submitted 29 January, 2024; originally announced January 2024.

    Comments: CCS'24 camera ready version, extended with appendices and a few more references

  3. arXiv:2311.06984  [pdf, other

    cs.PL

    Pipelines and Beyond: Graph Types for ADTs with Futures

    Authors: Francis Rinaldi, june wunder, Arthur Aevedo De Amorim, Stefan K. Muller

    Abstract: Parallel programs are frequently modeled as dependency or cost graphs, which can be used to detect various bugs, or simply to visualize the parallel structure of the code. However, such graphs reflect just one particular execution and are typically constructed in a post-hoc manner. Graph types, which were introduced recently to mitigate this problem, can be assigned statically to a program by a ty… ▽ More

    Submitted 12 November, 2023; originally announced November 2023.

    Comments: 65 pages, 41 figures, submitted to POPL 2024

  4. arXiv:2207.07053  [pdf, ps, other

    cs.PL cs.LO

    On Pitts' Relational Properties of Domains

    Authors: Arthur Azevedo de Amorim

    Abstract: Andrew Pitts' framework of relational properties of domains is a powerful method for defining predicates or relations on domains, with applications ranging from reasoning principles for program equivalence to proofs of adequacy connecting denotational and operational semantics. Its main appeal is handling recursive definitions that are not obviously well-founded: as long as the corresponding domai… ▽ More

    Submitted 14 July, 2022; originally announced July 2022.

  5. arXiv:2202.01901  [pdf, ps, other

    cs.PL

    Bunched Fuzz: Sensitivity for Vector Metrics

    Authors: june wunder, Arthur Azevedo de Amorim, Patrick Baillot, Marco Gaboardi

    Abstract: Program sensitivity measures the distance between the outputs of a program when run on two related inputs. This notion, which plays a key role in areas such as data privacy and optimization, has been the focus of several program analysis techniques introduced in recent years. Among the most successful ones, we can highlight type systems inspired by linear logic, as pioneered by Reed and Pierce in… ▽ More

    Submitted 1 February, 2023; v1 submitted 3 February, 2022; originally announced February 2022.

  6. arXiv:2108.07707  [pdf, ps, other

    cs.PL cs.CL

    On Incorrectness Logic and Kleene Algebra with Top and Tests

    Authors: Cheng Zhang, Arthur Azevedo de Amorim, Marco Gaboardi

    Abstract: Kleene algebra with tests (KAT) is a foundational equational framework for reasoning about programs, which has found applications in program transformations, networking and compiler optimizations, among many other areas. In his seminal work, Kozen proved that KAT subsumes propositional Hoare logic, showing that one can reason about the (partial) correctness of while programs by means of the equati… ▽ More

    Submitted 4 August, 2022; v1 submitted 17 August, 2021; originally announced August 2021.

    Journal ref: Proc. ACM Program. Lang. 6, POPL, Article 29 (January 2022), 30 pages (2022)

  7. arXiv:1807.05091  [pdf, other

    cs.PL

    Probabilistic Relational Reasoning via Metrics

    Authors: Arthur Azevedo de Amorim, Marco Gaboardi, Justin Hsu, Shin-ya Katsumata

    Abstract: The Fuzz programming language [Reed and Pierce, 2010] uses an elegant linear type system combined with a monad-like type to express and reason about probabilistic sensitivity properties, most notably $ε$-differential privacy. We show how to extend Fuzz to capture more general relational properties of probabilistic programs, with approximate, or $(ε, δ)$-differential privacy serving as a leading ex… ▽ More

    Submitted 18 April, 2019; v1 submitted 13 July, 2018; originally announced July 2018.

  8. arXiv:1802.00588  [pdf, other

    cs.CR cs.PL

    When Good Components Go Bad: Formally Secure Compilation Despite Dynamic Compromise

    Authors: Carmine Abate, Arthur Azevedo de Amorim, Roberto Blanco, Ana Nora Evans, Guglielmo Fachini, Catalin Hritcu, Théo Laurent, Benjamin C. Pierce, Marco Stronati, Jérémy Thibault, Andrew Tolmach

    Abstract: We propose a new formal criterion for evaluating secure compilation schemes for unsafe languages, expressing end-to-end security guarantees for software components that may become compromised after encountering undefined behavior---for example, by accessing an array out of bounds. Our criterion is the first to model dynamic compromise in a system of mutually distrustful components with clearly s… ▽ More

    Submitted 29 November, 2019; v1 submitted 2 February, 2018; originally announced February 2018.

    Comments: CCS paper with significant improvement of the proofs, first step towards a journal version

  9. arXiv:1710.07308  [pdf, other

    cs.CR cs.PL

    Formally Secure Compilation of Unsafe Low-Level Components (Extended Abstract)

    Authors: Guglielmo Fachini, Catalin Hritcu, Marco Stronati, Ana Nora Evans, Théo Laurent, Arthur Azevedo de Amorim, Benjamin C. Pierce, Andrew Tolmach

    Abstract: We propose a new formal criterion for secure compilation, providing strong security guarantees for components written in unsafe, low-level languages with C-style undefined behavior. Our criterion goes beyond recent proposals, which protect the trace properties of a single component against an adversarial context, to model dynamic compromise in a system of mutually distrustful components. Each comp… ▽ More

    Submitted 31 October, 2017; v1 submitted 19 October, 2017; originally announced October 2017.

    Comments: PriSC'18 submission, updated to fix a few things

  10. arXiv:1705.07354  [pdf, other

    cs.PL cs.CR

    The Meaning of Memory Safety

    Authors: Arthur Azevedo de Amorim, Catalin Hritcu, Benjamin C. Pierce

    Abstract: We give a rigorous characterization of what it means for a programming language to be memory safe, capturing the intuition that memory safety supports local reasoning about state. We formalize this principle in two ways. First, we show how a small memory-safe language validates a noninterference property: a program can neither affect nor be affected by unreachable parts of the state. Second, we ex… ▽ More

    Submitted 6 April, 2018; v1 submitted 20 May, 2017; originally announced May 2017.

    Comments: POST'18 final version

  11. A Semantic Account of Metric Preservation

    Authors: Arthur Azevedo de Amorim, Marco Gaboardi, Justin Hsu, Shin-ya Katsumata, Ikram Cherigui

    Abstract: Program sensitivity measures how robust a program is to small changes in its input, and is a fundamental notion in domains ranging from differential privacy to cyber-physical systems. A natural way to formalize program sensitivity is in terms of metrics on the input and output spaces, requiring that an $r$-sensitive function map inputs that are at distance $d$ to outputs that are at distance at mo… ▽ More

    Submitted 23 October, 2022; v1 submitted 1 February, 2017; originally announced February 2017.

  12. arXiv:1602.04503  [pdf, other

    cs.CR cs.PL

    Beyond Good and Evil: Formalizing the Security Guarantees of Compartmentalizing Compilation

    Authors: Yannis Juglaret, Catalin Hritcu, Arthur Azevedo de Amorim, Boris Eng, Benjamin C. Pierce

    Abstract: Compartmentalization is good security-engineering practice. By breaking a large software system into mutually distrustful components that run with minimal privileges, restricting their interactions to conform to well-defined interfaces, we can limit the damage caused by low-level attacks such as control-flow hijacking. When used to defend against such attacks, compartmentalization is often impleme… ▽ More

    Submitted 15 April, 2017; v1 submitted 14 February, 2016; originally announced February 2016.

    Comments: Nits

  13. arXiv:1510.00697  [pdf, other

    cs.PL cs.CR

    Towards a Fully Abstract Compiler Using Micro-Policies: Secure Compilation for Mutually Distrustful Components

    Authors: Yannis Juglaret, Catalin Hritcu, Arthur Azevedo de Amorim, Benjamin C. Pierce, Antal Spector-Zabusky, Andrew Tolmach

    Abstract: Secure compilation prevents all low-level attacks on compiled code and allows for sound reasoning about security in the source language. In this work we propose a new attacker model for secure compilation that extends the well-known notion of full abstraction to ensure protection for mutually distrustful components. We devise a compiler chain (compiler, linker, and loader) and a novel security mon… ▽ More

    Submitted 2 October, 2015; originally announced October 2015.

  14. arXiv:1509.06503  [pdf, other

    cs.PL

    A Verified Information-Flow Architecture

    Authors: Arthur Azevedo de Amorim, Nathan Collins, André DeHon, Delphine Demange, Catalin Hritcu, David Pichardie, Benjamin C. Pierce, Randy Pollack, Andrew Tolmach

    Abstract: SAFE is a clean-slate design for a highly secure computer system, with pervasive mechanisms for tracking and limiting information flows. At the lowest level, the SAFE hardware supports fine-grained programmable tags, with efficient and flexible propagation and combination of tags as instructions are executed. The operating system virtualizes these generic facilities to present an information-flow… ▽ More

    Submitted 6 March, 2016; v1 submitted 22 September, 2015; originally announced September 2015.

  15. Really Natural Linear Indexed Type Checking

    Authors: Arthur Azevedo de Amorim, Emilio Jesús Gallego Arias, Marco Gaboardi, Justin Hsu

    Abstract: Recent works have shown the power of linear indexed type systems for enforcing complex program properties. These systems combine linear types with a language of type-level indices, allowing more fine-grained analyses. Such systems have been fruitfully applied in diverse domains, including implicit complexity and differential privacy. A natural way to enhance the expressiveness of this approach is… ▽ More

    Submitted 16 March, 2015; originally announced March 2015.

  16. Testing Noninterference, Quickly

    Authors: Catalin Hritcu, Leonidas Lampropoulos, Antal Spector-Zabusky, Arthur Azevedo de Amorim, Maxime Dénès, John Hughes, Benjamin C. Pierce, Dimitrios Vytiniotis

    Abstract: Information-flow control mechanisms are difficult both to design and to prove correct. To reduce the time wasted on doomed proof attempts due to broken definitions, we advocate modern random testing techniques for finding counterexamples during the design process. We show how to use QuickCheck, a property-based random-testing tool, to guide the design of increasingly complex information-flow abstr… ▽ More

    Submitted 25 July, 2015; v1 submitted 1 September, 2014; originally announced September 2014.

    Journal ref: J. Funct. Prog. 26 (2016) e4