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

Jian Gao 0008

dblp:02/563-8 · DBLP profile ↗
← Back
10ranked-venue papers
7as first author
2since 2021 · last 2021
0000-0001-7098-6432ORCID · verified

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

Software engineering, systems software and programming languages · 7 · 5 first-author · 1 since 2021Systems, architecture and hardware · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author · 1 since 2021

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
4 papers
Systems and software security · 100%
Software engineering, system software, and programming languages
5 papers
Concurrent programming · 25% Program analysis · 23% Program synthesis and code generation · 22%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Embedded and real-time systems · 100%

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

TopicWeightPapersLastEvidence papers
Systems and software security
vulnerability discovery
1.642021
Semantic Learning and Emulation Based Cross-Platform Binary Vulnerability Seeker · IEEE Trans. Software Eng. 2021
EM-Fuzz: Augmented Firmware Fuzzing via Memory Checking · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
VulSeeker-pro: enhanced semantic learning based binary vulnerability seeker with emulation · ESEC/SIGSOFT FSE 2018
Systems and software security › vulnerability discovery › software vulnerability detection
binary vulnerability detection
0.722018
VulSeeker-pro: enhanced semantic learning based binary vulnerability seeker with emulation · ESEC/SIGSOFT FSE 2018
VulSeeker: a semantic learning based vulnerability seeker for cross-platform binary · ASE 2018
Program analysis
binary analysis
0.512021
Semantic Learning and Emulation Based Cross-Platform Binary Vulnerability Seeker · IEEE Trans. Software Eng. 2021
Systems and software security › vulnerability discovery › fuzzing
firmware fuzzing
0.412020
EM-Fuzz: Augmented Firmware Fuzzing via Memory Checking · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Embedded and real-time systems › embedded system security
firmware security
0.412020
EM-Fuzz: Augmented Firmware Fuzzing via Memory Checking · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Software maintenance and evolution
code clone detection
0.412019
Go-clone: graph-embedding based clone detector for Golang · ISSTA 2019
Concurrent programming
concurrency bugs
0.312018
Managing concurrent testing of data race with ComRaDe · ISSTA 2018
Concurrent programming › concurrency bug detection
data race detection
0.312018
Managing concurrent testing of data race with ComRaDe · ISSTA 2018
Program synthesis and code generation
code completion
0.312017
A language model for statements of software code · ASE 2017
Program synthesis and code generation
code language model
0.312017
A language model for statements of software code · ASE 2017
Programming languages and type systems › concurrent programming languages
go
0.112019
Go-clone: graph-embedding based clone detector for Golang · ISSTA 2019
Software testing
concurrency testing
0.112018
Managing concurrent testing of data race with ComRaDe · ISSTA 2018
Program analysis
dynamic analysis
0.112018
VulSeeker-pro: enhanced semantic learning based binary vulnerability seeker with emulation · ESEC/SIGSOFT FSE 2018
Software testing › test process
test management
0.112018
Managing concurrent testing of data race with ComRaDe · ISSTA 2018
Empirical software engineering › developer studies › developer behavior
developer productivity
0.112017
A language model for statements of software code · ASE 2017

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

