Automatic Detection of Safety and Security Vulnerabilities in Open Source Software

Automatic Detection of Safety and Security Vulnerabilities in Open Source Software
Author: Syrine Tlili
Publisher:
Total Pages: 0
Release: 2009
Genre:
ISBN:

Growing software quality requirements have raised the stakes on software safety and security. Building secure software focuses on techniques and methodologies of design and implementation in order to avoid exploitable vulnerabilities. Unfortunately, coding errors have become common with the inexorable growth tendency of software size and complexity. According to the US National Institute of Standards and Technology (NIST), these coding errors lead to vulnerabilities that cost the US economy $60 billion each year. Therefore, tracking security and safety errors is considered as a fundamental cornerstone to deliver software that are free from severe vulnerabilities. The main objective of this thesis is the elaboration of efficient, rigorous, and practical techniques for the safety and security evaluation of source code. To tackle safety errors related to the misuse of type and memory operations, we present a novel type and effect discipline that extends the standard C type system with safety annotations and static safety checks. We define an inter-procedural, flow-sensitive, and alias-sensitive inference algorithm that automatically propagates type annotations and applies safety checks to programs without programmers' interaction. Moreover, we present a dynamic semantics of our C core language that is compliant with the ANSI C standard. We prove the consistency of the static semantics with respect to the dynamic semantics. We show the soundness of our static analysis in detecting our targeted set of safety errors. To tackle system-specific security properties, we present a security verification framework that combines static analysis and model-checking. We base our approach on the GCC compiler and its GIMPLE representation of source code to extract model-checkable abstractions of programs. For the verification process, we use an off-the-shelf pushdown system model-checker, and turn it into a fully-fledged security verification framework. We also allow programmers to define a wide range of security properties using an automata-based specification approach. To demonstrate the efficiency and the scalability of our approach, we conduct extensive experiments and case studies on large scale open-source software to verify their compliance with a representative set of the CERT standard secure coding rules.

Automatic Detection of Security Vulnerabilities in Source Code

Automatic Detection of Security Vulnerabilities in Source Code
Author: Xiaochun Yang
Publisher:
Total Pages: 252
Release: 2010
Genre:
ISBN:

Growing security requirements for systems and applications have raised the stakes on software security verification techniques. Static analysis has been widely used to detect vulnerabilities at compile time. It takes advantage of the relevant information generated by the compiler and scales well to large code base. However, it is limited to check low-level security properties that syntactically match concrete program actions. Recently, model-checking is settling and showing great promise in the arena of software verification. Nevertheless, it suffers from abstraction issues for deriving a model of the program that can be model-checked. In this thesis, we present our security verification approach that brings into a synergy static analysis and model-checking. This synergy leverages the advantages of both techniques. We use the static analysis to automatically generate a concise abstraction of the program. On the other-hand, the model-checking provides the capability and flexibility of specifying and verifying a wide range of properties, and we also benefit from the exhaustive program analysis provided by model-checking.

Open Source Fuzzing Tools

Open Source Fuzzing Tools
Author: Noam Rathaus
Publisher: Elsevier
Total Pages: 209
Release: 2011-04-18
Genre: Computers
ISBN: 0080555616

Fuzzing is often described as a “black box software testing technique. It works by automatically feeding a program multiple input iterations in an attempt to trigger an internal error indicative of a bug, and potentially crash it. Such program errors and crashes are indicative of the existence of a security vulnerability, which can later be researched and fixed. Fuzz testing is now making a transition from a hacker-grown tool to a commercial-grade product. There are many different types of applications that can be fuzzed, many different ways they can be fuzzed, and a variety of different problems that can be uncovered. There are also problems that arise during fuzzing; when is enough enough? These issues and many others are fully explored. Fuzzing is a fast-growing field with increasing commercial interest (7 vendors unveiled fuzzing products last year). Vendors today are looking for solutions to the ever increasing threat of vulnerabilities. Fuzzing looks for these vulnerabilities automatically, before they are known, and eliminates them before release. Software developers face an increasing demand to produce secure applications---and they are looking for any information to help them do that.

Advances in Artificial Intelligence

