Compreensão de sinal e engenharia reversa baseada em SDR independente 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 protocolo, execução de ataque, manipulação de QI, análise de vulnerabilidade, 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 sinais, 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 sem esforço enquanto compartilham a mesma configuração de linha de base comprovada para distribuições Linux específicas.
A estrutura e as ferramentas incluídas no FISSURE são projetadas para detectar a presença de energia de RF, compreender as características de um sinal, coletar e analisar amostras, desenvolver técnicas de transmissão e/ou injeção e criar cargas ou mensagens personalizadas. FISSURE contém uma biblioteca crescente de informações de protocolo e sinal para auxiliar na identificação, elaboração de pacotes e difusão. Existem recursos de arquivamento on-line para baixar arquivos de sinal e criar 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 que envolvem RF e engenharia reversa. Educadores em segurança cibernética e engenharia podem aproveitar o material integrado ou utilizar a estrutura para demonstrar suas próprias aplicações no 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 consciência e o uso do FISSURE crescem na comunidade, também aumenta a extensão das suas capacidades e a amplitude da tecnologia que abrange.
Recuperar configurações do instalador Exporte e importe itens de software verificados no instalador FISSURE usando os botões Exportar e Importar. Instale rapidamente apenas os programas necessários.
Suporte local ao IQEngine na aba IQ Data e menu para carregamento de arquivos SigMF com um clique para arquivos na pasta "/IQ Recordings". Pare o contêiner docker IQEngine usando o menu Ferramentas>Dados>IQEngine.
Nós de sensores remotos implantáveis para computadores de uso geral (SBCs, mini PCs, laptops, desktops) que suportam qualquer tipo de periférico que possa ser controlado por um computador. Esses nós sensores remotos executam um pequeno subconjunto de código que pode ser controlado por uma rede através da GUI do painel FISSURE para executar operações tradicionais do FISSURE e também executar novos tipos de ações de script que podem ser executadas de forma autônoma na inicialização ou semiautônoma por meio da interação do usuário ( listas de reprodução de execução automática).
A implantação de vários nós sensores na mesma rede desbloqueia muitas aplicações geoespaciais para o desenvolvimento futuro do FISSURE. Essas aplicações incluem localização de direção, rastreamento, detecção de intrusão, implantação móvel e defesa de perímetro. Um formato pequeno e recursos autônomos oferecem oportunidades únicas para implantação furtiva e empacotamento em plataformas existentes. Essas atualizações também podem fornecer um mecanismo de baixo custo para que trabalhadores remotos realizem testes combinados de segurança cibernética de RF e acessem ambientes de RF especializados, como localidades internacionais de interesse, laboratórios e locais de teste.
Acione recursos para listas de reprodução de execução automática, ataques de estágio único, ataques de vários estágios e reprodução de arquivo. Inclui mais de 20 exemplos de gatilhos acústicos, ambientais, de sistema de arquivos, de rede, de RF, de tempo e visuais para iniciar efeitos eletromagnéticos. Consulte a seção Lista de Triggers no manual do usuário para obter a lista atual e a seção Criando Triggers para saber como adicionar os seus próprios Triggers.
Guia Classificador de Sinais para treinar árvores de decisão e modelos DNN com base exclusivamente em recursos estatísticos extraídos de dados de QI. Esta guia é usada para atribuir informações verdadeiras a conjuntos de recursos (produzidos a partir do Feature Extractor) coletados de arquivos de sinais isolados (produzidos a partir do Signal Conditioner) para desenvolver modelos de aprendizado de máquina usando TensorFlow e scikit-learn. Sinais desconhecidos podem ser analisados em todos os modelos disponíveis para comparar resultados e estabelecer confiança. As guias Condicionador de Sinais, Extrator de Recursos e Classificador de Sinais atuam como uma plataforma de teste para o desenvolvimento de novos algoritmos e, eventualmente, os resultados (sinais de QI isolados, recursos estatísticos, confiança de classificação) serão catalogados na biblioteca FISSURE como sinais de interesse para análise posterior ou para desencadear ações automatizadas.
Gerador de sinal de chaveamento liga-desliga na guia Dados de QI para visualização e teste rápidos de sinais/dispositivos. Sinais personalizados podem ser salvos como arquivos IQ para reprodução para executar ações em alvos ou simular dispositivos de RF.
Sentado. 10 de agosto de 2024 : DEF CON 32 - RF Village - 1400-1500 PST. Vídeo pré-gravado, gravação ao vivo
Qui. 5 de setembro de 2024 : Feira de empregos e estágios STEM da Binghamton University - 1100-1530 EST
Ter. 17 de setembro de 2024 : GNU Radio Conference 2024 - 1605-1635 EST Descrição/slides, gravação ao vivo
Dezembro de 2024 (datas finais em breve!) : Desafio FISSURE 2024. Link (em breve)
A seguir está uma lista de hardware "suportado" com vários níveis de integração:
Suportado
Existem agora duas ramificações no FISSURE: a ramificação Python3 e a ramificação Python2_maint-3.7. A ramificação Python3 contém o código mais recente e tem suporte para PyQt5 e GNU Radio versões 3.8 e 3.10. A ramificação Python2_maint-3.7 foi descontinuada e só será atualizada se ferramentas específicas de terceiros exigirem o GNU Radio versão 3.7 ou um sistema operacional mais antigo. Apenas as versões secundárias mais recentes dos sistemas operacionais serão suportadas para instalações e faremos o nosso melhor para acompanhá-las.
Sistema operacional | Filial FISSURE | Versão padrão do rádio GNU |
---|---|---|
BackBoxLinux 8 (amd64) | Python3 | manutenção-3.10 |
DragonOS Focal X (x86_64) | Python3 | manutenção-3.10 |
Kali 23.1 (x64) | Python3 | manutenção-3.10 |
KDE neon 5.25 (x64) (6.0 não testado) | Python3 | manutenção-3.8 |
Papagaio Segurança 6.1 (amd64) | Python3 | manutenção-3.10 |
Raspberry Pi OS (leitor ávido) | Python3 | manutenção-3.10 |
Ubuntu 18.04 (x64) | Python2_maint-3.7 | manutenção-3.7 |
Ubuntu 20.04 (x64) | Python3 | manutenção-3.8 |
Ubuntu 22.04 (x64) | Python3 | manutenção-3.10 |
Ubuntu 22.04 (ARM/Laranja Pi) | Python3 | manutenção-3.10 |
Ubuntu 24.04 (x86) | Python3 | manutenção-3.10 |
Em andamento (beta)
Esses sistemas operacionais ainda estão em status beta. Eles estão em desenvolvimento e vários recursos estão ausentes. Os itens do instalador podem entrar em conflito com programas existentes ou falhar na instalação até que o status seja removido.
Sistema operacional | Filial FISSURE | Versão padrão do rádio GNU |
---|---|---|
Nenhum |
Nota: Certas ferramentas de software não funcionam para todos os sistemas operacionais. Consulte Conflitos Conhecidos e Software de Terceiros
Instalação
Para adicionar chaves SSH ao 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:
Recomenda-se instalar o FISSURE em um sistema operacional limpo para evitar conflitos com o software existente. Serão prosseguidos os esforços no sentido da virtualização e da gestão de dependências. Notas sobre o instalador:
~/Installed_by_FISSURE
. O instalador FISSURE é útil para preparar computadores ou instalar programas de software selecionados de interesse. O código pode ser modificado rapidamente para permitir instalações de software personalizadas. As estimativas de tamanho dos programas são antes e depois das leituras de uma instalação completa. Os tamanhos de cada programa não são exatos, pois algumas dependências estão instaladas em itens verificados anteriormente. Os tamanhos também podem mudar com o tempo, à medida que os programas são atualizados.
Instalação de nó sensor remoto
Instale o FISSURE normalmente em um computador de uso geral. Instale o FISSURE no computador remoto no mesmo diretório do computador local (até novo aviso) para evitar erros de caminho de arquivo com determinadas ações. Para configurar o nó sensor para operação remota, edite o arquivo "default.yaml" no diretório ./fissure/Sensor_Node/Sensor_Node_Config/
. Edite os seguintes campos para mudar de operação local para remota:
Altere o campo "autorun" de false
para true
para executar o arquivo de lista de reprodução de execução automática padrão na inicialização e renunciar às operações remotas. Novas listas de reprodução automática podem ser geradas e salvas na guia Dashboard Autorun.
O nó sensor remoto atua como um servidor e deve ter um conjunto de certificados válidos (gerados durante a instalação) que correspondam ao cliente (computador local). O servidor precisa dos arquivos "server.key_secret" e "client.key", enquanto o cliente precisa dos arquivos "client.key_secret" e "server.key". Se a pasta de certificados foi gerada no computador servidor, os arquivos do cliente deverão ser transferidos manualmente para o outro computador.
Uso do painel local
Abra um terminal e digite:
fissure
O método pretendido para iniciar o FISSURE Dashboard é através do terminal sem sudo. O terminal fornece status e feedback importantes para algumas operações. Consulte a documentação da FISSURE para obter mais detalhes.
Um nó sensor local pode ser iniciado através dos botões superiores no painel FISSURE e ajuda a manter todas as funcionalidades pré-existentes do FISSURE em uma estação de trabalho independente. Apenas um nó de sensor local e quatro nós de sensor remoto (ou cinco remotos) são suportados no momento.
Se algum dos programas travar ou travar ao fechar, os seguintes comandos podem ser usados para detectar um problema ou desligar à força:
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
Uso do nó sensor remoto
Depois de configurar o arquivo de configuração do nó sensor (veja acima), o código pode ser executado usando este comando no diretório raiz:
python3 ./fissure/Sensor_Node/SensorNode.py
O código do nó sensor permanecerá ativo até que ctrl+c seja aplicado. A conexão ao nó sensor remoto é realizada através dos botões superiores do painel FISSURE. Clicar com o botão direito nos botões superiores selecionará um nó sensor ativo para realizar operações. As operações futuras que utilizam mais de um nó por vez serão tratadas caso a caso nas guias individuais.
FISSURE vem com vários guias úteis para se familiarizar com diferentes tecnologias e técnicas. Muitos incluem etapas para usar várias ferramentas integradas ao FISSURE. Nosso objetivo é melhorar a qualidade e adicionar novos conteúdos ao longo do tempo.
O concurso anual de captura da bandeira "Desafio FISSURE" para mostrar as novas adições ao FISSURE é realizado em dezembro de cada ano. Os desafios anteriores estão arquivados e podem ser resolvidos durante todo o ano! Obtenha experiência prática e veja soluções em: FISSURE Challenge.
Sugestões para melhorar a FISSURE são fortemente encorajadas. Deixe um comentário na página de Discussões ou no Servidor Discord se você tiver alguma opinião sobre o seguinte:
As contribuições para melhorar o FISSURE são cruciais para acelerar o seu desenvolvimento. Qualquer contribuição que você fizer será muito apreciada. Se você deseja contribuir através do desenvolvimento de código, bifurque o repositório e crie uma solicitação pull:
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Criar problemas para chamar a atenção para bugs também é bem-vindo.
Precisa de ideias mais específicas? Há muitos tópicos que ainda precisamos investigar. Confira nossa lista contínua de possíveis itens de tarefas pendentes. Qualquer ajuda é apreciada. Escolha um fácil e escreva que você contribuiu para a FISSURE em seu currículo.
Você é estudante ou deseja aprender mais sobre RF e programação ou é uma organização que deseja expor os alunos ao mundo do código aberto? Entre em contato hoje mesmo e consulte a lista de ideias de projetos para 2023.
Entre em contato com o Desenvolvimento de Negócios da Assured Information Security, Inc. (AIS) para propor e formalizar quaisquer oportunidades de colaboração do FISSURE - seja através da dedicação de tempo para a integração do seu software, fazendo com que as pessoas talentosas da AIS desenvolvam soluções para seus desafios técnicos ou integrando o FISSURE em outros plataformas/aplicativos.
GPL-3.0
Para obter detalhes da licença, consulte arquivo LICENSE.
Junte-se ao servidor Discord: https://discord.gg/JZDs5sgxcG
Siga no Twitter/X: @FissureRF, @AinfoSec
Conecte-se no LinkedIn: FISSURE - The RF Framework
Chris Poore - Assured Information Security, Inc.
Desenvolvimento de negócios - Assured Information Security, Inc. - [email protected]
Agradecimentos especiais ao Dr. Samuel Mantravadi e Joseph Reith por suas contribuições para este projeto.
Gosta de trabalhar com sinais, engenharia reversa ou outras áreas da segurança cibernética? Navegue pelas nossas vagas atuais ou junte-se à nossa comunidade de talentos para consideração futura.
Se você tem interesse em hackear, confira nosso desafio Can You Hack It?® e teste suas habilidades! Envie sua pontuação para nos mostrar o que você tem. A AIS tem presença nacional com escritórios e funcionários remotos nos EUA. Oferecemos salários competitivos e benefícios excelentes. Junte-se a uma equipe que não está apenas comprometida com o futuro do ciberespaço, mas também com o sucesso dos nossos funcionários.