Comprensión de señales e ingeniería inversa basadas en SDR independientes de la frecuencia
FISSURE es un marco de ingeniería inversa y RF de código abierto diseñado para todos los niveles con ganchos para detección y clasificación de señales, descubrimiento de protocolos, ejecución de ataques, manipulación de IQ, análisis de vulnerabilidades, automatización e IA/ML. El marco se creó para promover la rápida integración de módulos de software, radios, protocolos, datos de señales, scripts, gráficos de flujo, material de referencia y herramientas de terceros. FISSURE es un habilitador de flujo de trabajo que mantiene el software en una ubicación y permite a los equipos ponerse al día sin esfuerzo mientras comparten la misma configuración básica probada para distribuciones de Linux específicas.
El marco y las herramientas incluidas con FISSURE están diseñados para detectar la presencia de energía de RF, comprender las características de una señal, recopilar y analizar muestras, desarrollar técnicas de transmisión y/o inyección y crear cargas útiles o mensajes personalizados. FISSURE contiene una biblioteca cada vez mayor de información de protocolos y señales para ayudar en la identificación, elaboración de paquetes y fuzzing. Existen capacidades de archivo en línea para descargar archivos de señales y crear listas de reproducción para simular el tráfico y probar sistemas.
La base de código Python y la interfaz de usuario amigables permiten a los principiantes aprender rápidamente sobre herramientas y técnicas populares que involucran RF e ingeniería inversa. Los educadores en ciberseguridad e ingeniería pueden aprovechar el material incorporado o utilizar el marco para demostrar sus propias aplicaciones del mundo real. Los desarrolladores e investigadores pueden utilizar FISSURE para sus tareas diarias o para exponer sus soluciones de vanguardia a un público más amplio. A medida que crece la conciencia y el uso de FISSURE en la comunidad, también lo hará el alcance de sus capacidades y la amplitud de la tecnología que abarca.
Recuperar configuraciones del instalador Exporte e importe elementos de software marcados en el instalador de FISSURE utilizando los botones Exportar e Importar. Instale rápidamente sólo los programas que necesita.
Soporte local de IQEngine en la pestaña Datos IQ y en el menú para cargar archivos SigMF con un solo clic para archivos en la carpeta "/IQ Recordings". Detenga el contenedor acoplable IQEngine usando el menú Herramientas>Datos>IQEngine.
Nodos de sensores remotos desplegables para computadoras de uso general (SBC, mini PC, computadoras portátiles, de escritorio) que admiten cualquier tipo de periférico que pueda ser controlado por una computadora. Estos nodos de sensores remotos ejecutan un pequeño subconjunto de código que se puede controlar a través de una red a través de la GUI del Panel de FISSURE para realizar operaciones tradicionales de FISSURE y también ejecutar nuevos tipos de acciones programadas que se pueden ejecutar de forma autónoma al inicio o de forma semiautónoma a través de la interacción del usuario ( listas de reproducción de ejecución automática).
El despliegue de múltiples nodos de sensores en la misma red desbloquea muchas aplicaciones geoespaciales para el desarrollo futuro de FISSURE. Dichas aplicaciones incluyen radiogoniometría, seguimiento, detección de intrusiones, implementación móvil y defensa perimetral. Un factor de forma pequeño y capacidades autónomas brindan oportunidades únicas para la implementación y el empaquetado sigilosos en plataformas existentes. Estas actualizaciones también pueden proporcionar un mecanismo de bajo costo para que los trabajadores remotos realicen pruebas combinadas de RF y ciberseguridad y accedan a entornos de RF especializados, como localidades internacionales de interés, laboratorios y sitios de prueba.
Capacidades de activación para listas de reproducción de ejecución automática, ataques de una sola etapa, ataques de varias etapas y reproducción de archivos. Incluye más de 20 ejemplos de activadores acústicos, ambientales, de sistemas de archivos, de redes, de RF, de tiempo y visuales para iniciar efectos electromagnéticos. Consulte la sección Lista de activadores en el manual del usuario para ver la lista actual y la sección Creación de activadores sobre cómo agregar los suyos propios.
Pestaña Clasificador de señales para entrenar árboles de decisión y modelos DNN basados únicamente en características estadísticas extraídas de los datos de IQ. Esta pestaña se utiliza para asignar información veraz a conjuntos de características (producidos a partir de Feature Extractor) recopilados a partir de archivos de señales aisladas (producidos a partir de Signal Conditioner) para desarrollar modelos de aprendizaje automático utilizando TensorFlow y scikit-learn. Se pueden ejecutar señales desconocidas en todos los modelos disponibles para comparar resultados y establecer confianza. Las pestañas Acondicionador de señal, Extractor de características y Clasificador de señales actúan como un banco de pruebas para desarrollar nuevos algoritmos y, eventualmente, los resultados (señales IQ aisladas, características estadísticas, confianza de clasificación) se catalogarán en la biblioteca FISSURE como señales de interés para análisis posteriores o para desencadenar acciones automatizadas.
Generador de señales de activación y desactivación en la pestaña Datos IQ para una visualización y prueba rápidas de señales/dispositivos. Las señales personalizadas se pueden guardar como archivos IQ para reproducirlas y realizar acciones en objetivos o simular dispositivos de RF.
Se sentó. 10 de agosto de 2024 : DEF CON 32 - RF Village - 1400-1500 PST. Vídeo pregrabado, grabación en vivo
Jue. 5 de septiembre de 2024 : Feria de pasantías y empleos STEM de la Universidad de Binghamton - 1100-1530 EST
Mar. 17 de septiembre de 2024 : GNU Radio Conference 2024 - 1605-1635 EST Descripción/Diapositivas, Grabación en vivo
Diciembre de 2024 (¡las fechas finales próximamente!) : Desafío FISSURE 2024. Enlace (próximamente)
La siguiente es una lista de hardware "compatible" con distintos niveles de integración:
Apoyado
Ahora hay dos ramas dentro de FISSURE: la rama Python3 y la rama Python2_maint-3.7. La rama Python3 contiene el código más reciente y es compatible con PyQt5 y GNU Radio versiones 3.8 y 3.10. La rama Python2_maint-3.7 ha quedado obsoleta y solo se actualizará si herramientas específicas de terceros requieren GNU Radio versión 3.7 o un sistema operativo anterior. Solo se admitirán las instalaciones de las últimas versiones menores de los sistemas operativos y haremos todo lo posible para mantenernos al día.
Sistema operativo | Sucursal FISURAS | Versión de radio GNU predeterminada |
---|---|---|
BackBox Linux 8 (amd64) | Python3 | mantenimiento-3.10 |
DragonOS FocalX (x86_64) | Python3 | mantenimiento-3.10 |
Kali 23.1 (x64) | Python3 | mantenimiento-3.10 |
KDE neon 5.25 (x64) (6.0 no probado) | Python3 | mantenimiento-3.8 |
Seguridad del loro 6.1 (amd64) | Python3 | mantenimiento-3.10 |
Sistema operativo Raspberry Pi (ratón de biblioteca) | Python3 | mantenimiento-3.10 |
Ubuntu 18.04 (x64) | Python2_maint-3.7 | mantenimiento-3.7 |
Ubuntu 20.04 (x64) | Python3 | mantenimiento-3.8 |
Ubuntu 22.04 (x64) | Python3 | mantenimiento-3.10 |
Ubuntu 22.04 (ARM/Naranja Pi) | Python3 | mantenimiento-3.10 |
Ubuntu 24.04 (x86) | Python3 | mantenimiento-3.10 |
En progreso (beta)
Estos sistemas operativos todavía se encuentran en estado beta. Están en desarrollo y se sabe que faltan varias características. Los elementos del instalador pueden entrar en conflicto con los programas existentes o no poder instalarse hasta que se elimine el estado.
Sistema operativo | Sucursal FISURAS | Versión de radio GNU predeterminada |
---|---|---|
Ninguno |
Nota: Ciertas herramientas de software no funcionan para todos los sistemas operativos. Consulte Conflictos conocidos y software de terceros
Instalación
Para agregar claves SSH a 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
Notas:
Se recomienda instalar FISSURE en un sistema operativo limpio para evitar conflictos con el software existente. Se continuarán realizando esfuerzos adicionales hacia la virtualización y la gestión de la dependencia. Notas sobre el instalador:
~/Installed_by_FISSURE
. El instalador FISSURE es útil para preparar computadoras o instalar programas de software seleccionados de interés. El código se puede modificar rápidamente para permitir instalaciones de software personalizadas. Las estimaciones de tamaño de los programas son lecturas antes y después de una instalación completa. Los tamaños de cada programa no son exactos ya que algunas dependencias están instaladas en elementos previamente verificados. Los tamaños también pueden cambiar con el tiempo a medida que se actualizan los programas.
Instalación del nodo de sensor remoto
Instale FISSURE como de costumbre en una computadora de uso general. Instale FISSURE en la computadora remota en la misma ubicación del directorio que la computadora local (hasta nuevo aviso) para evitar errores de ruta de archivo con ciertas acciones. Para configurar el nodo sensor para operación remota, edite el archivo "default.yaml" en el directorio ./fissure/Sensor_Node/Sensor_Node_Config/
. Edite los siguientes campos para cambiar de operación local a remota:
Cambie el campo "ejecución automática" de false
a true
para ejecutar el archivo de lista de reproducción de ejecución automática predeterminado al inicio y renunciar a operaciones remotas. Se pueden generar y guardar nuevas listas de reproducción de ejecución automática desde la pestaña Ejecución automática del panel.
El nodo del sensor remoto actúa como un servidor y debe tener un conjunto de certificados válidos (generados durante la instalación) que coincidan con el cliente (computadora local). El servidor necesita los archivos "server.key_secret" y "client.key", mientras que el cliente necesita los archivos "client.key_secret" y "server.key". Si la carpeta de certificados se generó en la computadora servidor, los archivos del cliente deben transferirse manualmente a la otra computadora.
Uso del panel local
Abra una terminal e ingrese:
fissure
El método previsto para iniciar FISSURE Dashboard es a través del terminal sin sudo. El terminal proporciona información y estados importantes para algunas operaciones. Consulte la documentación de FISSURE para obtener más detalles.
Se puede iniciar un nodo de sensor local a través de los botones superiores del Panel de control de FISSURE y ayuda a mantener todas las funciones de FISSURE preexistentes en una estación de trabajo independiente. En este momento, solo se admiten un nodo de sensor local y cuatro remotos (o cinco remotos).
Si alguno de los programas se congela o no se cierra, se pueden utilizar los siguientes comandos para detectar un problema o cerrarlo a la fuerza:
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
Uso del nodo de sensor remoto
Después de configurar el archivo de configuración del nodo sensor (ver arriba), el código se puede ejecutar usando este comando desde el directorio raíz:
python3 ./fissure/Sensor_Node/SensorNode.py
El código del nodo sensor permanecerá activo hasta que se aplique Ctrl+c. La conexión al nodo del sensor remoto se realiza a través de los botones superiores del Panel FISSURE. Al hacer clic derecho en los botones superiores se seleccionará un nodo de sensor activo para realizar operaciones. Las operaciones futuras que utilicen más de un nodo a la vez se manejarán caso por caso dentro de las pestañas individuales.
FISSURE viene con varias guías útiles para familiarizarse con diferentes tecnologías y técnicas. Muchos incluyen pasos para usar varias herramientas que están integradas en FISSURE. Nuestro objetivo es mejorar la calidad y agregar contenido nuevo con el tiempo.
El concurso anual de captura de la bandera "FISSURE Challenge" para mostrar las nuevas incorporaciones a FISSURE se lleva a cabo en diciembre de cada año. ¡Los desafíos pasados se archivan y se pueden resolver durante todo el año! Obtenga experiencia práctica y vea soluciones en: FISSURE Challenge.
Se recomienda encarecidamente realizar sugerencias para mejorar FISSURE. Deje un comentario en la página de Discusiones o en el Servidor de Discord si tiene alguna idea sobre lo siguiente:
Las contribuciones para mejorar FISSURE son cruciales para acelerar su desarrollo. Cualquier contribución que hagas será muy apreciada. Si desea contribuir mediante el desarrollo de código, bifurque el repositorio y cree una solicitud de extracción:
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)También es bienvenido crear problemas para llamar la atención sobre los errores.
¿Necesitas ideas más específicas? Hay muchos temas que todavía tenemos que investigar. Consulte nuestra lista actualizada de posibles tareas pendientes. Se agradece cualquier ayuda. Elija uno fácil y escriba que contribuyó a FISSURE en su currículum.
¿Es usted un estudiante o busca aprender más sobre RF y programación o una organización que busca exponer a los estudiantes al mundo del código abierto? Comuníquese hoy y consulte la Lista de ideas de proyectos para 2023.
Comuníquese con Assured Information Security, Inc. (AIS) Business Development para proponer y formalizar cualquier oportunidad de colaboración con FISSURE, ya sea dedicando tiempo a la integración de su software, haciendo que el personal talentoso de AIS desarrolle soluciones para sus desafíos técnicos o integrando FISSURE en otros. plataformas/aplicaciones.
GPL-3.0
Para obtener detalles sobre la licencia, consulte el archivo LICENCIA.
Únase al servidor de Discord: https://discord.gg/JZDs5sgxcG
Siga en Twitter/X: @FissureRF, @AinfoSec
Conéctese en LinkedIn: FISSURE - El marco de RF
Chris Poore - Seguridad de la información asegurada, Inc. - [email protected]
Desarrollo empresarial - Assured Information Security, Inc. - [email protected]
Un agradecimiento especial al Dr. Samuel Mantravadi y Joseph Reith por sus contribuciones a este proyecto.
¿Te gusta trabajar con señales, ingeniería inversa u otros ámbitos de la ciberseguridad? Explore nuestras vacantes actuales o únase a nuestra comunidad de talentos para considerarlos en el futuro.
Si tienes interés en la piratería, consulta nuestro desafío Can You Hack It?® y prueba tus habilidades. Envía tu puntuación para mostrarnos lo que tienes. AIS tiene presencia nacional con oficinas y empleados remotos en todo EE. UU. Ofrecemos salarios competitivos y beneficios excepcionales. Únase a un equipo que no sólo está comprometido con el futuro del ciberespacio, sino también con el éxito de nuestros empleados.