Inter-procedural buffer overflows detection in C/C++ source code via static analysis

We propose inter-procedural static analysis tool for buffer overflow detection. It is based on previously developed intra-procedural algorithm which uses symbolic execution with state merging. This algorithm is path-sensitive and supports tracking several kinds of value relations such as arithmetic...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Trudy Instituta sistemnogo programmirovaniâ Ročník 28; číslo 5; s. 119 - 134
Hlavní autor: Dudina, I.
Médium: Journal Article
Jazyk:angličtina
Vydáno: Russian Academy of Sciences, Ivannikov Institute for System Programming 01.10.2018
Témata:
ISSN:2079-8156, 2220-6426
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract We propose inter-procedural static analysis tool for buffer overflow detection. It is based on previously developed intra-procedural algorithm which uses symbolic execution with state merging. This algorithm is path-sensitive and supports tracking several kinds of value relations such as arithmetic operations, cast instructions, binary relations from constraints. In this paper we provide a formal definition for inter-procedural buffer overflow errors and discuss different kinds of such errors. We use function summaries for inter-procedural analysis, so it provides natural path-sensitivity in some degree. This approach allowed us to improve intra-procedural algorithm by tracking inter-procedural value dependencies. Furthermore, we introduce a technique to extract the sufficient condition of buffer overflow for a function, which is supposed to be stored in the summary of this function and checked at every call site. This approach was implemented for Svace static analyzer as the new buffer overflow detector, and it has shown 64% true-positive ratio on Android 5.0.2.
AbstractList We propose inter-procedural static analysis tool for buffer overflow detection. It is based on previously developed intra-procedural algorithm which uses symbolic execution with state merging. This algorithm is path-sensitive and supports tracking several kinds of value relations such as arithmetic operations, cast instructions, binary relations from constraints. In this paper we provide a formal definition for inter-procedural buffer overflow errors and discuss different kinds of such errors. We use function summaries for inter-procedural analysis, so it provides natural path-sensitivity in some degree. This approach allowed us to improve intra-procedural algorithm by tracking inter-procedural value dependencies. Furthermore, we introduce a technique to extract the sufficient condition of buffer overflow for a function, which is supposed to be stored in the summary of this function and checked at every call site. This approach was implemented for Svace static analyzer as the new buffer overflow detector, and it has shown 64% true-positive ratio on Android 5.0.2.
Author Dudina, I.
Author_xml – sequence: 1
  givenname: I.
  surname: Dudina
  fullname: Dudina, I.
BookMark eNo9kMlKBDEURYMoOP6BiywViWZO9VIahwZBcViHl-RFSsqKJNVK_72tLa7u5S4Ol7NPtscyIiHHgp8LY4S-WDw9PF4-McmFZbI7MafMbZE9KSVnVku7ve7czVgnjN0lR629cc6l4U5xsUeeF-OElX3UEjEtKww0LHPGSssn1jyUr0YTThinvoy0H-n8Yn52RltZ1og0loT0swfaJpj6SGGEYdX6dkh2MgwNj_7ygLxcXz3Pb9nd_c1ifnnH4vqLY3qWJWaHNuU0S8pJsCFoESWKGDKELoTo4kyissEq7pwIxkZrApcqB1DqgCw23FTgzX_U_h3qyhfo_e9Q6quHuj42oI-gDc_KgJBa65QAOKLsuNDZWW7SmqU3rFhLaxXzP09w_yvab0T7H9Fedt5479Q3iA10Dg
ContentType Journal Article
DBID AAYXX
CITATION
DOA
DOI 10.15514/ISPRAS-2016-28(5)-7
DatabaseName CrossRef
DOAJ Directory of Open Access Journals
DatabaseTitle CrossRef
DatabaseTitleList
Database_xml – sequence: 1
  dbid: DOA
  name: DOAJ Directory of Open Access Journals
  url: https://www.doaj.org/
  sourceTypes: Open Website
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2220-6426
EndPage 134
ExternalDocumentID oai_doaj_org_article_ca450f35a12444ddaa0ee28014f7605d
10_15514_ISPRAS_2016_28_5__7
GroupedDBID 642
AAYXX
ALMA_UNASSIGNED_HOLDINGS
CITATION
GROUPED_DOAJ
OK1
ID FETCH-LOGICAL-c1567-49f2ef7e6dfd9d372a6bb41c2e1cbfab8bbc7c92e36b630771b56c65b023fba33
IEDL.DBID DOA
ISSN 2079-8156
IngestDate Mon Nov 03 22:02:03 EST 2025
Sat Nov 29 05:34:01 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue 5
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-c1567-49f2ef7e6dfd9d372a6bb41c2e1cbfab8bbc7c92e36b630771b56c65b023fba33
OpenAccessLink https://doaj.org/article/ca450f35a12444ddaa0ee28014f7605d
PageCount 16
ParticipantIDs doaj_primary_oai_doaj_org_article_ca450f35a12444ddaa0ee28014f7605d
crossref_primary_10_15514_ISPRAS_2016_28_5__7
PublicationCentury 2000
PublicationDate 2018-10-01
PublicationDateYYYYMMDD 2018-10-01
PublicationDate_xml – month: 10
  year: 2018
  text: 2018-10-01
  day: 01
