{"id":20279,"date":"2021-07-14T08:19:37","date_gmt":"2021-07-14T15:19:37","guid":{"rendered":"https:\/\/blog.webex.com\/uncategorized-pt-br\/licoes-da-solarwinds-uma-avaliacao-de-bibliotecas-de-terceiros\/"},"modified":"2021-08-03T06:36:45","modified_gmt":"2021-08-03T13:36:45","slug":"licoes-da-solarwinds-uma-avaliacao-de-bibliotecas-de-terceiros","status":"publish","type":"post","link":"https:\/\/blog.webex.com\/pt-br\/customer-stories\/licoes-da-solarwinds-uma-avaliacao-de-bibliotecas-de-terceiros\/","title":{"rendered":"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros"},"content":{"rendered":"<p>A SolarWinds divulgou em dezembro de 2020 que seu produto Orion esteve na mira de um ataque de grande escala, que, em contrapartida, deu ao respons\u00e1vel pelo ataque um backdoor na infraestrutura de diversos clientes da empresa, incluindo, em especial, v\u00e1rias ag\u00eancias governamentais. O \u00e2mbito dessa viola\u00e7\u00e3o trouxe uma aten\u00e7\u00e3o em especial \u00e0s vulnerabilidades da cadeia de fornecimento e ao papel das depend\u00eancias de terceiros na seguran\u00e7a de um sistema de software. Embora nenhuma dessas amea\u00e7as seja uma novidade, o controle complementar, resultado resultante dos eventos atuais, suscitou nas organiza\u00e7\u00f5es um profundo desejo de melhorar suas postura dea seguran\u00e7a, evitando, assim,para evitar que serjam o pr\u00f3ximo alvo. Como uma equipe de engenharia de software, sua intera\u00e7\u00e3o mais habitual com a cadeia de fornecimento \u00e9 inerente \u00e0est\u00e1 na escolha de bibliotecas externas que possam ser incorporadas em seus aplicativos.<\/p>\n<p>Uma biblioteca externa bem preservada pode trazer excelentes benef\u00edcios \u00e0s iniciativas de desenvolvimento, economizando incont\u00e1veis horas do tempo dagastas pela engenharia ao permitir que voc\u00ea se concentreque o foco se d\u00ea nos principais diferenciadores do seu pr\u00f3prio produto ao inv\u00e9s de precisar reimplantar uma funcionalidade usual. Por outro lado, bibliotecas mal implementadas podem ser dif\u00edceis de serem usadas, trazem vulnerabilidades de seguran\u00e7a que amea\u00e7am sua empresa e seus clientes ou, em casos extremos, podem at\u00e9 mesmo interferir nos trabalhos de partes independentes do seu servi\u00e7o ou indeterminarprejudicar toda sua arquitetura. Confira um panorama de diversas das considera\u00e7\u00f5es que usei para avaliar bibliotecas quanto \u00e0 solidez de suas pr\u00e1ticas de engenharia e suas poss\u00edveis implica\u00e7\u00f5es de seguran\u00e7a. Essas abordagens servem como um ponto de partida, n\u00e3o uma ditame regra a ser estritamente seguidaseguido. Encontre uma abordagem que atenda \u00e0s suas pr\u00f3prias necessidades. Embora n\u00e3o haja solu\u00e7\u00f5es definitivas nessa \u00e1rea, garantir que seu projeto esteja associado somente a depend\u00eancias de extrema qualidade pode reduzir, de forma substancial, sua superf\u00edcie de ataque e garantir uma expans\u00e3o e manuten\u00e7\u00e3o mais simples do seu produto.<\/p>\n<h2>\u00c2mbito da biblioteca<\/h2>\n<p>Essa considera\u00e7\u00e3o inicial \u00e9 importante pois \u00e9 ela quem determina at\u00e9 que ponto uma avalia\u00e7\u00e3o \u00e9 necess\u00e1ria ou adequada. Qual o n\u00edvel de funcionalidade que a biblioteca oferece? Qual a import\u00e2ncia dessa funcionalidade ao funcionamentopara o bom desempenho do seu produto? Uma biblioteca simples com uma pequena pegada exige muito menos an\u00e1lise quando comparada a uma estrutura ampla que ser\u00e1 rigorosamente integrada em seu pr\u00f3prio c\u00f3digo. Al\u00e9m disso, alguns indicadores que poderiam representar importantes sinais de alerta de funcionalidade-chave, como atualiza\u00e7\u00f5es esparsas, podem ser normais ou esperados para bibliotecas menores que buscam apenas realizar uma atividade extremamente restritiva.<\/p>\n<p>Uma d\u00favida conexarelacionada refere-se a como voc\u00ea pretende fazer uso da biblioteca. DAs depend\u00eancias de desenvolvimento (ex.: uma ferramenta de an\u00e1lise est\u00e1tica ou um componente de uma estrutura de teste unit\u00e1rio) apresentam um risco muito menor em compara\u00e7\u00e3o a\u00e0s depend\u00eancias de tempo de execu\u00e7\u00e3o. Apesar deEmbora as falhas em seu pipeline de vers\u00e3o possam atrasar um lan\u00e7amento ou provocar problemas de curto prazo aos desenvolvedores, n\u00e3o h\u00e1 um impacto direto no usu\u00e1rio e, em geral, elas n\u00e3o representam um risco \u00e0 seguran\u00e7a do aplicativo.<\/p>\n<h2>Hist\u00f3rico de manuten\u00e7\u00e3o<\/h2>\n<p>A forma mais r\u00e1pida de entender a integridade geral de um projeto \u00e9 analisar seu hist\u00f3rico de controle de origem. Quando foi o \u00faltimo lan\u00e7amento? Com que frequ\u00eancia os lan\u00e7amentos s\u00e3o publicados e qual o \u00edndice de comprometimentos ao reposit\u00f3rio do c\u00f3digo de origem? Eu gosto de projetos que s\u00e3o atualizados com frequ\u00eancia, pois me passam uma maior confian\u00e7a de que a biblioteca continuar\u00e1 a ser mantida no futuro. Por outro lado, um projeto que se manteve inativo por um longo per\u00edodo pode apresentar bugs n\u00e3o corrigidos ou pode suscitar problemas de incompatibilidade com as novas vers\u00f5es de depend\u00eancias usuais ou at\u00e9 mesmo com o pr\u00f3prio tempo de execu\u00e7\u00e3o do idioma.<\/p>\n<p>Al\u00e9m disso, \u00e9 muito importante se atentar ao changelog da biblioteca. \u00c0s vezes, as mudan\u00e7as introduzidas por cada lan\u00e7amento s\u00e3o descritas na p\u00e1gina de lan\u00e7amentos. Outras vezes, o changelog representa um arquivo no topo do reposit\u00f3rio do c\u00f3digo de origem. A informa\u00e7\u00e3o ainda n\u00e3o est\u00e1 prontamente dispon\u00edvel?Se essa informa\u00e7\u00e3o n\u00e3o estiver dispon\u00edvel de imediato,  Esse \u00e9 significa um importante sinal de alerta. Eu busco por descri\u00e7\u00f5es claras sobre as mudan\u00e7as de um lan\u00e7amento para o outro, al\u00e9m de quaisquer retrocompatibilidades explicitamente documentadas.assegurar que quaisquer incompatibilidades anteriores sejam documentadas explicitamente. Uma elevada frequ\u00eancia, no entanto, de mudan\u00e7as de retrocompatibilidade ou corre\u00e7\u00f5es de bugs na funcionalidade principal \u00e9, por si s\u00f3, um motivo de preocupa\u00e7\u00e3o, uma vez que sugere que o desenvolvedor foi infeliz ao planejar e depurar mudan\u00e7as anteriormente ao lan\u00e7amento.<\/p>\n<h2>Rela\u00e7\u00f5es com o administrador<\/h2>\n<p>Uma avalia\u00e7\u00e3o mais aprofundada pode abranger a an\u00e1lise do rastreador de problemas de um projeto e outros canais p\u00fablicos de comunica\u00e7\u00e3o. Qu\u00e3o eficazes os administradores s\u00e3o com os usu\u00e1rios? Eles s\u00e3o receptivos e abertos ao feedback ou geralmente assumem um tom mais agressivo? Qual a propor\u00e7\u00e3o de quest\u00f5es abertas para encerradas? Os administradores est\u00e3o constantemente solucionando problemas do usu\u00e1rio ou os relat\u00f3rios de bugs ficam ociosos por um longo per\u00edodo de tempo? Qu\u00e3o extensa \u00e9 a documenta\u00e7\u00e3o e qual sua efic\u00e1cia em direcionar o usu\u00e1rio \u00e0s pr\u00e1ticas recomendadas de implementa\u00e7\u00e3o? H\u00e1 evid\u00eancias de uma comunidade din\u00e2mica no projeto? O encargo, por exemplo, do suporte ao usu\u00e1rio \u00e9 de total responsabilidade do administrador principal ou h\u00e1 outros membros da comunidade que queiram, e possam, assumir alguma responsabilidade? Um projeto que mant\u00e9m uma rela\u00e7\u00e3o saud\u00e1vel com sua comunidade tem uma probabilidade muito maior de atender \u00e0s necessidades espec\u00edficas dos usu\u00e1rios e se adaptar rapidamente a um ambiente de mudan\u00e7a.<\/p>\n<h2>Depend\u00eancias transitivas<\/h2>\n<p>Essa avalia\u00e7\u00e3o exige um esfor\u00e7o um pouco maior do que simplesmente ponderar a frequ\u00eancia de lan\u00e7amentos; no entanto, fornece uma imensid\u00e3oum verdadeiro acervo de informa\u00e7\u00f5es. A primeira coisa que quero entender \u00e9 de quantas outras depend\u00eancias a biblioteca depende, principalmente se extrai depend\u00eancias de forma desnecess\u00e1ria. As depend\u00eancias que oferecem funcionalidade importante a uma biblioteca s\u00e3o muito menos preocupantes quando comparadas a de muitas outras bibliotecas para tarefas sem qualquer rela\u00e7\u00e3o. Cada depend\u00eancia adicional significa maior complexidade e risco \u00e0 cadeia de fornecimento. Se estiver em d\u00favida, uma ferramenta simples de avalia\u00e7\u00e3o \u00e9 instalar a biblioteca a um cont\u00eainer de dockerportu\u00e1rio e observar quantas bibliotecas extras s\u00e3o adicionadas durante o processo.<\/p>\n<p>A maior preocupa\u00e7\u00e3o nessa categoria refere-se a qu\u00e3o facilmente \u00e9 poss\u00edvel atualizar as depend\u00eancias enquanto \u00e0 medida que novas vulnerabilidades s\u00e3o descobertas. Por essa raz\u00e3o, uma parte importante dessa avalia\u00e7\u00e3o \u00e9 observar se uma depend\u00eancia \u00e9 restritiva (compat\u00edvel apenas com uma vers\u00e3o espec\u00edfica de uma biblioteca) ou permissiva (compat\u00edvel com v\u00e1rias vers\u00f5es). O primeiro tipoAs depend\u00eancias restritivas representam o mais preocupanteuma grande preocupa\u00e7\u00e3o, uma vez que podem dificultar as iniciativas de corre\u00e7\u00e3o ou at\u00e9 mesmo for\u00e7ar o downgrade das bibliotecas das quais dependemos para outra funcionalidade. Outro aspecto relevante se trata de qu\u00e3o atuais essas depend\u00eancias transitivas s\u00e3o. Uma depend\u00eancia de vers\u00e3o que especifica um lan\u00e7amento feito h\u00e1 dois meses traz muito menos preocupa\u00e7\u00e3o do que uma depend\u00eancia de um lan\u00e7amento feito h\u00e1 dois anos. Seguindo a mesma linha, o hist\u00f3rico de atualiza\u00e7\u00f5es frequentes, as quais mant\u00eam as depend\u00eancias atualizadas, \u00e9 um sinal de que o projeto \u00e9 bem executado.<\/p>\n<h2>Depend\u00eancias lingu\u00edstica transversal<\/h2>\n<p>Esteja principalmente atento aos pacotes gravados em uma linguagem com depend\u00eancias adicionais em outra linguagem (ex.: bibliotecas Python com extens\u00f5es compiladas em C). Se as depend\u00eancias secund\u00e1rias abrangeremenvolverem uma linguagem ou ambiente de programa\u00e7\u00e3o com o qual n\u00e3o esteja muito habituado, ser\u00e1 mais dif\u00edcil avaliar sua qualidade geral. Al\u00e9m disso, diferentes linguagens t\u00eam, em geral, diferentes convers\u00f5es de pacoteconven\u00e7\u00f5es de embalagem, e os administradores de projetos multilingu\u00edsticos muitas vezes n\u00e3o est\u00e3o bem familiarizados com as melhoresn\u00e3o possuem geralmente um bom entendimento das pr\u00e1ticas recomendadas para todas as linguagens de programa\u00e7\u00e3o com as quais operam, dificultando ainda mais a corre\u00e7\u00e3o e a atualiza\u00e7\u00e3o.<\/p>\n<h2>Bibliotecas criptogr\u00e1ficas<\/h2>\n<p>\u00c9 necess\u00e1ria uma considera\u00e7\u00e3o especial quanto \u00e0s bibliotecas criptogr\u00e1ficas, o que se deve \u00e0 complexidade algor\u00edtmica envolvida e o alto impacto de poss\u00edveis vulnerabilidades no espa\u00e7o. Avalie com especial cuidado essas bibliotecas e n\u00e3o se esque\u00e7a de se basear somente em bibliotecas exaustivamente revisadas com um longo hist\u00f3rico. Algumas op\u00e7\u00f5es seguras s\u00e3o OpenSSL para C e C++, BouncyCastle para Java e biblioteca criptogr\u00e1fica de PyCA para Python. Suas op\u00e7\u00f5es podem estar restritas aos requisitos de conformidade ou da pol\u00edtica de seguran\u00e7a da sua empresa. Atente-se \u00e0s vulnerabilidades j\u00e1 conhecidas nas bibliotecas criptogr\u00e1ficas e mantenha-se atualizado quanto aos novos lan\u00e7amentos. De todas as depend\u00eancias de terceiros, estas apresentam o maior impacto na seguran\u00e7a.<\/p>\n<h2>Qualidade de documenta\u00e7\u00e3o e c\u00f3digo<\/h2>\n<p>Estsa e a pr\u00f3xima se\u00e7\u00e3o s\u00e3o avalia\u00e7\u00f5es que exigem bastante esfor\u00e7o; este n\u00edvel de avalia\u00e7\u00e3o, no entanto, justifica-se por vezes em casos de risco mais elevado. Quando eu busco entender a qualidade geral do c\u00f3digo do projeto, eu busco pelo c\u00f3digo de origem que use a funcionalidade que eu j\u00e1 conhe\u00e7o mais a fundo e avalio a qualidade da grava\u00e7\u00e3o da pequena \u00e1rea da sua base de c\u00f3digo. \u00c0s vezes, analisarei a qualidade da documenta\u00e7\u00e3o do projeto, concentrando-me na legibilidade e habilidade do autor em comunicar, com efici\u00eancia, conceitos complexos. Em ambos os casos, a meta \u00e9 determinar se os administradores demonstram elevada aten\u00e7\u00e3o aos detalhes ou se, pelo contr\u00e1rio, preferem seguir pelos atalhos. O que se espera aqui \u00e9 que o n\u00edvel de aten\u00e7\u00e3o demonstrada a uma parte do projeto seja, presumivelmente, uma representa\u00e7\u00e3o de um todo.<\/p>\n<p>Vejamos um exemplo concreto. Se eu tivesse optado por analisar o processamento de SSL de um projeto Python, eu poderia me deparar com o seguinte:<\/p>\n<ul>\n<li>S\u00e3o usados par\u00e2metros padr\u00e3o de conex\u00e3o SSL ou h\u00e1 uma tentativa de personaliz\u00e1-los a configura\u00e7\u00f5es mais seguras?<\/li>\n<li>Se houver personaliza\u00e7\u00e3o, qu\u00e3o sens\u00edveis s\u00e3o as mudan\u00e7as?<\/li>\n<li>O usu\u00e1rio tem a op\u00e7\u00e3o de fazer outras personaliza\u00e7\u00f5es?<\/li>\n<li>Se sim, s\u00e3o reutilizados os objetos SSLContext da biblioteca padr\u00e3o do Python ou perdem tempo criando algo que j\u00e1 existe?<\/li>\n<\/ul>\n<p>Em uma avalia\u00e7\u00e3o como essa, eu procuro identificar princ\u00edpios s\u00f3lidos de concep\u00e7\u00e3o, reuso de express\u00f5es padr\u00e3o e que o autor \u00e9 capaz de prognosticar as poss\u00edveis necessidades do usu\u00e1rio e oferecer extensibilidade para atend\u00ea-las.<\/p>\n<h2>Controle da vulnerabilidade<\/h2>\n<p>Fiz uma lista para esse \u00faltimo ponto pois se trata, geralmente, de uma impress\u00e3o que crio com o tempo e que pode n\u00e3o ser t\u00e3o \u00fatil para uma avalia\u00e7\u00e3o inicial. Al\u00e9m disso, \u00e9 extremamente dependente de at\u00e9 que ponto Tamb\u00e9m depende muito do quanto uma determinada biblioteca \u00e9 usada e relevante em termos de seguran\u00e7a, o que pode ser um fator, no entanto, ao decidir entre continuar a usar uma biblioteca que j\u00e1 existe ou tentar migrar para uma substitui\u00e7\u00e3o.<\/p>\n<p>Simplificando, eu busco avaliar a receptividade do administrador do projeto para corrigir vulnerabilidades e qual a facilidade de se obter benef\u00edcios com tais corre\u00e7\u00f5es em suas pr\u00f3prias implanta\u00e7\u00f5es. Um projeto que est\u00e1 frequentemente sujeito a divulga\u00e7\u00f5es de vulnerabilidade \u00e9 de certa forma preocupante, embora possa ser igualmente um fator de ampla relev\u00e2ncia de uso e seguran\u00e7a ao inv\u00e9s de pr\u00e1ticas de manuten\u00e7\u00e3o e qualidade geral de c\u00f3digo. O que acontece ap\u00f3s uma vulnerabilidade ser identificada \u00e9 considerado uma m\u00e9trica melhor. As corre\u00e7\u00e3o s\u00e3o rapidamente incorporadas em novos lan\u00e7amentos? Qu\u00e3o simples \u00e9 para fazer upgradefazer atualiza\u00e7\u00f5es assim que as vers\u00f5es corrigidas s\u00e3o lan\u00e7adas? Se o projeto geralmente faz mudan\u00e7as radicais, principalmente se violam regularmente a compatibilidade com vers\u00f5es anteriores, elas se adaptam \u00e0s mudan\u00e7as nas vers\u00f5es antigas? Se a biblioteca \u00e9 parte de uma distribui\u00e7\u00e3o Linux, ent\u00e3o a responsabilidade pelo back-port das corre\u00e7\u00f5es \u00e9, em geral, dos administradores de distribui\u00e7\u00e3o e n\u00e3o do desenvolvedor original; as mesmas perguntas, no entanto, podem ser aplicadas a como o respons\u00e1vel pelo pacote administra a biblioteca (as distribui\u00e7\u00f5es geralmente fazem uma distin\u00e7\u00e3o entre pacotes principais com manuten\u00e7\u00e3o ativa e pacotes mais perif\u00e9ricos, que, normalmente, monitoram lan\u00e7amentos upstream com o m\u00ednimo de mudan\u00e7as aplicadas).<\/p>\n<p>Quando uma biblioteca demonstra um claro hist\u00f3rico de m\u00e1 administra\u00e7\u00e3o de vulnerabilidades ou opera de forma que dificulte o aproveitamento das corre\u00e7\u00f5es de seguran\u00e7a, geralmente recomendarei que minha equipe migre para uma substitui\u00e7\u00e3o.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Avaliar a qualidade geral de um projeto de software e sua comunidade cont\u00edgua \u00e9 uma habilidade fundamental que apenas se tornar\u00e1 cada vez mais relevante \u00e0 medida que os projetos de software ganham mais interdepend\u00eancia. Al\u00e9m disso, \u00e9 uma habilidade extremamente individual; geralmente, voc\u00ea conseguir\u00e1 o maior desempenho ao analisar as decis\u00f5es dos administra\u00e7\u00f5es de bibliotecas em sua \u00e1rea de dom\u00ednio. O processo de avalia\u00e7\u00e3o torna-se um procedimento de definir um n\u00edel de confian\u00e7a e dar passos para garantir que a confian\u00e7a n\u00e3o seja perdida, o que se deve ao fato de a valida\u00e7\u00e3o completa de cada detalhe de um potencial fornecedor ser uma tarefa ais dif\u00edcil do que construir a funcionalidade por si s\u00f3. Por fim, aprender a avaliar as depend\u00eancias de terceiros \u00e9 uma parte importante de se criar uma cultura de engenharia que assume a responsabilidade pela confiabilidade e seguran\u00e7a do seu produto.<\/p>\n<h2>Sobre o autor<\/h2>\n<p><a href=\"https:\/\/www.linkedin.com\/in\/jacob-emmert-aronson-97492b9b\">Jacob Emmert-Aronson<\/a> \u00e9 gerente s\u00eanior da equipe da Mindmeld, parte da empresa de intelig\u00eancia do Webex. Jacob \u00e9 um reconhecido l\u00edder em seguran\u00e7a da informa\u00e7\u00e3o, DevOps e manuten\u00e7\u00e3o de software, sendo especialista em entender como esses assuntos intersectam-se<\/p>\n<blockquote><p><span data-contrast=\"auto\">Gostaria de integrarfazer parte da equipe da MindMeld? Envie um e-mail para mindmeld-jobs@cisco.com!<\/span><\/p><\/blockquote>\n<p><a href=\"https:\/\/www.webex.com\/video-conferencing\">Inscreva-se no Webex<\/a><\/p>\n<p>Acesse nossa <a href=\"https:\/\/www.webex.com\/\">p\u00e1gina inicial<\/a> ou <a href=\"https:\/\/www.webex.com\/contact-sales.html\">entre em contato conosco<\/a> para obter assist\u00eancia direta.<\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"><br \/>\n  <a href=\"https:\/\/www.webex.com\/?utm_source=Influence&#038;utm_medium=EarnedContent&#038;utm_campaign=FutureOfWork\">Clique aqui<\/a> para saber mais sobre as ofertas do Webex e para se inscrever para uma conta gr\u00e1tis.\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Confira um panorama de diversas das considera\u00e7\u00f5es do engenheiro s\u00eanior sobre a equipe da Mindmeld usadas para avaliar bibliotecas quanto \u00e0 solidez de suas pr\u00e1ticas de engenharia e suas poss\u00edveis implica\u00e7\u00f5es de seguran\u00e7a. <\/p>\n","protected":false},"author":5429,"featured_media":15778,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[424,1507,1534],"tags":[774],"class_list":["post-20279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customer-stories","category-customer-stories-pt-br","category-engineering-pt-br","tag-voip"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros | Webex Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros | Webex Blog\" \/>\n<meta property=\"og:description\" content=\"Confira um panorama de diversas das considera\u00e7\u00f5es do engenheiro s\u00eanior sobre a equipe da Mindmeld usadas para avaliar bibliotecas quanto \u00e0 solidez de suas pr\u00e1ticas de engenharia e suas poss\u00edveis implica\u00e7\u00f5es de seguran\u00e7a.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\" \/>\n<meta property=\"og:site_name\" content=\"Webex Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-14T15:19:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-03T13:36:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png\" \/>\n\t<meta property=\"og:image:width\" content=\"975\" \/>\n\t<meta property=\"og:image:height\" content=\"554\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jacob Emmert-Aronson\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jacob Emmert-Aronson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\"},\"author\":{\"name\":\"Jacob Emmert-Aronson\",\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/ad7b1bc05cf30f631cabea736117f295\"},\"headline\":\"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros\",\"datePublished\":\"2021-07-14T15:19:37+00:00\",\"dateModified\":\"2021-08-03T13:36:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\"},\"wordCount\":2515,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png\",\"keywords\":[\"VoIP\"],\"articleSection\":[\"Customer Stories\",\"Customer Stories\",\"Engineering\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\",\"url\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\",\"name\":\"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros | Webex Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.webex.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png\",\"datePublished\":\"2021-07-14T15:19:37+00:00\",\"dateModified\":\"2021-08-03T13:36:45+00:00\",\"author\":{\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/ad7b1bc05cf30f631cabea736117f295\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage\",\"url\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png\",\"contentUrl\":\"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png\",\"width\":975,\"height\":554,\"caption\":\"Lessons from SolarWinds \u2013 Evaluating third-party libraries\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.webex.com\/pt-br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.webex.com\/es\/#website\",\"url\":\"https:\/\/blog.webex.com\/es\/\",\"name\":\"Webex Blog\",\"description\":\"Webex by Cisco powers collaboration through industry-leading video conferencing, cloud calling and contact center solutions\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.webex.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/ad7b1bc05cf30f631cabea736117f295\",\"name\":\"Jacob Emmert-Aronson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/blog.webex.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8ef251980d33cacca257857fad8720047f28981064b9c85c611b68e145df2f8d?s=96&d=wp_user_avatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8ef251980d33cacca257857fad8720047f28981064b9c85c611b68e145df2f8d?s=96&d=wp_user_avatar&r=g\",\"caption\":\"Jacob Emmert-Aronson\"},\"description\":\"Jacob Emmert-Aronson is a senior engineer on the Mindmeld team, part of the Webex Intelligence organization. He is a knowledge leader in information security, DevOps, and software maintenance, and his specialty is understanding how these topics intersect.\",\"url\":\"https:\/\/blog.webex.com\/pt-br\/contributors\/jemmert-aronson\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros | Webex Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/","og_locale":"pt_BR","og_type":"article","og_title":"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros | Webex Blog","og_description":"Confira um panorama de diversas das considera\u00e7\u00f5es do engenheiro s\u00eanior sobre a equipe da Mindmeld usadas para avaliar bibliotecas quanto \u00e0 solidez de suas pr\u00e1ticas de engenharia e suas poss\u00edveis implica\u00e7\u00f5es de seguran\u00e7a.","og_url":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/","og_site_name":"Webex Blog","article_published_time":"2021-07-14T15:19:37+00:00","article_modified_time":"2021-08-03T13:36:45+00:00","og_image":[{"width":975,"height":554,"url":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png","type":"image\/png"}],"author":"Jacob Emmert-Aronson","twitter_misc":{"Escrito por":"Jacob Emmert-Aronson","Est. tempo de leitura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#article","isPartOf":{"@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/"},"author":{"name":"Jacob Emmert-Aronson","@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/ad7b1bc05cf30f631cabea736117f295"},"headline":"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros","datePublished":"2021-07-14T15:19:37+00:00","dateModified":"2021-08-03T13:36:45+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/"},"wordCount":2515,"commentCount":0,"image":{"@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png","keywords":["VoIP"],"articleSection":["Customer Stories","Customer Stories","Engineering"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/","url":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/","name":"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros | Webex Blog","isPartOf":{"@id":"https:\/\/blog.webex.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage"},"image":{"@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png","datePublished":"2021-07-14T15:19:37+00:00","dateModified":"2021-08-03T13:36:45+00:00","author":{"@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/ad7b1bc05cf30f631cabea736117f295"},"breadcrumb":{"@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#primaryimage","url":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png","contentUrl":"https:\/\/blog.webex.com\/wp-content\/uploads\/2021\/07\/shutterstock_1937346976.png","width":975,"height":554,"caption":"Lessons from SolarWinds \u2013 Evaluating third-party libraries"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.webex.com\/customer-stories\/lessons-from-solarwinds-evaluating-third-party-libraries\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.webex.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Li\u00e7\u00f5es da SolarWinds \u2013 Uma avalia\u00e7\u00e3o de bibliotecas de terceiros"}]},{"@type":"WebSite","@id":"https:\/\/blog.webex.com\/es\/#website","url":"https:\/\/blog.webex.com\/es\/","name":"Webex Blog","description":"Webex by Cisco powers collaboration through industry-leading video conferencing, cloud calling and contact center solutions","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.webex.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/ad7b1bc05cf30f631cabea736117f295","name":"Jacob Emmert-Aronson","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/blog.webex.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8ef251980d33cacca257857fad8720047f28981064b9c85c611b68e145df2f8d?s=96&d=wp_user_avatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8ef251980d33cacca257857fad8720047f28981064b9c85c611b68e145df2f8d?s=96&d=wp_user_avatar&r=g","caption":"Jacob Emmert-Aronson"},"description":"Jacob Emmert-Aronson is a senior engineer on the Mindmeld team, part of the Webex Intelligence organization. He is a knowledge leader in information security, DevOps, and software maintenance, and his specialty is understanding how these topics intersect.","url":"https:\/\/blog.webex.com\/pt-br\/contributors\/jemmert-aronson\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/posts\/20279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/users\/5429"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/comments?post=20279"}],"version-history":[{"count":0,"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/posts\/20279\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/media\/15778"}],"wp:attachment":[{"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/media?parent=20279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/categories?post=20279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.webex.com\/pt-br\/wp-json\/wp\/v2\/tags?post=20279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}