SQL is the standard database language, yet SQL statements can be complex and expensive to debug by hand. Automatic program repair techniques have the potential to reduce cost significantly. A previous attempt to repair SQL faults automatically used a decision tree (DT) algorithm that succeeded in some cases, but also generated many patches that passed the automated tests but that were not acceptable to the engineers. This paper proposes a novel fault localization and repair technique to repair faulty SQL statements. It targets faults in two common SQL constructs, JOIN and WHERE. It identifies the fault location and type precisely, and then creates a patch to fix the fault. We implemented this technique in a tool, and evaluated it on five medium to large-scale databases using 825 faulty queries with various complexity and faulty types. Experimental results showed that this technique can identify and repair JOIN faults when the DT approach is infeasible, and repair WHERE faults at about the same rate as the DT approach. Moreover, patches generated by our approach are more acceptable to engineers, and the tool is much faster.
{"title":"Automatically Repairing SQL Faults","authors":"Yun Guo, Nan Li, J. Offutt, Amihai Motro","doi":"10.1109/QRS.2018.00063","DOIUrl":"https://doi.org/10.1109/QRS.2018.00063","url":null,"abstract":"SQL is the standard database language, yet SQL statements can be complex and expensive to debug by hand. Automatic program repair techniques have the potential to reduce cost significantly. A previous attempt to repair SQL faults automatically used a decision tree (DT) algorithm that succeeded in some cases, but also generated many patches that passed the automated tests but that were not acceptable to the engineers. This paper proposes a novel fault localization and repair technique to repair faulty SQL statements. It targets faults in two common SQL constructs, JOIN and WHERE. It identifies the fault location and type precisely, and then creates a patch to fix the fault. We implemented this technique in a tool, and evaluated it on five medium to large-scale databases using 825 faulty queries with various complexity and faulty types. Experimental results showed that this technique can identify and repair JOIN faults when the DT approach is infeasible, and repair WHERE faults at about the same rate as the DT approach. Moreover, patches generated by our approach are more acceptable to engineers, and the tool is much faster.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124003236","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Title Page iii","authors":"","doi":"10.1109/qrs.2018.00002","DOIUrl":"https://doi.org/10.1109/qrs.2018.00002","url":null,"abstract":"","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114975055","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The use of software has become ubiquitous and prevalent in modern medical devices such as hemodialysis machines. Consequently, the failure rate of medical devices due to software faults is also increasing. While next-generation software-intensive medical devices contribute to providing better health care and ease of use, their development is becoming unprecedentedly complex and challenging. The critical nature of this domain – particularly its direct implications on health and safety – requires extraordinary measures to ensure the correct and reliable function of such systems. Formal methods are proven to provide approaches, techniques, and tools for correct engineering of software and systems. However, their use in the contemporary medical software engineering is still marginal. In order to promote the use of (state-based) formal methods and showcase their effectiveness in design and development of critical medical devices, we present the hemodialysis case study challenge problem in this article. We also analyze the novelties and limitations of several solutions implementing the case study and explore research challenges that still need to be addressed in future.
{"title":"Analysis of Experiences with the Engineering of a Medical Device Using State-Based Formal Methods","authors":"A. Mashkoor, Alexander Egyed","doi":"10.1109/QRS.2018.00021","DOIUrl":"https://doi.org/10.1109/QRS.2018.00021","url":null,"abstract":"The use of software has become ubiquitous and prevalent in modern medical devices such as hemodialysis machines. Consequently, the failure rate of medical devices due to software faults is also increasing. While next-generation software-intensive medical devices contribute to providing better health care and ease of use, their development is becoming unprecedentedly complex and challenging. The critical nature of this domain – particularly its direct implications on health and safety – requires extraordinary measures to ensure the correct and reliable function of such systems. Formal methods are proven to provide approaches, techniques, and tools for correct engineering of software and systems. However, their use in the contemporary medical software engineering is still marginal. In order to promote the use of (state-based) formal methods and showcase their effectiveness in design and development of critical medical devices, we present the hemodialysis case study challenge problem in this article. We also analyze the novelties and limitations of several solutions implementing the case study and explore research challenges that still need to be addressed in future.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129280368","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
While many prior works used text mining for automating different tasks related to software bug reports, few works considered the security aspects. This paper is focused on automated classification of software bug reports to security and not-security related, using both supervised and unsupervised approaches. For both approaches, three types of feature vectors are used. For supervised learning, we experiment with multiple classifiers and training sets with different sizes. Furthermore, we propose a novel unsupervised approach based on anomaly detection. The evaluation is based on three NASA datasets. The results showed that supervised classification is affected more by the learning algorithms than by feature vectors and training only on 25% of the data provides as good results as training on 90% of the data. The supervised learning slightly outperforms the unsupervised learning, at the expense of labeling the training set. In general, datasets with more security information lead to better performance.
{"title":"Identification of Security Related Bug Reports via Text Mining Using Supervised and Unsupervised Classification","authors":"K. Goseva-Popstojanova, Jacob Tyo","doi":"10.1109/QRS.2018.00047","DOIUrl":"https://doi.org/10.1109/QRS.2018.00047","url":null,"abstract":"While many prior works used text mining for automating different tasks related to software bug reports, few works considered the security aspects. This paper is focused on automated classification of software bug reports to security and not-security related, using both supervised and unsupervised approaches. For both approaches, three types of feature vectors are used. For supervised learning, we experiment with multiple classifiers and training sets with different sizes. Furthermore, we propose a novel unsupervised approach based on anomaly detection. The evaluation is based on three NASA datasets. The results showed that supervised classification is affected more by the learning algorithms than by feature vectors and training only on 25% of the data provides as good results as training on 90% of the data. The supervised learning slightly outperforms the unsupervised learning, at the expense of labeling the training set. In general, datasets with more security information lead to better performance.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130078034","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Kernel rootkits pose a serious threat to system security by tampering with the state of operating system inconspicuously. To ensure operating system kernel integrity, Virtual Machine Monitor (VMM) based approaches have been proposed. Most of these approaches use snapshot-based or event-triggered techniques. However, snapshot-based techniques have been suffering from missing transient attacks or significant performance overhead, while event-triggered methods are facing with heavy workload as integrity checking might be triggered by any suspicious actions. In this paper, we propose a novel solution which is a behavior-triggered integrity checking approach named BehaviorKI. By analyzing attacking processes, BehaviorKI can extract a set of behavior patterns which characterize malicious behaviors. BehaviorKI will trigger integrity checking with kernel invariants when a malicious behavior pattern detected. In this way, our approach can alleviate the performance burden by reducing the frequent kernel integrity checking. The experiment results show that Be-haviorKI outperforms existing snapshot-based and event-triggered approaches.
{"title":"BehaviorKI: Behavior Pattern Based Runtime Integrity Checking for Operating System Kernel","authors":"Xinyue Feng, Qiusong Yang, Lin Shi, Qing Wang","doi":"10.1109/QRS.2018.00015","DOIUrl":"https://doi.org/10.1109/QRS.2018.00015","url":null,"abstract":"Kernel rootkits pose a serious threat to system security by tampering with the state of operating system inconspicuously. To ensure operating system kernel integrity, Virtual Machine Monitor (VMM) based approaches have been proposed. Most of these approaches use snapshot-based or event-triggered techniques. However, snapshot-based techniques have been suffering from missing transient attacks or significant performance overhead, while event-triggered methods are facing with heavy workload as integrity checking might be triggered by any suspicious actions. In this paper, we propose a novel solution which is a behavior-triggered integrity checking approach named BehaviorKI. By analyzing attacking processes, BehaviorKI can extract a set of behavior patterns which characterize malicious behaviors. BehaviorKI will trigger integrity checking with kernel invariants when a malicious behavior pattern detected. In this way, our approach can alleviate the performance burden by reducing the frequent kernel integrity checking. The experiment results show that Be-haviorKI outperforms existing snapshot-based and event-triggered approaches.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127251776","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Claudia Morgado, Gisele Busichia Baioco, Tânia Basso, Regina L. O. Moraes
Nowadays, organizations collect vast amounts of data for future analysis. Motivated by this amount of data and requirements of Web2.0, a plethora of non-relational databases (NoSQL) emerged in recent years. However, several security features in relational databases (e.g., access control) have been left in non-relational management systems to be developed by the application, which can raise security breaches. This paper proposes a security model, based on the use of metadata, to provide access control for NoSQL graph-oriented database management system. The goal is to support the development of applications that use graph-oriented database in preserving the integrity of stored data and protect them from non-authorized access. A case study was performed as proof of concept, where the model was instantiated and implemented for Neo4j database. Results showed that access restrictions were applied correctly, avoiding unauthorized access. A schema for Neo4j was provided, once it does not have a native one.
{"title":"A Security Model for Access Control in Graph-Oriented Databases","authors":"Claudia Morgado, Gisele Busichia Baioco, Tânia Basso, Regina L. O. Moraes","doi":"10.1109/QRS.2018.00027","DOIUrl":"https://doi.org/10.1109/QRS.2018.00027","url":null,"abstract":"Nowadays, organizations collect vast amounts of data for future analysis. Motivated by this amount of data and requirements of Web2.0, a plethora of non-relational databases (NoSQL) emerged in recent years. However, several security features in relational databases (e.g., access control) have been left in non-relational management systems to be developed by the application, which can raise security breaches. This paper proposes a security model, based on the use of metadata, to provide access control for NoSQL graph-oriented database management system. The goal is to support the development of applications that use graph-oriented database in preserving the integrity of stored data and protect them from non-authorized access. A case study was performed as proof of concept, where the model was instantiated and implemented for Neo4j database. Results showed that access restrictions were applied correctly, avoiding unauthorized access. A schema for Neo4j was provided, once it does not have a native one.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130528909","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
As the most common non-deadlock concurrency bugs, atomicity violations are extremely hard to detect during testing since the exhaustive testing of a multi-threaded program is impossible because of the large number of interleavings. The studies in recent years have mainly focused on single-variable atomicity violation. However, those methods are unable to predict or find atomicity violations with multiple variables involved. Many variables are inherently correlated and need to be accessed together with their correlated peers in a consistent manner. These variables need to be either updated together consistently or accessed together to avoid inconsistent update or reading. This paper presents a method for predicting two-variable atomicity violation, based on access correlation between variables and atomicity violation pattern of variable accesses, including algorithms to infer access correlation between variables and to predict atomicity violation using model checking. The effectiveness of our method is evaluated with several real-world systems.
{"title":"A Method for Predicting Two-Variable Atomicity Violations","authors":"Zhuo Sun, Reng Zeng, Xudong He","doi":"10.1109/QRS.2018.00024","DOIUrl":"https://doi.org/10.1109/QRS.2018.00024","url":null,"abstract":"As the most common non-deadlock concurrency bugs, atomicity violations are extremely hard to detect during testing since the exhaustive testing of a multi-threaded program is impossible because of the large number of interleavings. The studies in recent years have mainly focused on single-variable atomicity violation. However, those methods are unable to predict or find atomicity violations with multiple variables involved. Many variables are inherently correlated and need to be accessed together with their correlated peers in a consistent manner. These variables need to be either updated together consistently or accessed together to avoid inconsistent update or reading. This paper presents a method for predicting two-variable atomicity violation, based on access correlation between variables and atomicity violation pattern of variable accesses, including algorithms to infer access correlation between variables and to predict atomicity violation using model checking. The effectiveness of our method is evaluated with several real-world systems.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"249 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116575557","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Celia Chen, Shih-Ting Lin, Michael Shoga, Qing Wang, B. Boehm
Beyond the functional requirements of a system, software maintainability is essential for project success. While there exists a large knowledge base of software maintainability, this knowledge is rarely used in open source software due to the large number of developers and inefficiency in identifying quality issues. To effectively utilize the current knowledge base in practice requires a deeper understanding of how problems associated with the different qualities arise and change over time. In this paper, we sample over 6000 real bugs found from several Mozilla products to examine how maintainability is expressed with subgroups of repairability and modifiability. Furthermore, we manually study how these qualities evolve as the products mature, what the root causes of the bugs are for each quality and the impact and dependency of each quality. Our results inform which areas should be focused on to ensure maintainability at different stages of the development and maintenance process.
{"title":"How Do Defects Hurt Qualities? An Empirical Study on Characterizing a Software Maintainability Ontology in Open Source Software","authors":"Celia Chen, Shih-Ting Lin, Michael Shoga, Qing Wang, B. Boehm","doi":"10.1109/QRS.2018.00036","DOIUrl":"https://doi.org/10.1109/QRS.2018.00036","url":null,"abstract":"Beyond the functional requirements of a system, software maintainability is essential for project success. While there exists a large knowledge base of software maintainability, this knowledge is rarely used in open source software due to the large number of developers and inefficiency in identifying quality issues. To effectively utilize the current knowledge base in practice requires a deeper understanding of how problems associated with the different qualities arise and change over time. In this paper, we sample over 6000 real bugs found from several Mozilla products to examine how maintainability is expressed with subgroups of repairability and modifiability. Furthermore, we manually study how these qualities evolve as the products mature, what the root causes of the bugs are for each quality and the impact and dependency of each quality. Our results inform which areas should be focused on to ensure maintainability at different stages of the development and maintenance process.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125206399","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In this paper we address the problem of reliability and security in an open-access data sharing system. We propose a new framework, called cryptographic attribute-based access control (CABAC), in consistent with the standard ABAC model. Moreover, two new mechanisms, real-time Tokens and secure policy decision-making, are introduced for ensuring secure attribute authorization and verifiable policy decision-making. More important, we present a practical CABAC system to support adaptability and flexibility using dynamically chosen policy and real-time attribute acquisition. We prove that our CABAC system is provably secure in four aspects: the attribute Tokens are existentially unforgeable against chosen-time and chosen-attribute attacks, respectively; the secure policy is existentially unforgeable against chosen-object attack under eBDH assumption; and our entire system is semantically secure against chosen-plaintext attack with Token and policy queries under eGDHE assumption.
{"title":"Provably Secure Cryptographic ABAC System to Enhance Reliability and Privacy Using Real-Time Token and Dynamic Policy","authors":"Yan Zhu, Ruyun Yu, Yao Qin, Di Ma, W. Chu","doi":"10.1109/QRS.2018.00041","DOIUrl":"https://doi.org/10.1109/QRS.2018.00041","url":null,"abstract":"In this paper we address the problem of reliability and security in an open-access data sharing system. We propose a new framework, called cryptographic attribute-based access control (CABAC), in consistent with the standard ABAC model. Moreover, two new mechanisms, real-time Tokens and secure policy decision-making, are introduced for ensuring secure attribute authorization and verifiable policy decision-making. More important, we present a practical CABAC system to support adaptability and flexibility using dynamically chosen policy and real-time attribute acquisition. We prove that our CABAC system is provably secure in four aspects: the attribute Tokens are existentially unforgeable against chosen-time and chosen-attribute attacks, respectively; the secure policy is existentially unforgeable against chosen-object attack under eBDH assumption; and our entire system is semantically secure against chosen-plaintext attack with Token and policy queries under eGDHE assumption.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133699192","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Building software systems that adapt to changing resources is challenging: developers cannot anticipate all future situations that a software system may face, and even if they could, the effort required would be onerous. A conceptually simple, yet practically applicable, way to build resource adaptive software is to use test-based software minimization, where tests define functionality. One drawback of the approach is that it requires a time-consuming reduction process that removes program statements in order to reduce resource usage, making it impractical for use in deployed systems. We show that statements removed have predictable characteristics, making it possible to use heuristics to choose statements to analyze. We demonstrate the utility of our heuristics via a case study of the NetBeans IDE: using our best heuristic, we were able to compute an effective resource adaptation almost 3 times faster than without heuristic guidance.
{"title":"Target Selection for Test-Based Resource Adaptation","authors":"Arpit Christi, Alex Groce","doi":"10.1109/QRS.2018.00059","DOIUrl":"https://doi.org/10.1109/QRS.2018.00059","url":null,"abstract":"Building software systems that adapt to changing resources is challenging: developers cannot anticipate all future situations that a software system may face, and even if they could, the effort required would be onerous. A conceptually simple, yet practically applicable, way to build resource adaptive software is to use test-based software minimization, where tests define functionality. One drawback of the approach is that it requires a time-consuming reduction process that removes program statements in order to reduce resource usage, making it impractical for use in deployed systems. We show that statements removed have predictable characteristics, making it possible to use heuristics to choose statements to analyze. We demonstrate the utility of our heuristics via a case study of the NetBeans IDE: using our best heuristic, we were able to compute an effective resource adaptation almost 3 times faster than without heuristic guidance.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"256 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114364323","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}