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

Akond Ashfaque Ur Rahman

dblp:06/10426 · also Akond Rahman · DBLP profile ↗
← Back
48ranked-venue papers
20as first author
35since 2021 · last 2026
0000-0002-5056-757XORCID · verified

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

Software engineering, systems software and programming languages · 35 · 16 first-author · 22 since 2021Applied, interdisciplinary, general and emerging computing · 13 · 1 first-author · 13 since 2021Databases, data management, data science and information retrieval · 8 · 2 first-author · 5 since 2021Human-computer interaction and ubiquitous computing · 6 · 4 first-author · 6 since 2021Artificial intelligence and machine learning · 3 · 3 since 2021Security and privacy · 3 · 3 since 2021Computer networks · 1 · 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.

Software engineering, system software, and programming languages
7 papers
Empirical software engineering · 51% Software maintenance and evolution · 28% Program analysis · 21%
Network and information security
6 papers
Systems and software security · 100%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Cloud and datacenter computing · 77% Distributed systems · 23%

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

TopicWeightPapersLastEvidence papers
Empirical software engineering
mining software repositories
3.252026
Configuration Defects in Kubernetes · IEEE Trans. Software Eng. 2026
On Prescription or Off Prescription? An Empirical Study of Community-Prescribed Security Configurations for Kubernetes · ICSE 2025
Security Misconfigurations in Open Source Kubernetes Manifests: An Empirical Study · ACM Trans. Softw. Eng. Methodol. 2023
Systems and software security › configuration security
infrastructure-as-code security
1.532023
Detecting and Characterizing Propagation of Security Weaknesses in Puppet-Based Infrastructure Management · IEEE Trans. Software Eng. 2023
Security Smells in Ansible and Chef Scripts: A Replication Study · ACM Trans. Softw. Eng. Methodol. 2021
The seven sins: security smells in infrastructure as code scripts · ICSE 2019
Systems and software security
configuration security
1.522025
On Prescription or Off Prescription? An Empirical Study of Community-Prescribed Security Configurations for Kubernetes · ICSE 2025
Security Misconfigurations in Open Source Kubernetes Manifests: An Empirical Study · ACM Trans. Softw. Eng. Methodol. 2023
Software maintenance and evolution
software configuration management
1.222026
Configuration Defects in Kubernetes · IEEE Trans. Software Eng. 2026
Detecting and Characterizing Propagation of Security Weaknesses in Puppet-Based Infrastructure Management · IEEE Trans. Software Eng. 2023
Cloud and datacenter computing › cloud service management
cloud application management
1.012026
Who Watches the Watchers? On the Reliability of Softwarizing Cloud Application Management · NSDI 2026
Systems and software security
secure software development
0.812024
Using AI Assistants in Software Development: A Qualitative Study on Security Practices and Concerns · CCS 2024
Program analysis
static analysis
0.712023
Detecting and Characterizing Propagation of Security Weaknesses in Puppet-Based Infrastructure Management · IEEE Trans. Software Eng. 2023
Program analysis › static analysis
taint analysis
0.712023
Detecting and Characterizing Propagation of Security Weaknesses in Puppet-Based Infrastructure Management · IEEE Trans. Software Eng. 2023
Software maintenance and evolution › devops
infrastructure as code
0.522020
Gang of eight: a defect taxonomy for infrastructure as code scripts · ICSE 2020
The seven sins: security smells in infrastructure as code scripts · ICSE 2019
Systems and software security › vulnerability discovery
static analysis
0.412019
The seven sins: security smells in infrastructure as code scripts · ICSE 2019
Distributed systems
fault tolerance
0.312026
Who Watches the Watchers? On the Reliability of Softwarizing Cloud Application Management · NSDI 2026

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

