• Nenhum resultado encontrado

Esta dissertação propõe a utilização de um método para a realização de testes de segurança baseado em modelos. Mais especificamente, o modelo representa o comportamento do atacante, e não do sistema, o que permite reutilizar o modelo em diversas aplicações, mudando-se a interface de acordo com o sistema em testes. O comportamento do atacante é representado por um modelo de estados. Apesar do método ser aplicável a diversos tipos de vulnerabilidades, neste estudo foram enfocadas SQL Injection e Cross Site Scripting. Para a validação do método, utilizamos um conjunto de 21 serviços web, sendo que inicialmente os proponentes do método o utilizaram no contexto de testes de aplicações web. Apesar de o método ser o mesmo, o tipo de aplicações testadas obrigou a fazer mudanças em relação ao método original já que a estrutura dos serviços web é diferente de aplicações web. A abordagem proposta baseia-se na execução do modelo do atacante, e utiliza um conjunto de entradas maliciosas para realizar os ataques. A seleção das entradas é um aspecto fundamental no método, para que este seja efetivo na detecção de vulnerabilidades. Neste trabalho, estas entradas foram geradas manualmente, com base em informações contidas em bancas de dados de disponibilidade existentes. Um outro aspecto importante em qualquer teste diz respeito a análise de resultados. Diferentemente da proposta original, foram utilizadas aqui regras bem definidas, baseadas em outras propostas, para detectar e confirmar possíveis vulnerabilidades e reduzir ao máximo os falsos positivos. A avaliação foi realizada em 21 serviços de um benchmark criado para avaliar métodos e ferramentas para detecção de vulnerabilidades do tipo SQLI. Os resultados mostram que nossa abordagem é efetiva e alcança resultados competitivos com outras ferramentas de testes de penetração.

Uma vez que a modelagem do comportamento do atacante já tinha sido proposta por [7], a principal contribuição deste documento está no facto de ter conseguido mostrar que podemos aplicar o mesmo raciocínio em um ambiente diferente daquele que os o proponente colocou, facto que podemos sustentar ao observar o número de vulnerabilidades detectadas que é o objetivo dos testes de penetração que desejávamos realizar.

Um desafio que temos de realizar no futuro é ver como aplicar o método para outro tipo de vulnerabilidades, como por exemplo, ataques de negação de serviço. Outro ponto, já mencionado no capítulo anterior é a necessidade de melhorar o critério de seleção de testes de forma a ter mais eficiência na detecção de vulnerabilidades. E finalmente, a melhoria da

observabilidade, para que a detecção de erros se dê o mais próximo possível do ponto de ocorrência.

Referências

[1] V. R. Mouli e K. P. Jevitha, “Web Services Attacks and Security-A Systematic Literature Review,” em Proceedings of the 6th International Conference on Advances in Computing and Communications, Cochin, 2016.

[2] N. Antunes e M. Vieira, “Detecting SQL injection vulnerabilities in web services,” em 2009 Fourth Latin-American Symposium on Dependable Computing, Joao Pessoa, 2009. [3] H. Kreger, “Web services conceptual architecture,” IBM software group 5.1, pp. 6-7, May

2001.

[4] C. Nothegger, S. Winter e M. Raubal, “Selection of salient features for route directions,” Spatial cognition and computation, pp. 113-136, 2004.

[5] N. Antunes e M. Vieira, “Security testing in SOAs: Techniques and tools,” Innovative Technologies for Dependable OTS-Based Critical Systems, pp. 159-174, 2013. [6] N. Antunes, M. Vieira e H. Madeira, “Effective detection of SQL/XPath injection

vulnerabilities in web services.,” Services Computing, 2009. SCC'09. IEEE International Conference, pp. 260-267, 2009.

