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...
Main Authors: | , |
---|---|
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 |