FISSURE - The RF Framework
Last updated
Last updated
Frequency Independent SDR-based Signal Understanding and Reverse Engineering
FISSURE is an open-source RF and reverse engineering framework designed for all skill levels with hooks for signal detection and classification, protocol discovery, attack execution, IQ manipulation, vulnerability analysis, automation, and AI/ML. The framework was built to promote the rapid integration of software modules, radios, protocols, signal data, scripts, flow graphs, reference material, and third-party tools. FISSURE is a workflow enabler that keeps software in one location and allows teams to effortlessly get up to speed while sharing the same proven baseline configuration for specific Linux distributions.
The framework and tools included with FISSURE are designed to detect the presence of RF energy, understand the characteristics of a signal, collect and analyze samples, develop transmit and/or injection techniques, and craft custom payloads or messages. FISSURE contains a growing library of protocol and signal information to assist in identification, packet crafting, and fuzzing. Online archive capabilities exist to download signal files and build playlists to simulate traffic and test systems.
The friendly Python codebase and user interface allows beginners to quickly learn about popular tools and techniques involving RF and reverse engineering. Educators in cybersecurity and engineering can take advantage of the built-in material or utilize the framework to demonstrate their own real-world applications. Developers and researchers can use FISSURE for their daily tasks or to expose their cutting-edge solutions to a wider audience. As awareness and usage of FISSURE grows in the community, so will the extent of its capabilities and the breadth of the technology it encompasses.
Additional Information
Supported
There are three branches within FISSURE to make file navigation easier and reduce code redundancy. The Python2_maint-3.7 branch contains a codebase built around Python2, PyQt4, and GNU Radio 3.7; the Python3_maint-3.8 branch is built around Python3, PyQt5, and GNU Radio 3.8; and the Python3_maint-3.10 branch is built around Python3, PyQt5, and GNU Radio 3.10.
Operating System | FISSURE Branch |
---|---|
In-Progress (beta)
These operating systems are still in beta status. They are under development and several features are known to be missing. Items in the installer might conflict with existing programs or fail to install until the status is removed.
Note: Certain software tools do not work for every OS. Refer to Software And Conflicts
Installation
This will install PyQt software dependencies required to launch the installation GUIs if they are not found.
Next, select the option that best matches your operating system (should be detected automatically if your OS matches an option).
It is recommended to install FISSURE on a clean operating system to avoid existing conflicts. Select all the recommended checkboxes (Default button) to avoid errors while operating the various tools within FISSURE. There will be multiple prompts throughout the installation, mostly asking for elevated permissions and user names. If an item contains a "Verify" section at the end, the installer will run the command that follows and highlight the checkbox item green or red depending on if any errors are produced by the command. Checked items without a "Verify" section will remain black following the installation.
Usage
Open a terminal and enter:
Refer to the FISSURE Help menu for more details on usage.
Components
Dashboard
Central Hub (HIPRFISR)
Target Signal Identification (TSI)
Protocol Discovery (PD)
Flow Graph & Script Executor (FGE)
Capabilities
Hardware
The following is a list of "supported" hardware with varying levels of integration:
USRP: X3xx, B2xx, B20xmini, USRP2, N2xx
HackRF
RTL2832U
802.11 Adapters
LimeSDR
bladeRF, bladeRF 2.0 micro
Open Sniffer
PlutoSDR
FISSURE comes with several helpful guides to become familiar with different technologies and techniques. Many include steps for using various tools that are integrated into FISSURE.
Suggestions for improving FISSURE are strongly encouraged. Leave a comment in the Discussions page or in the Discord Server if you have any thoughts regarding the following:
New feature suggestions and design changes
Software tools with installation steps
New lessons or additional material for existing lessons
RF protocols of interest
More hardware and SDR types for integration
IQ analysis scripts in Python
Installation corrections and improvements
Contributions to improve FISSURE are crucial to expediting its development. Any contributions you make are greatly appreciated. If you wish to contribute through code development, please fork the repo and create a pull request:
Fork the project
Create your feature branch (git checkout -b feature/AmazingFeature
)
Commit your changes (git commit -m 'Add some AmazingFeature'
)
Push to the branch (git push origin feature/AmazingFeature
)
Open a pull request
Creating Issues to bring attention to bugs is also welcomed.
Contact Assured Information Security, Inc. (AIS) Business Development to propose and formalize any FISSURE collaboration opportunities–whether that is through dedicating time towards integrating your software, having the talented people at AIS develop solutions for your technical challenges, or integrating FISSURE into other platforms/applications.
GPL-3.0
For license details, see LICENSE file.
Join the Discord Server: https://discord.gg/JZDs5sgxcG
Follow on Twitter: @FissureRF, @AinfoSec
Chris Poore - Assured Information Security, Inc. - poorec@ainfosec.com
Business Development - Assured Information Security, Inc. - bd@ainfosec.com
We acknowledge and are grateful to these developers:
Special thanks to Dr. Samuel Mantravadi and Joseph Reith for their contributions to this project.
Operating System | FISSURE Branch |
---|---|
Python2_maint-3.7 | Python3_maint-3.8 | Python3_maint-3.10 |
---|---|---|
Ubuntu 18.04 (x64)
Python2_maint-3.7
Ubuntu 18.04.5 (x64)
Python2_maint-3.7
Ubuntu 18.04.6 (x64)
Python2_maint-3.7
Ubuntu 20.04.1 (x64)
Python3_maint-3.8
Ubuntu 20.04.4 (x64)
Python3_maint-3.8
KDE neon 5.25 (x64)
Python3_maint-3.8
DragonOS Focal (x86_64)
Python3_maint-3.8
Ubuntu 22.04 (x64)
Python3_maint-3.10
Signal Detector
IQ Manipulation
Signal Lookup
Pattern Recognition
Attacks
Fuzzing
Signal Playlists
Image Gallery
Packet Crafting
Scapy Integration
CRC Calculator
Logging