Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.

Damiano Macedonio

dblp:29/900 · DBLP profile ↗
← Back
11ranked-venue papers
1as first author
0since 2021 · last 2019
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Theory of computation · 5Software engineering, systems software and programming languages · 4 · 1 first-authorSecurity and privacy · 2Artificial intelligence and machine learning · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Network and information security
1 paper
Systems and software security · 100%
Software engineering, system software, and programming languages
2 papers
Program analysis · 83% Concurrent programming · 17%

Topics — the 9 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.622019
Static Identification of Injection Attacks in Java · ACM Trans. Program. Lang. Syst. 2019
Locking discipline inference and checking · ICSE 2016
Systems and software security › exploitation
injection attacks
0.412019
Static Identification of Injection Attacks in Java · ACM Trans. Program. Lang. Syst. 2019
Systems and software security › exploitation › injection attacks
SQL injection
0.412019
Static Identification of Injection Attacks in Java · ACM Trans. Program. Lang. Syst. 2019
Systems and software security › information flow tracking › taint analysis
static taint analysis
0.412019
Static Identification of Injection Attacks in Java · ACM Trans. Program. Lang. Syst. 2019
Systems and software security
vulnerability discovery
0.412019
Static Identification of Injection Attacks in Java · ACM Trans. Program. Lang. Syst. 2019
Program analysis › static analysis
abstract interpretation
0.412019
Static Identification of Injection Attacks in Java · ACM Trans. Program. Lang. Syst. 2019
Concurrent programming › concurrency bugs
data races
0.212016
Locking discipline inference and checking · ICSE 2016
Program analysis › concurrent program analysis
lock inference
0.212016
Locking discipline inference and checking · ICSE 2016
Logic in computer science › modal logic
spatial logic
0.112005
Spatial Logics for Bigraphs · ICALP 2005

Methods — techniques the papers use, named apart from their topics

