Protocol Analyzer: Fuzz testing framework for network protocols
Protocol Analyzer (NetProtoFuzz)
Protocol-oriented fuzz testing framework for network protocols.
The main purposes of the framework
- Verification of the operation of proprietary network protocols in accordance with the declared description;
- Detection of undeclared capabilities and undefined behavior in the implementation of proprietary network protocols;
- Audit of security and search for changes from the last scan period.
Current goals
- Development the basis of network interaction for the needs of the framework;
- Epoll Socket State Pool Interface for all Sockets under the observation;
- Managed Socket Pool for unique Interface to take and control sockets;
- UDP Socket Interface;
- RAW Socket Interface;
- ✓ Netlink Socket Interface for interact with Linux Kernel;
- Create two error interfaces: POSIX-oriented, C++ exceptions.
- Development an interface for describing the structure of Network Protocol;
- Implement libJSON as a submodule of the framework for parsing input configs.
- Development an interface for create Tasks and manage them;
- Development an interface for store Global information and Settings in runtime;
- ✓ Development main data class for working with binary data and build all infrastructure around it;
- Create a low-level and high-level API for analyzer library;
- ✓ Development Callback infrastructure through the framework.
Install
git clone https://github.com/Vitaliy-Grigoriev/Protocol-Analyzer.git
Go to ‘build.sh’ script.
Uncomment (define) the necessary parameters ‘CXX’ and ‘BUILD_TYPE’.
Run the build script: ‘chmod +x build.sh && ./build.sh’.
Copyright (c) 2017 Vitaly Grigoriev