Skip to content

Latest commit

 

History

History
307 lines (279 loc) · 18.7 KB

README.md

File metadata and controls

307 lines (279 loc) · 18.7 KB

📌 KYRIOS - Plataforma de Análise Automatizada de Malwares em APK's Android


🗺 Tabela de conteúdos


📈 Diagrama

3 840


✒️ Detalhes do Projeto

🔍 Resumo da Proposta

O projeto visa desenvolver uma plataforma web para análise de programas maliciosos em arquivos APK (Android Application Package). Diversos estudos mostram um crescente número de vítimas alvo desses programas maliciosos, que teve um grande aumento após o período da pandemia do coronavírus (2020), com milhares de vítimas diárias dessas aplicações, reforçando a necessidade crítica dessa iniciativa. A proposta do projeto visa integrar diversas plataformas de análise já existentes com outras tecnologias embutidas, como, por exemplo, a API VirusTotal, implementação das Yara Rules, novas funcionalidades e tecnologias no processo de análise.

A nossa plataforma se destaca pela centralização e agilidade no acesso às informações sobre programas maliciosos, assim como a utilização de processos para análise dinâmica e estática dos arquivos em questão. Ao contrário dos métodos atuais, que são lentos, manuais e pouco intuitivos, onde a grande maioria possui apenas análises do tipo estáticas, oferecemos uma solução robusta e eficiente. Profissionais técnicos poderão obter rapidamente informações centralizadas, sem a necessidade de utilizar múltiplas ferramentas. Além disso, a plataforma é aberta para contribuições (open source), permitindo que especialistas contribuam com novas técnicas e ferramentas de análise.