boolean formula encoding · 0.8abstract interpretation · 0.8type inference · 0.2static checking · 0.2
YearPublicationVenuePosition
2019 Static Identification of Injection Attacks in Java
abstract
The most dangerous security-related software errors, according to the OWASP Top Ten 2017 list, affect web applications. They are potential injection attacks that exploit user-provided data to execute undesired operations: database access and updates ( SQL injection ); generation of malicious web pages ( cross-site scripting injection ); redirection to user-specified web pages ( redirect injection ); execution of OS commands and arbitrary scripts ( command injection ); loading of user-specified, possibly heavy or dangerous classes at run time ( reflection injection ); access to arbitrary files on the file system ( path-traversal ); and storing user-provided data into heap regions normally assumed to be shielded from the outside world ( trust boundary violation ). All these attacks exploit the same weakness: unconstrained propagation of data from sources that the user of a web application controls into sinks whose activation might trigger dangerous operations. Although web applications are written in a variety of languages, Java remains a frequent choice, in particular for banking applications, where security has tangible relevance. This article defines a unified, sound protection mechanism against such attacks, based on the identification of all possible explicit flows of tainted data in Java code. Such flows can be arbitrarily complex, passing through dynamically allocated data structures in the heap. The analysis is based on abstract interpretation and is interprocedural, flow-sensitive, and context-sensitive. Its notion of taint applies to reference (non-primitive) types dynamically allocated in the heap and is object-sensitive and field-sensitive. The analysis works by translating the program into Boolean formulas that model all possible data flows. Its implementation, within the Julia analyzer for Java and Android, found injection security vulnerabilities in the Internet banking service and in the customer relationship management of large Italian banks, as well as in a set of open-source third-party applications. It found the command injection, which is at the origin of the 2017 Equifax data breach, one of the worst data breaches ever. For objective, repeatable results, this article also evaluates the implementation on two open-source security benchmarks: the Juliet Suite and the OWASP Benchmark for the automatic comparison of static analyzers for cybersecurity. We compared this technique against more than 10 other static analyzers, both free and commercial. The result of these experiments is that ours is the only analysis for injection that is sound (up to well-stated limitations such as multithreading and native code) and works on industrial code, and it is also much more precise than other tools.
Fausto Spoto, Elisa Burato, Michael D. Ernst, Pietro Ferrara 0001, Alberto Lovato, Damiano Macedonio, Ciprian Spiridon
ACM Trans. Program. Lang. Syst.6
2016 Locking discipline inference and checking
abstract
Concurrency is a requirement for much modern software, but the implementation of multithreaded algorithms comes at the risk of errors such as data races. Programmers can prevent data races by documenting and obeying a locking discipline, which indicates which locks must be held in order to access which data.
Michael D. Ernst, Alberto Lovato, Damiano Macedonio, Fausto Spoto, Javier Thaine
ICSE3
2015 Boolean Formulas for the Static Identification of Injection Attacks in Java
Michael D. Ernst, Alberto Lovato, Damiano Macedonio, Ciprian Spiridon, Fausto Spoto
LPAR3
2014 A Thread-Safe Library for Binary Decision Diagrams
Alberto Lovato, Damiano Macedonio, Fausto Spoto
SEFM2
2014 A semantic analysis of key management protocols for wireless sensor networks
Damiano Macedonio, Massimo Merro
Sci. Comput. Program.1
2009 A type system for Discretionary Access Control
abstract
Discretionary Access Control (DAC) systems provide powerful resource management mechanisms based on the selective distribution of capabilities to selected classes of principals. We study a type-based theory of DAC models for a process calculus that extends Cardelli, Ghelli and Gordon's pi-calculus with groups (Cardelliet al. 2005). In our theory, groups play the role of principals and form the unit of abstraction for our access control policies, and types allow the specification of fine-grained access control policies to govern the transmission of names, bound the (iterated) re-transmission of capabilities and predicate their use on the inability to pass them to third parties. The type system relies on subtyping to achieve a selective distribution of capabilities to the groups that control the communication channels. We show that the typing and subtyping relationships of the calculus are decidable. We also prove a type safety result, showing that in well-typed processes all names: (i) flow according to the access control policies specified by their types; and (ii) are received at the intended sites with the intended capabilities. We illustrate the expressive power and the flexibility of the typing system using several examples.
Michele Bugliesi, Dario Colazzo, Silvia Crafa, Damiano Macedonio
Math. Struct. Comput. Sci.4
2007 Static BiLog: a Unifying Language for Spatial Structures
Giovanni Conforti, Damiano Macedonio, Vladimiro Sassone
Fundam. Informaticae2
2006 A Hybrid Intuitionistic Logic: Semantics and Decidability
abstract
We study a hybrid intuitionistic modal logic suitable for reasoning about distribution of resources. The modalities of the logic allow validation of properties in a particular place, in some place and in all places. We provide a sound and complete Kripke semantics. We also define a sound and complete birelational semantics, and show that it enjoys the finite model property: if a judgement is not valid in the logic, then there is a finite birelational counter-model. Hence, we prove that the logic is decidable.
Rohit Chadha, Damiano Macedonio, Vladimiro Sassone
J. Log. Comput.2
2005 Spatial Logics for Bigraphs
Giovanni Conforti, Damiano Macedonio, Vladimiro Sassone
ICALP2
2005 Information flow in secure contexts
abstract
Information flow security in a multilevel system aims at guaranteeing that no high level information is revealed to low level users, even in the presence of any possible malicious process. This requirement could be stronger than necessary when some knowledge about the environment (context) in which the process is going to run is available. To relax this requirement we introduce the notion of secure contexts for a class of processes. This notion is parametric with respect to both the observation equivalence and the operation used to characterize the low level view of a process. As observation equivalence we consider the cases of weak bisimulation and trace equivalence. We describe how to build secure contexts in these cases and we show that two well-known security properties, named BNDC and NDC, are just special instances of our general notion.
Annalisa Bossi, Damiano Macedonio, Carla Piazza, Sabina Rossi
J. Comput. Secur.2
2003 Secure Contexts for Confidential Data
abstract
Information flow security in a multilevel system aims at guaranteeing that no high level information is revealed to low level users, even in the presence of any possible malicious process. This requirement could be too demanding when some knowledge about the environment (context) in which the process is going to run is available. To deal with these simulations we introduce the notion of secure contexts for a class of processes. This notion is parametric with respect to both the observation equivalence and the operation used to characterize the low level behavior of a process. We mainly analyze the cases of bisimulation and trace equivalence. We describe how to build secure contexts in these cases and we show that two well-known security properties, named BNDC and NDC, are just special instances of our general notion.
Annalisa Bossi, Damiano Macedonio, Carla Piazza, Sabina Rossi
CSFW2