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

Haiyang Sun 0003

dblp:78/562-3 · DBLP profile ↗
← Back
14ranked-venue papers
6as first author
1since 2021 · last 2021
0009-0007-5184-478XORCID · corroborated

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

Software engineering, systems software and programming languages · 12 · 6 first-author · 1 since 2021Systems, architecture and hardware · 2 · 1 first-authorArtificial intelligence and machine learning · 1Computer networks · 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.

Computer networks
1 paper
Network management and operations · 100%
Network and information security
1 paper
Network security · 100%

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

TopicWeightPapersLastEvidence papers
Network management and operations › fault management › fault diagnosis
fault localization
0.212014
DFL: Secure and Practical Fault Localization for Datacenter Networks · IEEE/ACM Trans. Netw. 2014
Network management and operations › fault management › fault diagnosis › fault localization
secure fault localization
0.212014
DFL: Secure and Practical Fault Localization for Datacenter Networks · IEEE/ACM Trans. Netw. 2014

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

delayed function disclosure · 0.4
YearPublicationVenuePosition
2021 Automatically Assessing and Extending Code Coverage for NPM Packages
abstract
Typical Node.js applications extensively rely on packages hosted in the npm registry. As such packages may be used by thousands of other packages or applications, it is important to assess their code coverage. Moreover, increasing code coverage may help detect previously unknown issues. In this paper, we introduce TESA, a new tool that automatically assembles a test suite for any package in the npm registry. The test suite includes 1) tests written for the target package and usually hosted in its development repository, and 2) tests selected from dependent packages. The former tests allow assessing the code coverage of the target package, while the latter ones can increase code coverage by exploiting third-party tests that also exercise code in the target package. We use TESA to assess the code coverage of 500 popular npm packages. Then, we demonstrate that TESA can significantly increase code coverage by including tests from dependent packages. Finally, we show that the test suites assembled by TESA increase the effectiveness of existing dynamic program analyses to identify performance issues that are not detectable when only executing the developer's tests.
Haiyang Sun 0003, Andrea Rosà, Daniele Bonetta, Walter Binder
AST1
2019 Reasoning about the Node.js Event Loop using Async Graphs
abstract
With the popularity of Node.js, asynchronous, event-driven programming has become widespread in server-side applications. While conceptually simple, event-based programming can be tedious and error-prone. The complex semantics of the Node.js event loop, coupled with the different flavors of asynchronous execution in JavaScript, easily leads to bugs. This paper introduces a new model called Async Graph to reason about the runtime behavior of applications and their interactions with the Node.js event loop. Based on the model, we have developed AsyncG, a tool to automatically build and analyze the Async Graph of a running application, and to identify bugs related to all sources of asynchronous execution in Node.js. AsyncG is compatible with the latest ECMAScript language features and can be (de)activated at runtime. In our evaluation, we show how AsyncG can be used to identify bugs in real-world Node.js applications.
Haiyang Sun 0003, Daniele Bonetta, Filippo Schiavio, Walter Binder
CGO1
2019 Automated Large-Scale Multi-Language Dynamic Program Analysis in the Wild (Tool Insights Paper)
abstract
Today’s availability of open-source software is overwhelming, and the number of free, ready-to-use software components in package repositories such as NPM, Maven, or SBT is growing exponentially. In this paper we address two straightforward yet important research questions: would it be possible to develop a tool to automate dynamic program analysis on public open-source software at a large scale? Moreover, and perhaps more importantly, would such a tool be useful? We answer the first question by introducing NAB, a tool to execute large-scale dynamic program analysis of open-source software in the wild. NAB is fully-automatic, language-agnostic, and can scale dynamic program analyses on open-source software up to thousands of projects hosted in code repositories. Using NAB, we analyzed more than 56K Node.js, Java, and Scala projects. Using the data collected by NAB we were able to (1) study the adoption of new language constructs such as JavaScript Promises, (2) collect statistics about bad coding practices in JavaScript, and (3) identify Java and Scala task-parallel workloads suitable for inclusion in a domain-specific benchmark suite. We consider such findings and the collected data an affirmative answer to the second question.
Alex Villazón, Haiyang Sun 0003, Andrea Rosà, Eduardo Rosales 0001, Daniele Bonetta, Isabella Defilippis, Sergio Oporto, Walter Binder
ECOOP2
2018 Efficient dynamic analysis for Node.js
abstract
Due to its popularity, there is an urgent need for dynamic program-analysis tools for Node.js, helping developers find bugs, performance bottlenecks, and bad coding practices. Frameworks based on code-level instrumentation enable dynamic analyses close to program semantics and are more flexible than Node.js built-in profiling tools. However, existing code-level instrumentation frameworks for JavaScript suffer from enormous overheads and difficulties in instrumenting the built-in module library of Node.js. In this paper, we introduce a new dynamic analysis framework for JavaScript and Node.js called NodeProf. While offering similar flexibility as code-level instrumentation frameworks, NodeProf significantly improves analysis performance while ensuring comprehensive code coverage. NodeProf supports runtime (de)activation of analyses and incurs zero overhead when no analysis is active. NodeProf is based on dynamic instrumentation of the JavaScript runtime and leverages automatic partial evaluation to generate efficient machine code. In addition, NodeProf makes use of the language interoperability provided by the runtime and thus allows dynamic analyses to be written in Java and JavaScript with compatibility to Jalangi, a state-of-the-art code-level JavaScript instrumentation framework. Our experiments show that the peak performance of running the same dynamic analyses using NodeProf can be up to three orders of magnitude faster than Jalangi.
Haiyang Sun 0003, Daniele Bonetta, Christian Humer, Walter Binder
CC1
2018 Capturing Inter-process Communication for Runtime Verification on Android
Alex Villazón, Haiyang Sun 0003, Walter Binder
ISoLA (4)2
2017 Multi-Process Runtime Verification for Android
abstract
With the popularity of Android, a huge number of Android apps appear in different markets. As some apps pose significant security risks, it is important to support runtime monitoring and verification on Android. Existing runtime verification frameworks only focus on verifying the events within a single process, ignoring that Android is a multi-process system where different components communicate frequently, and thus lack the ability to analyze and monitor behaviors across app processes. In this paper, we introduce our new runtime verification framework for Android, capable of performing runtime verification across multiple Android components in different processes. Our approach features an extended regular expression formalism, allowing one to specify complete analyses covering the whole Android system. We illustrate the use of our framework with an Android service characterization study and a monitor for permission (mis) use in apps.
Haiyang Sun 0003, Alexander North, Walter Binder
APSEC1
2017 ADRENALIN-RV: Android Runtime Verification Using Load-Time Weaving
abstract
Android has become one of the most popular operating systems for mobile devices. As the number of applications for the Android ecosystem grows, so is their complexity, increasing the need for runtime verification on the Android platform. Unfortunately, despite the presence of several runtime verification frameworks for Java bytecode, DEX bytecode used in Android does not benefit from such a wide support. While a few runtime verification tools support applications developed for Android, such tools offer only limited bytecode coverage and may not be able to detect property violations in certain classes. In this paper, we show that ADRENALIN-RV, our new runtime verification tool for Android, overcomes this limitation. In contrast to other frameworks, ADRENALIN-RV weaves monitoring code at load time and is able to instrument all loaded classes. In addition to the default classes inside the application package (APK), ADRENALIN-RV covers both the Android class library and libraries dynamically loaded from the storage, network, or generated dynamically, which related tools cannot verify. Evaluation results demonstrate the increased code coverage of ADRENALIN-RV with respect to other runtime validation tools for Android. Thanks to ADRENALIN-RV, we were able to detect violations that cannot be detected by other tools.
Haiyang Sun 0003, Andrea Rosà, Omar Javed, Walter Binder
ICST1
2016 Adaptable Runtime Monitoring for the Java Virtual Machine
Andrea Rosà, Yudi Zheng, Haiyang Sun 0003, Omar Javed, Walter Binder
ISoLA (2)3
2016 Extended Code Coverage for AspectJ-Based Runtime Verification Tools
Omar Javed, Yudi Zheng, Andrea Rosà, Haiyang Sun 0003, Walter Binder
RV4
2016 AutoBench: Finding Workloads That You Need Using Pluggable Hybrid Analyses
abstract
Researchers often rely on benchmarks to demonstrate feasibility or efficiency of their contributions. However, finding the right benchmark suite can be a daunting task - existing benchmark suites may be outdated, known to be flawed, or simply irrelevant for the proposed approach. Creating a proper benchmark suite is challenging, extremely time consuming, and also - unless it becomes widely popular - a thankless endeavor. In this paper, we introduce a novel approach to help researchers find relevant workloads for their experimental evaluation needs. Our approach relies on the huge number of open-source projects available in public repositories, and on unit testing having become best practice in software development. Using a repository crawler employing pluggable static and dynamic analyses for filtering and workload characterization, we allow users to automatically find projects with relevant workloads. Preliminary results presented here show that unit tests can provide a viable source of workloads, and that the combination of static and dynamic analyses improves the ability to identify relevant workloads that can serve as the basis for custom benchmark suites.
Yudi Zheng, Andrea Rosà, Luca Salucci, Yao Li 0004, Haiyang Sun 0003, Omar Javed, Lubomír Bulej, Lydia Y. Chen, Zhengwei Qi, Walter Binder
SANER5
2015 Analyzing Distributed Multi-platform Java and Android Applications with ShadowVM
Haiyang Sun 0003, Yudi Zheng, Lubomír Bulej, Stephen Kell, Walter Binder
APLAS1
2015 DefDroid: Securing Android with Fine-Grained Security Policy
abstract
Android occupies the absolute dominant position in mobile operating system and has the largest market share.Meanwhile, Android faces the risk of malicious insiders leaking sensitive information.In this paper, we present DefDroid, a repackaging tool for enforcing security policies by modifying Android applications without root privilege.The main advantages of DefDroid are that it provides a user-friendly interface to configure fine-grained policies and it supplies multiple deployment methods.We have implemented policies aimed at three types of services of Android system, i.e., content provider, file system, and network.We choose 74 arbitrary applications from Android market and the experimental results show that the successful rate of repackaging applications is about 94.6% which effectively improve the privacy security of Android system while the increased overhead can be tolerated.
Shuohong Wang, Haiyang Sun 0003, Zhengwei Qi
SEKE3
2014 DFL: Secure and Practical Fault Localization for Datacenter Networks
abstract
Datacenter networking has gained increasing popularity in the past few years. While researchers paid considerable efforts to enhance the performance and scalability of datacenter networks, achieving reliable data delivery in these emerging networks with misbehaving routers and switches received far less attention. Unfortunately, documented incidents of router compromise underscore that the capability to identify adversarial routers and switches is an imperative and practical need rather than merely a theoretical exercise. To this end, data-plane fault localization (FL) aims to identify faulty links and is an effective means of achieving high network availability. However, existing secure FL protocols assume that the source node knows the entire outgoing path that delivers the source node's packets and that the path is static and long-lived. These assumptions are invalidated by the dynamic traffic patterns and agile load balancing commonly seen in modern datacenter networks. We propose the first secure FL protocol, DFL, with no requirements on path durability or the source node knowing the outgoing paths. Through a core technique we named delayed function disclosure, DFL incurs little communication overhead and a small, constant router state independent of the network size or the number of flows traversing a router.
Xin Zhang 0003, Fanfu Zhou, Haiyang Sun 0003, Adrian Perrig, Athanasios V. Vasilakos, Haibing Guan
IEEE/ACM Trans. Netw.4
2012 Memvisor: Application Level Memory Mirroring via Binary Translation
abstract
Memory failures are common in clusters, and their destructive effects (e.g., increasing downtime and losing data) make users suffer great loss. Current memory availability strategies mostly require extra expensive hardware. Software approaches based on check pointing technologies intend to reduce the expense, but their high overhead limits the practical usage. In this paper, we present a novel system called Memvisor to provide software mirrored memory for applications. Specifically, all memory write instructions are duplicated. Data written to memory are synchronized to backup space. If memory failures happen, Memvisor will recover the data from the backup space. Compared with traditional software approaches, the instruction-level synchronization lowers the probability of data loss and reduces backup overhead. The results show that even in the worst case, Memvisor outperforms the state-of-the-art software approaches.
Haoliang Dong, Bin Wang 0062, Haiyang Sun 0003, Zhengwei Qi, Haibing Guan, Yaozu Dong
CLUSTER4