hacktricks/todo/radio-hacking/fissure-the-rf-framework.md
2023-06-03 13:10:46 +00:00

14 KiB

FISSURE - Le cadre RF

Compréhension et ingénierie inverse indépendantes de la fréquence basées sur SDR

FISSURE est un cadre RF et d'ingénierie inverse open-source conçu pour tous les niveaux de compétence avec des crochets pour la détection et la classification des signaux, la découverte de protocoles, l'exécution d'attaques, la manipulation IQ, l'analyse de vulnérabilités, l'automatisation et l'IA/ML. Le cadre a été construit pour promouvoir l'intégration rapide de modules logiciels, de radios, de protocoles, de données de signal, de scripts, de graphes de flux, de matériel de référence et d'outils tiers. FISSURE est un facilitateur de flux de travail qui garde le logiciel en un seul endroit et permet aux équipes de se mettre facilement à niveau tout en partageant la même configuration de base éprouvée pour des distributions Linux spécifiques.

Le cadre et les outils inclus dans FISSURE sont conçus pour détecter la présence d'énergie RF, comprendre les caractéristiques d'un signal, collecter et analyser des échantillons, développer des techniques de transmission et/ou d'injection, et créer des charges utiles ou des messages personnalisés. FISSURE contient une bibliothèque croissante d'informations sur les protocoles et les signaux pour aider à l'identification, à la création de paquets et au fuzzing. Des capacités d'archivage en ligne existent pour télécharger des fichiers de signal et construire des listes de lecture pour simuler le trafic et tester les systèmes.

Le code Python convivial et l'interface utilisateur permettent aux débutants d'apprendre rapidement les outils et techniques populaires impliquant la RF et l'ingénierie inverse. Les éducateurs en cybersécurité et en ingénierie peuvent profiter du matériel intégré ou utiliser le cadre pour démontrer leurs propres applications du monde réel. Les développeurs et les chercheurs peuvent utiliser FISSURE pour leurs tâches quotidiennes ou pour exposer leurs solutions de pointe à un public plus large. À mesure que la sensibilisation et l'utilisation de FISSURE augmentent dans la communauté, les capacités de celui-ci et la portée de la technologie qu'il englobe augmenteront également.

Informations supplémentaires

Pour commencer

Pris en charge

Il y a trois branches dans FISSURE pour faciliter la navigation dans les fichiers et réduire la redondance de code. La branche Python2_maint-3.7 contient une base de code construite autour de Python2, PyQt4 et GNU Radio 3.7 ; la branche Python3_maint-3.8 est construite autour de Python3, PyQt5 et GNU Radio 3.8 ; et la branche Python3_maint-3.10 est construite autour de Python3, PyQt5 et GNU Radio 3.10.

Système d'exploitation Branche FISSURE
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

En cours (bêta)

Ces systèmes d'exploitation sont encore en phase bêta. Ils sont en cours de développement et plusieurs fonctionnalités sont connues pour être manquantes. Les éléments dans l'installateur peuvent entrer en conflit avec des programmes existants ou échouer à l'installation jusqu'à ce que le statut soit supprimé.

Système d'exploitation Branche FISSURE
DragonOS Focal (x86_64) Python3_maint-3.8
Ubuntu 22.04 (x64) Python3_maint-3.10

Note : Certains outils logiciels ne fonctionnent pas pour tous les systèmes d'exploitation. Référez-vous à Logiciels et conflits

Installation

git clone https://github.com/ainfosec/FISSURE.git
cd FISSURE
git checkout <Python2_maint-3.7> or <Python3_maint-3.8> or <Python3_maint-3.10>
git submodule update --init
./install

Cela installera les dépendances logicielles PyQt requises pour lancer les interfaces graphiques d'installation si elles ne sont pas trouvées.

