Smelly Kube: a tool to detect security smells in Kubernetes manifests
| Ano de defesa: | 2024 |
|---|---|
| Autor(a) principal: | |
| Outros Autores: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Universidade Federal de Lavras
Instituto de Ciências Exatas e Tecnológicas (ICET) |
| Programa de Pós-Graduação: |
Programa de Pós-Graduação em Ciência da Computação
|
| Departamento: |
Departamento de Ciência da Computação
|
| País: |
brasil
|
| Palavras-chave em Português: | |
| Área do conhecimento CNPq: | |
| Link de acesso: | https://repositorio.ufla.br/handle/1/60248 |
Resumo: | The adoption of microservices-based architectures has become common in modern web applications. Kubernetes stands out as a leading platform for managing and orchestrating these services due to its scalability and ability to handle complex environments. However, security risks often arise when Kubernetes manifests are not carefully designed. To address this issue, the tool Smelly Kube (SK) was developed, following a client/server architecture: i) Client: a Visual Studio Code plugin that sends Kubernetes manifests to a Golang-based server via HTTP requests, providing developers with a straightforward interface for performing security checks directly in their development environment, and ii) Server: a Golang application that processes these manifests to detect and analyze security smells. This architecture ensures that developers can easily integrate security checks into their workflows using other tools and platforms by reusing the same server API. To validate the tool’s effectiveness, an experiment was conducted, applying SK to 2,107 Kubernetes applications after sanitizing 5,055 Cloud Native packages sourced from Artifact Hub. Another dataset of 183,225 Kubernetes manifests was provided from GitHub. The results demonstrated that SK successfully detected a wide range of security smells, providing valuable insights for developers and helping to improve the overall security of Kubernetes-based microservices. |
| id |
UFLA_d855f7863ceb68742b6ed87cbf0c9cf8 |
|---|---|
| oai_identifier_str |
oai:repositorio.ufla.br:1/60248 |
| network_acronym_str |
UFLA |
| network_name_str |
Repositório Institucional da UFLA |
| repository_id_str |
|
| spelling |
Durelli, Rafael SerapilhaMalheiros, Neumar CostaBorges, Hudson SilvaCorreia, Luiz Henrique Andradehttp://lattes.cnpq.br/2900171687070459Borges, Vitor Oriel de Castro Nuneshttps://orcid.org/0009-0003-8818-12632025-08-27T21:55:12Z2024-12-16BORGES, Vitor Oriel de Castro Nunes. Smelly Kube: a tool to detect security smells in Kubernetes manifests. 2025. 86 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Lavras, Lavras, 2024.https://repositorio.ufla.br/handle/1/60248The adoption of microservices-based architectures has become common in modern web applications. Kubernetes stands out as a leading platform for managing and orchestrating these services due to its scalability and ability to handle complex environments. However, security risks often arise when Kubernetes manifests are not carefully designed. To address this issue, the tool Smelly Kube (SK) was developed, following a client/server architecture: i) Client: a Visual Studio Code plugin that sends Kubernetes manifests to a Golang-based server via HTTP requests, providing developers with a straightforward interface for performing security checks directly in their development environment, and ii) Server: a Golang application that processes these manifests to detect and analyze security smells. This architecture ensures that developers can easily integrate security checks into their workflows using other tools and platforms by reusing the same server API. To validate the tool’s effectiveness, an experiment was conducted, applying SK to 2,107 Kubernetes applications after sanitizing 5,055 Cloud Native packages sourced from Artifact Hub. Another dataset of 183,225 Kubernetes manifests was provided from GitHub. The results demonstrated that SK successfully detected a wide range of security smells, providing valuable insights for developers and helping to improve the overall security of Kubernetes-based microservices.A adoção de arquiteturas baseadas em microserviços tornou-se comum em aplicações web modernas. O Kubernetes se destaca como uma plataforma líder para gerenciar e orquestrar esses serviços devido à sua escalabilidade e capacidade de lidar com ambientes complexos. No entanto, riscos de segurança frequentemente surgem quando os manifestos do Kubernetes não são cuidadosamente projetados. Para resolver essa questão, a ferramenta Smelly Kube (SK) foi desenvolvida, seguindo uma arquitetura cliente/servidor: i) Cliente: um plugin do Visual Studio Code que envia manifestos do Kubernetes para um servidor baseado em Golang via requisições HTTP, oferecendo aos desenvolvedores uma interface simples para realizar verificações de segurança diretamente em seu ambiente de desenvolvimento, e ii) Servidor: uma aplicação Golang que processa esses manifestos para detectar e analisar malcheiros de segurança. Essa arquitetura garante que os desenvolvedores possam integrar facilmente as verificações de segurança em seus fluxos de trabalho, reutilizando a mesma API do servidor com outros ferramentas e plataformas. Para validar a eficácia da ferramenta, foi realizado um experimento, aplicando o SK em 2.107 aplicações Kubernetes após a sanitização de 5.055 pacotes Cloud Native provenientes do Artifact Hub. Outro conjunto de dados, contendo 183.225 manifestos Kubernetes, foi fornecido do GitHub. Os resultados demonstraram que o SK detectou com sucesso uma ampla gama de malcheiros segurança, fornecendo insights valiosos para os desenvolvedores e ajudando a melhorar a segurança geral dos microserviços baseados em Kubernetes.Arquivo retido, a pedido da autora, até julho de 2026.TecnológicoTecnologia e produçãoODS 9: Indústria, inovação e infraestruturaUniversidade Federal de LavrasInstituto de Ciências Exatas e Tecnológicas (ICET)Programa de Pós-Graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoAttribution 3.0 Brazilhttp://creativecommons.org/licenses/by/3.0/br/info:eu-repo/semantics/openAccessCiências Exatas e da TerraKubernetesSegurança de redes de computadoresComputação em nuvemSegurança de softwareAnálise estáticaComputer network securityCloud computingSoftware securityStatic analysisSmelly Kube: a tool to detect security smells in Kubernetes manifestsSmelly Kube: uma Ferramenta para detectar malcheiros de segurança em manifestos Kubernetesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttps://github.com/VitorOriel/ppgcc-uflaengreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLAORIGINALTexto completoTexto completoapplication/pdf2004824https://repositorio.ufla.br/bitstreams/33fc8cbe-4a6e-4ad1-8717-b0c295060fba/download61bddd5b6ad69a6a46ab1211d457fc0cMD51trueAnonymousREAD2026-08-05Impactos da pesquisaImpactos da pesquisaapplication/pdf307825https://repositorio.ufla.br/bitstreams/0d8cba24-fe42-45be-bc40-af3cf0fdf28c/downloade8265510f1588f0e6ca9c59ab9bac831MD52falseAnonymousREAD2026-08-05LICENSElicense.txtlicense.txttext/plain; charset=utf-8955https://repositorio.ufla.br/bitstreams/1a55e1d5-4281-4077-91c8-d99f6dc32924/downloaddc1a173fe9489e283d3a1f54f6ab2ab9MD53falseAnonymousREADCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-81025https://repositorio.ufla.br/bitstreams/3b81b0bd-fff8-4c1d-b2e3-22b6209079a4/download5a033ee506f3a0a175bee8fc81f0bd66MD54falseAnonymousREADTEXTTexto completo.txtTexto completo.txtExtracted texttext/plain100372https://repositorio.ufla.br/bitstreams/97ba28f9-fa4f-4a7b-8bb7-5b94f6d2b598/downloada20308822c0a3b9a3ae49a87d9e9d561MD55falseAnonymousREAD2026-08-05Impactos da pesquisa.txtImpactos da pesquisa.txtExtracted texttext/plain6366https://repositorio.ufla.br/bitstreams/c1a63030-0eae-4fc4-86ac-eb42c030d440/download2c150f0d18f3edd74ce5448b43f2fe31MD57falseAnonymousREAD2026-08-05THUMBNAILTexto completo.jpgTexto completo.jpgGenerated Thumbnailimage/jpeg3059https://repositorio.ufla.br/bitstreams/b8b2a130-a583-4a3a-afcc-c4e2126749e1/download084d1f793885f91f1965a87ce989677aMD56falseAnonymousREAD2026-08-05Impactos da pesquisa.jpgImpactos da pesquisa.jpgGenerated Thumbnailimage/jpeg5176https://repositorio.ufla.br/bitstreams/167f42a3-60a5-494c-8158-949215eeaf1c/download242ba0d6b5ac62a2847caec2c137ae02MD58falseAnonymousREAD2026-08-051/602482025-09-08 09:19:17.647http://creativecommons.org/licenses/by/3.0/br/Attribution 3.0 Brazilembargo2026-08-05oai:repositorio.ufla.br:1/60248https://repositorio.ufla.brRepositório InstitucionalPUBhttps://repositorio.ufla.br/server/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2025-09-08T12:19:17Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)falseREVDTEFSQcOHw4NPIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCk8gcmVmZXJpZG8gYXV0b3I6CgphKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBzZXUgdHJhYmFsaG8gb3JpZ2luYWwsIGUgcXVlIGRldMOpbSBvIGRpcmVpdG8gZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIERlY2xhcmEgdGFtYsOpbSBxdWUgYSBlbnRyZWdhIGRvIGRvY3VtZW50byBuw6NvIGluZnJpbmdlLCB0YW50byBxdWFudG8gbGhlIMOpIHBvc3PDrXZlbCBzYWJlciwgb3MgZGlyZWl0b3MgZGUgcXVhbHF1ZXIgb3V0cmEgcGVzc29hIG91ICBlbnRpZGFkZS4KCmIpIFNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCBuw6NvIGRldMOpbSBvcyBkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGF1dG9yaXphw6fDo28gZG8gZGV0ZW50b3IgZG9zIGRpcmVpdG9zIGRlIGF1dG9yIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgTGF2cmFzIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MgZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbwpubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLiBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBiYXNlYWRvIGVtIHRyYWJhbGhvIGZpbmFuY2lhZG8gb3UgYXBvaWFkbyBwb3Igb3V0cmEgaW5zdGl0dWnDp8OjbyBxdWUgbsOjbyBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIExhdnJhcywgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIgb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCg== |
| dc.title.none.fl_str_mv |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| dc.title.alternative.none.fl_str_mv |
Smelly Kube: uma Ferramenta para detectar malcheiros de segurança em manifestos Kubernetes |
| title |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| spellingShingle |
Smelly Kube: a tool to detect security smells in Kubernetes manifests Borges, Vitor Oriel de Castro Nunes Ciências Exatas e da Terra Kubernetes Segurança de redes de computadores Computação em nuvem Segurança de software Análise estática Computer network security Cloud computing Software security Static analysis |
| title_short |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| title_full |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| title_fullStr |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| title_full_unstemmed |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| title_sort |
Smelly Kube: a tool to detect security smells in Kubernetes manifests |
| author |
Borges, Vitor Oriel de Castro Nunes |
| author_facet |
Borges, Vitor Oriel de Castro Nunes https://orcid.org/0009-0003-8818-1263 |
| author_role |
author |
| author2 |
https://orcid.org/0009-0003-8818-1263 |
| author2_role |
author |
| dc.contributor.referee.none.fl_str_mv |
Durelli, Rafael Serapilha Malheiros, Neumar Costa Borges, Hudson Silva |
| dc.contributor.advisor1.fl_str_mv |
Correia, Luiz Henrique Andrade |
| dc.contributor.authorLattes.fl_str_mv |
http://lattes.cnpq.br/2900171687070459 |
| dc.contributor.author.fl_str_mv |
Borges, Vitor Oriel de Castro Nunes https://orcid.org/0009-0003-8818-1263 |
| contributor_str_mv |
Correia, Luiz Henrique Andrade |
| dc.subject.cnpq.fl_str_mv |
Ciências Exatas e da Terra |
| topic |
Ciências Exatas e da Terra Kubernetes Segurança de redes de computadores Computação em nuvem Segurança de software Análise estática Computer network security Cloud computing Software security Static analysis |
| dc.subject.por.fl_str_mv |
Kubernetes Segurança de redes de computadores Computação em nuvem Segurança de software Análise estática Computer network security Cloud computing Software security Static analysis |
| description |
The adoption of microservices-based architectures has become common in modern web applications. Kubernetes stands out as a leading platform for managing and orchestrating these services due to its scalability and ability to handle complex environments. However, security risks often arise when Kubernetes manifests are not carefully designed. To address this issue, the tool Smelly Kube (SK) was developed, following a client/server architecture: i) Client: a Visual Studio Code plugin that sends Kubernetes manifests to a Golang-based server via HTTP requests, providing developers with a straightforward interface for performing security checks directly in their development environment, and ii) Server: a Golang application that processes these manifests to detect and analyze security smells. This architecture ensures that developers can easily integrate security checks into their workflows using other tools and platforms by reusing the same server API. To validate the tool’s effectiveness, an experiment was conducted, applying SK to 2,107 Kubernetes applications after sanitizing 5,055 Cloud Native packages sourced from Artifact Hub. Another dataset of 183,225 Kubernetes manifests was provided from GitHub. The results demonstrated that SK successfully detected a wide range of security smells, providing valuable insights for developers and helping to improve the overall security of Kubernetes-based microservices. |
| publishDate |
2024 |
| dc.date.issued.fl_str_mv |
2024-12-16 |
| dc.date.accessioned.fl_str_mv |
2025-08-27T21:55:12Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.citation.fl_str_mv |
BORGES, Vitor Oriel de Castro Nunes. Smelly Kube: a tool to detect security smells in Kubernetes manifests. 2025. 86 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Lavras, Lavras, 2024. |
| dc.identifier.uri.fl_str_mv |
https://repositorio.ufla.br/handle/1/60248 |
| identifier_str_mv |
BORGES, Vitor Oriel de Castro Nunes. Smelly Kube: a tool to detect security smells in Kubernetes manifests. 2025. 86 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Lavras, Lavras, 2024. |
| url |
https://repositorio.ufla.br/handle/1/60248 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| dc.relation.dadosabertos.none.fl_str_mv |
https://github.com/VitorOriel/ppgcc-ufla |
| dc.rights.driver.fl_str_mv |
Attribution 3.0 Brazil http://creativecommons.org/licenses/by/3.0/br/ info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
Attribution 3.0 Brazil http://creativecommons.org/licenses/by/3.0/br/ |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Lavras Instituto de Ciências Exatas e Tecnológicas (ICET) |
| dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Ciência da Computação |
| dc.publisher.initials.fl_str_mv |
UFLA |
| dc.publisher.country.fl_str_mv |
brasil |
| dc.publisher.department.fl_str_mv |
Departamento de Ciência da Computação |
| publisher.none.fl_str_mv |
Universidade Federal de Lavras Instituto de Ciências Exatas e Tecnológicas (ICET) |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFLA instname:Universidade Federal de Lavras (UFLA) instacron:UFLA |
| instname_str |
Universidade Federal de Lavras (UFLA) |
| instacron_str |
UFLA |
| institution |
UFLA |
| reponame_str |
Repositório Institucional da UFLA |
| collection |
Repositório Institucional da UFLA |
| bitstream.url.fl_str_mv |
https://repositorio.ufla.br/bitstreams/33fc8cbe-4a6e-4ad1-8717-b0c295060fba/download https://repositorio.ufla.br/bitstreams/0d8cba24-fe42-45be-bc40-af3cf0fdf28c/download https://repositorio.ufla.br/bitstreams/1a55e1d5-4281-4077-91c8-d99f6dc32924/download https://repositorio.ufla.br/bitstreams/3b81b0bd-fff8-4c1d-b2e3-22b6209079a4/download https://repositorio.ufla.br/bitstreams/97ba28f9-fa4f-4a7b-8bb7-5b94f6d2b598/download https://repositorio.ufla.br/bitstreams/c1a63030-0eae-4fc4-86ac-eb42c030d440/download https://repositorio.ufla.br/bitstreams/b8b2a130-a583-4a3a-afcc-c4e2126749e1/download https://repositorio.ufla.br/bitstreams/167f42a3-60a5-494c-8158-949215eeaf1c/download |
| bitstream.checksum.fl_str_mv |
61bddd5b6ad69a6a46ab1211d457fc0c e8265510f1588f0e6ca9c59ab9bac831 dc1a173fe9489e283d3a1f54f6ab2ab9 5a033ee506f3a0a175bee8fc81f0bd66 a20308822c0a3b9a3ae49a87d9e9d561 2c150f0d18f3edd74ce5448b43f2fe31 084d1f793885f91f1965a87ce989677a 242ba0d6b5ac62a2847caec2c137ae02 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA) |
| repository.mail.fl_str_mv |
nivaldo@ufla.br || repositorio.biblioteca@ufla.br |
| _version_ |
1854947776744390656 |