O projeto AlertSearch consistiu na criação de uma aplicação capaz de fazer a leitura de eventos de segurança informática e ter a capacidade de analisar essa informação e conseguir identificar em tempo real a existência de problemas nos clientes para alertar a equipa de monitorização de segurança da Dognaedis.
Para a concretização deste projeto foram propostos diversos objetivos, dentro dos quais uma fase de adaptação as tecnologias implementadas na Dognaedis, incluindo a realização de tutorias em Python, visto que a capacidade de programar nesta linguagem essencial ao desenvolvimento do projeto AlertSearch.
Uma vez conciliados os conhecimentos que darão base ao projeto que neste caso são a capacidade de manipulação do ELK Stack e da linguagem Python, foi feito o levantamento dos requisitos da aplicação AlertSearch para dar inicio a fase de implementação da aplicação.
A partir desta fase, o desenvolvimento foi feito de uma forma gradual, por ciclos, seguindo a metodologia de desenvolvimento Agile Scrum, onde através de reuniões quinzenais era feito o acompanhamento do desenvolvimento e a discussão dos passos a seguir na implementação.
Graças ao bom planeamento inicial do AlertSearch, o seu desenvolvimento ocorreu de uma forma gradual e rápida, o que permitiu a possibilidade de implementar uma interface de manipulação, dando valor extra ao produto final, uma vez que através dela permite que qualquer utilizador consiga executar o AlertSearch sem grandes conhecimentos informáticos.
A interface de manipulação consegue manipular a aplicação AlertSearch interagindo com todos os plugins criados (AddUserAlert, ElasticsearchDisponibility Alert, EventSpikeAlert, OutOfHoursAlert e PortolanAlert), podendo com isto alterar as suas
Relatório de Estágio Projeto AlertSearch__________________________________________
68
configurações, sendo que também um dos fortes da interface é a capacidade de selecionar os
plugins a serem executados e iniciar ou parar o daemon.
Já perto do final do ciclo de desenvolvimento, pretendia-se que fossem realizados testes/revisões por outros elementos da Dognaedis, que não tivessem estado dentro ciclo de desenvolvimento. Por falta de tempo não foi possível realizar esses mesmos testes. No entanto a abordagem programar e testar logo foi sempre aplicada durante todo o desenvolvimento para garantir que aplicação fosse desenvolvida para satisfazer os requisitos inicialmente levantados.
No fim do desenvolvimento do AlertSearch, foi feita uma apresentação para toda a equipa da Dognaedis, demonstrando o funcionamento e todas as funcionalidades da aplicação, com o objetivo de dar a conhecer o projeto a todos os funcionários da Dognaedis e ainda ouvir as opiniões gerais acerca do projeto. Opiniões essas que foram extremamente positivas, tornando o projeto uma mais valia para a Dognaedis, sendo que futuramente será feita a sua instalação nos vários clientes da empresa ajudando assim a tarefa de monotorização da equipa de incidentes da Dognaedis.
No final da apresentação do AlertSearch, foram discutidas futuras implementações para uma nova versão. Destaca-se a criação de uma interface web, substituindo a atual interface de manipulação em terminal, com a vantagem de ter acesso ao AlertSearch em todo o lugar. Uma outra funcionalidade que seria útil seria a capacidade de dotar todos os plugins com diferentes níveis de criticidade de alerta, isto é, definir para cada plugin um nível de criticidade, e com base nesses níveis seriam enviados os alertas, em que em alguns casos seria enviado o alerta para todas os destinos, e noutros caso apenas para um único destino.
Por último e sendo esta a ideia mais ambiciosa, seria a criação de uma plataforma onde fosse possível a criação dos plugins de uma forma automática, no estilo clicar e arrastar. A mais valia desta plataforma de geração de plugins, é que qualquer pessoa pode criar plugins facilmente de uma forma intuitiva sem grandes conhecimentos informáticos.
_______________________________________________________Capítulo 7 – Conclusão
69
Por fim e concluindo este relatório de estágio, tenho de agradecer a todos os envolvidos tanto por parte da Dognaedis como do Instituto Politécnico da Guarda, por toda a ajuda prestada, contribuindo assim a aplicação de todos os conhecimentos adquiridos ao longo do curso de Engenharia Informática, que certamente serão uma mais valia no meu futuro profissional.
Relatório de Estágio Projeto AlertSearch__________________________________________
71
Bibliografia
Berman, Daniel. 2016. «The Cost of Doing the ELK Stack on Your Own». Logz.io. Julho 13. http://logz.io/blog/the-cost-of-doing-elk-stack-on-your-own/.
Costa, Marta. 2016. «Startup da Universidade de Coimbra alia-se à Prosegur | Notícias UC | A UC como nunca a viu.» Notícias UC. Acedido Dezembro 13.
http://noticias.uc.pt/universo-uc/startup-da-universidade-de-coimbra-alia-se-a- prosegur/.
Crockford, Douglas. 2006. «The application/json Media Type for JavaScript Object Notation (JSON)». Julho. https://tools.ietf.org/html/rfc4627.
Curtin, Matt. 2010. Brute Force: Cracking the Data Encryption Standard. Softcover reprint of hardcover 1st ed. 2005 edition. Copernicus.
Elmanytas. 2014. «Introducción a ELK (Elasticsearch, Logstash y Kibana) (parte 2) | Página web de elmanytas». Junho 26. http://elmanytas.es/?q=node/320.
Fonseca, José. 2011. Evaluating the [In]security of Web Applications: A New Perspective
towards a Safer Internet. LAP LAMBERT Academic Publishing.
Gillen, Graham. 2016. «Log Analytics Tools: Open Source vs. Commercial». Enterprise
Search and Big Data Experts. Acedido Dezembro 13.
http://www.searchtechnologies.com/blog/log-analytics-tools-open-source-vs- commercial.
Klein, Helge. 2016. «What is Splunk and How Does it Work? • Helge Klein». Acedido Dezembro 13. https://helgeklein.com/blog/2014/09/splunk-work/.
Kongthon, Alisa, Chatchawal Sangkeettrakarn, Sarawoot Kongyoung, e Choochart Haruechaiyasak. 2009. «Implementing an Online Help Desk System Based on Conversational Agent». Em Proceedings of the International Conference on
Management of Emergent Digital EcoSystems, 69:450–69:451. MEDES ’09. New
York, NY, USA: ACM. doi:10.1145/1643823.1643908.
Levy, Tomer. 2015. «Is open source overtaking Splunk?» InfoWorld. Novembro 4. http://www.infoworld.com/article/2998136/open-source-tools/is-open-source- overtaking-splunk.html.
Magnun. 2014. «A História do Python». Mind Bending. Outubro 8. http://mindbending.org/pt/a-historia-do-python.
Quentin L. 2016. «ElastAlert: Alerting At Scale With Elasticsearch, Part 2». Acedido Dezembro 13. https://engineeringblog.yelp.com/2016/03/elastalert-part-two.html. Schwaber, Ken. 2014. Agile Project Management with Scrum. Microsoft Press.
Shaw, Zed A. 2013. Learn Python the Hard Way: A Very Simple Introduction to the
Terrifyingly Beautiful World of Computers and Code. 3 edition. Upper Saddle
Relatório de Estágio Projeto AlertSearch__________________________________________
72
Sikorski, Michael, e Andrew Honig. 2012. Practical Malware Analysis: The Hands-On
Guide to Dissecting Malicious Software. 1 edition. San Francisco: No Starch Press.
Sissel, Jordan. 2016. «An Introduction to the ELK Stack (Now the Elastic Stack) | Elastic». Acedido Dezembro 13. https://www.elastic.co/webinars/introduction-elk-stack. Sommerville, Ian. 2007. Engenharia de Software. 8a ed. Addison-Wesley.
Splunk. 2016. «Pricing». Splunk. Acedido Dezembro 13. https://www.splunk.com/en_us/products/pricing.html.
Sumologic. 2016. «Continuous Intelligence, Log Management & Analytics». Sumo Logic. Acedido Dezembro 13. https://www.sumologic.com/.
Yelp. 2016. «Yelp/elastalert». GitHub. Acedido Dezembro 14. https://github.com/Yelp/elastalert.
Yigal, Asaf. 2016. «The Complete Guide to the ELK Stack». Logz.io. Maio 23. http://logz.io/learn/complete-guide-elk-stack/.
73