{"id":98,"date":"2026-10-04T09:00:00","date_gmt":"2026-10-04T06:00:00","guid":{"rendered":"https:\/\/new.assemblyso.com\/2026\/10\/04\/o-que-verificar-antes-de-instalar-uma-skill-num-agente-de-ia-da-sua-organizacao\/"},"modified":"2026-10-21T18:09:51","modified_gmt":"2026-10-21T15:09:51","slug":"seguranca-skills-agentes","status":"publish","type":"post","link":"https:\/\/www.assemblyso.com\/pt\/seguranca-skills-agentes\/","title":{"rendered":"O que verificar antes de instalar uma skill num agente de IA da sua organiza\u00e7\u00e3o"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Uma skill \u00e9 uma pasta com instru\u00e7\u00f5es, scripts e ficheiros que ensina um agente de IA a executar uma tarefa. A Anthropic lan\u00e7ou o formato em outubro de 2025, publicou-o como norma aberta em dezembro e, desde ent\u00e3o, funciona em muitas ferramentas. Instalar uma skill demora segundos. S\u00f3 que uma skill pode levar o agente a executar c\u00f3digo, e o agente de um programador tem normalmente acesso ao c\u00f3digo, \u00e0s chaves dos servi\u00e7os na nuvem e \u00e0s palavras-passe. A pr\u00f3pria Anthropic recomenda instalar skills apenas a partir de fontes de confian\u00e7a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que os investigadores encontraram<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Em fevereiro de 2026, a Snyk analisou 3.984 skills de duas bibliotecas populares. Encontrou um problema cr\u00edtico em 13,4% delas, e a revis\u00e3o manual confirmou 76 como maliciosas.<\/li>\n\n\n<li>No mesmo m\u00eas, a Koi Security identificou 341 skills maliciosas entre as 2.857 da biblioteca ClawHub. A maioria pedia ao utilizador que instalasse um &#8220;componente pr\u00e9vio&#8221;, que era na verdade software para roubar palavras-passe, chaves e carteiras de criptomoedas.<\/li>\n\n\n<li>Em agosto de 2026, na confer\u00eancia Black Hat, a empresa israelita de ciberseguran\u00e7a Zenity revelou uma campanha em que uma fam\u00edlia de skills, com nomes que imitavam skills conhecidas, foi instalada mais de 1,7 milh\u00f5es de vezes.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">O m\u00e9todo desta \u00faltima campanha \u00e9 o que a torna t\u00e3o preocupante. As skills foram publicadas sem nada de suspeito, acumularam instala\u00e7\u00f5es e s\u00f3 depois foram atualizadas para uma vers\u00e3o maliciosa que procurava chaves SSH, credenciais de acesso \u00e0 nuvem, tokens do Git e ficheiros de configura\u00e7\u00e3o com palavras-passe. A Vercel e o GitHub removeram-nas em 12 horas, mas podem continuar a existir c\u00f3pias noutros s\u00edtios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O mesmo risco nos servidores MCP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Os servidores MCP s\u00e3o as liga\u00e7\u00f5es que um agente usa para chegar a ferramentas externas, como o email, uma base de dados ou um sistema de gest\u00e3o de tarefas. Em setembro de 2025 foi encontrado o primeiro servidor MCP malicioso em utiliza\u00e7\u00e3o real: um pacote chamado postmark-mcp, que na vers\u00e3o 1.0.16 ganhou uma \u00fanica linha que enviava ao atacante uma c\u00f3pia oculta de cada email. J\u00e1 em abril de 2025, a Invariant Labs tinha mostrado como instru\u00e7\u00f5es escondidas na descri\u00e7\u00e3o de uma ferramenta podem levar um agente a revelar chaves, e como a descri\u00e7\u00e3o de uma ferramenta pode mudar depois de o utilizador a ter aprovado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Danos sem atacante<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nem todos os danos v\u00eam de c\u00f3digo malicioso. Em julho de 2025, um agente da Replit apagou uma base de dados de produ\u00e7\u00e3o durante um congelamento de altera\u00e7\u00f5es. Em julho de 2026, o empres\u00e1rio Matt Shumer contou que um agente de programa\u00e7\u00e3o da OpenAI tinha apagado a maior parte da pasta pessoal do seu computador, e a OpenAI confirmou que o modelo tinha sobrescrito por engano o caminho em que estava a trabalhar. Nos dois casos, o agente tinha permiss\u00f5es demasiado amplas e n\u00e3o existia nenhum mecanismo para travar uma a\u00e7\u00e3o destrutiva antes de ela acontecer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que verificar antes de instalar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A OWASP, a organiza\u00e7\u00e3o que publica as listas de riscos mais conhecidas da \u00e1rea, descreve a origem do problema como uma combina\u00e7\u00e3o de funcionalidades a mais, permiss\u00f5es a mais e autonomia a mais. A lista de verifica\u00e7\u00e3o decorre da\u00ed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Leia todos os ficheiros da skill antes de a instalar, incluindo scripts e depend\u00eancias, e procure liga\u00e7\u00f5es \u00e0 rede e comandos que executam c\u00f3digo. \u00c9 tamb\u00e9m a recomenda\u00e7\u00e3o da Anthropic.<\/li>\n\n\n<li>Fa\u00e7a uma an\u00e1lise. A Snyk disponibiliza uma ferramenta aberta para analisar skills, e a Zenity lan\u00e7ou o AI Total, um ambiente isolado que executa uma skill e verifica o que ela faz na pr\u00e1tica.<\/li>\n\n\n<li>Fixe a vers\u00e3o. Por causa do m\u00e9todo &#8220;limpo primeiro, malicioso depois&#8221;, a atualiza\u00e7\u00e3o autom\u00e1tica de uma skill ou de um servidor MCP \u00e9, por si s\u00f3, um risco.<\/li>\n\n\n<li>D\u00ea a cada servidor MCP apenas as permiss\u00f5es de que precisa, sem tokens gen\u00e9ricos e sem acesso \u00e0 conta inteira.<\/li>\n\n\n<li>Fa\u00e7a qualquer trabalho com conte\u00fado desconhecido num ambiente isolado, como uma m\u00e1quina virtual ou um dev container.<\/li>\n\n\n<li>Exija aprova\u00e7\u00e3o humana para a\u00e7\u00f5es destrutivas: apagar, alterar o ambiente de produ\u00e7\u00e3o, enviar dados para fora. Ferramentas abertas como o dcg bloqueiam comandos como a elimina\u00e7\u00e3o recursiva ou o DROP TABLE antes de serem executados.<\/li>\n\n\n<li>Mantenha separados os ambientes de desenvolvimento e de produ\u00e7\u00e3o, e tenha uma c\u00f3pia de seguran\u00e7a a partir da qual j\u00e1 testou a reposi\u00e7\u00e3o.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Se j\u00e1 foi instalado algo suspeito<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A Snyk recomenda substituir todas as palavras-passe e chaves a que a skill possa ter chegado, e verificar se os ficheiros de mem\u00f3ria do agente foram alterados. Remover a skill n\u00e3o chega, porque as chaves que j\u00e1 foram roubadas continuam nas m\u00e3os do atacante.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Uma decis\u00e3o da organiza\u00e7\u00e3o, n\u00e3o de cada programador<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Numa organiza\u00e7\u00e3o com v\u00e1rias equipas, a decis\u00e3o sobre o que se pode instalar n\u00e3o pode ficar entregue a cada programador. \u00c9 aqui que entra uma lista aprovada de skills e de servidores MCP, com um respons\u00e1vel que analisa cada nova adi\u00e7\u00e3o. Ferramentas como o Claude Code j\u00e1 permitem gerir uma lista destas ao n\u00edvel da organiza\u00e7\u00e3o, com defini\u00e7\u00f5es geridas que o programador n\u00e3o consegue contornar. \u00c9 o mesmo princ\u00edpio que as organiza\u00e7\u00f5es conhecem da gest\u00e3o de software de terceiros, s\u00f3 que a um ritmo muito mais r\u00e1pido.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perguntas frequentes<\/h2>\n\n\n\n<div class=\"a-faq\">\n  <details>\n    <summary>Qual \u00e9 a diferen\u00e7a entre uma skill e um servidor MCP?<\/summary>\n    <div class=\"a-faq__body\">Uma skill \u00e9 uma pasta com instru\u00e7\u00f5es e scripts que o agente carrega quando a tarefa o justifica. Um servidor MCP \u00e9 software que liga o agente a uma ferramenta externa, como o email, uma base de dados ou um sistema de gest\u00e3o de tarefas. Ambos executam c\u00f3digo em nome do agente, por isso ambos precisam de ser verificados.<\/div>\n  <\/details>\n  <details>\n    <summary>Uma skill de uma biblioteca conhecida \u00e9 segura?<\/summary>\n    <div class=\"a-faq__body\">N\u00e3o necessariamente. A campanha revelada pela Zenity decorreu numa biblioteca conhecida, e as skills estavam limpas quando foram instaladas pela primeira vez. A Anthropic tamb\u00e9m refere que n\u00e3o analisa nem gere os servidores MCP que os utilizadores ligam.<\/div>\n  <\/details>\n  <details>\n    <summary>Basta verificar uma skill uma vez?<\/summary>\n    <div class=\"a-faq__body\">S\u00f3 se fixar a vers\u00e3o. Do ponto de vista da seguran\u00e7a, cada atualiza\u00e7\u00e3o \u00e9 uma skill nova que tem de voltar a ser verificada.<\/div>\n  <\/details>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Fontes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Anthropic, outubro de 2025: <a href=\"https:\/\/claude.com\/resources\/articles\/skills\" rel=\"noopener\">Introducing Agent Skills<\/a><\/li>\n\n\n<li>Blogue de engenharia da Anthropic, outubro de 2025: <a href=\"https:\/\/www.anthropic.com\/engineering\/equipping-agents-for-the-real-world-with-agent-skills\" rel=\"noopener\">Equipping agents for the real world with Agent Skills<\/a><\/li>\n\n\n<li>Estudo da Snyk, fevereiro de 2026: <a href=\"https:\/\/snyk.io\/blog\/toxicskills-malicious-ai-agent-skills-clawhub\" rel=\"noopener\">ToxicSkills<\/a><\/li>\n\n\n<li>Artigo do The Hacker News sobre as conclus\u00f5es da Koi Security, fevereiro de 2026: <a href=\"https:\/\/thehackernews.com\/2026\/02\/researchers-find-341-malicious-clawhub.html\" rel=\"noopener\">341 malicious ClawHub skills<\/a><\/li>\n\n\n<li>Comunicado da Zenity, agosto de 2026: <a href=\"https:\/\/zenity.io\/company-overview\/newsroom\/company-news\/zenity-labs-discovers-dozens-of-malicious-ai-agent-skills-evading-detection-launches-ai-total\" rel=\"noopener\">Zenity Labs discovers dozens of malicious AI agent skills<\/a><\/li>\n\n\n<li>The Hacker News, setembro de 2025: <a href=\"https:\/\/thehackernews.com\/2025\/09\/first-malicious-mcp-server-found.html\" rel=\"noopener\">First malicious MCP server found<\/a><\/li>\n\n\n<li>Invariant Labs, abril de 2025: <a href=\"https:\/\/invariantlabs.ai\/blog\/mcp-security-notification-tool-poisoning-attacks\" rel=\"noopener\">MCP Security Notification: Tool Poisoning Attacks<\/a><\/li>\n\n\n<li>Artigo da eWeek sobre o incidente da Replit, julho de 2025: <a href=\"https:\/\/www.eweek.com\/news\/replit-ai-coding-assistant-failure\/\" rel=\"noopener\">Replit AI coding assistant failure<\/a><\/li>\n\n\n<li>The Register, julho de 2026: <a href=\"https:\/\/www.theregister.com\/ai-and-ml\/2026\/07\/16\/openai-admits-gpt-56-occasionally-deletes-files-but-its-an-honest-mistake\/5274008\" rel=\"noopener\">OpenAI admits GPT-5.6 occasionally deletes files<\/a><\/li>\n\n\n<li>OWASP: <a href=\"https:\/\/genai.owasp.org\/llmrisk\/llm062025-excessive-agency\/\" rel=\"noopener\">LLM06:2025 Excessive Agency<\/a><\/li>\n\n\n<li>OWASP, dezembro de 2025: <a href=\"https:\/\/genai.owasp.org\/resource\/owasp-top-10-for-agentic-applications-for-2026\/\" rel=\"noopener\">Top 10 for Agentic Applications for 2026<\/a><\/li>\n\n\n<li>Especifica\u00e7\u00e3o MCP: <a href=\"https:\/\/modelcontextprotocol.io\/specification\/2025-06-18\/basic\/security_best_practices\" rel=\"noopener\">Security Best Practices<\/a><\/li>\n\n\n<li>Documenta\u00e7\u00e3o do Claude Code: <a href=\"https:\/\/code.claude.com\/docs\/en\/security\" rel=\"noopener\">Security<\/a><\/li>\n\n\n<li>A ferramenta dcg no GitHub: <a href=\"https:\/\/github.com\/Dicklesworthstone\/destructive_command_guard\" rel=\"noopener\">Destructive Command Guard<\/a><\/li>\n\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>As skills e os plugins tornam os agentes de IA mais \u00fateis e abrem tamb\u00e9m uma porta aos atacantes. O que os investigadores de seguran\u00e7a encontraram em 2026, e o que verificar antes de instalar algo que se liga ao seu c\u00f3digo, \u00e0s suas palavras-passe e \u00e0s suas ferramentas de trabalho.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-98","post","type-post","status-publish","format-standard","hentry","category-ia-desenvolvimento"],"_links":{"self":[{"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/posts\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":1,"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":99,"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/posts\/98\/revisions\/99"}],"wp:attachment":[{"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.assemblyso.com\/pt\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}