13 KiB
FISSURE - The RF Framework
Compreensão e Engenharia Reversa de Sinais SDR Independentes de Frequência
FISSURE é uma estrutura de RF e engenharia reversa de código aberto projetada para todos os níveis de habilidade, com ganchos para detecção e classificação de sinais, descoberta de protocolos, execução de ataques, manipulação de IQ, análise de vulnerabilidades, automação e IA/ML. A estrutura foi construída para promover a rápida integração de módulos de software, rádios, protocolos, dados de sinal, scripts, gráficos de fluxo, material de referência e ferramentas de terceiros. FISSURE é um facilitador de fluxo de trabalho que mantém o software em um único local e permite que as equipes se atualizem facilmente enquanto compartilham a mesma configuração base comprovada para distribuições específicas do Linux.
A estrutura e as ferramentas incluídas no FISSURE são projetadas para detectar a presença de energia RF, entender as características de um sinal, coletar e analisar amostras, desenvolver técnicas de transmissão e/ou injeção e criar cargas úteis ou mensagens personalizadas. O FISSURE contém uma biblioteca crescente de informações sobre protocolos e sinais para auxiliar na identificação, criação de pacotes e fuzzing. Existem capacidades de arquivo online para baixar arquivos de sinal e construir listas de reprodução para simular tráfego e testar sistemas.
A base de código Python amigável e a interface do usuário permitem que iniciantes aprendam rapidamente sobre ferramentas e técnicas populares envolvendo RF e engenharia reversa. Educadores em cibersegurança e engenharia podem aproveitar o material embutido ou utilizar a estrutura para demonstrar suas próprias aplicações do mundo real. Desenvolvedores e pesquisadores podem usar o FISSURE para suas tarefas diárias ou para expor suas soluções de ponta a um público mais amplo. À medida que a conscientização e o uso do FISSURE crescem na comunidade, também crescerá a extensão de suas capacidades e a amplitude da tecnologia que abrange.
Informações Adicionais
Começando
Suportado
Existem três ramificações dentro do FISSURE para facilitar a navegação de arquivos e reduzir a redundância de código. A ramificação Python2_maint-3.7 contém uma base de código construída em torno do Python2, PyQt4 e GNU Radio 3.7; a ramificação Python3_maint-3.8 é construída em torno do Python3, PyQt5 e GNU Radio 3.8; e a ramificação Python3_maint-3.10 é construída em torno do Python3, PyQt5 e GNU Radio 3.10.
Sistema Operacional | Ramificação 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 |
Em Andamento (beta)
Esses sistemas operacionais ainda estão em status beta. Eles estão em desenvolvimento e vários recursos são conhecidos por estarem ausentes. Itens no instalador podem entrar em conflito com programas existentes ou falhar na instalação até que o status seja removido.
Sistema Operacional | Ramificação FISSURE |
---|---|
DragonOS Focal (x86_64) | Python3_maint-3.8 |
Ubuntu 22.04 (x64) | Python3_maint-3.10 |
Nota: Certas ferramentas de software não funcionam para todos os sistemas operacionais. Consulte Software And Conflicts
Instalação
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
Isso instalará as dependências de software PyQt necessárias para lançar as GUIs de instalação, caso não sejam encontradas.
Em seguida, selecione a opção que melhor corresponde ao seu sistema operacional (deve ser detectado automaticamente se o seu SO corresponder a uma opção).
Python2_maint-3.7 | Python3_maint-3.8 | Python3_maint-3.10 |
---|---|---|
É recomendável instalar o FISSURE em um sistema operacional limpo para evitar conflitos existentes. Selecione todas as caixas de seleção recomendadas (botão padrão) para evitar erros ao operar as várias ferramentas dentro do FISSURE. Haverá vários prompts durante a instalação, principalmente pedindo permissões elevadas e nomes de usuário. Se um item contiver uma seção "Verificar" no final, o instalador executará o comando que se segue e destacará o item da caixa de seleção em verde ou vermelho, dependendo se algum erro é produzido pelo comando. Itens marcados sem uma seção "Verificar" permanecerão pretos após a instalação.
Uso
Abra um terminal e digite:
fissure
Refer-se ao menu de Ajuda do FISSURE para mais detalhes sobre o uso.
Detalhes
Componentes
- Painel
- Central Hub (HIPRFISR)
- Identificação de Sinal Alvo (TSI)
- Descoberta de Protocólos (PD)
- Gráfico de Fluxo & Executor de Script (FGE)
Capacidades
Detector de Sinal | Manipulação de IQ | Busca de Sinal | Reconhecimento de Padrão |
---|---|---|---|
Ataques | Fuzzing | Playlists de Sinal | Galeria de Imagens |
Criação de Pacotes | Integração Scapy | Calculadora CRC | Registro |
Hardware
A seguir está uma lista de hardware "suportado" com diferentes níveis de integração:
- USRP: X3xx, B2xx, B20xmini, USRP2, N2xx
- HackRF
- RTL2832U
- Adaptadores 802.11
- LimeSDR
- bladeRF, bladeRF 2.0 micro
- Open Sniffer
- PlutoSDR
Lições
O FISSURE vem com vários guias úteis para se familiarizar com diferentes tecnologias e técnicas. Muitos incluem etapas para usar várias ferramentas que estão integradas ao FISSURE.
- Lição1: OpenBTS
- Lição2: Dissectores Lua
- Lição3: Sound eXchange
- Lição4: Placas ESP
- Lição5: Rastreamento de Radiosonde
- Lição6: RFID
- Lição7: Tipos de Dados
- Lição8: Blocos GNU Radio Personalizados
- Lição9: TPMS
- Lição10: Exames de Rádio Amador
- Lição11: Ferramentas Wi-Fi
Roteiro
- Adicionar mais tipos de hardware, protocolos RF, parâmetros de sinal, ferramentas de análise
- Suportar mais sistemas operacionais
- Desenvolver material de aula em torno do FISSURE (Ataques RF, Wi-Fi, GNU Radio, PyQt, etc.)
- Criar um condicionador de sinal, extrator de características e classificador de sinal com técnicas de IA/ML selecionáveis
- Implementar mecanismos de demodulação recursiva para produzir um fluxo de bits a partir de sinais desconhecidos
- Transitar os principais componentes do FISSURE para um esquema genérico de implantação de nós sensores
Contribuindo
Sugestões para melhorar o FISSURE são fortemente encorajadas. Deixe um comentário na página de Discussões ou no Servidor Discord se você tiver alguma ideia sobre o seguinte:
- Sugestões de novas funcionalidades e mudanças de design
- Ferramentas de software com etapas de instalação
- Novas lições ou material adicional para lições existentes
- Protocolos RF de interesse
- Mais tipos de hardware e SDR para integração
- Scripts de análise de IQ em Python
- Correções e melhorias de instalação
Contribuições para melhorar o FISSURE são cruciais para acelerar seu desenvolvimento. Quaisquer contribuições que você fizer são muito apreciadas. Se você deseja contribuir através do desenvolvimento de código, por favor, faça um fork do repositório e crie um pull request:
- Faça um fork do projeto
- Crie sua branch de funcionalidade (
git checkout -b feature/AmazingFeature
) - Faça commit das suas alterações (
git commit -m 'Adicionar alguma AmazingFeature'
) - Envie para a branch (
git push origin feature/AmazingFeature
) - Abra um pull request
Criar Issues para chamar a atenção para bugs também é bem-vindo.
Colaborando
Entre em contato com a Assured Information Security, Inc. (AIS) Desenvolvimento de Negócios para propor e formalizar quaisquer oportunidades de colaboração com o FISSURE – seja dedicando tempo para integrar seu software, tendo as pessoas talentosas da AIS desenvolvendo soluções para seus desafios técnicos, ou integrando o FISSURE em outras plataformas/aplicações.
Licença
GPL-3.0
Para detalhes da licença, veja o arquivo LICENSE.
Contato
Junte-se ao Servidor Discord: https://discord.gg/JZDs5sgxcG
Siga no Twitter: @FissureRF, @AinfoSec
Chris Poore - Assured Information Security, Inc. - poorec@ainfosec.com
Desenvolvimento de Negócios - Assured Information Security, Inc. - bd@ainfosec.com
Créditos
Reconhecemos e somos gratos a esses desenvolvedores:
Agradecimentos
Agradecimentos especiais ao Dr. Samuel Mantravadi e Joseph Reith por suas contribuições a este projeto.