Após a análi![3 840](https://github.com/user-attachments/assets/4ece046c-a527-4112-9978-584cb63a5ec7) se, os APKs processados serão armazenados em um banco de dados dedicado, transformando-se em uma valiosa fonte de consulta e tornando-se mais um diferencial da plataforma. Essa base de dados estará acessível através da plataforma web, proporcionando um recurso contínuo e expansível para futuras consultas e análises de segurança mais detalhadas.

A entrega final do MVP (Minimum Viable Product) visa fornecer uma plataforma estável, intuitiva e altamente disponível, com diversas ferramentas e serviços integrados. O MVP também será escalável, permitindo a adição de novas funcionalidades e a avaliação contínua de programas maliciosos.

O projeto está profundamente conectado com disciplinas de Redes de Computadores, especialmente Programação para Redes, aplicando conceitos de programação para sockets, uso de APIs (Application Programming Interface), acesso a bancos de dados e criação de um webservice próprio. A plataforma será estruturada e configurada em um ambiente Linux (Orange Pi 1.0.2 Bookworm, Debian based), utilizando os servidores web Nginx e Gunicorn, a linguagem Python, o framework Django, banco de dados PostgreSQL, e Dockers para análises mais avançadas. Além disso, serão implementadas outras tecnologias para garantir alta performance e segurança, assegurando um ambiente robusto e confiável para os usuários.

🔐 Introdução

A segurança de rede, em síntese, refere-se tanto à proteção contra o uso malicioso de informações, quanto à preservação da autenticidade e da confiabilidade de dados. Além disso, visa mitigar ameaças para manter a disponibilidade e a integridade. No entanto, evidencia-se o surgimento de Malwares, softwares feitos com a intenção de ameaçar um sistema e/ou seus usuários. Segundo Gandotra, Bansal e Sofat (2014), o Malware representa uma das ameaças mais difíceis enfrentadas pela Tecnologia da Informação atualmente, e aproximadamente 47% das organizações sofreram incidentes de segurança nos últimos anos.

Nesse contexto, este projeto visa facilitar o acesso das pessoas a informações sobre malwares, integrando ferramentas e técnicas que auxiliarão na análise e triagem de softwares que comprometem a estabilidade de serviços e a confidencialidade de usuários. Dessa forma, busca-se alcançar um ambiente mais confiável e seguro para os utilizadores de plataformas com sistema operacional Android.

De acordo com a pesquisa realizada por Djeena, Bouridane, Rubab e Marou (2023), evidencia-se uma era de guerra cibernética, na qual a espionagem virtual é uma prática altamente ativa nas plataformas Android. Além disso, constata-se que cerca de 50% dos novos malwares são variantes de outros já existentes. Portanto, torna-se imprescindível adotar estratégias de proteção contra essas ameaças para mitigá-las. A partir dessas considerações, busca-se demonstrar o desenvolvimento de meios para tal objetivo.

📄 Justificativa

Nos últimos anos, as ameaças à cibersegurança têm crescido exponencialmente, destacando a relevância deste projeto para enfrentar a proliferação de malware na era digital. Além disso, ao enfatizar a importância da educação e conscientização sobre segurança virtual, auxilia na proteção e preservação da integridade do ciberespaço.

A produção deste projeto tem como os principais diferenciais:
  1. Automatização de Processos Manuais na Análise: A automação é essencial para aumentar a eficiência na proteção contra programas mal-intencionados, proporcionando mais autonomia e agilidade no processo de análise.
  2. Integração de Serviços: A centralização de diversos serviços e APIs facilita o acesso a várias técnicas e ferramentas já existentes na comunidade de cibersegurança.
  3. Melhoria e Atualizações Contínuas: Implementação de um ciclo de feedback contínuo para aprimorar constantemente as técnicas de detecção e resposta a incidentes, com atualizações e inclusão de novas ferramentas.
  4. Análises Estáticas e Dinâmicas: Oferece a capacidade de realizar tanto análises estáticas quanto dinâmicas. Enquanto muitas plataformas se limitam às análises estáticas, a nossa utiliza Docker para executar análises dinâmicas, proporcionando uma visão mais aprofundada sobre o comportamento dos arquivos.
  5. Plataforma Web Intuitiva: Desenvolvemos uma interface web intuitiva que facilita a interação e operação da plataforma, melhorando a experiência do usuário.
  6. Histórico e Registro de Análises: Um diferencial significativo é a capacidade de cadastrar uma conta de usuário, permitindo o acompanhamento de todas as análises realizadas, com detalhamentos e relatórios completos. Isso proporciona um controle detalhado sobre as análises e facilita a gestão de dados e resultados.

O desenvolvimento deste projeto integra os conteúdos das seguintes disciplinas do Projeto Pedagógico do Curso (PPC) de Tecnologia em Redes de Computadores:
  1. Programação para Redes
    • Acesso a Banco de Dados:
      • Conexão e Consulta ao Banco de Dados: Estabelecimento de conexões e execução de consultas para recuperação de dados.
    • WebServices:
      • Desenvolvimento de Objetos e Classes: Criação de componentes reutilizáveis para facilitar a integração de serviços e clareza do código fonte.
      • Integração com o Banco de Dados: Utilização de dados armazenados em bancos de dados (Logins e Dados de Análises) em nossa plataforma web.
    • Geração de Scripts:
      • Geração de Scripts para Automatização da Análise: Desenvolvimento de scripts para automatizar as análises estáticas realizada no arquivo.
  2. Administração de Sistemas Abertos
    • Administração de Serviços de Rede:
      • Preparação e administração dos serviços de redes para suportar a demanda, conexões e garantir a sua estabilidade/disponibilidade.
    • Servidor Web (HTTP): Utilizado na criação de um servidor web por meio do Nginx para hospedar o projeto e fornecer acesso aos usuários.
    • Servidor de Acesso Remoto Seguro (SSH): Preparado o ambiente de acesso remoto ao servidor, onde os serviços estão sendo executados, com todas as etapas de segurança necessária, para garantir a sua integridade.

Este projeto integrador visa permitir que demonstremos nossos conhecimentos em práticas seguras no campo de Redes de Computadores, contribuindo para o impacto positivo na segurança cibernética e social.

🎯 Objetivo Geral e Objetivos Específicos

Este projeto tem como objetivos gerais:
  1. Criação e implementação dos serviços de redes e infraestrutura interna
    • Configurar o ambiente Linux com a devida segurança (SSH, Usuários, Permissões)
    • Configuração dos servidores web (Nginx e Gunicorn com WSGI)
    • Configurar os Serviços de DNS e domínios
    • Ajustar os serviços de Banco de dados e ajuste das credenciais
  2. Criação e integração do Front-end da plataforma web:
    • Implementar a interface gráfica da plataforma (HTML, CSS, Bootstrap)
    • Desenvolver a integração com a parte do Back-End e realizar testes.
    • Adaptação e melhorias constantes na interface conforme feedback.
  3. Criação e integração do Back-office com Django
    • Desenvolver funções para a administração centralizada de Serviços e Ferramentas
    • Implementar a integração e comunicação com Banco de dados
    • Realizar testes de carga e usabilidade das funções implementadas
  4. Criação de funções para análises estáticas
    • Implementar a criação de regras Yara e seus testes em arquivos APK
    • Implementação de Scripts em Python para detecção de padrões em arquivos APK
    • Automatização das ferramentas e funções, bem como os testes de carga e execução.
  5. Criação de ambiente para Análises Dinâmicas
    • Configurar ambiente de máquinas virtuais e Dockers para realizar análises de execução de APKs
    • Automatização dos processos de execução de scripts de análise em APKs
    • Retornar os dados de forma centralizada para a plataforma web, integrando todos os processos.
  6. Realizar a integração de Front, Back e APIs
    • Integração da parte do Front-end com o Back-office da Plataforma
    • Implementar comunicação eficiente com APIs externas (como o VirusTotal)
    • Garantir a comunicação eficiente entre todas as partes da aplicação.

📅 Planejamento de Sprints

SPRINT 1 - DATA (01/08/2024)

1.1 - Configurar o ambiente Linux com a devida segurança
2.1 - Configurar o framework Django para o desenvolvimento
2.2 - Integrar e conectar o Django aos serviços de redes necessários

SPRINT 2 - DATA (08/08/2024)

1.2 - Configuração dos servidores web
1.3 - Configurar os Serviços de DNS e domínios
1.4 - Criação do Banco de dados e Configuração Básica

SPRINT 3 - DATA (15/08/2024)

2.3 - Realizar a pré-integração/validação do backend com o frontend para envio de dados
1.4 - Ajustar os serviços de Banco de dados e ajuste das credenciais

SPRINT 4 - DATA (22/08/2024)

3.1 - Desenvolver a Estrutura de todo HTML, Layouts e estilos Bootstrap
4.1 - Configurar ambientes Docker para execução de análises dinâmicas

SPRINT 5 - DATA (29/08/2024)

Implementar métodos para a análise estática de arquivos APK
Validação de Login com Email e Banco de Dados devlopment Extra feature
Agregar API do VirusTotal ao projeto

SPRINT 6 - DATA (05/09/2024)

Agregar Análise Dinâmica
6.1 - Testar e validar a integração entre as diferentes camadas da aplicação
6.2 - Realização de uma massa de testes com Malwares reais e analisar os resultados fornecidos pela plataforma
6.3 - Finalizar a documentação da plataforma

Finalizando o SPRINT 6 - DIA 05/09/2024 - COM MVP PRONTO

📚 Documentação

Documentação de todas as ferramentas e tecnologias utilizadas no projeto:

[Dcumentação](https://github.com/kakanetwork/Kyrios/blob/main/Doc_Kyrios.pdf))

📚 Referências Bibliográficas

As referências bibliográficas a seguir são os estudos e trabalhos acadêmicos que embasaram a proposta deste projeto, fornecendo a fundamentação teórica necessária para a sua concepção e desenvolvimento:

  1. Djeena, B., Bouridane, A., Rubab, S., & Marou, F. (2023). Threats and Countermeasures in Mobile Ad Hoc Networks: A Review. Journal of Network and Computer Applications.
  2. Gandotra, E., Bansal, D., & Sofat, S. (2014). Malware analysis and classification: A survey. Journal of Information Security.


🏆 Pitch Deck - Entenda nosso Projeto

PitckDeck-Kyrios.mp4

⛳ Features

  • Configurar o ambiente linux
  • Configurar o ambiente do Django para desenvolvimento
  • Iniciar as possibilidades de emular android (testing)
  • Configuração dos Servidores Web
  • Configuração do DNS e Domínio
  • Criação do Banco de dados e Configuração Básica
  • Validação do Backend para enviar os dados
  • Protótipo da Análise Dinâmica
  • Desenvolver a estrutura do Frontend
  • Integrar novas ferramentas para análise
  • Implementação de métodos para Análises Estáticas
  • Testar e Validar a plataforma
  • Realizar a documentação da Plataforma

📝 Licença

Esse projeto está licenciado sob a licença do MIT LICENSE - veja o arquivo de LICENÇA para mais detalhes.


👀 Mais informações

Para mais informações sobre o projeto presente neste repositório ou para sugerir alterações e correções, entre em contato pelo Github ou Email.

Co-Fundador: kalvin.klein@escolar.ifrn.edu.br.
Co-Fundador: jose.bezerra1@escolar.ifrn.edu.br.
Orientador: galileu.batista@escolar.ifrn.edu.br.


Feito por: kakanetwork e JoJoseB
Orientado por: Galileu Batista