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.
? Tutorial for this page

Alessandro Coglio

dblp:56/3094 · DBLP profile ↗
← Back
9ranked-venue papers
3as first author
1since 2021 · last 2021
—ORCID · none

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

Systems, architecture and hardware · 4 · 3 first-authorSoftware engineering, systems software and programming languages · 3 · 1 since 2021Security and privacy · 2Theory of computation · 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.

Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 56% Runtime systems and virtual machines · 44%

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

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.012000
A formal specification of JavaTM class loading · OOPSLA 2000
Programming languages and type systems › type systems
type soundness
0.012000
A formal specification of JavaTM class loading · OOPSLA 2000
Programming languages and type systems
bytecode verification
0.012000
A formal specification of JavaTM class loading · OOPSLA 2000

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

type safety proof · 0.0formal specification · 0.0
YearPublicationVenuePosition
2021 Towards Model-Based Intent-Driven Adaptive Software
Daniel Balasubramanian, Alessandro Coglio, Abhishek Dubey, Gabor Karsai
ISoLA2
2020 Comprehensive Java Metadata Tracking for Attack Detection and Repair
abstract
We present ClearTrack, a system that tracks meta-data for each primitive value in Java programs to detect and nullify a range of vulnerabilities such as integer overflow/underflow and SQL/command injection vulnerabilities. Contributions include new techniques for eliminating false positives associated with benign integer overflows and underflows, new metadata-aware techniques for detecting and nullifying SQL/command command injection attacks, and results from an independent evaluation team. These results show that 1) ClearTrack operates successfully on Java programs comprising hundreds of thousands of lines of code (including instrumented jar files and Java system libraries, the majority of the applications comprise over 3 million lines of code), 2) because of computations such as cryptography and hash table calculations, these applications perform millions of benign integer overflows and underflows, and 3) ClearTrack successfully detects and nullifies all tested integer overflow and underflow and SQL/command injection vulnerabilities in the benchmark applications.
Jeff H. Perkins, Jordan Eikenberry, Alessandro Coglio, Martin C. Rinard
DSN3
2016 AutoRand: Automatic Keyword Randomization to Prevent Injection Attacks
Jeff H. Perkins, Jordan Eikenberry, Alessandro Coglio, Daniel Willenson, Stelios Sidiroglou-Douskos, Martin C. Rinard
DIMVA3
2006 Roadmap for enhanced languages and methods to aid verification
abstract
This roadmap describes ways that researchers in four areas---specification languages, program generation, correctness by construction, and programming languages---might help further the goal of verified software. It also describes what advances the "verified software" grand challenge might anticipate or demand from work in these areas. That is, the roadmap is intended to help foster collaboration between the grand challenge and these research areas.A common goal for research in these areas is to establish language designs and tool architectures that would allow multiple annotations and tools to be used on a single program. In the long term, researchers could try to unify these annotations and integrate such tools.
Gary T. Leavens, Jean-Raymond Abrial, Don S. Batory, Michael J. Butler, Alessandro Coglio, Kathi Fisler, Eric C. R. Hehner, Cliff B. Jones, Dale Miller 0001, Simon L. Peyton Jones, Murali Sitaraman, Douglas R. Smith, Aaron Stump
GPCE5
2004 Simple verification technique for complex Java bytecode subroutines
abstract
Abstract Java is normally compiled to bytecode, which is verified and then executed by the Java Virtual Machine. Bytecode produced via compilation must pass verification. The main cause of complexity for bytecode verification is subroutines, used by compilers to generate more compact code. The techniques to verify subroutines proposed in the literature reject certain programs produced by mundane compilers, are difficult to realize within an implementation of the Java Virtual Machine or are relatively complicated. This paper presents a novel technique which is very simple to understand, implement and prove sound. It is also very powerful: the set of accepted programs has a simple characterization which most likely includes all the code produced by current compilers and which enables future compilers to make more extensive use of subroutines. Copyright © 2004 John Wiley & Sons, Ltd.
Alessandro Coglio
Concurr. Pract. Exp.1
2003 Improving the official specification of Java bytecode verification
abstract
Abstract Bytecode verification is the main mechanism to ensure type safety in the Java Virtual Machine. Inadequacies in its official specification may lead to incorrect implementations where security can be broken and/or certain legal programs are rejected. This paper provides a comprehensive analysis of the specification, along with concrete suggestions for improvement. Copyright © 2003 John Wiley & Sons, Ltd.
Alessandro Coglio
Concurr. Comput. Pract. Exp.1
2001 Type safety in the JVM: some problems in Java 2 SDK 1.2 and proposed solutions
abstract
Abstract In the course of our work in developing formal specifications for components of the Java Virtual Machine (JVM), we have uncovered subtle bugs in the bytecode verifier of Sun's Java 2 SDK 1.2. These bugs, which lead to type safety violations, relate to the naming of reference types. Under certain circumstances, these names can be spoofed through delegating class loaders. These flaws expose some inaccuracies and ambiguities in the JVM specification. We propose several solutions to all of these bugs. In particular, we propose a general solution that makes use of subtype loading constraints. Such constraints complement the equality loading constraints introduced in the Java 2 Platform, and are posted by the bytecode verifier when checking assignment compatibility of class types. By posting constraints instead of resolving and loading classes, the bytecode verifier in our solution has a cleaner interface with the rest of the JVM, and allows lazier loading. We sketch some excerpts of our mathematical formalization of this approach and of its type safety results. Copyright © 2001 John Wiley & Sons, Ltd.
Alessandro Coglio, Allen Goldberg
Concurr. Comput. Pract. Exp.1
2001 The Control Layer in Open Mechanized Reasoning Systems: Annotations and Tactics
Alessandro Armando, Alessandro Coglio, Fausto Giunchiglia, Silvio Ranise
J. Symb. Comput.2
2000 A formal specification of JavaTM class loading
abstract
The Java Virtual Machine (JVM) has a novel and powerful mechanism to support lazy, dynamic class loading according to user-definable policies. Class loading directly impacts type safety, on which the security of Java applications is based. Conceptual bugs in the loading mechanism were found in earlier versions of the JVM that lead to type violations. A deeper understanding of the class loading mechanism, through such means as formal analysis, will improve our confidence that no additional bugs are present.The work presented in this paper provides a formal specification of (the relevant aspects of) class loading in the JVM and proves its type safety. Our approach to proving type safety is different from the usual ones since classes are dynamically loaded and full type information may not be statically available. In addition, we propose an improvement in the interaction between class loading and bytecode verification, which is cleaner and enables lazier loading.
Allen Goldberg, Alessandro Coglio
OOPSLA3