Fatal injection: a survey of modern code injection attack countermeasures

With a code injection attack (CIA) an attacker can introduce malicious code into a computer program or system that fails to properly encode data that comes from an untrusted source. A CIA can have different forms depending on the execution context of the application and the location of the programmi...

Full description

Bibliographic Details
Main Authors: Dimitris Mitropoulos, Diomidis Spinellis
Format: Article
Language:English
Published: PeerJ Inc. 2017-11-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-136.pdf
id doaj-7606c77eb4c64dd69f09fa18d3600240
record_format Article
spelling doaj-7606c77eb4c64dd69f09fa18d36002402020-11-24T20:52:58ZengPeerJ Inc.PeerJ Computer Science2376-59922017-11-013e13610.7717/peerj-cs.136Fatal injection: a survey of modern code injection attack countermeasuresDimitris Mitropoulos0Diomidis Spinellis1Department of Management Science and Technology, Athens University of Economics and Business, GreeceDepartment of Management Science and Technology, Athens University of Economics and Business, GreeceWith a code injection attack (CIA) an attacker can introduce malicious code into a computer program or system that fails to properly encode data that comes from an untrusted source. A CIA can have different forms depending on the execution context of the application and the location of the programming flaw that leads to the attack. Currently, CIAs are considered one of the most damaging classes of application attacks since they can severely affect an organisation’s infrastructure and cause financial and reputational damage to it. In this paper we examine and categorize the countermeasures developed to detect the various attack forms. In particular, we identify two distinct categories. The first incorporates static program analysis tools used to eliminate flaws that can lead to such attacks during the development of the system. The second involves the use of dynamic detection safeguards that prevent code injection attacks while the system is in production mode. Our analysis is based on nonfunctional characteristics that are considered critical when creating security mechanisms. Such characteristics involve usability, overhead, implementation dependencies, false positives and false negatives. Our categorization and analysis can help both researchers and practitioners either to develop novel approaches, or use the appropriate mechanisms according to their needs.https://peerj.com/articles/cs-136.pdfApplication securityCode injection attacksCountermeasuresStatic analysisDynamic preventionSoftware vulnerabilities
collection DOAJ
language English
format Article
sources DOAJ
author Dimitris Mitropoulos
Diomidis Spinellis
spellingShingle Dimitris Mitropoulos
Diomidis Spinellis
Fatal injection: a survey of modern code injection attack countermeasures
PeerJ Computer Science
Application security
Code injection attacks
Countermeasures
Static analysis
Dynamic prevention
Software vulnerabilities
author_facet Dimitris Mitropoulos
Diomidis Spinellis
author_sort Dimitris Mitropoulos
title Fatal injection: a survey of modern code injection attack countermeasures
title_short Fatal injection: a survey of modern code injection attack countermeasures
title_full Fatal injection: a survey of modern code injection attack countermeasures
title_fullStr Fatal injection: a survey of modern code injection attack countermeasures
title_full_unstemmed Fatal injection: a survey of modern code injection attack countermeasures
title_sort fatal injection: a survey of modern code injection attack countermeasures
publisher PeerJ Inc.
series PeerJ Computer Science
issn 2376-5992
publishDate 2017-11-01
description With a code injection attack (CIA) an attacker can introduce malicious code into a computer program or system that fails to properly encode data that comes from an untrusted source. A CIA can have different forms depending on the execution context of the application and the location of the programming flaw that leads to the attack. Currently, CIAs are considered one of the most damaging classes of application attacks since they can severely affect an organisation’s infrastructure and cause financial and reputational damage to it. In this paper we examine and categorize the countermeasures developed to detect the various attack forms. In particular, we identify two distinct categories. The first incorporates static program analysis tools used to eliminate flaws that can lead to such attacks during the development of the system. The second involves the use of dynamic detection safeguards that prevent code injection attacks while the system is in production mode. Our analysis is based on nonfunctional characteristics that are considered critical when creating security mechanisms. Such characteristics involve usability, overhead, implementation dependencies, false positives and false negatives. Our categorization and analysis can help both researchers and practitioners either to develop novel approaches, or use the appropriate mechanisms according to their needs.
topic Application security
Code injection attacks
Countermeasures
Static analysis
Dynamic prevention
Software vulnerabilities
url https://peerj.com/articles/cs-136.pdf
work_keys_str_mv AT dimitrismitropoulos fatalinjectionasurveyofmoderncodeinjectionattackcountermeasures
AT diomidisspinellis fatalinjectionasurveyofmoderncodeinjectionattackcountermeasures
_version_ 1716798493884940288