Diagnosing Software System Exploits

Amir Elmishali, Roni Stern, Meir Kalech

Research output: Contribution to journalArticlepeer-review

Abstract

Software vulnerabilities are bugs in a program that an attacker can exploit to make the program deviate from its specification. An attacker exploits a vulnerability by crafting input that causes the program to behave incorrectly. Such an input is called an exploit. This article deals with diagnosing exploits, i.e., given an exploit, the task is to return the vulnerability that allowed it. We show that existing software diagnosis algorithms are ill-suited for this problem, and introduce two novel techniques for adapting them to this problem. This includes manipulating an automated testing tool to generate additional inputs that are similar to the given exploit, and tracing below the desired granularity level to improve diagnostic accuracy. Experimental evaluation on real exploits from four open-source projects shows that our algorithm significantly reduces diagnostic efforts.

Original languageEnglish
Article number8970609
Pages (from-to)7-15
Number of pages9
JournalIEEE Intelligent Systems
Volume35
Issue number6
DOIs
StatePublished - 1 Nov 2020

ASJC Scopus subject areas

  • Computer Networks and Communications
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'Diagnosing Software System Exploits'. Together they form a unique fingerprint.

Cite this