Skip to main content

Showing 1–31 of 31 results for author: Roychoudhury, A

  1. arXiv:2405.03927  [pdf, other

    cs.SE

    Codexity: Secure AI-assisted Code Generation

    Authors: Sung Yong Kim, Zhiyu Fan, Yannic Noller, Abhik Roychoudhury

    Abstract: Despite the impressive performance of Large Language Models (LLMs) in software development activities, recent studies show the concern of introducing vulnerabilities into software codebase by AI programming assistants (e.g., Copilot, CodeWhisperer). In this work, we present Codexity, a security-focused code generation framework integrated with five LLMs. Codexity leverages the feedback of static a… ▽ More

    Submitted 6 May, 2024; originally announced May 2024.

  2. arXiv:2405.02213  [pdf, other

    cs.SE cs.AI cs.LG

    Automatic Programming: Large Language Models and Beyond

    Authors: Michael R. Lyu, Baishakhi Ray, Abhik Roychoudhury, Shin Hwei Tan, Patanamon Thongtanunam

    Abstract: Automatic programming has seen increasing popularity due to the emergence of tools like GitHub Copilot which rely on Large Language Models (LLMs). At the same time, automatically generated code faces challenges during deployment due to concerns around quality and trust. In this article, we study automated coding in a general sense and study the concerns around code quality, security and related is… ▽ More

    Submitted 15 May, 2024; v1 submitted 3 May, 2024; originally announced May 2024.

  3. arXiv:2404.13951  [pdf, other

    cs.SE

    Program Environment Fuzzing

    Authors: Ruijie Meng, Gregory J. Duck, Abhik Roychoudhury

    Abstract: Computer programs are not executed in isolation, but rather interact with the execution environment which drives the program behaviours. Software validation and verification methods, such as greybox fuzzing, thus need to capture the effect of possibly complex environmental interactions, including files, databases, configurations, network sockets, human-user interactions, and more. Conventional app… ▽ More

    Submitted 20 May, 2024; v1 submitted 22 April, 2024; originally announced April 2024.

    Comments: 13 pages, 5 figures, 5 tables

  4. arXiv:2404.05427  [pdf, other

    cs.SE cs.AI

    AutoCodeRover: Autonomous Program Improvement

    Authors: Yuntong Zhang, Haifeng Ruan, Zhiyu Fan, Abhik Roychoudhury

    Abstract: Researchers have made significant progress in automating the software development process in the past decades. Recent progress in Large Language Models (LLMs) has significantly impacted the development process, where developers can use LLM-based programming assistants to achieve automated coding. Nevertheless software engineering involves the process of program improvement apart from coding, speci… ▽ More

    Submitted 14 April, 2024; v1 submitted 8 April, 2024; originally announced April 2024.

  5. arXiv:2310.05472  [pdf, other

    cs.SE cs.CY

    Intelligent Tutoring System: Experience of Linking Software Engineering and Programming Teaching

    Authors: Zhiyu Fan, Yannic Noller, Ashish Dandekar, Abhik Roychoudhury

    Abstract: The increasing number of computer science students pushes lecturers and tutors of first-year programming courses to their limits to provide high-quality feedback to the students. Existing systems that handle automated grading primarily focus on the automation of test case executions in the context of programming assignments. However, they cannot provide customized feedback about the students' erro… ▽ More

    Submitted 13 October, 2023; v1 submitted 9 October, 2023; originally announced October 2023.

  6. arXiv:2309.15616  [pdf, other

    cs.RO cs.AI

    Perception for Humanoid Robots

    Authors: Arindam Roychoudhury, Shahram Khorshidi, Subham Agrawal, Maren Bennewitz

    Abstract: Purpose of Review: The field of humanoid robotics, perception plays a fundamental role in enabling robots to interact seamlessly with humans and their surroundings, leading to improved safety, efficiency, and user experience. This scientific study investigates various perception modalities and techniques employed in humanoid robots, including visual, auditory, and tactile sensing by exploring rece… ▽ More

    Submitted 27 September, 2023; originally announced September 2023.

    Comments: 20 pages, 4 figures. To be published in Current Robotics Reports (Springer Nature)

  7. arXiv:2308.00666  [pdf, other

    cs.SE

    Program Repair by Fuzzing over Patch and Input Space

    Authors: Yuntong Zhang, Ridwan Shariffdeen, Gregory J. Duck, Jiaqi Tan, Abhik Roychoudhury

    Abstract: Fuzz testing (fuzzing) is a well-known method for exposing bugs/vulnerabilities in software systems. Popular fuzzers, such as AFL, use a biased random search over the domain of program inputs, where 100s or 1000s of inputs (test cases) are executed per second in order to expose bugs. If a bug is discovered, it can either be fixed manually by the developer or fixed automatically using an Automated… ▽ More

    Submitted 1 August, 2023; originally announced August 2023.

  8. arXiv:2308.00294  [pdf, other

    cs.SE

    Patch Space Exploration using Static Analysis Feedback

    Authors: Yuntong Zhang, Andreea Costea, Ridwan Shariffdeen, Davin McCall, Abhik Roychoudhury

    Abstract: Automated Program Repair (APR) techniques typically rely on a given test-suite to guide the repair process. Apart from the need to provide test oracles, this makes the produced patches prone to test data over-fitting. In this work, instead of relying on test cases, we show how to automatically repair memory safety issues, by leveraging static analysis (specifically Incorrectness Separation Logic)… ▽ More

    Submitted 1 August, 2023; originally announced August 2023.

  9. arXiv:2305.02601  [pdf, other

    cs.SE

    Greybox Fuzzing of Distributed Systems

    Authors: Ruijie Meng, George Pîrlea, Abhik Roychoudhury, Ilya Sergey

    Abstract: Grey-box fuzzing is the lightweight approach of choice for finding bugs in sequential programs. It provides a balance between efficiency and effectiveness by conducting a biased random search over the domain of program inputs using a feedback function from observed test executions. For distributed system testing, however, the state-of-practice is represented today by only black-box tools that do n… ▽ More

    Submitted 12 August, 2023; v1 submitted 4 May, 2023; originally announced May 2023.

  10. arXiv:2212.09519  [pdf, other

    cs.SE

    Explainable Fuzzer Evaluation

    Authors: Dylan Wolff, Marcel Böhme, Abhik Roychoudhury

    Abstract: While the aim of fuzzer evaluation is to establish fuzzer performance in general, an evaluation is always conducted on a specific benchmark. In this paper, we investigate the degree to which the benchmarking result depends on the properties of the benchmark and propose a methodology to quantify the impact of benchmark properties on the benchmarking result in relation to the impact of the choice of… ▽ More

    Submitted 19 December, 2022; originally announced December 2022.

  11. arXiv:2211.12787  [pdf, other

    cs.SE

    Program Repair

    Authors: Xiang Gao, Yannic Noller, Abhik Roychoudhury

    Abstract: Automated program repair is an emerging technology which consists of a suite of techniques to automatically fix bugs or vulnerabilities in programs. In this paper, we present a comprehensive survey of the state of the art in program repair. We first study the different suite of techniques used including search based repair, constraint based repair and learning based repair. We then discuss one of… ▽ More

    Submitted 23 November, 2022; originally announced November 2022.

    Comments: arXiv admin note: text overlap with arXiv:2012.06824 by other authors

  12. arXiv:2205.10583  [pdf, other

    cs.SE

    Automated Repair of Programs from Large Language Models

    Authors: Zhiyu Fan, Xiang Gao, Martin Mirchev, Abhik Roychoudhury, Shin Hwei Tan

    Abstract: Large language models such as Codex, have shown the capability to produce code for many programming tasks. However, the success rate of existing models is low, especially for complex programming tasks. One of the reasons is that language models lack awareness of program semantics, resulting in incorrect programs, or even programs which do not compile. In this paper, we systematically study whether… ▽ More

    Submitted 1 January, 2023; v1 submitted 21 May, 2022; originally announced May 2022.

    Comments: 12 pages, To appear in ICSE 2023

  13. Efficient Greybox Fuzzing to Detect Memory Errors

    Authors: Jinsheng Ba, Gregory J. Duck, Abhik Roychoudhury

    Abstract: Greybox fuzzing is a proven and effective testing method for the detection of security vulnerabilities and other bugs in modern software systems. Greybox fuzzing can also be used in combination with a sanitizer, such as AddressSanitizer (ASAN), to further enhance the detection of certain classes of bugs such as buffer overflow and use-after-free errors. However, sanitizers also introduce additiona… ▽ More

    Submitted 4 September, 2022; v1 submitted 6 April, 2022; originally announced April 2022.

    Comments: 37th IEEE/ACM International Conference on Automated Software Engineering

  14. arXiv:2204.02545  [pdf, other

    cs.CR cs.SE

    Stateful Greybox Fuzzing

    Authors: Jinsheng Ba, Marcel Böhme, Zahra Mirzamomen, Abhik Roychoudhury

    Abstract: Many protocol implementations are reactive systems, where the protocol process is in continuous interaction with other processes and the environment. If a bug can be exposed only in a certain state, a fuzzer needs to provide a specific sequence of events as inputs that would take protocol into this state before the bug is manifested. We call these bugs as "stateful" bugs. Usually, when we are test… ▽ More

    Submitted 16 May, 2022; v1 submitted 5 April, 2022; originally announced April 2022.

    Journal ref: 31st USENIX Security Symposium (USENIX Security 2022)

  15. arXiv:2109.07775  [pdf, other

    cs.RO

    Fast-Replanning Motion Control for Non-Holonomic Vehicles with Aborting A*

    Authors: Marcell Missura, Arindam Roychoudhury, Maren Bennewitz

    Abstract: Autonomously driving vehicles must be able to navigate in dynamic and unpredictable environments in a collision-free manner. So far, this has only been partially achieved in driverless cars and warehouse installations where marked structures such as roads, lanes, and traffic signs simplify the motion planning and collision avoidance problem. We are presenting a new control approach for car-like ve… ▽ More

    Submitted 21 July, 2022; v1 submitted 16 September, 2021; originally announced September 2021.

    Comments: Accepted to IROS 22

  16. arXiv:2109.02312  [pdf, other

    cs.SE

    Linear-time Temporal Logic guided Greybox Fuzzing

    Authors: Ruijie Meng, Zhen Dong, Jialin Li, Ivan Beschastnikh, Abhik Roychoudhury

    Abstract: Software model checking is a verification technique which is widely used for checking temporal properties of software systems. Even though it is a property verification technique, its common usage in practice is in "bug finding", that is, finding violations of temporal properties. Motivated by this observation and leveraging the recent progress in fuzzing, we build a greybox fuzzing framework to f… ▽ More

    Submitted 19 April, 2022; v1 submitted 6 September, 2021; originally announced September 2021.

    Comments: To appear in International Conference on Software Engineering (ICSE) 2022

  17. arXiv:2108.13064  [pdf, other

    cs.SE

    Trust Enhancement Issues in Program Repair

    Authors: Yannic Noller, Ridwan Shariffdeen, Xiang Gao, Abhik Roychoudhury

    Abstract: Automated program repair is an emerging technology that seeks to automatically rectify bugs and vulnerabilities using learning, search, and semantic analysis. Trust in automatically generated patches is necessary for achieving greater adoption of program repair. Towards this goal, we survey more than 100 software practitioners to understand the artifacts and setups needed to enhance trust in autom… ▽ More

    Submitted 10 February, 2022; v1 submitted 30 August, 2021; originally announced August 2021.

    Comments: To appear in 44th International Conference on Software Engineering (ICSE) 2022. The first two authors contributed equally and are joint "first authors"

  18. arXiv:2108.02490  [pdf, other

    cs.SE cs.PL

    HIPPODROME: Data Race Repair using Static Analysis Summaries

    Authors: Andreea Costea, Abhishek Tiwari, Sigmund Chianasta, Kishore R, Abhik Roychoudhury, Ilya Sergey

    Abstract: Implementing bug-free concurrent programs is a challenging task in modern software development. State-of-the-art static analyses find hundreds of concurrency bugs in production code, scaling to large codebases. Yet, fixing these bugs in constantly changing codebases represents a daunting effort for programmers, particularly because a fix in the concurrent code can introduce other bugs in a subtle… ▽ More

    Submitted 6 August, 2021; v1 submitted 5 August, 2021; originally announced August 2021.

  19. arXiv:2106.16199  [pdf, other

    cs.SE

    Verifix: Verified Repair of Programming Assignments

    Authors: Umair Z. Ahmed, Zhiyu Fan, Jooyong Yi, Omar I. Al-Bataineh, Abhik Roychoudhury

    Abstract: Automated feedback generation for introductory programming assignments is useful for programming education. Most works try to generate feedback to correct a student program by comparing its behavior with an instructor's reference program on selected tests. In this work, our aim is to generate verifiably correct program repairs as student feedback. The student assignment is aligned and composed wit… ▽ More

    Submitted 30 June, 2021; originally announced June 2021.

  20. arXiv:2011.11001  [pdf, other

    cs.LG

    Fairness-guided SMT-based Rectification of Decision Trees and Random Forests

    Authors: Jiang Zhang, Ivan Beschastnikh, Sergey Mechtaev, Abhik Roychoudhury

    Abstract: Data-driven decision making is gaining prominence with the popularity of various machine learning models. Unfortunately, real-life data used in machine learning training may capture human biases, and as a result the learned models may lead to unfair decision making. In this paper, we provide a solution to this problem for decision trees and random forests. Our approach converts any decision tree o… ▽ More

    Submitted 22 November, 2020; originally announced November 2020.

  21. arXiv:2008.04516  [pdf, other

    cs.CR cs.SE

    Localizing Patch Points From One Exploit

    Authors: Shiqi Shen, Aashish Kolluri, Zhen Dong, Prateek Saxena, Abhik Roychoudhury

    Abstract: Automatic patch generation can significantly reduce the window of exposure after a vulnerability is disclosed. Towards this goal, a long-standing problem has been that of patch localization: to find a program point at which a patch can be synthesized. We present PatchLoc, one of the first systems which automatically identifies such a location in a vulnerable binary, given just one exploit, with hi… ▽ More

    Submitted 11 August, 2020; originally announced August 2020.

  22. arXiv:2006.16913  [pdf, other

    cs.CY cs.AI cs.LG

    Synthesizing Tasks for Block-based Programming

    Authors: Umair Z. Ahmed, Maria Christakis, Aleksandr Efremov, Nigel Fernandez, Ahana Ghosh, Abhik Roychoudhury, Adish Singla

    Abstract: Block-based visual programming environments play a critical role in introducing computing concepts to K-12 students. One of the key pedagogical challenges in these environments is in designing new practice tasks for a student that match a desired level of difficulty and exercise specific programming concepts. In this paper, we formalize the problem of synthesizing visual programming tasks. In part… ▽ More

    Submitted 4 November, 2020; v1 submitted 17 June, 2020; originally announced June 2020.

    Comments: NeurIPS 2020

  23. arXiv:2005.10762  [pdf, other

    cs.SE

    Concurrency-related Flaky Test Detection in Android apps

    Authors: Zhen Dong, Abhishek Tiwari, Xiao Liang Yu, Abhik Roychoudhury

    Abstract: Validation of Android apps via testing is difficult owing to the presence of flaky tests. Due to non-deterministic execution environments, a sequence of events (a test) may lead to success or failure in unpredictable ways. In this work, we present an approach and tool FlakeShovel for detecting flaky tests through systematic exploration of event orders. Our key observation is that for a test in a m… ▽ More

    Submitted 21 May, 2021; v1 submitted 21 May, 2020; originally announced May 2020.

  24. arXiv:1912.05823  [pdf, other

    cs.SE cs.CR cs.PL

    Smart Contract Repair

    Authors: Xiao Liang Yu, Omar Al-Bataineh, David Lo, Abhik Roychoudhury

    Abstract: Smart contracts are automated or self-enforcing contracts that can be used to exchange assets without having to place trust in third parties. Many commercial transactions use smart contracts due to their potential benefits in terms of secure peer-to-peer transactions independent of external parties. Experience shows that many commonly used smart contracts are vulnerable to serious malicious attack… ▽ More

    Submitted 20 May, 2020; v1 submitted 12 December, 2019; originally announced December 2019.

    Comments: 32 pages. ACM Transactions on Software Engineering and Methodology (TOSEM), 2020

    MSC Class: 68N15 ACM Class: D.1.2; D.2

  25. arXiv:1909.00647  [pdf, other

    cs.CR

    KLEESPECTRE: Detecting Information Leakage through Speculative Cache Attacks via Symbolic Execution

    Authors: Guanhua Wang, Sudipta Chattopadhyay, Arnab Kumar Biswas, Tulika Mitra, Abhik Roychoudhury

    Abstract: Spectre attacks disclosed in early 2018 expose data leakage scenarios via cache side channels. Specifically, speculatively executed paths due to branch mis-prediction may bring secret data into the cache which are then exposed via cache side channels even after the speculative execution is squashed. Symbolic execution is a well-known test generation method to cover program paths at the level of th… ▽ More

    Submitted 2 September, 2019; originally announced September 2019.

    Journal ref: ACM Transactions on Software Engineering and Methodology, 2020

  26. arXiv:1811.09447  [pdf, other

    cs.CR

    Smart Greybox Fuzzing

    Authors: Van-Thuan Pham, Marcel Böhme, Andrew E. Santosa, Alexandru Răzvan Căciulescu, Abhik Roychoudhury

    Abstract: Coverage-based greybox fuzzing (CGF) is one of the most successful methods for automated vulnerability detection. Given a seed file (as a sequence of bits), CGF randomly flips, deletes or bits to generate new files. CGF iteratively constructs (and fuzzes) a seed corpus by retaining those generated files which enhance coverage. However, random bitflips are unlikely to produce valid files (or valid… ▽ More

    Submitted 23 November, 2018; originally announced November 2018.

    Comments: Accepted IEEE Transactions on Software Engineering, 2020

  27. arXiv:1807.05843  [pdf, other

    cs.CR

    oo7: Low-overhead Defense against Spectre Attacks via Program Analysis

    Authors: Guanhua Wang, Sudipta Chattopadhyay, Ivan Gotovchits, Tulika Mitra, Abhik Roychoudhury

    Abstract: The Spectre vulnerability in modern processors has been widely reported. The key insight in this vulnerability is that speculative execution in processors can be misused to access the secrets. Subsequently, even though the speculatively executed instructions are squashed, the secret may linger in micro-architectural states such as cache, and can potentially be accessed by an attacker via side chan… ▽ More

    Submitted 12 November, 2019; v1 submitted 16 July, 2018; originally announced July 2018.

    Comments: To appear in IEEE Transactions on Software Engineering, 2020

  28. arXiv:1807.04701  [pdf, other

    cs.SE cs.CR

    Symbolic Verification of Cache Side-channel Freedom

    Authors: Sudipta Chattopadhyay, Abhik Roychoudhury

    Abstract: Cache timing attacks allow third-party observers to retrieve sensitive information from program executions. But, is it possible to automatically check the vulnerability of a program against cache timing attacks and then, automatically shield program executions against these attacks? For a given program, a cache configuration and an attack model, our CACHEFIX framework either verifies the cache sid… ▽ More

    Submitted 12 July, 2018; originally announced July 2018.

    Journal ref: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018

  29. arXiv:1807.00575  [pdf, other

    cs.PL

    Neuro-Symbolic Execution: The Feasibility of an Inductive Approach to Symbolic Execution

    Authors: Shiqi Shen, Soundarya Ramesh, Shweta Shinde, Abhik Roychoudhury, Prateek Saxena

    Abstract: Symbolic execution is a powerful technique for program analysis. However, it has many limitations in practical applicability: the path explosion problem encumbers scalability, the need for language-specific implementation, the inability to handle complex dependencies, and the limited expressiveness of theories supported by underlying satisfiability checkers. Often, relationships between variables… ▽ More

    Submitted 2 July, 2018; originally announced July 2018.

  30. arXiv:1807.00477  [pdf, other

    cs.CR

    BesFS: A POSIX Filesystem for Enclaves with a Mechanized Safety Proof

    Authors: Shweta Shinde, Shengyi Wang, Pinghai Yuan, Aquinas Hobor, Abhik Roychoudhury, Prateek Saxena

    Abstract: New trusted computing primitives such as Intel SGX have shown the feasibility of running user-level applications in enclaves on a commodity trusted processor without trusting a large OS. However, the OS can still compromise the integrity of an enclave by tampering with the system call return values. In fact, it has been shown that a subclass of these attacks, called Iago attacks, enables arbitrary… ▽ More

    Submitted 19 September, 2019; v1 submitted 2 July, 2018; originally announced July 2018.

    Comments: Camera-ready version of the paper to appear at USENIX Security Symposium 2020

  31. arXiv:1707.03139  [pdf, other

    cs.SE

    Partitioning Patches into Test-equivalence Classes for Scaling Program Repair

    Authors: Sergey Mechtaev, Xiang Gao, Shin Hwei Tan, Abhik Roychoudhury

    Abstract: Automated program repair is a problem of finding a transformation (called a patch) of a given incorrect program that eliminates the observable failures. It has important applications such as providing debugging aids, automatically grading assignments and patching security vulnerabilities. A common challenge faced by all existing repair techniques is scalability to large patch spaces, since there a… ▽ More

    Submitted 15 July, 2017; v1 submitted 11 July, 2017; originally announced July 2017.