Ensuite, sélectionnez l'option qui correspond le mieux à votre système d'exploitation (elle devrait être détectée automatiquement si votre système d'exploitation correspond à une option).

Python2_maint-3.7 Python3_maint-3.8 Python3_maint-3.10
install1b install1a install1c

Il est recommandé d'installer FISSURE sur un système d'exploitation propre pour éviter les conflits existants. Sélectionnez toutes les cases à cocher recommandées (bouton par défaut) pour éviter les erreurs lors de l'utilisation des différents outils de FISSURE. Il y aura plusieurs invites tout au long de l'installation, demandant principalement des autorisations élevées et des noms d'utilisateur. Si un élément contient une section "Vérifier" à la fin, l'installateur exécutera la commande qui suit et mettra en évidence la case à cocher en vert ou en rouge en fonction des erreurs produites par la commande. Les éléments cochés sans section "Vérifier" resteront noirs après l'installation.

install2

Utilisation

Ouvrez un terminal et entrez :

fissure

Référez-vous au menu d'aide de FISSURE pour plus de détails sur l'utilisation.

Détails

Composants

  • Tableau de bord
  • Hub central (HIPRFISR)
  • Identification de signal cible (TSI)
  • Découverte de protocole (PD)
  • Graphique de flux et exécuteur de script (FGE)

composants

Capacités

Détecteur de signal Manipulation IQ Recherche de signal Reconnaissance de motif
Attaques Fuzzing Listes de lecture de signaux Galerie d'images
Création de paquets Intégration de Scapy Calculateur de CRC Journalisation

Matériel

Voici une liste de matériels "supportés" avec des niveaux d'intégration variables :

  • USRP : X3xx, B2xx, B20xmini, USRP2, N2xx
  • HackRF
  • RTL2832U
  • Adaptateurs 802.11
  • LimeSDR
  • bladeRF, bladeRF 2.0 micro
  • Open Sniffer
  • PlutoSDR

Leçons

FISSURE est livré avec plusieurs guides utiles pour se familiariser avec différentes technologies et techniques. Beaucoup incluent des étapes pour utiliser divers outils intégrés à FISSURE.

Feuille de route

  • Ajouter plus de types de matériels, de protocoles RF, de paramètres de signal, d'outils d'analyse
  • Prendre en charge plus de systèmes d'exploitation
  • Développer du matériel de classe autour de FISSURE (attaques RF, Wi-Fi, GNU Radio, PyQt, etc.)
  • Créer un conditionneur de signal, un extracteur de caractéristiques et un classificateur de signal avec des techniques d'IA/ML sélectionnables
  • Mettre en œuvre des mécanismes de démodulation récursive pour produire un flux de bits à partir de signaux inconnus
  • Transition des principaux composants de FISSURE vers un schéma de déploiement de nœud de capteur générique

Contribution

Les suggestions pour améliorer FISSURE sont fortement encouragées. Laissez un commentaire sur la page Discussions ou sur le serveur Discord si vous avez des réflexions concernant les éléments suivants :

  • Nouvelles suggestions de fonctionnalités et changements de conception
  • Outils logiciels avec des étapes d'installation
  • Nouvelles leçons ou matériel supplémentaire pour les leçons existantes
  • Protocoles RF d'intérêt
  • Plus de types de matériels et de SDR pour l'intégration
  • Scripts d'analyse IQ en Python
  • Corrections et améliorations d'installation

Les contributions pour améliorer FISSURE sont cruciales pour accélérer son développement. Toutes les contributions que vous apportez sont grandement appréciées. Si vous souhaitez contribuer par le développement de code, veuillez forker le repo et créer une pull request :

  1. Forker le projet
  2. Créez votre branche de fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Validez vos modifications (git commit -m 'Add some AmazingFeature')
  4. Poussez vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une pull request

La création de Issues pour attirer l'attention sur les bugs est également la bienvenue.

Collaboration

Contactez le développement commercial d'Assured Information Security, Inc. (AIS) pour proposer et formaliser toutes les opportunités de collaboration FISSURE - que ce soit en consacrant du temps à l'intégration de votre logiciel, en ayant les personnes talentueuses d'AIS développer des solutions pour vos défis techniques, ou en intégrant FISSURE dans d'autres plates-formes/applications.

Licence

GPL-3.0

Pour les détails de la licence, voir le fichier LICENSE.

Contact

Rejoignez le serveur Discord : https://discord.gg/JZDs5sgxcG

Suivez sur Twitter : @FissureRF, @AinfoSec

Chris Poore - Assured Information Security, Inc. - poorec@ainfosec.com

Développement commercial - Assured Information Security, Inc. - bd@ainfosec.com

Crédits

Nous reconnaissons et sommes reconnaissants envers ces développeurs :

Crédits

Remerciements

Un merci spécial au Dr Samuel Mantravadi et à Joseph Reith pour leurs contributions à ce projet.