PublicationDecade 2010
PublicationTitle Trudy Instituta sistemnogo programmirovaniâ
PublicationYear 2018
Publisher Russian Academy of Sciences, Ivannikov Institute for System Programming
Publisher_xml – name: Russian Academy of Sciences, Ivannikov Institute for System Programming
SSID ssj0002507301
Score 2.0420017
Snippet We propose inter-procedural static analysis tool for buffer overflow detection. It is based on previously developed intra-procedural algorithm which uses...
SourceID doaj
crossref
SourceType Open Website
Index Database
StartPage 119
SubjectTerms контекстная чувствительность
межпроцедурный анализ
переполнение буфера
поиск дефектов
символьное исполнение
статический анализ
чувствительность к путям
Title Inter-procedural buffer overflows detection in C/C++ source code via static analysis
URI https://doaj.org/article/ca450f35a12444ddaa0ee28014f7605d
Volume 28
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVAON
  databaseName: DOAJ Directory of Open Access Journals
  customDbUrl:
  eissn: 2220-6426
  dateEnd: 20201231
  omitProxy: false
  ssIdentifier: ssj0002507301
  issn: 2079-8156
  databaseCode: DOA
  dateStart: 20100101
  isFulltext: true
  titleUrlDefault: https://www.doaj.org/
  providerName: Directory of Open Access Journals
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwrV1LSwMxEA5SPHjxLdYXOXhQSug-8tg91mJRkFJsld5CnrAgW-nLv29mdyv15MXrsoTsl0m-yezMNwjdOq5NlNiMRFDiQ5XWRCkqCOMusJsxNKpkF99fxHCYTaf5aKvVF-SE1fLANXBdoyiLfMoUEBG1VqnIuQQ0T7wIrriF0zd4PVuXKTiDA7GD6UJnuUhAnIvxpm4OPITu83j02hsHC4k5SbI7dk_EL17aku-veGZwiPYbBxH36okdoR1XHqODTfMF3OzFEzSpYnmkIiAL2hlYr6DXCYacTP8x-1pg65ZVolWJixL3u_1OB9exegyF7HhdKAz1RIXBqpEmOUVvg8dJ_4k0LRKICZ8kCM194rxw3Hqb21QkimtNY5O42GivdKa1ESZPXMo1D9tZxJpxw5kOVO21StMz1CpnpTtH2OvguQmms9RT-DuYZ5CmCeMZmhlq2ohsAJKftRKGhBsEACprQCUAKpNMMilFGz0Aij_vgo519SCsrmxWV_61uhf_Mcgl2gsTq1Vs4yvUWs5X7hrtmvWyWMxvKsP5BqfZxUU
linkProvider Directory of Open Access Journals
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Inter-procedural+buffer+overflows+detection+in+C%2FC%2B%2B+source+code+via+static+analysis&rft.jtitle=Trudy+Instituta+sistemnogo+programmirovani%C3%A2&rft.au=I.+.+Dudina&rft.date=2018-10-01&rft.pub=Russian+Academy+of+Sciences%2C+Ivannikov+Institute+for+System+Programming&rft.issn=2079-8156&rft.eissn=2220-6426&rft.volume=28&rft.issue=5&rft.spage=119&rft.epage=134&rft_id=info:doi/10.15514%2FISPRAS-2016-28%285%29-7&rft.externalDBID=DOA&rft.externalDocID=oai_doaj_org_article_ca450f35a12444ddaa0ee28014f7605d
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2079-8156&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2079-8156&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2079-8156&client=summon