By Axel Simon

The use of static research strategies to turn out the partial correctness of C code has lately attracted a lot realization as a result excessive price of software program blunders - fairly with recognize to defense vulnerabilities. besides the fact that, study into new research options is usually hampered through the technical problems of analysing accesses via tips, pointer mathematics, coercion among kinds, integer wrap-around and different low-level behaviour. Axel Simon offers a concise, but formal description of a value-range research that soundly approximates the semantics of C courses utilizing structures of linear inequalities (polyhedra).

The research is officially distinctive all the way down to the bit-level whereas supplying an actual approximation of all low-level features of C utilizing polyhedral operations and, as such, it offers a foundation for imposing new analyses which are geared toward verifying higher-level application houses accurately. One instance of such an research is the monitoring of the NUL place in C string buffers, that is proven as an extension to the fundamental research and which thereby demonstrates the modularity of the procedure.

While the publication specializes in a valid research of C, it will likely be necessary to any researcher and scholar with an curiosity in static research of real-world programming languages. in reality, many thoughts offered right here hold over to different languages reminiscent of Java or assembler, to different purposes resembling taint research, array and form research and probably even to different techniques akin to run-time verification and try facts generation.

Show description

Read Online or Download Value-Range Analysis of C Programs: Towards Proving the Absence of Buffer Overflow Vulnerabilities PDF

Similar c & c++ books

Sams Teach Yourself Database Programming with Visual C++ 6 in 21 Days

In just 21 days, you should have all of the abilities you must wake up and working successfully. With this entire educational, you will grasp the fundamentals of database programming after which circulation directly to the extra complex good points and ideas. comprehend the basics of database programming in visible C++. grasp all of the new and complicated database good points that visible C++6 bargains.

Value-Range Analysis of C Programs: Towards Proving the Absence of Buffer Overflow Vulnerabilities

Using static research options to end up the partial correctness of C code has lately attracted a lot consciousness end result of the excessive expense of software program mistakes - really with recognize to protection vulnerabilities. despite the fact that, examine into new research options is usually hampered through the technical problems of analysing accesses via tips, pointer mathematics, coercion among kinds, integer wrap-around and different low-level behaviour.

Getting Started with ASP.NET 5 for OS X, Linux, and Windows

ASP. web five is a brand new open-source and cross-platform framework for construction sleek cloud-based internet functions utilizing . internet. This e-book enables you to start with ASP. web five on OS X, Linux, and home windows. the next is spotlight subject during this book:
* getting ready improvement Environment
* Deploying ASP. web five on OS X
* Deploying ASP. internet five on Linux
* Deploying ASP. web five on Windows
* ASP. internet five Development
* ASP. internet five RESTful and AngularJS

Extra resources for Value-Range Analysis of C Programs: Towards Proving the Absence of Buffer Overflow Vulnerabilities

Sample text

Recent work has addressed the task of verifying the binary output with the invariants generated during the static analysis [94]. 4 Other Approaches A vast number of tools have been proposed that use heuristics to highlight locations in the C source code that are likely to be erroneous. By using heuristics, these tools are simpler than sound analysers but may miss faults. An important aspect of all unsound approaches is that their precisions are difficult to compare. For sound approaches, it is sufficient to compare the number of false positives.

In contrast, Wagner proposed a fully automatic buffer-overflow analysis based on intervals [184], which, however, is not very precise. Dor et al. were the first to analyse pointer accesses to string buffers using polyhedra [71]. However, their work turned out to be unsound [167], which triggered their work on soundly analysing C string functions aided by user annotations [72]. Ghosh et al. 7 Related Tools 21 use fault injection to find buffer overflows; that is, a tool repeatedly creates strings with the aim of overflowing a specified buffer in the stack.

8 presents the Two-Variables-Per-Inequality (TVPI) domain, which provides an efficient way of manipulating polyhedra in which each inequality has at most two variables. The following chapter presents techniques to refine polyhedra around the contained set of integral points, a process that is required to ensure that coefficients of inequalities do not grow indefinitely. Such a guarantee cannot currently be given for general polyhedra. As such, the TVPI domain presents, to our knowledge, the most precise polyhedral domain with a performance guarantee.

Download PDF sample

Rated 4.22 of 5 – based on 11 votes