Compréhension du signal et ingénierie inverse basées sur le SDR indépendant de la fréquence
FISSURE est un framework open source de RF et d'ingénierie inverse 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 du QI, l'analyse des vulnérabilités, l'automatisation et l'IA/ML. Le cadre a été conçu pour promouvoir l'intégration rapide de modules logiciels, de radios, de protocoles, de données de signaux, de scripts, de graphiques de flux, de matériel de référence et d'outils tiers. FISSURE est un outil de workflow qui conserve les logiciels au même endroit et permet aux équipes de se mettre à niveau sans effort tout en partageant la même configuration de base éprouvée pour des distributions Linux spécifiques.
Le cadre et les outils inclus avec 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 faciliter l'identification, la création de paquets et le fuzzing. Des capacités d'archivage en ligne existent pour télécharger des fichiers de signaux et créer des listes de lecture pour simuler le trafic et tester les systèmes.
La base de code Python conviviale et l'interface utilisateur permettent aux débutants de se familiariser rapidement avec les outils et techniques populaires impliquant la RF et l'ingénierie inverse. Les enseignants en cybersécurité et en ingénierie peuvent tirer parti du matériel intégré ou utiliser le cadre pour démontrer leurs propres applications concrètes. 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 communauté connaît et utilise FISSURE, l'étendue de ses capacités et l'étendue de la technologie qu'elle englobe augmentent également.
Rappeler les configurations du programme d'installation Exportez et importez les éléments logiciels cochés dans le programme d'installation de FISSURE à l'aide des boutons Exporter et Importer. Installez rapidement uniquement les programmes dont vous avez besoin.
Prise en charge locale d'IQEngine dans l'onglet et le menu IQ Data pour le chargement de fichiers SigMF en un seul clic pour les fichiers du dossier "/IQ Recordings". Arrêtez le conteneur Docker IQEngine à l'aide du menu Outils>Données>IQEngine.
Nœuds de capteurs à distance déployables pour ordinateurs à usage général (SBC, mini PC, ordinateurs portables, ordinateurs de bureau) prenant en charge tout type de périphérique pouvant être contrôlé par un ordinateur. Ces nœuds de capteurs distants exécutent un petit sous-ensemble de code qui peut être contrôlé sur un réseau via l'interface graphique du tableau de bord FISSURE pour effectuer des opérations FISSURE traditionnelles et également exécuter de nouveaux types d'actions scriptées qui peuvent être exécutées de manière autonome au démarrage ou de manière semi-autonome via l'interaction de l'utilisateur ( listes de lecture à exécution automatique).
Le déploiement de plusieurs nœuds de capteurs sur le même réseau ouvre de nombreuses applications géospatiales pour le développement futur de FISSURE. Ces applications incluent la radiogoniométrie, le suivi, la détection des intrusions, le déploiement mobile et la défense périmétrique. Un petit facteur de forme et des capacités autonomes offrent des opportunités uniques de déploiement et de conditionnement furtifs sur les plates-formes existantes. Ces mises à jour peuvent également fournir un mécanisme peu coûteux permettant aux travailleurs à distance d'effectuer des tests combinés RF-cybersécurité et d'accéder à des environnements RF spécialisés tels que des localités d'intérêt internationales, des laboratoires et des sites de test.
Capacités de déclenchement pour les listes de lecture à exécution automatique, les attaques en une seule étape, les attaques en plusieurs étapes et la relecture d'archives. Comprend plus de 20 exemples de déclencheurs acoustiques, environnementaux, de système de fichiers, de réseau, RF, temporels et visuels pour déclencher des effets électromagnétiques. Reportez-vous à la section Liste des déclencheurs du manuel d'utilisation pour connaître la liste actuelle et à la section Création de déclencheurs pour savoir comment ajouter les vôtres.
Onglet Signal Classifier pour la formation d'arbres de décision et de modèles DNN basés uniquement sur les caractéristiques statistiques extraites des données IQ. Cet onglet est utilisé pour attribuer des informations de vérité aux ensembles de fonctionnalités (produits à partir de Feature Extractor) rassemblés à partir de fichiers de signaux isolés (produits à partir de Signal Conditioner) pour développer des modèles d'apprentissage automatique à l'aide de TensorFlow et scikit-learn. Les signaux inconnus peuvent être analysés dans tous les modèles disponibles pour comparer les résultats et établir la confiance. Les onglets Conditionneur de signal, Extracteur de caractéristiques et Classificateur de signal servent de banc d'essai pour le développement de nouveaux algorithmes et, éventuellement, les résultats (signaux IQ isolés, caractéristiques statistiques, confiance de classification) seront catalogués dans la bibliothèque FISSURE en tant que signaux d'intérêt pour une analyse plus approfondie ou pour déclencher des actions automatisées.
Générateur de signaux de saisie marche-arrêt dans l'onglet IQ Data pour une visualisation et un test rapides des signaux/appareils. Les signaux personnalisés peuvent être enregistrés sous forme de fichiers IQ pour être rejoués afin d'effectuer des actions sur des cibles ou de simuler des appareils RF.
Assis. 10 août 2024 : DEF CON 32 – RF Village – 1400-1500 PST. Vidéo préenregistrée, enregistrement en direct
Jeu. 5 septembre 2024 : Salon de l'emploi et des stages STEM de l'Université de Binghamton - 11 h 00 à 15 h 30 HNE
Mar. 17 septembre 2024 : GNU Radio Conference 2024 - 1605-1635 EST Description/Diapositives, enregistrement en direct
Décembre 2024 (Dates définitives à venir !) : Challenge FISSURE 2024. Lien (à venir)
Voici une liste du matériel « pris en charge » avec différents niveaux d'intégration :
Soutenu
Il existe désormais deux branches au sein de FISSURE : la branche Python3 et la branche Python2_maint-3.7. La branche Python3 contient le code le plus récent et prend en charge les versions 3.8 et 3.10 de PyQt5 et GNU Radio. La branche Python2_maint-3.7 est obsolète et ne sera mise à jour que si des outils tiers spécifiques nécessitent la version 3.7 de GNU Radio ou un système d'exploitation plus ancien. Seules les dernières versions mineures des systèmes d'exploitation seront prises en charge pour les installations et nous ferons de notre mieux pour suivre le rythme.
Système opérateur | Branche FISSURE | Version radio GNU par défaut |
---|---|---|
BackBox Linux 8 (amd64) | Python3 | maintenance-3.10 |
DragonOS FocalX (x86_64) | Python3 | maintenance-3.10 |
Kali 23.1 (x64) | Python3 | maintenance-3.10 |
KDE néon 5.25 (x64) (6.0 non testé) | Python3 | maintenance-3.8 |
Parrot Sécurité 6.1 (amd64) | Python3 | maintenance-3.10 |
Système d'exploitation Raspberry Pi (rat de bibliothèque) | Python3 | maintenance-3.10 |
Ubuntu 18.04 (x64) | Python2_maint-3.7 | maintenance-3.7 |
Ubuntu 20.04 (x64) | Python3 | maintenance-3.8 |
Ubuntu 22.04 (x64) | Python3 | maintenance-3.10 |
Ubuntu 22.04 (ARM/Orange Pi) | Python3 | maintenance-3.10 |
Ubuntu 24.04 (x86) | Python3 | maintenance-3.10 |
En cours (bêta)
Ces systèmes d'exploitation sont toujours en version bêta. Ils sont en cours de développement et plusieurs fonctionnalités manquent. Les éléments du programme d'installation peuvent entrer en conflit avec des programmes existants ou ne pas pouvoir s'installer jusqu'à ce que l'état soit supprimé.
Système opérateur | Branche FISSURE | Version radio GNU par défaut |
---|---|---|
Aucun |
Remarque : Certains outils logiciels ne fonctionnent pas pour tous les systèmes d'exploitation. Reportez-vous aux conflits connus et aux logiciels tiers
Installation
Pour ajouter des clés SSH à 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
Remarques :
Il est recommandé d'installer FISSURE sur un système d'exploitation propre pour éviter les conflits avec les logiciels existants. Des efforts supplémentaires en matière de virtualisation et de gestion des dépendances seront poursuivis. Notes sur l'installateur :
~/Installed_by_FISSURE
. Le programme d'installation de FISSURE est utile pour préparer des ordinateurs ou installer certains logiciels d'intérêt. Le code peut être rapidement modifié pour permettre des installations de logiciels personnalisées. Les estimations de taille des programmes sont faites avant et après les lectures d'une installation complète. Les tailles de chaque programme ne sont pas exactes car certaines dépendances sont installées dans des éléments précédemment cochés. Les tailles peuvent également changer au fil du temps à mesure que les programmes sont mis à jour.
Installation du nœud de capteur à distance
Installez FISSURE comme d'habitude sur un ordinateur à usage général. Installez FISSURE sur l'ordinateur distant dans le même emplacement de répertoire que l'ordinateur local (jusqu'à nouvel ordre) pour éviter les erreurs de chemin de fichier avec certaines actions. Pour configurer le nœud de capteur pour un fonctionnement à distance, modifiez le fichier « default.yaml » dans le répertoire ./fissure/Sensor_Node/Sensor_Node_Config/
. Modifiez les champs suivants pour passer du fonctionnement local au fonctionnement distant :
Modifiez le champ "autorun" de false
à true
pour exécuter le fichier de liste de lecture à exécution automatique par défaut au démarrage et renoncer aux opérations à distance. De nouvelles listes de lecture à exécution automatique peuvent être générées et enregistrées à partir de l'onglet Exécution automatique du tableau de bord.
Le nœud de capteur distant agit comme un serveur et doit disposer d'un ensemble de certificats valides (générés lors de l'installation) qui correspondent au client (ordinateur local). Le serveur a besoin des fichiers "server.key_secret" et "client.key" tandis que le client a besoin des fichiers "client.key_secret" et "server.key". Si le dossier des certificats a été généré sur l'ordinateur serveur, les fichiers clients doivent être transférés manuellement vers l'autre ordinateur.
Utilisation du tableau de bord local
Ouvrez un terminal et saisissez :
fissure
La méthode prévue pour lancer le tableau de bord FISSURE se fait via le terminal sans sudo. Le terminal fournit un état et des commentaires importants pour certaines opérations. Reportez-vous à la documentation FISSURE pour plus de détails.
Un nœud de capteur local peut être lancé via les boutons supérieurs du tableau de bord FISSURE et permet de maintenir toutes les fonctionnalités FISSURE préexistantes sur un poste de travail autonome. Seuls un nœud de capteur local et quatre nœuds de capteur distants (ou cinq distants) sont pris en charge pour le moment.
Si l'un des programmes se bloque ou se bloque lors de la fermeture, les commandes suivantes peuvent être utilisées pour détecter un problème ou s'arrêter de force :
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
Utilisation du nœud de capteur distant
Après avoir configuré le fichier de configuration du nœud du capteur (voir ci-dessus), le code peut être exécuté à l'aide de cette commande depuis le répertoire racine :
python3 ./fissure/Sensor_Node/SensorNode.py
Le code du nœud du capteur restera actif jusqu'à ce que ctrl+c soit appliqué. La connexion au nœud du capteur à distance s'effectue via les boutons supérieurs du tableau de bord FISSURE. Un clic droit sur les boutons du haut sélectionnera un nœud de capteur actif pour effectuer des opérations. Les futures opérations qui utilisent plusieurs nœuds à la fois seront traitées au cas par cas dans les onglets individuels.
FISSURE est livré avec plusieurs guides utiles pour se familiariser avec différentes technologies et techniques. Beaucoup incluent des étapes d’utilisation de divers outils intégrés à FISSURE. Nous visons à améliorer la qualité et à ajouter du nouveau contenu au fil du temps.
Le concours annuel « FISSURE Challenge » pour capturer le drapeau afin de présenter les nouveaux ajouts à FISSURE a lieu chaque année en décembre. Les défis passés sont archivés et peuvent être résolus toute l'année ! Acquérez une expérience pratique et consultez les solutions sur : FISSURE Challenge.
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 idées sur les points suivants :
Les contributions visant à améliorer FISSURE sont cruciales pour accélérer son développement. Toute contribution que vous apportez est grandement appréciée. Si vous souhaitez contribuer au développement de code, veuillez créer le dépôt et créer une pull request :
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)La création de problèmes pour attirer l'attention sur les bugs est également la bienvenue.
Besoin d'idées plus précises ? Il y a beaucoup de sujets que nous devons encore étudier. Consultez notre liste courante d’éléments potentiels à faire. Toute aide est appréciée. Choisissez-en une simple et écrivez que vous avez contribué à FISSURE dans votre CV.
Êtes-vous un étudiant ou cherchez-vous à en savoir plus sur la RF et la programmation ou une organisation cherchant à exposer les étudiants au monde de l'open source ? Contactez-nous dès aujourd'hui et consultez la liste d'idées de projets 2023.
Contactez Assured Information Security, Inc. (AIS) Business Development pour proposer et formaliser toute opportunité de collaboration FISSURE, que ce soit en consacrant du temps à l'intégration de votre logiciel, en demandant aux personnes talentueuses d'AIS de développer des solutions pour vos défis techniques ou en intégrant FISSURE dans d'autres plateformes/applications.
GPL-3.0
Pour plus de détails sur la licence, consultez le fichier LICENSE.
Rejoignez le serveur Discord : https://discord.gg/JZDs5sgxcG
Suivez sur Twitter/X : @FissureRF, @AinfoSec
Connectez-vous sur LinkedIn : FISSURE - Le cadre RF
Chris Poore - Assured Information Security, Inc. - [email protected]
Développement commercial - Assured Information Security, Inc. - [email protected]
Un merci spécial au Dr Samuel Mantravadi et Joseph Reith pour leurs contributions à ce projet.
Vous aimez travailler avec des signaux, de l'ingénierie inverse ou d'autres domaines de la cybersécurité ? Parcourez nos postes vacants actuels ou rejoignez notre communauté de talents pour une considération future.
Si le hacking vous intéresse, consultez notre défi Can You Hack It?® et testez vos compétences ! Soumettez votre score pour nous montrer ce que vous avez. AIS a une présence nationale avec des bureaux et des employés distants à travers les États-Unis. Nous offrons une rémunération compétitive et des avantages sociaux exceptionnels. Rejoignez une équipe qui s'engage non seulement envers l'avenir du cyberespace, mais également envers la réussite de nos employés.