- š Diagrama
- š Pitch Deck - Entenda nosso Projeto
- āļø Detalhes do Projeto
- ā³ Features
- š Mais informaƧƵes
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
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.
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.
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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 tem como objetivos gerais:
- 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
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- 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
- 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.
- 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.
- 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.
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
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 de todas as ferramentas e tecnologias utilizadas no projeto:
[Dcumentação](https://github.com/kakanetwork/Kyrios/blob/main/Doc_Kyrios.pdf))
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:
- 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.
- Gandotra, E., Bansal, D., & Sofat, S. (2014). Malware analysis and classification: A survey. Journal of Information Security.
PitckDeck-Kyrios.mp4
- 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
Esse projeto estĆ” licenciado sob a licenƧa do MIT LICENSE - veja o arquivo de LICENĆA para mais detalhes.
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