[7] J. Bozic e F. Wotawa, “Security Testing Based On Attack Patterns,” em IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops (ICSTW, Cleveland, 2014.

[8] M. Felderer, P. Zech, R. Breu, M. Buschler e A. Pretschner, “Model‐based security testing: a taxonomy and systematic classification,” Software Testing, Verification and Reliability, pp. 119-148, 2016.

[9] D. Benslimane, S. Dustdar e A. Sheth, “Services mashups: The new generation of web applications,” IEEE Internet Computing, vol. 12, nº 5, pp. 13-15, 2008.

[10] G. Della-Libera, B. Dixon, J. Farrell, P. Garg, M. Hondo, C. Kaler e J. Manferdelli, “Security in a web services world: A proposed architecture and roadmap,” 7 Abril 2002. [Online].

Available: https://msdn.microsoft.com/en-us/library/ms977312.aspx?f=255&MSPPError=- 2147217396.

[11] H. Kreger, “Web services conceptual architecture,” (WASCA)IBM software group, pp. 6-7, 2001.

[12] B. Suda, “Soap web services,” 2003.

[13] Kumar, “Best Practices for Building RESTful Web services. Bangalore,” 2015. [Online]. Available: https://www. infosys. com/digital/insights/Documents/restful-web-services. pdf: https://www. infosys. com/digital/insights/Documents/restful-web-services. pdf. . [Acesso em 25 Julho 2018].

[14] W. Stallings, Cryptography and Network Security. Principles and Practise”., Pearson/Prentice Hall, 2011.

[15] G. Disterer, “ISO/IEC 27000, 27001 and 27002 for information security management.,” 2013. [16] J. M. Stewart, M. Chapple e D. Gibson, CISSP: Certified Information Systems Security

Professional Study GuideCISSP: Certified Information Systems Security Professional Study Guide, John Wiley & Sons, 2012.

[17] H. Shahriar e M. Zulkernine, “Automatic testing of program security vulnerabilities.,” em COMPSAC'09. 33rd Annual IEEE International, 2009.

[18] O. T. 10, “OWASP TOP,” [Online]. Available: 39http://blog.securelayer7.net/owasp-top-10- penetration-testing-soap-application-mitigation/. [Acesso em 18 Maio 2018].

[19] J. Garcia-Alfaro e G. Navarro-Arribas, “A survey on cross-site scripting attacks,” 2009. [20] J. Clarke-Salt, em SQL injection attacks and defens, Elsevier., 2009.

[21] Halfond, “A classification of SQL-injection attacks and countermeasures.,” em Proceedings of the IEEE International Symposium on Secure Software Engineering, 2006.

[22] J. Grosssman, R. Hansen e S. Fogie, XSS Attacks: Cross-site scripting exploits and defense., Syngress, 2007.

[23] D. Stuttard e M. Pinto, The web application hacker's handbook: Finding and exploiting security flaws, John Wiley & Sons, 2011.

[24] A. Klein, “Cross site scripting explained,” Sanctum White Paper, 2002.

[25] D. M. Kienzle e M. C. Elder, “Recent worms: a survey and trends,” em Proceedings of the 2003 ACM workshop on Rapid malcode, 2003.

[26] J. Hong, “The state of phishing attacks,” Communications of the ACM 55.1, pp. 74-81, 2012. [27] U. o. Merilland, “FindBugsTM,” [Online]. Available: http://findbugs. sourceforge.net/. [28] IntelliJ IDEA, “JetBrains: IntelliJ IDEA),” [Online]. Available:

https://www.jetbrains.com/idea/.

[29] N. Jovanovic, E. Kirda. e C. Kruegel,, “Pixy: A static analysis tool for detecting Web application vulnerabilities,” 2006.

[30] IEEE, “IEEE Standard Glossary of Software Engineering Terminology 610.12-1990,” 1990. [31] J. B. Goodenough e S. L. Gerhart, “Toward a theory of test data selection,” em IEEE

Transactions on software Engineering,, 1975.

[32] M. E. Khan, “Different forms of software testing techniques for finding errors,” International Journal of Computer Science Issues, 2010.

[33] A. Pretschner, W. Prenninger, S. Wagner e C. Kuhnel, “One evaluation of model-based testing and its automation,” em Proceedings of the 27th international conference on Software engineering, St. Louis, MO, USA, 2005.

[34] M. Utting, A. Pretschner e B. Leagerd, “A taxonomy of model-based testing,” Software Testing, Verification & Reliability, vol. 22, nº 5, pp. 297-312, 2012.

[35] M. Utting, A. Pretschner e B. Leagard, “A taxonomy of model‐based testing approache.,” Software Testing, Verification and Reliability, pp. 297-312, 2012.

[36] L. Qian, J. Wan, L. Chen e X. Chen, “Complete Web Security Testing Methods and Recommendations,” Computer Sciences and Applications (CSA), 2013 International Conference, pp. 86-89, 2013.

[37] G. Tian-Yang, S. Yin-Sheng e F. You-Yuan, “Research on software security testing.,” World Academy of Science, Engineering and Technology I, p. 647–651, 2010.

[38] M. Sutton, G. Adam e A. Pedran, Fuzzing: brute force vulnerability discovery., Pearson Education, 2007.

[39] P. A. Salas , K. Pari, R. Padmanabhan e K. J. Ross, “Model-based security vulnerability testing,” em Proceedings of the 2007 Australian Software Engineering Conference (ASWEC'07), Melborne, 2007.

[40] T. Trugular, O. Kaya, C. A. Muftuoglu e F. Belli, “Directed acyclic graph modeling of security policies for firewall testing,” em 2009 Third IEEE International Conference on Secure Software Integration and Reliability Improvement, Shanghai, 2009.

[41] F. Belli, N. Nissanke, C. J. Budnik e A. Mathur, “Test generation using event sequence graphs,” 2015.

[42] F. Duchene, R. Groz, S. Rawat e J. L. Richier, “XSS vulnerability detection using model

inference assisted evolutionary fuzzing,” em Testing, Verification and Validation (ICST), 2012 IEEE Fifth International Conference In Software on(pp., Montreal, QC, 2012.

[43] A. Marback, H. Do, K. He, S. Kondamarri e D. Xu, “A threat model‐based approach to security testing,” Software: Practice and Experience, vol. 24, pp. 241-258, 2 February 2012.

[44] E. Fourneret, M. Ochoa, F. Bouquet, F. Botella, J. Jurgens e P. Yousefi, “Model-based security verification and testing for smart-cards,” em 2011 Sixth International Conference on

Availability, Reliability and Security, Vienna, 2011.

[45] J. Jurjens, “Model-based security engineering with UML,” Foundations of Security Analysis and Design III, pp. 42-77, 2005.

[46] W. Tian, J. F. Yang, J. Xu e G. N. Si, “Attack model based penetration test for SQL injection vulnerability,” .Computer Software and Applications Conference Workshops (COMPSACW), 2012 IEEE 36th Annual, pp. 589-594, Julho 2012.

[47] B. Yan, X. Li e Z. Du, “A Threat Model-Driven Security Testing Approach for Web

Application,” em International Conference on E-business Technology and Strategy, Berlin, 2012.

[48] F. Lebeau, B. Legeard, F. Peureux e A. Vernotte, “Model-based vulnerability testing for web applications,” em 2013 IEEE Sixth International Conference Software Testing, Verification and Validation Workshops (ICSTW), Luxembourg, 2013.

[49] A. N. Gupta e S. P. Thilagam, “Attacks on web services need to secure XML on web,” Computer Science & Engineering, p. 1, 2013.

[50] A. Moore, R. Ellison e R. Linger, “Attack modeling for information security and survivability,” Carnegie-Mellon Univ Pittsburgh Pa Software Engineering Inst., 2001.

[51] Yakindu. [Online]. Available: https://www.itemis.com/en/yakindu/state-machine/. [Acesso em 1 Agosto 2018].

[52] J. Bozic, D. Simons e F. Wotawa, “Attack Pattern-basead combinatorial testing,” em Proceedings of the 9th International Workshop on Automation of Workshop Test, 2014. [53] N. Antunes, “tools_narcisio,” [Online]. Available: https://github.com/wsvd/tools-narcisio. [54] M. Salas e E. Martins, “Security testing methodology for vulnerabilities detection of XSS in

web services and WS-security,” Electronic Notes in Theoretical Computer Science, pp. 133- 154., 2014.

[55] Smartbear, “SOAPUI,” [Online]. Available: https://www.soapui.org/. [Acesso em 1 Maio 2018].

[56] L. Richardson e S. Ruby, RESTful Web Services, O´Reilly, 2007. [57] I. Schieferdecker, “Model-based testing.,” IEEE software, p. 14, 2012.

[58] R. T. Fielding e R. N. Taylor, “Architectural styles and the design of network-based software architectures,” Irvine, California, 2000.

Documentos relacionados