static analysis · 4.1qualitative analysis · 4.0empirical study · 2.6static application security testing · 1.7taint analysis · 1.3practitioner survey · 1.3linter development · 1.0semi-structured interviews · 0.8survey · 0.4
YearPublicationVenuePosition
2026 An Empirical Study of Policy as Code: Adoption, Purpose, and Maintenance
abstract
Policy as Code (PaC) is an emerging DevOps practice that enables teams to specify organisational and technical policies, such as regulatory compliance, security requirements, and resource limits, through machine-enforceable declarative code. As PaC gains prominence, practitioners face difficulties in adopting PaC while there remains a limited empirical understanding of how these policies are introduced, what types can be expressed, and how they are maintained in practice.
Ruben Opdebeeck, Mahmoud Alfadel, Akond Ashfaque Ur Rahman, Yutaro Kashiwa, João F. Ferreira 0001, Raula Gaikovina Kula, Coen De Roover
MSR3
2026 Who Watches the Watchers? On the Reliability of Softwarizing Cloud Application Management
Jiawei Tyler Gu, Yiming Su, Bogdan Alexandru Stoica, Xudong Sun 0013, William X. Zheng, Akond Ashfaque Ur Rahman, Chen Wang 0039, Tianyin Xu
NSDI8
2026 Configuration Defects in Kubernetes
abstract
Kubernetes is a tool that facilitates rapid deployment of software. Unfortunately, configuring Kubernetes is prone to errors. Configuration defects are not uncommon and can result in serious consequences. This paper reports an empirical study about configuration defects in Kubernetes with the goal of helping practitioners detect and prevent these defects. We study 719 defects that we extract from 2,260 Kubernetes configuration scripts using open source repositories. Using qualitative analysis, we identify 15 categories of defects, of which 7 have not been reported in previously-studied software systems. We find 8 publicly available static analysis tools to be capable of detecting 8 of the 15 defect categories. We find that the highest precision and recall of those tools are for defects related to data fields. We develop a linter to detect two categories of defects that cause serious consequences, which none of the studied tools are able to detect. Our linter revealed 26 previously-unknown defects that have been confirmed by practitioners, 19 of which have already been fixed. We conclude our paper by providing recommendations on how defect detection and repair techniques can be used for Kubernetes configuration scripts. The datasets and source code used for the paper are publicly available online.
Yue Zhang 0051, Uchswas Paul, Marcelo d'Amorim, Akond Ashfaque Ur Rahman
IEEE Trans. Software Eng.4
2025 White-box Fuzzing in the Wild: A Chaos Engineering Module for DevOps Security Education
abstract
In today’s fast-paced software development environments, DevOps has revolutionized the way teams build, test, and deploy applications by emphasizing automation, collaboration, and continuous integration/continuous delivery (CI/CD). However, with these advancements comes an increased need to address security proactively, giving rise to the DevSecOps movement, which integrates security practices into every phase of the software development lifecycle. DevOps security remains underrepresented in academic curricula despite its growing importance in the industry. To address this gap, this paper presents a hands-on learning module that combines Chaos Engineering and White- box Fuzzing to teach core principles of secure DevOps practices in an authentic, scenario-driven environment. Chaos Engineering allows students to intentionally disrupt systems to observe and understand their resilience, while White-box Fuzzing enables systematic exploration of internal code paths to discover corner- case vulnerabilities that typical tests might miss. The module was deployed across three academic institutions, and both pre- and post-surveys were conducted to evaluate its impact. Pre-survey data revealed that while most students had prior experience in software engineering and cybersecurity, the majority lacked exposure to DevOps security concepts. Post-survey responses gathered through ten structured questions showed highly positive feedback 66.7% of students strongly agreed, and 22.2% agreed that the hands-on labs improved their understanding of secure DevOps practices. Participants also reported increased confidence in secure coding, vulnerability detection, and resilient infrastructure design. These findings support the integration of experiential learning techniques like chaos simulations and white-box fuzzing into security education. By aligning academic training with real- world industry needs, this module effectively prepares students for the complex challenges of modern software development and operations.
Md Bajlur Rashid, Md Abdul Barek, ABM Kamrul Islam Riad, Mohamed Abdur Rahman 0003, Hossain Shahriar, Akond Ashfaque Ur Rahman, Fan Wu 0013, Guillermo A. Francia III, Md. Jobair Hossain Faruk, Sharaban Tahora
COMPSAC7
2025 Authentic Learning Exercise for Kubernetes Misconfigurations: An Experience Report of Student Perceptions
abstract
Kubernetes has become a popular tool for automated container orchestration. Despite reported benefits, practitioners report that the secure configuration of Kubernetes is one of the primary challenges among practitioners. Moreover, there is a significant skill shortage of Kubernetes security experts. Understanding misconfigurations in Kubernetes can help practitioners prevent security incidents. We systematically investigate whether authentic learning can help students learn about misconfigurations in Kubernetes. We conduct an authentic learning exercise and collected responses from 295 students. Based on responses from the students, we find (i) students who have little to no experience in cybersecurity, software quality assurance, or static analysis perceived the authentic learning exercise as useful to learn misconfigurations in Kubernetes, and (ii) students perceptions of authentic learning exercise activities vary based on and educational background. We conclude our paper with recommendations for instructors and researchers.
Md. Shazibul Islam Shamim, Fan Wu 0013, Hossain Shahriar, Anthony Skjellum, Akond Ashfaque Ur Rahman
CSEE&T5
2025 On Prescription or Off Prescription? An Empirical Study of Community-Prescribed Security Configurations for Kubernetes
abstract
Despite being beneficial for rapid delivery of software, Kubernetes deployments can be susceptible to security attacks, which can cause serious consequences. A systematic characterization of how community-prescribed security configurations, i.e., security configurations that are recommended by security experts, can aid practitioners to secure their Kubernetes deployments. To that end, we conduct an empirical study with 53 security configurations recommended by the Center for Internet Security (CIS), 20 survey respondents, and 544 configuration files obtained from the open source software (OSS) and proprietary domains. From our empirical study, we observe: (i) practitioners can be unaware of prescribed security configurations as$5 \% \sim 40 {\%}$of the survey respondents are unfamiliar with 16 prescribed configurations; and (ii) for Company-A and OSS respectively, 18.0% and 17.9% of the configuration files include at least one violation of prescribed configurations. From our evaluation with 5 static application security testing (SAST) tools we find (i) only Kubescape to support all of the prescribed security configuration categories; (ii) the highest observed precision to be 0.41 and 0.43 respectively, for the Company-A and OSS datasets; and (iii) the highest observed recall to be respectively, 0.53 and 0.65 for the Company-A and OSS datasets. Our findings show a disconnect between what CIS experts recommend for Kubernetes-related configurations and what happens in practice. We conclude the paper by providing recommendations for practitioners and researchers. Dataset used for the paper is publicly available online.
Md. Shazibul Islam Shamim, Hanyang Hu, Akond Ashfaque Ur Rahman
ICSE3
2025 Come for syntax, stay for speed, write secure code: an empirical study of security weaknesses in Julia programs
abstract
Abstract Context Practitioners prefer to achieve performance without sacrificing productivity when developing scientific software. The Julia programming language is designed to develop performant computer programs without sacrificing productivity by providing a syntax that is scripting in nature. According to the Julia programming language website, the common projects are data science, machine learning, scientific domains, and parallel computing. While Julia has yielded benefits with respect to productivity, programs written in Julia can include security weaknesses, which can hamper the security of Julia-based scientific software. A systematic derivation of security weaknesses can facilitate secure development of Julia programs—an area that remains under-explored. Objective The goal of this paper is to help practitioners securely develop Julia programs by conducting an empirical study of security weaknesses found in Julia programs. Method We apply qualitative analysis on 4,592 Julia programs used in 126 open-source Julia projects to identify security weakness categories. Next, we construct a static analysis tool called Julia Static Analysis Tool (JSAT) that automatically identifies security weaknesses in Julia programs. We apply JSAT to automatically identify security weaknesses in 558 open-source Julia projects consisting of 25,008 Julia programs. Results We identify 7 security weakness categories, which include the usage of hard-coded password and unsafe invocation. From our empirical study we identify 23,839 security weaknesses. On average, we observe 24.9% Julia source code files to include at least one of the 7 security weakness categories. Conclusion Based on our research findings, we recommend rigorous inspection efforts during code reviews. We also recommend further development and application of security static analysis tools so that security weaknesses in Julia programs can be detected before execution.
Yue Zhang 0051, Justin Murphy, Akond Ashfaque Ur Rahman
Empir. Softw. Eng.3
2024 Using AI Assistants in Software Development: A Qualitative Study on Security Practices and Concerns
abstract
Following the recent release of AI assistants, such as OpenAI's ChatGPT and GitHub Copilot, the software industry quickly utilized these tools for software development tasks, e.g., generating code or consulting AI for advice. While recent research has demonstrated that AI-generated code can contain security issues, how software professionals balance AI assistant usage and security remains unclear. This paper investigates how software professionals use AI assistants in secure software development, what security implications and considerations arise, and what impact they foresee on secure software development. We conducted 27 semi-structured interviews with software professionals, including software engineers, team leads, and security testers. We also reviewed 190 relevant Reddit posts and comments to gain insights into the current discourse surrounding AI assistants for software development. Our analysis of the interviews and Reddit posts finds that despite many security and quality concerns, participants widely use AI assistants for security-critical tasks, e.g., code generation, threat modeling, and vulnerability detection. Their overall mistrust leads to checking AI suggestions in similar ways to human code, although they expect improvements and, therefore, a heavier use for security tasks in the future. We conclude with recommendations for software professionals to critically check AI suggestions, AI creators to improve suggestion security and capabilities for ethical security tasks, and academic researchers to consider general-purpose AI in software development.
Jan H. Klemmer, Stefan Horstmann, Nikhil Patnaik, Cordelia Ludden, Cordell Burton Jr., Carson Powers, Fabio Massacci, Akond Ashfaque Ur Rahman, Daniel Votipka, Heather Lipford, Awais Rashid, Alena Naiakshina, Sascha Fahl
CCS8
2024 Mitigating Insecure Outputs in Large Language Models(LLMs): A Practical Educational Module
abstract
Large Language Models (LLMs) have extensive ability to produce promising output. Nowadays, people are increasingly relying on them due to easy accessibility, rapid and outstanding outcomes. However, the use of these results without appropriate scrutiny poses serious security risks, particularly when they are integrated with other software, APIs, or plugins. This is because the LLM outputs are highly dependent on the prompts they receive. Therefore, it is essential to carefully clean these outputs before using them in additional software environments. This paper is designed to teach students about the potential dangers of contaminated LLM output within the context of web development through prelab, hands-on, and postlab experiences. Hands-on lab provides practical guidance on how to handle LLM vulnerabilities to make applications safe with some real-world examples in Python. This approach aims to provide students with a deeper understanding of the precautions necessary to ensure software against the vulnerabilities introduced by LLM output.
Md Abdul Barek, Mst. Shapna Akter, ABM Kamrul Islam Riad, Mohamed Abdur Rahman 0003, Hossain Shahriar, Akond Ashfaque Ur Rahman, Fan Wu 0013
COMPSAC7
2024 Authentic Learning on DevOps Security with Labware: Git Hooks To Facilitate Automated Security Static Analysis
abstract
This paper presents an innovative approach to DevOps security education, addressing the dynamic landscape of cybersecurity threats. We propose a student-centered learning methodology by developing comprehensive hands-on learning modules. Specifically, we introduce labware modules designed to automate static security analysis, empowering learners to identify known vulnerabilities efficiently. These modules offer a structured learning experience with pre-lab, hands-on, and post-lab sections, guiding students through DevOps concepts and security challenges. In this paper, we introduce hands-on learning modules that familiarize students with recognizing known security flaws through the application of Git Hooks. Through prac-tical exercises with real-world code examples containing security flaws, students gain proficiency in detecting vulnerabilities using relevant tools. Initial evaluations conducted across educational institutions indicate that these hands-on modules foster student interest in software security and cybersecurity and equip them with practical skills to address DevOps security vulnerabilities.
Md Abdul Barek, Mst. Shapna Akter, ABM Kamrul Islam Riad, Mohamed Abdur Rahman 0003, Hossain Shahriar, Akond Ashfaque Ur Rahman, Fan Wu 0013
COMPSAC7
2024 Challenges and Preferences of Learning Machine Learning: A Student Perspective
abstract
This research paper systematically identifies the perceptions of learning machine learning (ML) topics. To keep up with the ever-increasing need for professionals with ML expertise, for-profit and non-profit organizations conduct a wide range of ML-related courses at undergraduate and graduate levels. Despite the availability of ML-related education materials, there is lack of understanding how students perceive ML-related topics and the dissemination of ML-related topics. A systematic categorization of students' perceptions of these courses can aid educators in understanding the challenges that students face, and use that understanding for better dissemination of ML-related topics in courses. The goal of this paper is to help educators teach machine learning (ML) topics by providing an experience report of students' perceptions related to learning ML. We accomplish our research goal by conducting an empirical study where we deploy a survey with 83 students across five academic institutions. These students are recruited from a mixture of undergraduate and graduate courses. We apply a qualitative analysis technique called open coding to identify challenges that students encounter while studying ML-related topics. Using the same qualitative analysis technique we identify quality aspects do students prioritize ML-related topics. From our survey, we identify 11 challenges that students face when learning about ML topics, amongst which data quality is the most frequent, followed by hardware-related challenges. We observe the majority of the students prefer hands-on projects over theoretical lectures. Furthermore, we find the surveyed students to consider ethics, security, privacy, correctness, and performance as essential considerations while developing ML-based systems. Based on our findings, we recommend educators who teach ML-related courses to (i) incorporate hands-on projects to teach ML-related topics, (ii) dedicate course materials related to data quality, (iii) use lightweight virtualization tools to showcase computationally intensive topics, such as deep neural networks, and (iv) empirical evaluation of how large language models can be used in ML-related education.
Effat Farhana, Fan Wu 0013, Hossain Shahriar, Shubhra Kanti Karmaker Santu, Akond Ashfaque Ur Rahman
FIE5
2024 Students Perceptions of Authentic Learning for Learning Information Flow Analysis
abstract
This research-to-practice paper reports students' perceptions on using a teaching framework called authentic learning to learn about information flow analysis. Using information flow analysis, practitioners find the flow of data across one or multiple programs. Information flow analysis is helpful for multiple software engineering activities, such as detecting software bugs and developing software fuzzing techniques. Despite being helpful in practice, learning about information flow analysis remains an impediment for students, which in turn prevents them from reaping the benefits of using information flow analysis. Therefore, an application of a teaching framework can aid students in learning about information flow analysis. To that end, we systematically investigate if authentic learning—a teaching framework that emphasizes on providing hands on experience for a practically relevant topic—is helpful for students to learn about information flow analysis. Upon conducting the exercise, students are asked to participate in a survey where they report perceptions about the conducted exercise. We analyze data from 170 students who were introduced to information flow analysis through an authentic learning-based exercise. From our analysis, we observe: (i) majority of the students to have little to no knowledge about information flow analysis prior to conducting the authentic learning-based exercise; (ii) 74.1% of the 170 students find the authentic learning-based exercise helpful to learn about information flow analysis; and (iii) student perceptions to vary for the three components of the authentic learning-based exercise. We conclude our paper by describing the implications of our findings for instructors and researchers. For example, instructors should consider the education level of students while designing activities for individual authentic learning components to educate students on information flow analysis. Furthermore, researchers can devise strategies on how instructors can allocate their efforts for each authentic learning component through empirical studies. These studies may investigate the correlation between reported helpfulness and socio-technical factors, such as education level of students.
Akond Ashfaque Ur Rahman, Fan Wu 0013, Hossain Shahriar
FIE1
2024 Does Generative AI Generate Smells Related to Container Orchestration?: An Exploratory Study with Kubernetes Manifests
abstract
Generative artificial intelligence (AI) technologies, such as ChatGPT have shown promise in solving software engineering problems. However, these technologies have also shown to be susceptible to generating software artifacts that contain quality issues. A systematic characterization of quality issues, such as smells in ChatGPT-generated artifacts can help in providing recommendations for practitioners who use generative AI for container orchestration.
Yue Zhang 0051, Rachel Meredith, Wilson Reeves, Julia Coriolano, Muhammad Ali Babar 0001, Akond Ashfaque Ur Rahman
MSR6
2024 Student Perceptions of Authentic Learning to Learn White-box Testing
abstract
The pivotal role of white-box testing with respect to software quality assurance, necessitates dissemination of education materials related to white-box testing in the course curriculum. In this poster, we describe our experiences in conducting an authentic learning-based exercise related to white-box testing. From a conducted survey with 124 students, we observe the authentic learning-based exercise to be helpful for students to learn about white-box testing.
Akond Ashfaque Ur Rahman, Yue Zhang 0051, Fan Wu 0013, Hossain Shahriar
SIGCSE (2)1
2024 An empirical study of task infections in Ansible scripts
Akond Ashfaque Ur Rahman, Dibyendu Brinto Bose, Yue Zhang 0051, Rahul Pandita
Empir. Softw. Eng.1
2023 Case Study-Based Approach of Quantum Machine Learning in Cybersecurity: Quantum Support Vector Machine for Malware Classification and Protection
abstract
Quantum machine learning (QML) is an emerging field of research that leverages quantum computing to improve the classical machine learning approach to solve complex real-world problems. QML has the potential to address cybersecurity-related challenges. Considering the novelty and complex architecture of QML, resources are not yet explicitly available that can pave cybersecurity learners to instill efficient knowledge of this emerging technology. In this research, we design and develop QML-based ten learning modules covering various cybersecurity topics by adopting student centering case-study based learning approach. We apply one subtopic of QML on a cybersecurity topic comprised of pre-lab, lab, and post-lab activities towards providing learners with hands-on QML experiences in solving real-world security problems. In order to engage and motivate students in a learning environment that encourages all students to learn, pre-lab offers a brief introduction to both the QML subtopic and cybersecurity problem. In this paper, we utilize quantum support vector machine (QSVM) for malware classification and protection where we use open source Pennylane QML framework on the drebin215 dataset. We demonstrate our QSVM model and achieve an accuracy of 95% in malware classification and protection. We will develop all the modules and introduce them to the cybersecurity community in the coming days.
Mst. Shapna Akter, Hossain Shahriar, Sheikh Iqbal Ahamed, Kishor Datta Gupta, Muhammad Rahman 0006, Atef Mohamed, Mohammad Ashiqur Rahman, Akond Ashfaque Ur Rahman, Fan Wu 0013
COMPSAC8
2023 A Plugin for Kotlin based Android Apps to Detect Security Breaches through Dataflow
abstract
Android developers have already adopted Kotlin as their preferred language. Kotlin is more well-accepted than Java because of its simplicity, readability, and new features like scope functions, extension functions, null safety, etc. Google has introduced several new libraries such as RoomDb, Jetpack-Compose, as well as dependency injection frameworks like Dagger-Hilt to enhance Android Development. The question is how secure these libraries are? Are there tools available to analyze new Libraries? DroidPatrol [1] is our existing static analysis plugin that works on Android Apps written in Java. To support Kotlin code analysis we were continuously working on upgrading our plugin. Finally, we released DroidPatrol 2.0 [2] which is compatible to perform static analysis of Android apps developed in Kotlin. It also works on Java-based Android app developed in Java. In this latest edition, we restructured the architecture of the plugin to optimize its efficiency. We also found a vulnerability in RoomDb. The latest version is developed in Kotlin, and we used IntelliJ Idea. Lastly, version 2.0 is independent of Android Studio editions meaning that any version of Android Studio is compatible.
Md Arabin Islam Talukder, Sumaiya Farzana Mishu, Hossain Shahriar, ABM Kamrul Islam Riad, Fan Wu 0013, Akond Ashfaque Ur Rahman
COMPSAC6
2023 Come for syntax, stay for speed, understand defects: an empirical study of defects in Julia programs
Akond Ashfaque Ur Rahman, Dibyendu Brinto Bose, Raunak Shakya, Rahul Pandita
Empir. Softw. Eng.1
2023 Log-related Coding Patterns to Conduct Postmortems of Attacks in Supervised Learning-based Projects
abstract
Adversarial attacks against supervised learning a algorithms, which necessitates the application of logging while using supervised learning algorithms in software projects. Logging enables practitioners to conduct postmortem analysis, which can be helpful to diagnose any conducted attacks. We conduct an empirical study to identify and characterize log-related coding patterns, i.e., recurring coding patterns that can be leveraged to conduct adversarial attacks and needs to be logged. A list of log-related coding patterns can guide practitioners on what to log while using supervised learning algorithms in software projects. We apply qualitative analysis on 3,004 Python files used to implement 103 supervised learning-based software projects. We identify a list of 54 log-related coding patterns that map to six attacks related to supervised learning algorithms. Using Lo g Assistant to conduct P ostmortems for Su pervised L earning ( LOPSUL ) , we quantify the frequency of the identified log-related coding patterns with 278 open-source software projects that use supervised learning. We observe log-related coding patterns to appear for 22% of the analyzed files, where training data forensics is the most frequently occurring category.
Farzana Ahamed Bhuiyan, Akond Ashfaque Ur Rahman
ACM Trans. Priv. Secur.2
2023 Security Misconfigurations in Open Source Kubernetes Manifests: An Empirical Study
abstract
Context: Kubernetes has emerged as the de-facto tool for automated container orchestration. Business and government organizations are increasingly adopting Kubernetes for automated software deployments. Kubernetes is being used to provision applications in a wide range of domains, such as time series forecasting, edge computing, and high-performance computing. Due to such a pervasive presence, Kubernetes-related security misconfigurations can cause large-scale security breaches. Thus, a systematic analysis of security misconfigurations in Kubernetes manifests, i.e., configuration files used for Kubernetes, can help practitioners secure their Kubernetes clusters. Objective: The goal of this paper is to help practitioners secure their Kubernetes clusters by identifying security misconfigurations that occur in Kubernetes manifests . Methodology: We conduct an empirical study with 2,039 Kubernetes manifests mined from 92 open-source software repositories to systematically characterize security misconfigurations in Kubernetes manifests. We also construct a static analysis tool called Security Linter for Kubernetes Manifests ( SLI-KUBE ) to quantify the frequency of the identified security misconfigurations. Results: In all, we identify 11 categories of security misconfigurations, such as absent resource limit, absent securityContext , and activation of hostIPC . Specifically, we identify 1,051 security misconfigurations in 2,039 manifests. We also observe the identified security misconfigurations affect entities that perform mesh-related load balancing, as well as provision pods and stateful applications. Furthermore, practitioners agreed to fix 60% of 10 misconfigurations reported by us. Conclusion: Our empirical study shows Kubernetes manifests to include security misconfigurations, which necessitates security-focused code reviews and application of static analysis when Kubernetes manifests are developed.
Akond Ashfaque Ur Rahman, Md. Shazibul Islam Shamim, Dibyendu Brinto Bose, Rahul Pandita
ACM Trans. Softw. Eng. Methodol.1
2023 Detecting and Characterizing Propagation of Security Weaknesses in Puppet-Based Infrastructure Management
abstract
Despite being beneficial for managing computing infrastructure automatically, Puppet manifests are susceptible to security weaknesses, e.g., hard-coded secrets and use of weak cryptography algorithms. Adequate mitigation of security weaknesses in Puppet manifests is thus necessary to secure computing infrastructure that are managed with Puppet manifests. A characterization of how security weaknesses propagate and affect Puppet-based infrastructure management, can inform practitioners on the relevance of the detected security weaknesses, as well as help them take necessary actions for mitigation. We conduct an empirical study with 17,629 Puppet manifests withTaintTracker forPuppet Manifests (TaintPup). We observe 2.4 times more precision, and 1.8 times more F-measure for TaintPup, compared to that of a state-of-the-art security static analysis tool. From our empirical study, we observe security weaknesses to propagate into 4,457 resources, i.e, Puppet-specific code elements used to manage infrastructure. A single instance of a security weakness can propagate into as many as 35 distinct resources. We observe security weaknesses to propagate into 7 categories of resources, which include resources used to manage continuous integration servers and network controllers. According to our survey with 24 practitioners, propagation of security weaknesses into data storage-related resources is rated to have the most severe impact for Puppet-based infrastructure management.
Akond Ashfaque Ur Rahman, Chris Parnin
IEEE Trans. Software Eng.1
2022 Software Supply Chain Vulnerabilities Detection in Source Code: Performance Comparison between Traditional and Quantum Machine Learning Algorithms
abstract
The software supply chain (SSC) attack has become one of the crucial issues that are being increased rapidly with the advancement of the software development domain. In general, SSC attacks execute during the software development processes lead to vulnerabilities in software products targeting downstream customers and even involved stakeholders. Machine Learning approaches are proven in detecting and preventing software security vulnerabilities. Besides, emerging quantum machine learning can be promising in addressing SSC attacks. Considering the distinction between traditional and quantum machine learning, performance could be varies based on the proportions of the experimenting dataset. In this paper, we conduct a comparative analysis between quantum neural networks (QNN) and conventional neural networks (NN) with a software supply chain attack dataset known as ClaMP. Our goal is to distinguish the performance between QNN and NN and to conduct the experiment, we develop two different models for QNN and NN by utilizing Pennylane for quantum and TensorFlow and Keras for traditional respectively. We evaluated the performance of both models with different proportions of the ClaMP dataset to identify the f1 score, recall, precision, and accuracy. We also measure the execution time to check the efficiency of both models. The demonstration result indicates that execution time for QNN is slower than NN with a higher percentage of datasets. Due to recent advancements in QNN, a large level of experiments shall be carried out to understand both models accurately in our future research.
Mst. Shapna Akter, Md. Jobair Hossain Faruk, Nafisa Anjum, Mohammad Masum, Hossain Shahriar, Akond Ashfaque Ur Rahman, Fan Wu 0013, Alfredo Cuzzocrea
IEEE Big Data7
2022 A Novel Machine Learning Based Framework for Bridge Condition Analysis
abstract
Bridges play a vital part in the transportation system by ensuring the connectedness of transportation systems, which is critical for a country’s social and economic prosperity by offering daily mobility to the people. However, according to the American Society of Civil Engineers (ASCE 2017), many U.S. bridges are in critical condition, raising safety issues, with 9.1 and 13.6 percent of the country’s 614,387 bridges, respectively, structurally defective, and functionally obsolete. Every day, 178 million people traverse these structurally defective bridges. Furthermore, the average annual failure rate is expected to be between 87 and 222. Bridge breakdowns have disastrous repercussions, and in many cases, result in death. While bridge authorities strive to improve bridge conditions, budget limits make it difficult to make cost-effective maintenance decisions. Bridge authorities distribute limited repair resources based on projected future bridge conditions. As a result, building a data-driven, autonomous, and effective bridge condition prediction model is critical for improving maintenance decision-making. In this paper, we present a novel bridge condition prediction framework using advanced Machine Learning (ML) algorithms on the National Bridge Inventory (NBI) dataset. The framework consists of two stages, where the most informative features from the NBI dataset are selected using the Recursive Feature Elimination process and in the 2ndstep, ML classifiers are applied to the selected features for bridge condition prediction. The experimental results show that the proposed framework can effectively predict bridge conditions by producing highly accurate results in terms of accuracy, precision, recall, and f1-score.
Mohammad Masum, Nafisa Anjum, Md. Jobair Hossain Faruk, Hossain Shahriar, Maria Valero, Mohammed Karim, Akond Ashfaque Ur Rahman, Fan Wu 0013, Alfredo Cuzzocrea
IEEE Big Data8
2022 Shifting Left for Machine Learning: An Empirical Study of Security Weaknesses in Supervised Learning-based Projects
abstract
Context: Supervised learning-based projects (SLPs), i.e., software projects that use supervised learning algorithms, such as decision trees are useful for performing classification-related tasks. Yet, security weaknesses, such as the use of hard-coded passwords in SLPs, can make SLPs susceptible to security attacks. A characterization of security weaknesses in SLPs can help practitioners understand the security weaknesses that are frequent in SLPs and adopt adequate mitigation strategies. Objective: The goal of this paper is to help practitioners se-curely develop supervised learning-based projects by conducting an empirical study of security weaknesses in supervised learning-based projects. Methodology: We conduct an empirical study by quantifying the frequency of security weaknesses in 278 open source SLPs. Results: We identify 22 types of security weaknesses that occur in SLPs. We observe ‘use of potentially dangerous function’ to be the most frequently occurring security weakness in SLPs. Of the identified 3,964 security weaknesses, 23.79 % and 40.49 % respectively, appear for source code files used to train and test models. We also observe evidence of co-location, e.g., instances of command injection co-locates with instances of potentially dangerous function. Conclusion: Based on our findings, we advocate for a shift left approach for SLP development with security-focused code reviews, and application of security static analysis.
Farzana Ahamed Bhuiyan, Stacy J. Prowell, Hossain Shahriar, Fan Wu 0013, Akond Ashfaque Ur Rahman
COMPSAC5
2022 Quantum Machine Learning for Software Supply Chain Attacks: How Far Can We Go?
abstract
Quantum Computing (QC) has gained immense popularity as a potential solution to deal with the ever-increasing size of data and associated challenges leveraging the concept of quantum random access memory (QRAM). QC promises-quadratic or exponential increases in computational time with quantum parallelism and thus offer a huge leap forward in the computation of Machine Learning algorithms. This paper analyzes speed up performance of QC when applied to machine learning algorithms, known as Quantum Machine Learning (QML). We applied QML methods such as Quantum Support Vector Machine (QSVM), and Quantum Neural Network (QNN) to detect Software Supply Chain (SSC) attacks. Due to the access limitations of real quantum computers, the QML methods were implemented on open-source quantum simulators such as IBM Qiskit and TensorFlow Quantum. We evaluated the performance of QML in terms of processing speed and accuracy and finally, compared with its classical counterparts. Interestingly, the experimental results differ to the speed up promises of QC by demonstrating higher computational time and lower accuracy in comparison to the classical approaches for SSC attacks.
Mohammad Masum, Mohammad Nazim, Md. Jobair Hossain Faruk, Hossain Shahriar, Maria Valero, Md Abdullah Khan, Gias Uddin 0001, Shabir Barzanjeh, Erhan Saglamyurek, Akond Ashfaque Ur Rahman, Sheikh Iqbal Ahamed
COMPSAC10
2022 Towards Automation for MLOps: An Exploratory Study of Bot Usage in Deep Learning Libraries
abstract
Machine learning (ML) operations or MLOps advo-cates for integration of DevOps- related practices into the ML development and deployment process. Adoption of MLOps can be hampered due to a lack of knowledge related to how development tasks can be automated. A characterization of bot usage in ML projects can help practitioners on the types of tasks that can be automated with bots, and apply that knowledge into their ML development and deployment process. To that end, we conduct a preliminary empirical study with 135 issues reported mined from 3 libraries related to deep learning: Keras, PyTorch, and Tensorflow. From our empirical study we observe 9 categories of tasks that are automated with bots. We conclude our work-in-progress paper by providing a list of lessons that we learned from our empirical study.
Akond Ashfaque Ur Rahman, Farzana Ahamed Bhuiyan, Mohammad Mehedi Hassan, Hossain Shahriar, Fan Wu 0013
COMPSAC1
2022 Evolution of Quantum Computing: A Systematic Survey on the Use of Quantum Computing Tools
abstract
Quantum Computing (QC) refers to an emerging paradigm that inherits and builds with the concepts and phenomena of Quantum Mechanic (QM) with the significant potential to unlock a remarkable opportunity to solve complex and computationally intractable problems that scientists could not tackle previously. In recent years, tremendous efforts and progress in QC mark a significant milestone in solving real-world problems much more efficiently than classical computing technology. While considerable progress is being made to move quantum computing in recent years, significant research efforts need to be devoted to move this domain from an idea to a working paradigm. In this paper, we conduct a systematic survey and categorize papers, tools, frameworks, platforms that facilitate quantum computing and analyze them from an application and Quantum Computing perspective. We present quantum Computing Layers, Characteristics of Quantum Computer platforms, Circuit Simulator, Open-source Tools- Cirq, TensorFlow Quantum, ProjectQ etc. that allow implementing quantum programs in Python using a powerful and intuitive syntax. Following that, we discuss the current essence, identify open challenges, and provide future research direction. We conclude that scores of frameworks, tools and platforms are emerged in the past few years, improvement of currently available facilities would exploit the research activities in the quantum research community.
Paramita Basak Upama, Md. Jobair Hossain Faruk, Mohammad Nazim, Mohammad Masum, Hossain Shahriar, Gias Uddin 0001, Shabir Barzanjeh, Sheikh Iqbal Ahamed, Akond Ashfaque Ur Rahman
COMPSAC9
2022 As Code Testing: Characterizing Test Quality in Open Source Ansible Development
abstract
Infrastructure as code (IaC) scripts, such as Ansible scripts, are used to provision computing infrastructure at scale. Existence of bugs in IaC test scripts, such as, configuration and security bugs, can be consequential for the provisioned computing infrastructure. A characterization study of bugs in IaC test scripts is the first step to understand the quality concerns that arise during testing of IaC scripts, and also provide recommendations for practitioners on quality assurance. We conduct an empirical study with 4,831 Ansible test scripts mined from 104 open source software (OSS) repositories where we quantify bug frequency, and categorize bugs in test scripts. We further categorize testing patterns, i.e., recurring coding patterns in test scripts, which also correlate with appearance of bugs. From our empirical study, we observe 1.8% of 4,831 Ansible test scripts to include a bug, and 45.2% of the 104 repositories to contain at least one test script that includes bugs. We identify 7 categories of bugs, which includes security bugs and performance bugs that are related with metadata extraction. We also identify 3 testing patterns that correlate with appearance of bugs: 'assertion roulette’, 'local only testing’, and 'remote mystery guest‘. Based on our findings, we advocate for detection and mitigation of the 3 testing patterns as these patterns can have negative implications for troubleshooting failures, reproducible deployments of software, and provisioning of computing infrastructure.
Mohammad Mehedi Hassan, Akond Ashfaque Ur Rahman
ICST2
2022 Can We use Authentic Learning to Educate Students about Secure Infrastructure as Code Development?
abstract
Despite yielding benefits for organizations, infrastructure as code (IaC) scripts are susceptible to security weaknesses, such as hard-coded passwords. Existence of such security weaknesses necessitate integration of education materials related to secure development of IaC scripts. In this preliminary work, we describe our experiences of how application of authentic learning helped students learn about secure development of IaC scripts. Our paper shows education materials based on authentic learning to help students learn about secure IaC development.
Akond Ashfaque Ur Rahman, Md. Shazibul Islam Shamim, Hossain Shahriar, Fan Wu 0013
ITiCSE (2)1
2022 Development of Blockchain-based e-Voting System: Requirements, Design and Security Perspective
abstract
Elections make a fundamental contribution to democratic governance and are very important to select the appropriate person to determine the fate of a nation while a large number of citizens do not trust the ballot-paper-based voting system. As a result, e-Voting is being adopted by various countries throughout the world. With advantages, there are a number of constraints of e-voting systems, a single vulnerability can lead to large-scale manipulations of voting results. Leveraging and intersecting both cutting-edge technologies including biometric and blockchain technology can address the limitations of current e-Voting frameworks. In this research, we analyze the requirements for systems modeling of voting technology and possible opportunities to adopt biometrics and blockchain technology. Based on the requirements analysis, we propose a biometric-enabled and hyperledger fabric-based voting framework to automate identity verification that will ensure transparency and security of electronic voting. We utilize the software architecture analysis method and active reviews for intermediate designs for evaluating the proposed framework. Demonstration indicates the efficiency and quality attributes of architectural design that shall lead us to implement the system in real-world scenarios in future studies. Initially, we develop a Webbased prototype to demonstrate the framework. In future studies, we aim to implement on large scale and evaluate the prototype against the requirements and security standard.
Md. Jobair Hossain Faruk, Bilash Saha, Fazlul Alam, Hossain Shahriar, Maria Valero, Akond Ashfaque Ur Rahman, Fan Wu 0013, Md. Zakirul Alam Bhuiyan
TrustCom7
2022 Lessons from Research to Practice on Writing Better Quality Puppet Scripts
abstract
Infrastructure as Code (IaC) scripts, such as Puppet scripts, provide practitioners the opportunity to provision computing infrastructure automatically at scale. Poorly written IaC scripts impact various facets of quality (such as security and maintainability) and, in turn, may lead to serious consequences. Many of the ill-effects can be avoided or rectified easily by following recommendations derived from research and best practices gleaned from experience. While researchers have investigated methods to improve quality aspects of Puppet scripts, such research needs to be summarized and synthesized for industry practitioners. In this article, we summarize recent research in the IaC domain by discussing key quality issues, specifically security and maintainability smells, that may arise in an IaC script. We also mine open-source repositories from three organizations (Mozilla, Openstack, and Wikimedia) and report our observations on the identified smells. Furthermore, we also synthesize recommendations from the literature for software practitioners that could improve the quality of IaC scripts. Software development teams dealing with large computing infrastructure can get benefited from the actionable recommended practices. In addition, researchers in the domain may use this study to find opportunities to improve the state-of-the-art.
Akond Ashfaque Ur Rahman, Tushar Sharma 0001
SANER1
2021 Malware Detection and Prevention using Artificial Intelligence Techniques
abstract
With the rapid technological advancement, security has become a major issue due to the increase in malware activity that poses a serious threat to the security and safety of both computer systems and stakeholders. To maintain stakeholder’s, particularly, end user’s security, protecting the data from fraudulent efforts is one of the most pressing concerns. A set of malicious programming code, scripts, active content, or intrusive software that is designed to destroy intended computer systems and programs or mobile and web applications is referred to as malware. According to a study, naive users are unable to distinguish between malicious and benign applications. Thus, computer systems and mobile applications should be designed to detect malicious activities towards protecting the stakeholders. A number of algorithms are available to detect malware activities by utilizing novel concepts including Artificial Intelligence, Machine Learning, and Deep Learning. In this study, we emphasize Artificial Intelligence (AI) based techniques for detecting and preventing malware activity. We present a detailed review of current malware detection technologies, their shortcomings, and ways to improve efficiency. Our study shows that adopting futuristic approaches for the development of malware detection applications shall provide significant advantages. The comprehension of this synthesis shall help researchers for further research on malware detection and prevention using AI.
Md. Jobair Hossain Faruk, Hossain Shahriar, Maria Valero, Farhat Lamia Barsha, Shahriar Sobhan, Md Abdullah Khan, Michael E. Whitman, Alfredo Cuzzocrea, Dan Chia-Tien Lo, Akond Ashfaque Ur Rahman, Fan Wu 0013
IEEE BigData10
2021 An Empirical Study of Vulnerabilities in Robotics
abstract
The ubiquitous usage of robots in modern society necessitates secure development of robotics systems. Practitioners who engage in robot development can benefit from a systematic study that investigates the categories of vulnerabilities that appear in robotics systems. The goal of this paper is to help practitioners mitigate vulnerabilities in robotics systems by conducting an empirical study of vulnerabilities in robotics systems. We conduct an empirical study where we analyze 176 robotics-related vulnerabilities collected from the Robot Vulnerability Database (RVD). Our findings show that: (i) robotics-related vulnerabilities can be classified into nine categories; (ii) memory-related vulnerabilities are the most frequent category, (iii) 92.6% of the reported vulnerabilities are software-related, and (iv) software components in robotics systems include more critical vulnerabilities compared to that of hardware components. Based on our findings, we provide a list of development activities that can be used to mitigate vulnerabilities for robotics systems.
Kaitlyn Cottrell, Dibyendu Brinto Bose, Hossain Shahriar, Akond Ashfaque Ur Rahman
COMPSAC4
2021 How Do Students Feel About Automated Security Static Analysis Exercises?
abstract
This Innovative Practice, work in progress (WIP) paper presents our experience related to two exercises that focus on automated security static analysis, a practice used to integrate security into development and operations (DevOps). The concept has gained popularity amongst information technology (IT) organizations. However, security-related concerns, such as security weaknesses in DevOps artifacts can cause serious consequences. Our preliminary findings indicate that (i) students positively perceive the introduced exercises; and (ii) the students perform well if they are provided necessary background on the exercises. Our WIP paper lays the groundwork to build course materials that will facilitate development, deployment, and dissemination of DevOps-related education materials that also incorporate cybersecurity concepts.
Akond Ashfaque Ur Rahman, Hossain Shahriar, Dibyendu Brinto Bose
FIE1
2021 Security Smells in Ansible and Chef Scripts: A Replication Study
abstract
Context: Security smells are recurring coding patterns that are indicative of security weakness and require further inspection. As infrastructure as code (IaC) scripts, such as Ansible and Chef scripts, are used to provision cloud-based servers and systems at scale, security smells in IaC scripts could be used to enable malicious users to exploit vulnerabilities in the provisioned systems. Goal: The goal of this article is to help practitioners avoid insecure coding practices while developing infrastructure as code scripts through an empirical study of security smells in Ansible and Chef scripts. Methodology: We conduct a replication study where we apply qualitative analysis with 1,956 IaC scripts to identify security smells for IaC scripts written in two languages: Ansible and Chef. We construct a static analysis tool called Security Linter for Ansible and Chef scripts (SLAC) to automatically identify security smells in 50,323 scripts collected from 813 open source software repositories. We also submit bug reports for 1,000 randomly selected smell occurrences. Results: We identify two security smells not reported in prior work: missing default in case statement and no integrity check. By applying SLAC we identify 46,600 occurrences of security smells that include 7,849 hard-coded passwords. We observe agreement for 65 of the responded 94 bug reports, which suggests the relevance of security smells for Ansible and Chef scripts amongst practitioners. Conclusion: We observe security smells to be prevalent in Ansible and Chef scripts, similarly to that of the Puppet scripts. We recommend practitioners to rigorously inspect the presence of the identified security smells in Ansible and Chef scripts using (i) code review, and (ii) static analysis tools.
Akond Ashfaque Ur Rahman, Rayhanur Rahman, Chris Parnin, Laurie A. Williams
ACM Trans. Softw. Eng. Methodol.1
2020 Gang of eight: a defect taxonomy for infrastructure as code scripts
abstract
Defects in infrastructure as code (IaC) scripts can have serious consequences, for example, creating large-scale system outages. A taxonomy of IaC defects can be useful for understanding the nature of defects, and identifying activities needed to fix and prevent defects in IaC scripts. The goal of this paper is to help practitioners improve the quality of infrastructure as code (IaC) scripts by developing a defect taxonomy for IaC scripts through qualitative analysis. We develop a taxonomy of IaC defects by applying qualitative analysis on 1,448 defect-related commits collected from open source software (OSS) repositories of the Openstack organization. We conduct a survey with 66 practitioners to assess if they agree with the identified defect categories included in our taxonomy. We quantify the frequency of identified defect categories by analyzing 80,425 commits collected from 291 OSS repositories spanning across 2005 to 2019.
Akond Ashfaque Ur Rahman, Effat Farhana, Chris Parnin, Laurie A. Williams
ICSE1
2020 The 'as code' activities: development anti-patterns for infrastructure as code
Akond Ashfaque Ur Rahman, Effat Farhana, Laurie A. Williams
Empir. Softw. Eng.1
2019 Characterizing Attacker Behavior in a Cybersecurity Penetration Testing Competition
abstract
Background: Inculcating an attacker mindset (i.e. learning to think like an attacker) is an essential skill for engineers and administrators to improve the overall security of software. Describing the approach that adversaries use to discover and exploit vulnerabilities to infiltrate software systems can help inform such an attacker mindset. Aims: Our goal is to assist developers and administrators in inculcating an attacker mindset by proposing an approach to codify attacker behavior in cybersecurity penetration testing competition. Method: We use an existing multimodal dataset of events captured during the 2018 National Collegiate Penetration Testing Competition (CPTC'18) to characterize the approach a team of attackers used to discover and exploit vulnerabilities. Results: We collected 44 events to characterize the approach that one of the participating teams took to discover and exploit seven vulnerabilities. We used the MITRE ATT&CK™framework to codify the approach in terms of tactics and techniques. Conclusions: We show that characterizing attackers' campaign as a chronological sequence of MITRE ATT&CK™tactics and techniques is feasible. We hope that such a characterization can inform the attacker mindset of engineers and administrators in their pursuit of engineering secure software systems.
Nuthan Munaiah, Akond Ashfaque Ur Rahman, Justin Pelletier, Laurie A. Williams, Andrew Meneely
ESEM2
2019 The seven sins: security smells in infrastructure as code scripts
abstract
Practitioners use infrastructure as code (IaC) scripts to provision servers and development environments. While developing IaC scripts, practitioners may inadvertently introduce security smells. Security smells are recurring coding patterns that are indicative of security weakness and can potentially lead to security breaches. The goal of this paper is to help practitioners avoid insecure coding practices while developing infrastructure as code (IaC) scripts through an empirical study of security smells in IaC scripts. We apply qualitative analysis on 1,726 IaC scripts to identify seven security smells. Next, we implement and validate a static analysis tool called Security Linter for Infrastructure as Code scripts (SLIC) to identify the occurrence of each smell in 15,232 IaC scripts collected from 293 open source repositories. We identify 21,201 occurrences of security smells that include 1,326 occurrences of hard-coded passwords. We submitted bug reports for 1,000 randomly-selected security smell occurrences. We obtain 212 responses to these bug reports, of which 148 occurrences were accepted by the development teams to be fixed. We observe security smells can have a long lifetime, e.g., a hard-coded secret can persist for as long as 98 months, with a median lifetime of 20 months.
Akond Ashfaque Ur Rahman, Chris Parnin, Laurie A. Williams
ICSE1
2019 Synthesizing Program Execution Time Discrepancies in Julia Used for Scientific Software
abstract
Scientific software is defined as software that is used to analyze data to investigate unanswered research questions in the scientific community. Developers use programming languages such as Julia to build scientific software. When programming with Julia, developers experience program execution time discrepancy i.e. not obtaining desired program execution time, which hinders them to efficiently complete their tasks. The goal of this paper is to help developers in achieving desired program execution time for Julia by identifying the causes of why program execution time discrepancies happen with an empirical study of Stack Overflow posts. We conduct an empirical study with 263 Julia-related posts collected from Stack Overflow, and apply qualitative analysis on the collected 263 posts. We identify 9 categories of program execution time discrepancies for Julia, which include discrepancies related to data structures usage such as, arrays and dictionaries. We also identify 10 causes that explain why the program execution time discrepancies happen. For example, we identify program execution time discrepancy to happen when developers unnecessarily allocate memory by using array comprehension.
Effat Farhana, Nasif Imtiaz, Akond Ashfaque Ur Rahman
ICSME3
2019 Share, But be Aware: Security Smells in Python Gists
abstract
Github Gist is a service provided by Github which is used by developers to share code snippets. While sharing, developers may inadvertently introduce security smells in code snippets as well, such as hard-coded passwords. Security smells are recurrent coding patterns that are indicative of security weaknesses, which could potentially lead to security breaches. The goal of this paper is to help software practitioners avoid insecure coding practices through an empirical study of security smells in publicly-available GitHub Gists. Through static analysis, we found 13 types of security smells with 4,403 occurrences in 5,822 publicly-available Python Gists. 1,817 of those Gists, which is around 31%, have at least one security smell including 689 instances of hard-coded secrets. We also found no significance relation between the presence of these security smells and the reputation of the Gist author. Based on our findings, we advocate for increased awareness and rigorous code review efforts related to software security for Github Gists so that propagation of insecure coding practices are mitigated.
Rayhanur Rahman, Akond Ashfaque Ur Rahman, Laurie A. Williams
ICSME2
2019 Challenges with responding to static analysis tool alerts
abstract
Static analysis tool alerts can help developers detect potential defects in the code early in the development cycle. However, developers are not always able to respond to the alerts with their preferred action and may turn away from using the tool. In this paper, we qualitatively analyze 280 Stack Overflow (SO) questions regarding static analysis tool alerts to identify the challenges developers face in understanding and responding to these alerts. We find that the most prevalent question on SO is how to ignore and filter alerts, followed by validation of false positives. Our findings confirm prior researchers' findings related to notification communication theory as 44.6% of the SO questions that we analyzed indicate developers face communication challenges.
Nasif Imtiaz, Akond Ashfaque Ur Rahman, Effat Farhana, Laurie A. Williams
MSR2
2019 Snakes in paradise?: insecure python-related coding practices in stack overflow
abstract
Despite being the most popular question and answer website for software developers, answers posted on Stack Overflow (SO) are susceptible to contain Python-related insecure coding practices. A systematic analysis on how frequently insecure coding practices appear in SO answers can help the SO community assess the prevalence of insecure Python code blocks in SO. An insecure coding practice is recurrent use of insecure coding patterns in Python. We conduct an empirical study using 529,054 code blocks collected from Python-related 44,966 answers posted on SO. We observe 7.1% of the 44,966 Python-related answers to include at least one insecure coding practice. The most frequently occurring insecure coding practice is code injection. We observe 9.8% of the 7,444 accepted answers to include at least one insecure code block. We also find user reputation not to relate with the presence of insecure code blocks, suggesting that both high and low-reputed users are likely to introduce insecure code blocks.
Akond Ashfaque Ur Rahman, Effat Farhana, Nasif Imtiaz
MSR1
2019 A systematic mapping study of infrastructure as code research
Akond Ashfaque Ur Rahman, Rezvan Mahdavi-Hezaveh, Laurie A. Williams
Inf. Softw. Technol.1
2019 Source code properties of defective infrastructure as code scripts
Akond Ashfaque Ur Rahman, Laurie A. Williams
Inf. Softw. Technol.1
2018 Anti-Patterns in Infrastructure as Code
Akond Ashfaque Ur Rahman
ICST1
2018 Characterizing Defective Configuration Scripts Used for Continuous Deployment
abstract
In software engineering, validation and verification (V&V) resources are limited and characterization of defective software source files can help in efficiently allocating V&V resources. Similar to software source files, defects occur in the scripts used to automatically manage configurations and software deployment infrastructure, often known as infrastructure as code (IaC) scripts. Defects in IaC scripts can have dire consequences, for example, creating large-scale system outages. Identifying the characteristics of defective IaC scripts can help in mitigating these defects by allocating V&V efforts efficiently based upon these characteristics. The objective of this paper is to help software practitioners to prioritize validation and verification efforts for infrastructure as code (IaC) scripts by identifying the characteristics of defective IaC scripts. Researchers have previously extracted text features to characterize defective software source files written in general purpose programming languages. We investigate if text features can be used to identify properties that characterize defective IaC scripts. We use two text mining techniques to extract text features from IaC scripts: the bag-of-words technique, and the term frequency-inverse document frequency (TF-IDF) technique. Using the extracted features and applying grounded theory, we characterize defective IaC scripts. We also use the text features to build defect prediction models with tuned statistical learners. We mine open source repositories from Mozilla, Openstack, and Wikimedia Commons, to construct three case studies and evaluate our methodology. We identify three properties that characterize defective IaC scripts: filesystem operations, infrastructure provisioning, and managing user accounts. Using the bag-of-word technique, we observe a median F-Measure of 0.74, 0.71, and 0.73, respectively, for Mozilla, Openstack, and Wikimedia Commons. Using the TF-IDF technique, we observe a median F-Measure of 0.72, 0.74, and 0.70, respectively, for Mozilla, Openstack, and Wikimedia Commons.
Akond Ashfaque Ur Rahman, Laurie A. Williams
ICST1
2018 Comprehension effort and programming activities: related? or not related?
abstract
Researchers have observed programmers to allocate considerable amount of effort in program comprehension. But, how does program comprehension effort relate with programming activities? We answer this question by conducting an empirical study using the MSR 2018 Mining Challenge Dataset. We quantify programmers' comprehension effort, and investigate the relationship between program comprehension effort and four programming activities: navigating, editing, building projects, and debugging. We observe when programmers are involved in high comprehension effort they navigate and make edits at a significantly slower rate. However, we do not observe any significant differences in programmers' build and debugging behavior, when programmers are involved in high comprehension effort. Our findings suggest that the relationship between program comprehension effort and programming activities is nuanced, as not all programming activities associate with program comprehension effort.
Akond Ashfaque Ur Rahman
MSR1