Binary Analysis Next Generation (short: BANG) is a framework for unpacking files (like firmware) recursively and running checks on the unpacked files. Its intended use is to classify/label files and making them available for further analysis such as provenance research, license analysis and security analysis.
There are quite a few open source licensed tools out there for analyzing firmware files like binwalk, Hachoir or Sleuthkit. Most of these focus on either forensics, or on unpacking firmware, but none of them focus specifically on where open source, firmware reverse engineering and security meet.
Experience creating earlier tools shows that the sometimes simplistic and naive approaches from other tools (assuming correct files instead of broken data, reliance on magic headers) is not realistic.
This is why I created BANG, which tries to take these into account. Focus in BANG is on correctness, but also on speed.
Currently around 150 different file formats can be unpacked or labeled, including very common ones (ZIP, gzip, tar, squashfs, ext2/3/4, etcetera) but also obscure vendor specific file formats.
On the analysis side of things there are tools that take the output of the unpacking process and run several checks, such as:
- NSRL and distribution look ups
- APKiD determination (searching so called "packers" for Android files)
- security checks with cve-bin-tool
- running YARA rules on ELF binaries
There are several knowledgebase creating scripts that can:
- load NSRL data into a database
- generate YARA rules from BANG results (ELF and Android Dex binaries), as well as from source code (C/C++, Java, JavaScript)
- process Dex binaries and extract SHA256 and TLSH checksums per method (computed by BANG) and store these into a knowledgebase for exact and fuzzy matches
Most parsers in BANG are generated using Kaitai Struct from specifications. Installation of BANG uses Nix.
BANG is completely open and can be found on GitHub: https://github.com/armijnhemel/binaryanalysis-ng
BANG has received funding from the European Union’s Horizon 2020 research and innovation programme within the framework of the NGI-POINTER Project funded under grant agreement No. 871528.
Reacties
Een reactie posten