Advances in Artificial Intelligence
Author: Marina Sokolova
Publisher: Springer
Total Pages: 412
Release: 2014-04-30
Genre: Computers
ISBN: 3319064835

This book constitutes the refereed proceedings of the 27th Canadian Conference on Artificial Intelligence, Canadian AI 2014, held in Montréal, QC, Canada, in May 2014. The 22 regular papers and 18 short papers presented together with 3 invited talks were carefully reviewed and selected from 94 submissions. The papers cover a variety of topics within AI, such as: agent systems; AI applications; automated reasoning; bioinformatics and BioNLP; case-based reasoning; cognitive models; constraint satisfaction; data mining; E-commerce; evolutionary computation; games; information retrieval; knowledge representation; machine learning; multi-media processing; natural language processing; neural nets; planning; privacy-preserving data mining; robotics; search; smart graphics; uncertainty; user modeling; web applications.

On Building a Dynamic Security Vulnerability Detection System Using Program Monitoring Technique

On Building a Dynamic Security Vulnerability Detection System Using Program Monitoring Technique
Author: Zhenrong Yang
Publisher:
Total Pages: 0
Release: 2008
Genre:
ISBN:

This thesis presents a dynamic security vulnerability detection framework that sets up an infrastructure for automatic security testing of Free and Open Source Software (FOSS) projects. It makes three contributions to the design and implementation of a dynamic vulnerability detection system. Firstly, a mathematical model called Team Edit Automata is defined and implemented for security property specification. Secondly, an automatic code instrumentation tool is designed and implemented by extending the GNU Compiler Collection (GCC). The extension facilitates seamless integration of code instrumentation into FOSS projects' existing build system. Thirdly, a dynamic vulnerability detection system is prototyped to integrate the aforementioned two techniques. Experiments with the system are elaborated to automatically build, execute, and detect vulnerabilities of FOSS projects. Overall, this research demonstrates that monitoring program with Team Edit Automata can effectively detect security property violation.

ICICCT 2019 – System Reliability, Quality Control, Safety, Maintenance and Management

ICICCT 2019 – System Reliability, Quality Control, Safety, Maintenance and Management
Author: Vinit Kumar Gunjan
Publisher: Springer
Total Pages: 874
Release: 2019-06-27
Genre: Technology & Engineering
ISBN: 9811384614

This book discusses reliability applications for power systems, renewable energy and smart grids and highlights trends in reliable communication, fault-tolerant systems, VLSI system design and embedded systems. Further, it includes chapters on software reliability and other computer engineering and software management-related disciplines, and also examines areas such as big data analytics and ubiquitous computing. Outlining novel, innovative concepts in applied areas of reliability in electrical, electronics and computer engineering disciplines, it is a valuable resource for researchers and practitioners of reliability theory in circuit-based engineering domains.

Computer Safety, Reliability, and Security

Computer Safety, Reliability, and Security
Author: Amund Skavhaug
Publisher: Springer
Total Pages: 324
Release: 2016-09-06
Genre: Computers
ISBN: 3319454773

This book constitutes the refereed proceedings of the 35th International Conference on Computer Safety, Reliability, and Security, SAFECOMP 2016, held in Trondheim, Norway, in September 2016. The 24 revised full papers presented were carefully reviewed and selected from 71 submissions. The papers are organized in topical sections on fault injection, safety assurance, formal verification, automotive, anomaly detection and resilience, cyber security, fault trees, and safety analysis.

Data and Applications Security XXII

Data and Applications Security XXII
Author: Vijay Atluri
Publisher: Springer Science & Business Media
Total Pages: 356
Release: 2008-07
Genre: Business & Economics
ISBN: 354070566X

This book constitutes the refereed proceedings of the 22nd Annual IFIP WG 11.3 Working Conference on Data and Applications Security held in London, UK, in July 2008. The 22 revised full papers presented together with 1 keynote lecture and 1 invited talk were carefully reviewed and selected from 56 submissions. The papers are organized in topical sections on access control, audit and logging, privacy, systems security, certificate management, trusted computing platforms, security policies and metrics, as well as Web and pervasive systems.