Browsing by Author "Yeh, Chao-Chun"
Now showing 1 - 9 of 9
- Results Per Page
- Sort Options
Item type:Item, A Scalable Privacy Preserving System for Open Data(2016-01-01) ;Yeh, Chao-Chun ;Wang, Pang-Chieh ;Pan, Yu-Hsuan ;Kao, Ming-ChihHuang, Shih-KunThe citizen considers that data source collecting by the government can be released for more diversity usage. However, to archive the open data dream, sensitive data potentially could be published after the proper privacy preserving processing. In this paper, we present a scalable privacy preserving system for open/big data which leverages K-anonymity algorithm and Hadoop framework. We use an experiment data (i.e., 10 TB) to show our system can handle the high-volume data when increasing the system resource. It is an essential factor for the Government to publish the data with privacy preserving processing.Item type:Item, Big Data Platform Configuration Using Machine Learning(2020-05-01) ;Yeh, Chao-Chun ;Lu, Han-Lin ;Zhou, Jiazheng ;Chang, Sheng-AnLin, Xuan-YiBy ensuring well-developed complex big data platform architectures, data engineers provide data scientists and analysts infrastructure with computational and storage resources to perform their research. Based on such supports, data scientists are provided an opportunity to focus on their domain problems and design the required intelligent modules (i.e., prepare the data; select, train, and tune the machine-learning modules; and validate the results). However, there are still gaps between system engineering and data scientist/engineering teams. Generally, system engineers have limited knowledge on the application domains and the purposes of an analytical program. On the contrary, both data scientists and engineers are usually unfamiliar with the configuration of a computational system, file system, and database. However, the performance of an application can be affected by a system's configuration, and the data scientists and engineers have little information and knowledge about which of the system's properties can affect the application's performance. As a typical example, for Internet-scale applications that have thousands of computing nodes or billions of Internet of Things devices, even a slight improvement may have an enormous influence on energy management and environmental protection issues. To bridge the gap between system engineering and data scientist/engineering teams, we proposed the concept of a configuration layer based on a big data platform, Hadoop. We built a configuration tuner, BigExplorer, to collect and preprocess data. Furthermore, we also created golden configurations for performance improvement. Based on the processed data, we used a semi-automatic feature engineering technique to provide more features for data engineers and developed the performance model using three different machine learning algorithms (i.e., random forest, gradient boosting machine, and support vector machine). Using the commonly used benchmarks of Word-Count, TeraSort, and Pig workloads, our configuration tuner achieved a significant performance improvement of 28%-51% for different workloads than using the rule-of-thumb configuration.Item type:Item, BigExplorer: A Configuration Recommendation System for Big Data Platform(2016-01-01) ;Yeh, Chao-Chun ;Zhou, Jiazheng ;Chang, Sheng-An ;Lin, Xuan-YiSun, YichiaoWith 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 a configuration recommendation system to collect data, pre-process data. Based on the processed data, we use semi-automatic feature engineer to provide features for data engineers and build the performance model with three different machine learning algorithms (i.e., random forest, gradient boosting machine and support vector regression). With the same two benchmarks (i.e., wordcount and terasort), our recommended configuration archives remarkable improvement than rule of thumb configuration and better than their improvements.Item type:Item, CovDroid: A Black-Box Testing Coverage System for Android(2015) ;Yeh, Chao-Chun ;Huang, Shih-Kun ;資訊工程學系 ;資訊技術服務中心Department of Computer ScienceIn android ecosystem, the Apps marketplace vendor faces huge number of Apps with irregular quality. Besides bug finding, coverage index is neglected for the current Android testing services. However it is also a challenge to measure the testing coverage without source code. In this paper, we provide a systematic approach to measure the App testing coverage for black-box testing and implement CovDroid, a black-box coverage system for android. Furthermore, we use a App with different test cases to prove our concept that coverage index can improve the App and measure test cases quality for App market or testing vendors.Item type:Item, CRAXDroid: Automatic Android System Testing by Selective Symbolic Execution(2014-01-01) ;Yeh, Chao-Chun ;Lu, Han-Lin ;Chen, Chun-Yen ;Khor, Kee-KiatHuang, Shih-KunMobile devices such as smart phones and tablet PCs are becoming common personal devices. The business model of a central software market is also thriving and turning into a major distribution source of software packages on those devices. However, these devices often contain personal private information and can be used to conduct operations involving data leakage and payment events like sending SMS. As a result, the quality of software on mobile devices becomes a critical issue. We aim at checking whether software off the shelf contains defective behavior or potential vulnerabilities, and aiding the official APP or third party markets to ensure their software without privacy issues. We have built a platform for android APP testing, by revising our software quality assurance and exploit generation platform, called CRAX, to apply in the Android platform. It is called the CRAXDroid that allows any inputs to be the testing sources to the APP without source code. These approaches are based on the symbolic execution technique and android emulator. By automatically exploring execution paths, we can find potential software defects. We perform several experiments on Android applications to prove the feasibility of our method.Item type:Item, CRAXfuzz: Target-Aware Symbolic Fuzz Testing(2015) ;Yeh, Chao-Chun ;Chung, Hsiang ;Huang, Shih-Kun ;資訊工程學系資訊技術服務中心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 (SE)-E-2, 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.Item type:Item, CRAXTriage: A Coverage Based Triage System(2017-01-01) ;Yeh, Chao-Chun ;Lu, Han-Lin ;Lee, Yi-Hsuan ;Chou, Wei-ShengHuang, Shih-KunSoftware 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.Item type:Item, Machine Learning-Based Configuration Parameter Tuning on Hadoop System(2015) ;Chen, Chi-Ou ;Zhuo, Ye-Qi ;Yeh, Chao-Chun ;Lin, Che-MinLiao, Shih-weiApache Hadoop system is a software framework with the capability to process large-scale datasets across a cluster of distributed machines using MapReduce programming model. However, there are two main challenges for system administrators to manage the Hadoop system; (1) system administrators are difficult to tune the parameters appropriately since the behaviors and characteristics of large-scale distributed systems are too complicated; (2) there are dozens of configuration parameters affecting the system performance which makes the configuration parameters tuning task becomes troublesome. In this paper, we focus on optimizing the Hadoop MapReduce job performance by tuning configuration parameters, and then we propose an analytical method to help system administrators choose approximately optimal configuration parameters depending on the characteristics of each application. Our approach has two key phases: prediction and optimization phase. The prediction phase is to estimate the performance of a MapReduce job, whereas the optimization phase is to search the approximately optimal configuration parameters strategically by invoking the predictor repeatedly. In our evaluation results, our work can help system administrators to improve the performance about 2X to 8X better than traditional methods.Item type:Item, Path Exploration Based on Monte Carlo Tree Search for Symbolic Execution(2017-01-01) ;Yeh, Chao-Chun ;Lu, Han-Lin ;Yeh, Jia-Jun ;Huang, Shih-Kun資訊工程學系Symbolic Execution is a widely used technique for program testing and analysis. When a program executes a trace symbolically, it simulates all possible paths. This results in an exponential growth of the number of states within the problem, which is commonly referred to as "path explosion." We therefore propose novel strategies that only require limited resources to give priority to more valuable paths. In this paper, we utilize a method based on the Monte Carlo tree search (MCTS) strategy to resolve the problem. We then compare the proposed MCTS-based strategy with other methods such as depth-first search (DFS) and breadth-first search (BFS). We also perform different scales of experiments based on time and space resource constraints. For smaller test cases, we found that MCTS performs on average 1.4 times better than BFS and DFS in terms of the block discovery rate. In addition, for larger test cases, MCTS performs on average 2.8 times better than DFS and BFS in terms of the block discovery rate.