Frequenzunabhängiges SDR-basiertes Signalverständnis und Reverse Engineering
FISSURE ist ein Open-Source-RF- und Reverse-Engineering-Framework für alle Erfahrungsstufen mit Hooks für Signalerkennung und -klassifizierung, Protokollerkennung, Angriffsausführung, IQ-Manipulation, Schwachstellenanalyse, Automatisierung und KI/ML. Das Framework wurde entwickelt, um die schnelle Integration von Softwaremodulen, Funkgeräten, Protokollen, Signaldaten, Skripten, Flussdiagrammen, Referenzmaterial und Tools von Drittanbietern zu fördern. FISSURE ist ein Workflow-Enabler, der Software an einem Ort hält und es Teams ermöglicht, sich mühelos auf den neuesten Stand zu bringen und gleichzeitig die gleiche bewährte Basiskonfiguration für bestimmte Linux-Distributionen zu nutzen.
Das in FISSURE enthaltene Framework und die Tools dienen dazu, das Vorhandensein von HF-Energie zu erkennen, die Eigenschaften eines Signals zu verstehen, Proben zu sammeln und zu analysieren, Übertragungs- und/oder Injektionstechniken zu entwickeln und benutzerdefinierte Nutzlasten oder Nachrichten zu erstellen. FISSURE enthält eine wachsende Bibliothek von Protokoll- und Signalinformationen, die bei der Identifizierung, Paketerstellung und Fuzzing helfen. Es gibt Online-Archivierungsfunktionen zum Herunterladen von Signaldateien und zum Erstellen von Wiedergabelisten, um den Verkehr zu simulieren und Systeme zu testen.
Die benutzerfreundliche Python-Codebasis und Benutzeroberfläche ermöglicht es Anfängern, sich schnell mit gängigen Tools und Techniken im Zusammenhang mit RF und Reverse Engineering vertraut zu machen. Pädagogen in den Bereichen Cybersicherheit und Ingenieurwesen können das integrierte Material nutzen oder das Framework nutzen, um ihre eigenen realen Anwendungen zu demonstrieren. Entwickler und Forscher können FISSURE für ihre täglichen Aufgaben nutzen oder ihre innovativen Lösungen einem breiteren Publikum vorstellen. Mit zunehmender Bekanntheit und Nutzung von FISSURE in der Community wachsen auch der Umfang seiner Fähigkeiten und die Breite der darin enthaltenen Technologie.
Installer-Setups abrufen Exportieren und importieren Sie überprüfte Softwareelemente im FISSURE-Installer mithilfe der Schaltflächen „Exportieren“ und „Importieren“. Installieren Sie schnell nur die Programme, die Sie benötigen.
Lokale IQEngine-Unterstützung auf der Registerkarte und im Menü „IQ Data“ zum Laden von SigMF-Dateien mit einem Klick für Dateien im Ordner „/IQ Recordings“. Stoppen Sie den IQEngine-Docker-Container über das Menü „Extras > Daten > IQEngine“.
Bereitstellbare Remote-Sensorknoten für Allzweckcomputer (SBCs, Mini-PCs, Laptops, Desktops), die alle Arten von Peripheriegeräten unterstützen, die von einem Computer gesteuert werden können. Diese Remote-Sensorknoten führen eine kleine Teilmenge von Code aus, der über ein Netzwerk über die FISSURE-Dashboard-GUI gesteuert werden kann, um herkömmliche FISSURE-Vorgänge auszuführen und auch neue Arten von Skriptaktionen auszuführen, die autonom beim Start oder halbautonom durch Benutzerinteraktion ausgeführt werden können ( Autorun-Playlists).
Der Einsatz mehrerer Sensorknoten im selben Netzwerk eröffnet viele Geodatenanwendungen für die zukünftige Entwicklung von FISSURE. Zu diesen Anwendungen gehören Peilung, Verfolgung, Einbrucherkennung, mobiler Einsatz und Perimeterverteidigung. Ein kleiner Formfaktor und autonome Fähigkeiten bieten einzigartige Möglichkeiten für die verdeckte Bereitstellung und Paketierung auf vorhandenen Plattformen. Diese Updates können Remote-Mitarbeitern auch einen kostengünstigen Mechanismus bieten, um kombinierte RF-Cybersicherheitstests durchzuführen und auf spezielle RF-Umgebungen wie internationale Interessengebiete, Labore und Teststandorte zuzugreifen.
Triggerfunktionen für Autorun-Playlists, einstufige Angriffe, mehrstufige Angriffe und Archivwiedergabe. Enthält über 20 Beispiele für akustische, Umgebungs-, Dateisystem-, Netzwerk-, HF-, Zeit- und visuelle Auslöser zum Auslösen elektromagnetischer Effekte. Die aktuelle Liste finden Sie im Abschnitt „Triggerliste“ im Benutzerhandbuch und im Abschnitt „Erstellen von Triggern“ erfahren Sie, wie Sie Ihre eigenen Trigger hinzufügen.
Registerkarte „Signalklassifikator“ zum Trainieren von Entscheidungsbaum- und DNN-Modellen, die ausschließlich auf extrahierten statistischen Merkmalen aus IQ-Daten basieren. Diese Registerkarte wird verwendet, um Wahrheitsinformationen zu Feature-Sets (erzeugt von Feature Extractor) zuzuweisen, die aus isolierten Signaldateien (erzeugt von Signal Conditioner) gesammelt wurden, um Modelle für maschinelles Lernen mit TensorFlow und scikit-learn zu entwickeln. Unbekannte Signale können alle verfügbaren Modelle durchlaufen, um Ergebnisse zu vergleichen und Vertrauen herzustellen. Die Registerkarten „Signal Conditioner“, „Feature Extractor“ und „Signal Classifier“ dienen als Testumgebung für die Entwicklung neuer Algorithmen. Schließlich werden die Ergebnisse (isolierte IQ-Signale, statistische Merkmale, Klassifizierungskonfidenz) als interessante Signale zur weiteren Analyse oder zur weiteren Analyse in der FISSURE-Bibliothek katalogisiert automatisierte Aktionen auslösen.
Ein-Aus-Tastsignalgenerator auf der Registerkarte „IQ-Daten“ zum schnellen Anzeigen und Testen von Signalen/Geräten. Benutzerdefinierte Signale können als IQ-Dateien zur Wiedergabe gespeichert werden, um Aktionen an Zielen auszuführen oder RF-Geräte zu simulieren.
Sa. 10. August 2024 : DEF CON 32 – RF Village – 1400–1500 PST. Aufgezeichnetes Video, Live-Aufnahme
Do. 5. September 2024 : STEM-Job- und Praktikumsmesse der Binghamton University – 11.00–15.30 Uhr EST
Di. 17. September 2024 : GNU Radio Conference 2024 – 1605–1635 EST Beschreibung/Folien, Live-Aufzeichnung
Dezember 2024 (endgültige Termine folgen in Kürze!) : 2024 FISSURE Challenge. Link (bald verfügbar)
Im Folgenden finden Sie eine Liste „unterstützter“ Hardware mit unterschiedlichen Integrationsgraden:
Unterstützt
Es gibt jetzt zwei Zweige innerhalb von FISSURE: den Python3-Zweig und den Python2_maint-3.7-Zweig. Der Python3-Zweig enthält den neuesten Code und unterstützt PyQt5 und GNU Radio Versionen 3.8 und 3.10. Der Zweig Python2_maint-3.7 ist veraltet und wird nur aktualisiert, wenn bestimmte Tools von Drittanbietern GNU Radio Version 3.7 oder ein älteres Betriebssystem erfordern. Für die Installation werden nur die neuesten Nebenversionen der Betriebssysteme unterstützt und wir werden unser Bestes tun, um mit der Installation Schritt zu halten.
Betriebssystem | FISSURE-Zweigstelle | Standard-GNU-Radioversion |
---|---|---|
BackBox Linux 8 (amd64) | Python3 | Wartung-3.10 |
DragonOS FocalX (x86_64) | Python3 | Wartung-3.10 |
Kali 23.1 (x64) | Python3 | Wartung-3.10 |
KDE neon 5.25 (x64) (6.0 nicht getestet) | Python3 | Wartung-3.8 |
Parrot Security 6.1 (amd64) | Python3 | Wartung-3.10 |
Raspberry Pi OS (Bücherwurm) | Python3 | Wartung-3.10 |
Ubuntu 18.04 (x64) | Python2_maint-3.7 | Wartung-3.7 |
Ubuntu 20.04 (x64) | Python3 | Wartung-3.8 |
Ubuntu 22.04 (x64) | Python3 | Wartung-3.10 |
Ubuntu 22.04 (ARM/Orange Pi) | Python3 | Wartung-3.10 |
Ubuntu 24.04 (x86) | Python3 | Wartung-3.10 |
In Bearbeitung (Beta)
Diese Betriebssysteme befinden sich noch im Beta-Status. Sie befinden sich in der Entwicklung und es ist bekannt, dass mehrere Funktionen fehlen. Elemente im Installationsprogramm können mit vorhandenen Programmen in Konflikt geraten oder die Installation schlägt fehl, bis der Status entfernt wird.
Betriebssystem | FISSURE-Zweigstelle | Standard-GNU-Radioversion |
---|---|---|
Keiner |
Hinweis: Bestimmte Softwaretools funktionieren nicht für jedes Betriebssystem. Siehe Bekannte Konflikte und Software von Drittanbietern
Installation
Zum Hinzufügen von SSH-Schlüsseln zu GitHub:
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub
Paste text into "Settings" > "SSH and GPG keys" > "New SSH Key"
git clone [email protected]:ainfosec/FISSURE.git
git clone https://github.com/ainfosec/FISSURE.git
cd FISSURE
git checkout Python3 # or Python2_maint-3.7
git submodule update --init
./install
Hinweise:
Es wird empfohlen, FISSURE auf einem sauberen Betriebssystem zu installieren, um Konflikte mit vorhandener Software zu vermeiden. Weitere Anstrengungen zur Virtualisierung und zum Abhängigkeitsmanagement werden fortgesetzt. Hinweise zum Installer:
~/Installed_by_FISSURE
heruntergeladen und dort installiert. Das FISSURE-Installationsprogramm ist hilfreich für das Staging von Computern oder die Installation ausgewählter Softwareprogramme von Interesse. Der Code kann schnell geändert werden, um benutzerdefinierte Softwareinstallationen zu ermöglichen. Bei den Größenschätzungen für die Programme handelt es sich um Werte vor und nach einer vollständigen Installation. Die Größen für jedes Programm sind nicht genau, da einige Abhängigkeiten in zuvor überprüften Elementen installiert sind. Die Größen können sich auch im Laufe der Zeit ändern, wenn Programme aktualisiert werden.
Installation des Remote-Sensorknotens
Installieren Sie FISSURE wie gewohnt auf einem Allzweckcomputer. Installieren Sie FISSURE auf dem Remote-Computer im selben Verzeichnis wie der lokale Computer (bis auf weiteres), um Dateipfadfehler bei bestimmten Aktionen zu vermeiden. Um den Sensorknoten für den Remote-Betrieb zu konfigurieren, bearbeiten Sie die Datei „default.yaml“ im Verzeichnis ./fissure/Sensor_Node/Sensor_Node_Config/
. Bearbeiten Sie die folgenden Felder, um vom lokalen zum Remote-Betrieb zu wechseln:
Ändern Sie das Feld „Autorun“ von false
in true
, um die standardmäßige Autorun-Wiedergabelistendatei beim Start auszuführen und auf Remote-Vorgänge zu verzichten. Neue Autorun-Wiedergabelisten können über die Registerkarte „Autorun“ im Dashboard erstellt und gespeichert werden.
Der Remote-Sensorknoten fungiert als Server und muss über einen Satz gültiger Zertifikate (während der Installation generiert) verfügen, die mit dem Client (lokaler Computer) übereinstimmen. Der Server benötigt die Dateien „server.key_secret“ und „client.key“, während der Client die Dateien „client.key_secret“ und „server.key“ benötigt. Wenn der Zertifikatsordner auf dem Servercomputer erstellt wurde, müssen die Clientdateien manuell auf den anderen Computer übertragen werden.
Nutzung des lokalen Dashboards
Öffnen Sie ein Terminal und geben Sie Folgendes ein:
fissure
Die vorgesehene Methode zum Starten des FISSURE-Dashboards ist das Terminal ohne Sudo. Für einige Vorgänge liefert das Terminal wichtige Status- und Rückmeldungen. Weitere Einzelheiten finden Sie in der FISSURE-Dokumentation.
Ein lokaler Sensorknoten kann über die oberen Schaltflächen im FISSURE-Dashboard gestartet werden und hilft dabei, alle bereits vorhandenen FISSURE-Funktionen auf einer eigenständigen Workstation beizubehalten. Derzeit werden nur ein lokaler und vier entfernte Sensorknoten (oder fünf entfernte) unterstützt.
Wenn eines der Programme einfriert oder beim Schließen hängen bleibt, können die folgenden Befehle verwendet werden, um ein Problem zu erkennen oder das Herunterfahren zu erzwingen:
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
Verwendung des Remote-Sensorknotens
Nach der Konfiguration der Sensorknoten-Konfigurationsdatei (siehe oben) kann der Code mit diesem Befehl aus dem Stammverzeichnis ausgeführt werden:
python3 ./fissure/Sensor_Node/SensorNode.py
Der Sensorknotencode bleibt aktiv, bis Strg+C angewendet wird. Die Verbindung zum Remote-Sensorknoten erfolgt über die oberen Tasten des FISSURE-Dashboards. Durch Klicken mit der rechten Maustaste auf die oberen Schaltflächen wird ein aktiver Sensorknoten zum Ausführen von Vorgängen ausgewählt. Zukünftige Vorgänge, die mehr als einen Knoten gleichzeitig nutzen, werden fallweise in den einzelnen Registerkarten behandelt.
FISSURE enthält mehrere hilfreiche Anleitungen, um sich mit verschiedenen Technologien und Techniken vertraut zu machen. Viele enthalten Schritte zur Verwendung verschiedener Tools, die in FISSURE integriert sind. Unser Ziel ist es, die Qualität zu verbessern und im Laufe der Zeit neue Inhalte hinzuzufügen.
Der jährliche Capture-the-Flag-Wettbewerb „FISSURE Challenge“, bei dem Neuzugänge bei FISSURE vorgestellt werden, findet jedes Jahr im Dezember statt. Vergangene Herausforderungen werden archiviert und können das ganze Jahr über gelöst werden! Sammeln Sie praktische Erfahrungen und sehen Sie sich Lösungen an: FISSURE Challenge.
Vorschläge zur Verbesserung von FISSURE sind ausdrücklich erwünscht. Hinterlassen Sie einen Kommentar auf der Diskussionsseite oder auf dem Discord-Server, wenn Sie Fragen zu Folgendem haben:
Beiträge zur Verbesserung von FISSURE sind entscheidend für die Beschleunigung seiner Entwicklung. Jeder Beitrag, den Sie leisten, wird sehr geschätzt. Wenn Sie durch die Codeentwicklung einen Beitrag leisten möchten, forken Sie bitte das Repo und erstellen Sie eine Pull-Anfrage:
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Das Erstellen von Issues, um auf Fehler aufmerksam zu machen, ist ebenfalls willkommen.
Benötigen Sie konkretere Ideen? Es gibt viele Themen, die wir noch untersuchen müssen. Schauen Sie sich unsere laufende Liste potenzieller Aufgaben an. Jede Hilfe wird geschätzt. Wählen Sie eine einfache aus und schreiben Sie in Ihrem Lebenslauf, dass Sie zu FISSURE beigetragen haben.
Sind Sie Student oder möchten Sie mehr über RF und Programmierung erfahren oder sind Sie eine Organisation, die Studenten mit der Welt von Open Source vertraut machen möchte? Kontaktieren Sie uns noch heute und sehen Sie sich die Projektideenliste 2023 an.
Wenden Sie sich an die Geschäftsentwicklung von Assured Information Security, Inc. (AIS), um Möglichkeiten zur Zusammenarbeit mit FISSURE vorzuschlagen und zu formalisieren – sei es, indem Sie Zeit für die Integration Ihrer Software aufwenden, die talentierten Mitarbeiter von AIS Lösungen für Ihre technischen Herausforderungen entwickeln lassen oder FISSURE in andere integrieren Plattformen/Anwendungen.
GPL-3.0
Einzelheiten zur Lizenz finden Sie in der Datei LICENSE.
Treten Sie dem Discord-Server bei: https://discord.gg/JZDs5sgxcG
Folgen Sie auf Twitter/X: @FissureRF, @AinfoSec
Verbinden Sie sich auf LinkedIn: FISSURE – The RF Framework
Chris Poore – Assured Information Security, Inc. – [email protected]
Geschäftsentwicklung – Assured Information Security, Inc. – [email protected]
Besonderer Dank geht an Dr. Samuel Mantravadi und Joseph Reith für ihre Beiträge zu diesem Projekt.
Arbeiten Sie gerne mit Signalen, Reverse Engineering oder anderen Bereichen der Cybersicherheit? Durchsuchen Sie unsere aktuellen Stellenangebote oder treten Sie unserer Talent-Community für zukünftige Überlegungen bei.
Wenn Sie Interesse am Hacken haben, schauen Sie sich unsere Can You Hack It?®-Herausforderung an und testen Sie Ihre Fähigkeiten! Reichen Sie Ihre Punktzahl ein, um uns zu zeigen, was Sie drauf haben. AIS verfügt über eine landesweite Präsenz mit Niederlassungen und Remote-Mitarbeitern in den gesamten USA. Wir bieten eine wettbewerbsfähige Bezahlung und hervorragende Zusatzleistungen. Werden Sie Teil eines Teams, das sich nicht nur für die Zukunft des Cyberspace engagiert, sondern auch für den Erfolg unserer Mitarbeiter.