semantic learning · 1.7semantic flow graph · 1.0semantic emulation · 1.0memory instrumentation · 0.9memory checking · 0.9fuzzing · 0.9emulation · 0.7graph embedding · 0.4race detection tools · 0.3graph neural network · 0.3code similarity · 0.3longest common subsequence · 0.3intermediate representation · 0.3genetic algorithm · 0.3fuzzy matching · 0.3
YearPublicationVenuePosition
2021 Semantic Learning Based Cross-Platform Binary Vulnerability Search For IoT Devices
abstract
The rapid development of Internet of Things (IoT) has triggered more security requirements than ever, especially in detecting vulnerabilities in various IoT devices. The widely used clone-based vulnerability search methods are effective on source code; however, their performance is limited in IoT binary search. In this article, we present IoTSeeker, a function semantic learning based vulnerability search approach for cross-platform IoT binary. First, we construct the function semantic graph to capture both the data flow and control flow information and encode lightweight semantic features of each basic block within the semantic graph as numerical vectors. Then, the embedding vector of the whole binary function is generated by feeding the numerical vectors of basic blocks to our customized semantics aware neural network model. Finally, the cosine distance of two embedding vectors is calculated to determine whether a binary function contains a known vulnerability. The experiments show that IoTSeeker outperforms the state-of-the-art approaches for identifying cross-platform IoT binary vulnerabilities. For example, compared to Gemini, IoTSeeker finds 12.68% more vulnerabilities in the top-50 candidates, and improves the value of AUC for 8.23%.
Jian Gao 0008, Yu Jiang 0001, Houbing Song, Kim-Kwang Raymond Choo, Jia-Guang Sun 0001
IEEE Trans. Ind. Informatics1
2021 Semantic Learning and Emulation Based Cross-Platform Binary Vulnerability Seeker
abstract
Clone detection is widely exploited for software vulnerability search. The approaches based on source code analysis cannot be applied to binary clone detection because the same source code can produce significantly different binaries due to different operating systems, microprocessor architectures and compilers. In this paper, we presentBinSeeker, a cross-platform binary seeker that integrates semantic learning and emulation. With the help of the labeled semantic flow graph,BinSeekercan quickly identify$M$candidate functions that are most similar to the vulnerability from the target binary. The value of$M$is relatively large so this semantic learning procedure essentially eliminates those functions that are very unlikely to have the vulnerability. Then, semantic emulation is conducted on these$M$candidates to obtain their dynamic signature sequences. By comparing signature sequences,BinSeekerproduces top-$N$functions that exhibit most similar behavior to that of the vulnerability. With fast filtering of semantic learning and accurate comparison of semantic emulation,BinSeekerseeks vulnerability precisely with little overhead. The experiments on six widely used programs with fifteen known CVE vulnerabilities demonstrate thatBinSeekeroutperforms three state-of-the-art toolsGenius,GeminiandCACompare. Regarding search accuracy,BinSeekerachieves an MRR value of 0.65 in the target programs, whereas the MRR values byGenius,GeminiandCACompareare 0.17, 0.07 and 0.42, respectively. If we consider ranking a function with the targeted vulnerability in the top-5 as accurate,BinSeekerachieves the accuracy of 93.33 percent, while the accuracy of the other three tools is merely 33.33, 13.33 and 53.33 percent, respectively. Such accuracy is achieved with 0.27s on average to determine whether the target binary function contains a known vulnerability, and the time for the other three tools are 1.57s, 0.15s and 0.98s, respectively. Compared to the time used to manually identify the true positive vulnerability from the false positive candidates reported by Gemini, the time overhead ofBinSeekeris negligible. Evidently, the proposedBinSeekerachieves a better balance between accuracy and efficiency.
Jian Gao 0008, Yu Jiang 0001, Zhe Liu 0001, Cong Wang 0020, Xun Jiao 0002, Zijiang Yang 0006, Jia-Guang Sun 0001
IEEE Trans. Software Eng.1
2020 EM-Fuzz: Augmented Firmware Fuzzing via Memory Checking
abstract
Embedded systems are increasingly interconnected in the emerging application scenarios. Many of these applications are safety critical, making it a high priority to ensure that the systems are free from malicious attacks. This work aims to detect vulnerabilities, that could be exploited by adversaries to compromise functional correctness, in the embedded firmware, which is challenging especially due to the absence of source code. In particular, we propose EM-Fuzz, a firmware vulnerability detection technique that tightly integrates fuzzing with real-time memory checking. Based on the memory instrumentation, the firmware fuzzing can not only be guided by the traditional branch coverage to generate high-quality seeds to explore hard-to-reach regions but also by the recorded memory sensitive operations to continuously exercise sensitive regions which are prone to being attacked. More importantly, the instrumentation integrates real-time memory checkers to expose memory vulnerabilities, which is not well-supported by existing fuzzers without source code. The experiments on several real-world embedded firmware such as OpenSSL demonstrate that EM-Fuzz significantly improves the performance of state-of-the-art fuzzing tools, such as AFL and AFLFast, with the coverage improvements of 93.98% and 46.89%, respectively. Furthermore, EM-Fuzz exposes a total of 23 vulnerabilities, with an average of about 7-h per vulnerability. AFL and AFLFast together find 10 vulnerabilities, costing about 13 h and 10-h per vulnerability on average, respectively. Out of these 23 vulnerabilities, 16 are previously unknown and have been reported to the upstream product vendors, 7 of which have been assigned with unique CVE identifiers in the U.S. National Vulnerability Database.
Jian Gao 0008, Yu Jiang 0001, Zhe Liu 0001, Wanli Chang 0001, Xun Jiao 0002, Jia-Guang Sun 0001
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
2019 Go-clone: graph-embedding based clone detector for Golang
abstract
Golang (short for Go programming language) is a fast and compiled language, which has been increasingly used in industry due to its excellent performance on concurrent programming. Golang redefines concurrent programming grammar, making it a challenge for traditional clone detection tools and techniques. However, there exist few tools for detecting duplicates or copy-paste related bugs in Golang. Therefore, an effective and efficient code clone detector on Golang is especially needed.
Cong Wang 0020, Jian Gao 0008, Yu Jiang 0001, Zhenchang Xing, Huafeng Zhang, Weiliang Ying, Ming Gu 0001, Jia-Guang Sun 0001
ISSTA2
2019 Polar: Function Code Aware Fuzz Testing of ICS Protocol
abstract
Industrial Control System (ICS) protocols are widely used to build communications among system components. Compared with common internet protocols, ICS protocols have more control over remote devices by carrying a specific field called “function code”, which assigns what the receive end should do. Therefore, it is of vital importance to ensure their correctness. However, traditional vulnerability detection techniques such as fuzz testing are challenged by the increasing complexity of these diverse ICS protocols. In this paper, we present a function code aware fuzzing framework — Polar, which automatically extracts semantic information from the ICS protocol and utilizes this information to accelerate security vulnerability detection. Based on static analysis and dynamic taint analysis, Polar initiates the values of the function code field and identifies some vulnerable operations. Then, novel semantic aware mutation and selection strategies are designed to optimize the fuzzing procedure. For evaluation, we implement Polar on top of two popular fuzzers — AFL and AFLFast, and conduct experiments on several widely used ICS protocols such as Modbus, IEC104, and IEC 61850. Results show that, compared with AFL and AFLFast, Polar achieves the same code coverage and bug detection numbers at the speed of 1.5X-12X. It also gains increase with 0%--91% more paths within 24 hours. Furthermore, Polar has exposed 10 previously unknown vulnerabilities in those protocols, 6 of which have been assigned unique CVE identifiers in the US National Vulnerability Database.
Zhengxiong Luo 0002, Feilong Zuo, Yu Jiang 0001, Jian Gao 0008, Xun Jiao 0002, Jia-Guang Sun 0001
ACM Trans. Embed. Comput. Syst.4
2018 Managing concurrent testing of data race with ComRaDe
abstract
As a result of the increasing number of concurrent programs, the researchers put forward a number of tools with different implementation strategies to detect data race. However, confirming data races from the collection of true and false positives reported by race detectors is extremely the time-consuming process during the evaluation period.
Jian Gao 0008, Yu Jiang 0001, Han Liu 0010, Weiliang Ying, Ming Gu 0001
ISSTA1
2018 VulSeeker: a semantic learning based vulnerability seeker for cross-platform binary
abstract
Code reuse improves software development efficiency, however, vulnerabilities can be introduced inadvertently. Many existing works compute the code similarity based on CFGs to determine whether a binary function contains a known vulnerability. Unfortunately, their performance in cross-platform binary search is challenged.
Jian Gao 0008, Yu Jiang 0001, Jia-Guang Sun 0001
ASE1
2018 Jbench: a dataset of data races for concurrency testing
abstract
Race detection is increasingly popular, both in the academic research and in industrial practice. However, there is no specialized and comprehensive dataset of the data race, making it difficult to achieve the purpose of effectively evaluating race detectors or developing efficient race detection algorithms.
Jian Gao 0008, Yu Jiang 0001, Han Liu 0010, Weiliang Ying
MSR1
2018 VulSeeker-pro: enhanced semantic learning based binary vulnerability seeker with emulation
abstract
Learning-based clone detection is widely exploited for binary vulnerability search. Although they solve the problem of high time overhead of traditional dynamic and static search approaches to some extent, their accuracy is limited, and need to manually identify the true positive cases among the top-M search results during the industrial practice. This paper presents VulSeeker-Pro, an enhanced binary vulnerability seeker that integrates function semantic emulation at the back end of semantic learning, to release the engineers from the manual identification work. It first uses the semantic learning based predictor to quickly predict the top-M candidate functions which are the most similar to the vulnerability from the target binary. Then the top-M candidates are fed to the emulation engine to resort, and more accurate top-N candidate functions are obtained. With fast filtering of semantic learning and dynamic trace generation of function semantic emulation, VulSeeker-Pro can achieve higher search accuracy with little time overhead. The experimental results on 15 known CVE vulnerabilities involving 6 industry widely used programs show that VulSeeker-Pro significantly outperforms the state-of-the-art approaches in terms of accuracy. In a total of 45 searches, VulSeeker-Pro finds 40 and 43 real vulnerabilities in the top-1 and top-5 candidate functions, which are 12.33× and 2.58× more than the most recent and related work Gemini. In terms of efficiency, it takes 0.22 seconds on average to determine whether the target binary function contains a known vulnerability or not.
Jian Gao 0008, Yu Jiang 0001, Heyuan Shi, Jia-Guang Sun 0001
ESEC/SIGSOFT FSE1
2017 A language model for statements of software code
abstract
Building language models for source code enables a large set of improvements on traditional software engineering tasks. One promising application is automatic code completion. State-of-the-art techniques capture code regularities at token level with lexical information. Such language models are more suitable for predicting short token sequences, but become less effective with respect to long statement level predictions. In this paper, we have proposed PCC to optimize the token-level based language modeling. Specifically, PCC introduced an intermediate representation (IR) for source code, which puts tokens into groups using lexeme and variable relative order. In this way, PCC is able to handle long token sequences, i.e., group sequences, to suggest a complete statement with the precise synthesizer. Further more, PCC employed a fuzzy matching technique which combined genetic and longest common subsequence algorithms to make the prediction more accurate. We have implemented a code completion plugin for Eclipse and evaluated it on open-source Java projects. The results have demonstrated the potential of PCC in generating precise long statement level predictions. In 30%-60% of the cases, it can correctly suggest the complete statement with only six candidates, and 40%-90% of the cases with ten candidates.
Yixiao Yang, Yu Jiang 0001, Ming Gu 0001, Jia-Guang Sun 0001, Jian Gao 0008, Han Liu 0010
ASE5