SQLPIL: SQL injection prevention by input labeling

SQL injection attacks (SQLIAs) aim at exploiting vulnerabilities in web applications in order to execute malicious SQL commands. It is established that prepared statements are resilient to SQLIAs, and thus, developers are advised to use them when constructing SQL queries as opposed to applying strin...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Security and communication networks 2015-10, Vol.8 (15), p.2545-2560
Hauptverfasser: Masri, Wes, Sleiman, Sam
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 2560
container_issue 15
container_start_page 2545
container_title Security and communication networks
container_volume 8
creator Masri, Wes
Sleiman, Sam
description SQL injection attacks (SQLIAs) aim at exploiting vulnerabilities in web applications in order to execute malicious SQL commands. It is established that prepared statements are resilient to SQLIAs, and thus, developers are advised to use them when constructing SQL queries as opposed to applying string concatenation operations. Unfortunately, this recommended programming practice is not as pervasive as it should be. This paper addresses this shortcoming by presenting SQL injection Prevention by Input Labeling (SQLPIL), an effective, light, and fully automated tool that leverages prepared statements to prevent SQLIAs at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution, thus guaranteeing that malicious input will always be treated as data and never as SQL commands. We empirically evaluated our Java implementation of SQLPIL using a benchmark that includes five JSP commercial applications, a number of legitimate queries, and a number of attacks of representative types. The results were promising as all attacks were prevented, and all legitimate runs executed successfully; in other words, the technique exhibited no false alarms when applied on typical applications. Also, the runtime cost was acceptable, assuming typical settings. Copyright © 2015 John Wiley & Sons, Ltd. This paper presents SQLPIL; an effective, light, and fully automated tool that leverages prepared statements to prevent SQL injection attacks at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution; thus, guaranteeing that malicious input will always be treated as data and never as SQL commands. Out empirical results exhibited no false alarms when applied on typical applications, and the runtime cost was acceptable.
doi_str_mv 10.1002/sec.1199
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_1753508613</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>3797686331</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3979-928dbe606c2372121a1bc62c5b4890cd21772e0d25a61e13b04f1dd939545893</originalsourceid><addsrcrecordid>eNp1kFFLwzAUhYMoOKfgTyj44ktnbpI2jW8ytjqpOtnQx9CmmXR2bU1adf_ezMlQwYfLOVw-DoeD0CngAWBMLqxWAwAh9lAPBBU-BkL2dx7YITqydolxCIyzHiKzh2Q6SS49p15RLbVqi7ryGqPfdPVls7X7N13rlWmmy6J6PkYHi7S0-uRb-2g-Hs2H135yH0-GV4mvqODCFyTKMx3iUBHKCRBIIVMhUUHGIoFVToBzonFOgjQEDTTDbAF57noGLIgE7aPzbWxj6tdO21auCqt0WaaVrjsrgQc0wFEI1KFnf9Bl3ZnKlXMUFixy9yNQmdpaoxeyMcUqNWsJWG62k247udnOof4WfS9Kvf6Xk7PR8Ddf2FZ_7PjUvMiQUx7Ip7tYPsa30_iGgRzTT5nxeyU</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1709480949</pqid></control><display><type>article</type><title>SQLPIL: SQL injection prevention by input labeling</title><source>EZB-FREE-00999 freely available EZB journals</source><source>Alma/SFX Local Collection</source><creator>Masri, Wes ; Sleiman, Sam</creator><creatorcontrib>Masri, Wes ; Sleiman, Sam</creatorcontrib><description>SQL injection attacks (SQLIAs) aim at exploiting vulnerabilities in web applications in order to execute malicious SQL commands. It is established that prepared statements are resilient to SQLIAs, and thus, developers are advised to use them when constructing SQL queries as opposed to applying string concatenation operations. Unfortunately, this recommended programming practice is not as pervasive as it should be. This paper addresses this shortcoming by presenting SQL injection Prevention by Input Labeling (SQLPIL), an effective, light, and fully automated tool that leverages prepared statements to prevent SQLIAs at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution, thus guaranteeing that malicious input will always be treated as data and never as SQL commands. We empirically evaluated our Java implementation of SQLPIL using a benchmark that includes five JSP commercial applications, a number of legitimate queries, and a number of attacks of representative types. The results were promising as all attacks were prevented, and all legitimate runs executed successfully; in other words, the technique exhibited no false alarms when applied on typical applications. Also, the runtime cost was acceptable, assuming typical settings. Copyright © 2015 John Wiley &amp; Sons, Ltd. This paper presents SQLPIL; an effective, light, and fully automated tool that leverages prepared statements to prevent SQL injection attacks at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution; thus, guaranteeing that malicious input will always be treated as data and never as SQL commands. Out empirical results exhibited no false alarms when applied on typical applications, and the runtime cost was acceptable.</description><identifier>ISSN: 1939-0114</identifier><identifier>EISSN: 1939-0122</identifier><identifier>DOI: 10.1002/sec.1199</identifier><language>eng</language><publisher>London: Blackwell Publishing Ltd</publisher><subject>Automation ; Commands ; data labeling/tainting ; flow tracking ; Java (programming language) ; prepared/parameterized statements ; program analysis ; Queries ; Query languages ; Run time (computers) ; SQL injection attacks ; Strings ; web applications</subject><ispartof>Security and communication networks, 2015-10, Vol.8 (15), p.2545-2560</ispartof><rights>Copyright © 2015 John Wiley &amp; Sons, Ltd.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c3979-928dbe606c2372121a1bc62c5b4890cd21772e0d25a61e13b04f1dd939545893</citedby><cites>FETCH-LOGICAL-c3979-928dbe606c2372121a1bc62c5b4890cd21772e0d25a61e13b04f1dd939545893</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,777,781,27905,27906</link.rule.ids></links><search><creatorcontrib>Masri, Wes</creatorcontrib><creatorcontrib>Sleiman, Sam</creatorcontrib><title>SQLPIL: SQL injection prevention by input labeling</title><title>Security and communication networks</title><addtitle>Security Comm. Networks</addtitle><description>SQL injection attacks (SQLIAs) aim at exploiting vulnerabilities in web applications in order to execute malicious SQL commands. It is established that prepared statements are resilient to SQLIAs, and thus, developers are advised to use them when constructing SQL queries as opposed to applying string concatenation operations. Unfortunately, this recommended programming practice is not as pervasive as it should be. This paper addresses this shortcoming by presenting SQL injection Prevention by Input Labeling (SQLPIL), an effective, light, and fully automated tool that leverages prepared statements to prevent SQLIAs at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution, thus guaranteeing that malicious input will always be treated as data and never as SQL commands. We empirically evaluated our Java implementation of SQLPIL using a benchmark that includes five JSP commercial applications, a number of legitimate queries, and a number of attacks of representative types. The results were promising as all attacks were prevented, and all legitimate runs executed successfully; in other words, the technique exhibited no false alarms when applied on typical applications. Also, the runtime cost was acceptable, assuming typical settings. Copyright © 2015 John Wiley &amp; Sons, Ltd. This paper presents SQLPIL; an effective, light, and fully automated tool that leverages prepared statements to prevent SQL injection attacks at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution; thus, guaranteeing that malicious input will always be treated as data and never as SQL commands. Out empirical results exhibited no false alarms when applied on typical applications, and the runtime cost was acceptable.</description><subject>Automation</subject><subject>Commands</subject><subject>data labeling/tainting</subject><subject>flow tracking</subject><subject>Java (programming language)</subject><subject>prepared/parameterized statements</subject><subject>program analysis</subject><subject>Queries</subject><subject>Query languages</subject><subject>Run time (computers)</subject><subject>SQL injection attacks</subject><subject>Strings</subject><subject>web applications</subject><issn>1939-0114</issn><issn>1939-0122</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2015</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><recordid>eNp1kFFLwzAUhYMoOKfgTyj44ktnbpI2jW8ytjqpOtnQx9CmmXR2bU1adf_ezMlQwYfLOVw-DoeD0CngAWBMLqxWAwAh9lAPBBU-BkL2dx7YITqydolxCIyzHiKzh2Q6SS49p15RLbVqi7ryGqPfdPVls7X7N13rlWmmy6J6PkYHi7S0-uRb-2g-Hs2H135yH0-GV4mvqODCFyTKMx3iUBHKCRBIIVMhUUHGIoFVToBzonFOgjQEDTTDbAF57noGLIgE7aPzbWxj6tdO21auCqt0WaaVrjsrgQc0wFEI1KFnf9Bl3ZnKlXMUFixy9yNQmdpaoxeyMcUqNWsJWG62k247udnOof4WfS9Kvf6Xk7PR8Ddf2FZ_7PjUvMiQUx7Ip7tYPsa30_iGgRzTT5nxeyU</recordid><startdate>201510</startdate><enddate>201510</enddate><creator>Masri, Wes</creator><creator>Sleiman, Sam</creator><general>Blackwell Publishing Ltd</general><general>Hindawi Limited</general><scope>BSCLL</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>7SP</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>P5Z</scope><scope>P62</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope></search><sort><creationdate>201510</creationdate><title>SQLPIL: SQL injection prevention by input labeling</title><author>Masri, Wes ; Sleiman, Sam</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3979-928dbe606c2372121a1bc62c5b4890cd21772e0d25a61e13b04f1dd939545893</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2015</creationdate><topic>Automation</topic><topic>Commands</topic><topic>data labeling/tainting</topic><topic>flow tracking</topic><topic>Java (programming language)</topic><topic>prepared/parameterized statements</topic><topic>program analysis</topic><topic>Queries</topic><topic>Query languages</topic><topic>Run time (computers)</topic><topic>SQL injection attacks</topic><topic>Strings</topic><topic>web applications</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Masri, Wes</creatorcontrib><creatorcontrib>Sleiman, Sam</creatorcontrib><collection>Istex</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Electronics &amp; Communications Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>ProQuest Central Student</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer Science Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><jtitle>Security and communication networks</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Masri, Wes</au><au>Sleiman, Sam</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>SQLPIL: SQL injection prevention by input labeling</atitle><jtitle>Security and communication networks</jtitle><addtitle>Security Comm. Networks</addtitle><date>2015-10</date><risdate>2015</risdate><volume>8</volume><issue>15</issue><spage>2545</spage><epage>2560</epage><pages>2545-2560</pages><issn>1939-0114</issn><eissn>1939-0122</eissn><abstract>SQL injection attacks (SQLIAs) aim at exploiting vulnerabilities in web applications in order to execute malicious SQL commands. It is established that prepared statements are resilient to SQLIAs, and thus, developers are advised to use them when constructing SQL queries as opposed to applying string concatenation operations. Unfortunately, this recommended programming practice is not as pervasive as it should be. This paper addresses this shortcoming by presenting SQL injection Prevention by Input Labeling (SQLPIL), an effective, light, and fully automated tool that leverages prepared statements to prevent SQLIAs at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution, thus guaranteeing that malicious input will always be treated as data and never as SQL commands. We empirically evaluated our Java implementation of SQLPIL using a benchmark that includes five JSP commercial applications, a number of legitimate queries, and a number of attacks of representative types. The results were promising as all attacks were prevented, and all legitimate runs executed successfully; in other words, the technique exhibited no false alarms when applied on typical applications. Also, the runtime cost was acceptable, assuming typical settings. Copyright © 2015 John Wiley &amp; Sons, Ltd. This paper presents SQLPIL; an effective, light, and fully automated tool that leverages prepared statements to prevent SQL injection attacks at runtime. Given a Java program in which SQL queries are built as strings, SQLPIL dynamically transforms the strings into secure prepared statements right before their execution; thus, guaranteeing that malicious input will always be treated as data and never as SQL commands. Out empirical results exhibited no false alarms when applied on typical applications, and the runtime cost was acceptable.</abstract><cop>London</cop><pub>Blackwell Publishing Ltd</pub><doi>10.1002/sec.1199</doi><tpages>16</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 1939-0114
ispartof Security and communication networks, 2015-10, Vol.8 (15), p.2545-2560
issn 1939-0114
1939-0122
language eng
recordid cdi_proquest_miscellaneous_1753508613
source EZB-FREE-00999 freely available EZB journals; Alma/SFX Local Collection
subjects Automation
Commands
data labeling/tainting
flow tracking
Java (programming language)
prepared/parameterized statements
program analysis
Queries
Query languages
Run time (computers)
SQL injection attacks
Strings
web applications
title SQLPIL: SQL injection prevention by input labeling
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-18T00%3A25%3A22IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=SQLPIL:%20SQL%20injection%20prevention%20by%20input%20labeling&rft.jtitle=Security%20and%20communication%20networks&rft.au=Masri,%20Wes&rft.date=2015-10&rft.volume=8&rft.issue=15&rft.spage=2545&rft.epage=2560&rft.pages=2545-2560&rft.issn=1939-0114&rft.eissn=1939-0122&rft_id=info:doi/10.1002/sec.1199&rft_dat=%3Cproquest_cross%3E3797686331%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=1709480949&rft_id=info:pmid/&rfr_iscdi=true