OWASP File Format Validation Project



{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 * valign="top" style="border-right: 1px dotted gray;padding-right:25px;" |

=Main=

{| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |-
 * valign="top" style="border-right: 1px dotted gray;padding-right:25px;" |

OWASP File Format Validation
Welcome to the home of OWASP File Format Validation (FFV) Project !

Introduction
The goal of the project is to provide a database of assertions to check the most of file format. Each assertion is a translation of an official specification (ISO, RFC, UIT-T, ...) in BIL (Binary Inspection Language), an other part of this project.

BIL is a useful language(language+compiler/interpreter) which allow you to write for each file format, a program to check all files in this format.

BIL is easy to learn and can be used by the persons who write specifications. More informations about BIL : https://sourceforge.net/projects/binil/

FFV + BIL would like offer a rugged validation of files format in the applications, NOT only based on the signature.

Description
The 3 sub-projects :

- File Format Description Language (FFDL) : It is a pseudo-language like regexp useful to describe structure of data in a file. FFDL is helpful to make assertion for each specification of a format.

- File Format Database (FFDB) : It is a sort of file/xml database, where each specifications of each file format are stored. - File Format Validator : It is final package provide to final user. When a package is build, for each format in File Format Database a source file in the language

Licensing
OWASP File Format Validation is free to use. It is licensed under the Creative Commons Attribution-ShareAlike 3.0 license, so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.


 * valign="top" style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" |

What is FFV ?
FFV provides:


 * Database of translated specifications of file formats into a pseudo-language
 * Light pseudo-language to describe the structure of a section of data in a file
 * Mechanism to check the format of a file

Presentation
https://sourceforge.net/p/owaspffv/wiki

Openhub
https://www.openhub.net/p/owaspffv

Related Projects

 * valign="top" style="padding-left:25px;width:200px;" |

Quick Download
http://sourceforge.net/p/owaspffv/code-0/HEAD/tree/

Email List
https://lists.owasp.org/mailman/listinfo/owasp_file_format_validation_project

Classifications

 * }

=FAQs=


 * Why use File Format Validation to check format of a file ?
 * The validation using FFV is safer than validation based on the magic number, because it validates the entire file structure, including the format of the optional sections, and changes between two versions of the same format.


 * What is File Format Validation 0.1.0 ?
 * FFV 0.1.0 is an project all in one wrote PHP, it contains : a database of assertions in XML files, a pseudo-language to write assertions, and a mechanism in PHP to make PHP script from the assertions.


 * What is File Format Validation > 0.1.0 ?
 * With FFV > 0.1.0, FFV is just a database of assertions for each files format and BIL(Binary Inspection Language - an other project) is the language to write assertions, and tests them on a file.

= Acknowledgements =

Volunteers are welcome !

Volunteers
OWASP File Format Validation project is developed by a worldwide team of volunteers. The primary contributors to date have been:



Others
= Road Map= As of File Format Validation project, the priorities are:
 * Increase the file format database coverage
 * Porting of FFV on others languages ( just dev a module for FFEngine )
 * Write documentation

Involvement in the development and promotion of File Fromat Validation project is actively encouraged! You do not have to be a security expert in order to contribute. Some of the ways you can help:
 * Make a logo
 * Search partenership and get more ISO documents

=Project About=