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

Cory F. Cohen

dblp:67/4125 · DBLP profile ↗
← Back
4ranked-venue papers
0as first author
0since 2021 · last 2020
—ORCID · none

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

Artificial intelligence and machine learning · 2Security and privacy · 2Databases, data management, data science and information retrieval · 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
3 papers
Systems and software security · 98% Malware analysis · 2%
Software engineering, system software, and programming languages
2 papers
Program analysis · 100%
Theoretical computer science
1 paper
Logic in computer science · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
binary analysis
0.522018
Using Logic Programming to Recover C++ Classes and Methods from Compiled Executables · CCS 2018
Supervised learning for provenance-similarity of binaries · KDD 2011
Systems and software security › exploitation
code reuse attack
0.412020
A Generic Technique for Automatically Finding Defense-Aware Code Reuse Attacks · CCS 2020
Systems and software security
exploitation
0.412020
A Generic Technique for Automatically Finding Defense-Aware Code Reuse Attacks · CCS 2020
Systems and software security › exploitation › code reuse attack
return-oriented programming
0.412020
A Generic Technique for Automatically Finding Defense-Aware Code Reuse Attacks · CCS 2020
Systems and software security › memory safety
control-flow integrity
0.112020
A Generic Technique for Automatically Finding Defense-Aware Code Reuse Attacks · CCS 2020
Systems and software security › binary analysis
binary similarity
0.112011
Supervised learning for provenance-similarity of binaries · KDD 2011
Program analysis › binary analysis
binary code similarity detection
0.112011
Supervised learning for provenance-similarity of binaries · KDD 2011
Logic in computer science
logic programming
0.112018
Using Logic Programming to Recover C++ Classes and Methods from Compiled Executables · CCS 2018
Malware analysis
malware classification
0.012011
Supervised learning for provenance-similarity of binaries · KDD 2011

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

symbolic analysis · 1.0static analysis · 1.0logic programming · 1.0program analysis · 0.4automated attack generation · 0.4supervised classification · 0.2feature engineering · 0.2
YearPublicationVenuePosition
2020 A Generic Technique for Automatically Finding Defense-Aware Code Reuse Attacks
abstract
Code reuse attacks have been the subject of a substantial amount of research during the past decade. This research largely resulted from early work on Return-Oriented Programming (ROP), which showed that the then newly proposed Non-Executable Memory (NX) defense could be bypassed. More recently, the research community has been simultaneously investigating new defenses that are believed to thwart code reuse attacks, such as Control Flow Integrity (CFI), and defense-aware techniques for attacking these defenses, such as Data-Oriented Programming (DOP). Unfortunately, the feasibility of defense-aware attacks are very dependent on the behaviors of the attacked program, which makes it difficult for defenders to understand how much protection a defense such as CFI may provide. To better understand this, researchers have introduced automated defense-aware code reuse attack systems. Unfortunately, the handful of existing systems implement a single fixed, defense-specific strategy that is complex and cannot be used to consider other defenses.
Edward J. Schwartz, Cory F. Cohen, Jeffrey Gennari, Stephanie Elzer Schwartz
CCS2
2018 Using Logic Programming to Recover C++ Classes and Methods from Compiled Executables
abstract
High-level C++ source code abstractions such as classes and methods greatly assist human analysts and automated algorithms alike when analyzing C++ programs. Unfortunately, these abstractions are lost when compiling C++ source code, which impedes the understanding of C++ executables. In this paper, we propose a system, OOAnalyzer, that uses an innovative new design to statically recover detailed C++ abstractions from executables in a scalable manner. OOAnalyzer's design is motivated by the observation that many human analysts reason about C++ programs by recognizing simple patterns in binary code and then combining these findings using logical inference, domain knowledge, and intuition. We codify this approach by combining a lightweight symbolic analysis with a flexible Prolog-based reasoning system. Unlike most existing work, OOAnalyzer is able to recover both polymorphic and non-polymorphic C++ classes. We show in our evaluation that OOAnalyzer assigns over 78% of methods to the correct class on our test corpus, which includes both malware and real-world software such as Firefox and MySQL. These recovered abstractions can help analysts understand the behavior of C++ malware and cleanware, and can also improve the precision of program analyses on C++ executables.
Edward J. Schwartz, Cory F. Cohen, Michael Duggan, Jeffrey Gennari, Jeffrey Havrilla, Charles Hines
CCS2
2012 Binary Function Clustering Using Semantic Hashes
abstract
The ability to identify semantically-related functions, in large collections of binary executables, is important for malware detection. Intuitively, two pieces of code are similar if they have the same effect on a machine's state. Current state-of-the-art tools employ a variety of pair wise comparisons (e.g., template matching using SMT solvers, Value-Set analysis at critical program points, API call matching, etc.) However, these methods are unshakable for clustering large datasets, of size N, since they require O(N2) comparisons. In this paper, we present an alternative approach based upon "hashing". We propose a scheme that captures the semantics of functions as semantic hashes. Our approach treats a function as a set of features, each of which represent the input-output behavior of a basic block. Using a form of locality-sensitive hashing known as Min Hashing, functions with many common features can be quickly identified, and the complexity of clustering is reduced to O(N). Experiments on functions extracted from the CERT malware catalog indicate that we are able to cluster closely related code with a low false positive rate.
Wesley Jin, Sagar Chaki, Cory F. Cohen, Arie Gurfinkel, Jeffrey Havrilla, Charles Hines, Priya Narasimhan
ICMLA (1)3
2011 Supervised learning for provenance-similarity of binaries
abstract
Understanding, measuring, and leveraging the similarity of binaries (executable code) is a foundational challenge in software engineering. We present a notion of similarity based on provenance -- two binaries are similar if they are compiled from the same (or very similar) source code with the same (or similar) compilers. Empirical evidence suggests that provenance-similarity accounts for a significant portion of variation in existing binaries, particularly in malware. We propose and evaluate the applicability of classification to detect provenance-similarity. We evaluate a variety of classifiers, and different types of attributes and similarity labeling schemes, on two benchmarks derived from open-source software and malware respectively. We present encouraging results indicating that classification is a viable approach for automated provenance-similarity detection, and as an aid for malware analysts in particular.
Sagar Chaki, Cory F. Cohen, Arie Gurfinkel
KDD2