Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
Shih-Kun Huang

    Shih-Kun Huang

    Software vulnerabilities can be attributed to inherent bugs in the system. Several types of bugs render faults for not conforming to specifications or failures that cause crash of control flow, indefinite hang, or panic resource access.... more
    Software vulnerabilities can be attributed to inherent bugs in the system. Several types of bugs render faults for not conforming to specifications or failures that cause crash of control flow, indefinite hang, or panic resource access. We have developed a progressive method for testing potential vulnerabilities to verify whether such crash-type failures are exploitable. When software bugs are found to be exploitable, then these bugs are very likely to be transformed into software vulnerabilities. To resolve such vulnerabilities, we have developed a tool, BEAGLE, that helps isolate bugs in presence of crash failures and reconstructs the scene of the failure point. The process of reconstruction detects the violation of control state invariants with tainted input analysis and covers security-faults related tests. We analyze bug reports from the most active projects in sorceforge.net and systematically identify exploitable bugs with the precise indication of vulnerability and prove the...
    With the complexity big data platform architectures, data engineer provides the infrastructure with computation and storage resource for data scientist and data analyst. With those supports, data scientists can focus their domain problem... more
    With the complexity big data platform architectures, data engineer provides the infrastructure with computation and storage resource for data scientist and data analyst. With those supports, data scientists can focus their domain problem and design the intelligence module (e.g., prepare the data, select/train/tune the machine learning modules and validate the result). However, there is still a gap between system engineer team and data scientists/engineers team. For system engineers, they don't have any knowledge about the application domain and the propose of the analytic program. For data scientists/engineers, they don't know the configuration of the computation system, file system and database. Some application performance issues are related with system configurations. Data scientist and data engineer do not have information and knowledge about the system properties. In this paper, we propose a configuration layer with the current big data platform (i.e., Hadoop) and build...
    Software is getting complicated due to the changing needs and flourishing development of software industry. To better improve software quality, we have to find the major reasons which cause the program crash. However, debugging by... more
    Software is getting complicated due to the changing needs and flourishing development of software industry. To better improve software quality, we have to find the major reasons which cause the program crash. However, debugging by software developer is not an efficient method, especially in large software. Many automated tools are developed to enhance the fault localization efficiency and reduce the maintenance cost. Most researches focus on improving the software testing process, and the primary triage method is based on the stack-trace hash (e.g., smartfuzz, basic fuzzing framework and Failure Observation engine), and is unchanged for a long time. Therefore, we propose a new triage method based on binary block coverage. Our triage method is designed by analyzing the binary level coverage results, on every time the input causes the program crash. For the same crash input, we also use traditional stack-trace hash method to contrast the flaws with our method. Our experiment results reveal that our proposed method based on code coverage exhibits better triages in terms of the number of unique bugs identified and correct classifications of faults.
    To alleviate path explosion in symbolic execution, path pruning removes unsatisfiable paths at an early stage before they multiply. Although existing symbolic execution platforms have implemented several path pruning strategies to... more
    To alleviate path explosion in symbolic execution, path pruning removes unsatisfiable paths at an early stage before they multiply. Although existing symbolic execution platforms have implemented several path pruning strategies to determine whether and when to check a path’s satisfiability, it remains unclear how effective these strategies are because the time to check a path’s satisfiability is non-negligible and may vary drastically. This work proposes dynamic path pruning (DPP), a strategy that aims to minimize the overall exploration time by dynamically adjusting the path checking rate. DPP assigns a higher checking rate to paths that are more likely to be unsatisfiable, and the likelihood is estimated based on the observed program’s characteristics, such as the observed percentage of satisfiable paths. DPP is implemented on top of an open source symbolic execution platform in only a few hundred lines. Our evaluation confirms that DPP consistently achieves near-optimal explorati...
    Collegiate Programming Examination(CPE) has been launched in 2010, and initially organized by National Chiao Tung University and National Sun Yat-sen University. This work includes implements to integrate a variety of technologies in the... more
    Collegiate Programming Examination(CPE) has been launched in 2010, and initially organized by National Chiao Tung University and National Sun Yat-sen University. This work includes implements to integrate a variety of technologies in the trial of a number of software, and contributed to such a large-scale inter-collegial joint examination of computer operation. We propose a convenient and rapid solution for deployment of examination classroom environment to reduce the burden of administrators of the computer classrooms. There are 33 universities joining CPE held in May 2012. We have developed the mechanism in order to manage thousands of virtual machine. And this mechanism could be contributed to the management of cloud computing service.
    Software reuse is an effective means of improving software productivity and software quality. Reusable Software Components (RSCs) are the basic building components for software programs constructed using the software reuse approach. The... more
    Software reuse is an effective means of improving software productivity and software quality. Reusable Software Components (RSCs) are the basic building components for software programs constructed using the software reuse approach. The object-oriented approach is used to design and implement our RSCs. Our laboratory has already implemented more than 300 reusable software components, including design-level frameworks in various application domains and approximately 200,000 lines of code in our library. These components and frameworks have been accumulated in the course of designing and implementing strategy-based game systems, multimedia authoring systems (2-D and 3-D), multimedia playback systems, and other application systems. Multimedia software plays an important role in the software industry. In contrast to traditional software, multimedia software provides users with visual and audio effects through their interfaces and can more accurately model the real world. A media compone...
    Java programming, based on the Object-Oriented (OO) paradigm, has played a major role in program design and implementation due to the fact that it is extensible, maintainable, and reusable in software system construction. Experiences with... more
    Java programming, based on the Object-Oriented (OO) paradigm, has played a major role in program design and implementation due to the fact that it is extensible, maintainable, and reusable in software system construction. Experiences with using Java programming have indicated that there also exist disadvantages with respect to its execution inefficiency and complicated runtime behaviors. Code-patterns are statically recurring structures specifically related to a programming language. They can be used in parallel to help programmer design software systems to solve particular problems. In opposition to the role of code-patterns in assisting compilation, control-patterns are dynamically recurring structures invoked during program execution time. They can be used to understand the run-time behaviors of OO-programs with respect to the underlying architecture, such as Java-VM. A control pattern describes the model of control transfer among objects during OO program execution. In this pape...
    Vulnerabilities are caused by implementation bugs, such as buffer overflow, integer overflow, uncontrolled format strings, and command injection flaws. They are often exploited to intrude software systems. In order to reduce software... more
    Vulnerabilities are caused by implementation bugs, such as buffer overflow, integer overflow, uncontrolled format strings, and command injection flaws. They are often exploited to intrude software systems. In order to reduce software bugs, testing techniques are proposed. The recent technique to discover security-related bugs is fuzz testing. However, traditional fuzzers can only find bugs when program exceptions, especially crashes, raised. Some security threats may pass these tests due to insufficient code coverage. In this paper, we introduce a software testing framework based on symbolic execution using S2E, a whole system symbolic execution engine. When a program executes our pre-defined security sensitive functions, such as malloc, strcpy or printf, our framework will initiate a triage process. The process will determine whether any related security vulnerabilities would possibly occur in these functions automatically. We successfully and efficiently reproduce 12 previously known vulnerabilities from normal input data within 100 seconds for large applications such as Tiff, VIM, and MPlayer. Our tool can help developers locate bugs faster, and improve the efficiency of software quality maintenance.
    Research Interests:
    We propose a new dyadic wavelet-based conduction approach for selective image smoothing. In our approach, a nonlinear conductivity function is considered in the wavelet-based function decomposition and reconstruction process. Since the... more
    We propose a new dyadic wavelet-based conduction approach for selective image smoothing. In our approach, a nonlinear conductivity function is considered in the wavelet-based function decomposition and reconstruction process. Since the proposed approach does not require one to solve a PDE, it is therefore more efficient and accurate than the conventional nonlinear diffusion/conduction-based methods. Experimental results using both 1-D synthetic
    ABSTRACT A robust watermarking scheme for hiding binary or gray-scale watermarks in digital images is proposed in this chapter. Motivated by the fact that a detector response (a correlation value) only provides a soft evidence for... more
    ABSTRACT A robust watermarking scheme for hiding binary or gray-scale watermarks in digital images is proposed in this chapter. Motivated by the fact that a detector response (a correlation value) only provides a soft evidence for convincing jury in courtroom, embedded watermarks are designed to be visually recognizable after retrieval. To strengthen the existence confidence of a watermark, visually significant transformed components are selected. In addition, a relocation technique is presented to tackle geometric-distortionbased attacks without using any registration scheme. Finally, a semi-public watermark detector which does not require use of the original source is proposed for the purpose of authentication. Experimental results demonstrate that our approach satisfies the common requirements of image watermarking, and that the performance is superb. Keywords: Human visual system Wavelet transform Watermarking Modulation Attacks Corresponding author 1 1 INTRODUCTION 1.1 WATERMA...
    Research Interests:
    . A novel image protection scheme called "cocktail... more
    . A novel image protection scheme called "cocktail watermarking " is proposed in this paper. We analyze and point out the inadequacy of the modulation techniques commonly used in ordinary spread spectrum watermarking methods and the visual model-based ones. To resolve this inadequacy, two watermarks which play complementary roles are simultaneously embedded into a host image. The new watermarking scheme