{"id":9182,"date":"2017-06-29T00:30:26","date_gmt":"2017-06-28T21:30:26","guid":{"rendered":"https:\/\/www.kaspersky.com.br\/blog\/?p=9182"},"modified":"2019-11-22T07:25:53","modified_gmt":"2019-11-22T10:25:53","slug":"machine-learning-explained","status":"publish","type":"post","link":"https:\/\/www.kaspersky.com.br\/blog\/machine-learning-explained\/9182\/","title":{"rendered":"Como funciona o tal do &#8216;Machine Learning&#8217;?"},"content":{"rendered":"<p>Recentemente, empresas de tecnologia enlouqueceram completamente com o aprendizado de m\u00e1quina (Machine Learning). Dizem que \u00e9 a solu\u00e7\u00e3o para problemas que apenas pessoas podiam resolver. Alguns chegam ao ponto de chamar de \u201cintelig\u00eancia artificial\u201d. O aprendizado de m\u00e1quina desperta interesse especialmente na seguran\u00e7a de TI, em que o ambiente de amea\u00e7as se altera rapidamente.<br>\nA qualidade de uma tecnologia se resume a velocidade e consist\u00eancia. O aprendizado de m\u00e1quina \u00e9 baseado em tecnologias, o que torna sua explana\u00e7\u00e3o simples em termos humanos. Ent\u00e3o, vamos l\u00e1: resolveremos problemas reais por meio de um algoritmo funcional \u2013 baseado em aprendizado de m\u00e1quina. O conceito \u00e9 simples, e fornece conclus\u00f5es reais e valiosas.<\/p>\n<h3><strong>Problema: distinguir escrita de baboseira<\/strong><\/h3>\n<p>A escrita humana (a de Tery Pratchett nesse caso), tem o seguinte visual:<\/p>\n<blockquote><p>D\u00ea fogo ao homem e ele se aquecer\u00e1 por aquele dia. Ensine-o a acender uma fogueira, e ele estar\u00e1 aquecido para o resto da vida. Sabemos que que o ingrediente vital do sucesso \u00e9 saber que o que voc\u00ea est\u00e1 fazendo n\u00e3o pode ser feito. O problema em ter a mente aberta \u00e9 que as pessoas insistir\u00e3o em colocar coisas nela.<\/p><\/blockquote>\n<p>Baboseira \u00e9 algo como:<\/p>\n<blockquote><p>DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd,mfns sdlfkls wkjgwlreoigh dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi<br>\ndfgldfkjgreiut rtyuiokjhg cvbnrtyu<\/p><\/blockquote>\n<p><strong>Nossa tarefa \u00e9 desenvolver algoritmos que possam diferenciar as duas coisas. <\/strong>Apesar de ser f\u00e1cil para um humano, trata-se de um desafio. \u00c9 necess\u00e1rio muito esfor\u00e7o para formalizar a diferen\u00e7a. Usamos aprendizado de m\u00e1quina para isso: alimentamos o algoritmo com exemplos para que ele \u201caprenda\u201d como responder pergunta \u201cescrita ou baboseira?\u201d de forma confi\u00e1vel toda vez que o antiv\u00edrus analisar um arquivo. Essencialmente, isso que \u00e9 feito.<\/p>\n<p>J\u00e1 que estamos tratando este assunto no contexto de seguran\u00e7a de TI, e o principal objetivo de um software antiv\u00edrus \u00e9 encontrar c\u00f3digos maliciosos em um amontoado de dados limpos, chamaremos escrita de fato como texto \u201climpo\u201d e a baboseira de \u201cmalicioso\u201d.<\/p>\n<h3><strong>Solu\u00e7\u00e3o: use um\u00a0<\/strong>algoritmo<\/h3>\n<p>Nosso algoritmo calcular\u00e1 a frequ\u00eancia em que uma letra em particular \u00e9 sucedida por outra, analisando poss\u00edveis pares de letras. Por exemplo, para nossa primeira frase, \u201cD\u00ea fogo ao homem e ele se aquecer\u00e1 por aquele dia. Ensine-o a acender uma fogueira, e ele estar\u00e1 aquecido para o resto da vida\u201d (<em>Give a man a fire and he\u2019s warm for the day. But set fire to him and he\u2019s warm for the rest of his life<\/em>), a frequ\u00eancia de letras em particular \u00e9 a seguinte:<\/p>\n<p>Bu \u2014 1<br>\nGi \u2014 1<br>\nan \u2014 3<br>\nar \u2014 2<br>\nay \u2014 1<br>\nda \u2014 1<br>\nes \u2014 1<br>\net \u2014 1<br>\nfe \u2014 1<br>\nfi \u2014 2<br>\nfo \u2014 2<br>\nhe \u2014 4<br>\nhi \u2014 2<br>\nif \u2014 1<br>\nim \u2014 1<\/p>\n<p>Para deixar tudo mais simples, ignoramos pontua\u00e7\u00e3o e espa\u00e7os. Na frase temos ent\u00e3o, a letra <em>a <\/em>seguida por <em>n <\/em>tr\u00eas vezes, <em>f <\/em>por <em>i <\/em>duas vezes, e <em>a <\/em>seguido por <em>y <\/em>uma vez.<\/p>\n<p>Nesse est\u00e1gio, entendemos que uma frase n\u00e3o \u00e9 suficiente para fazer com que um modelo aprenda: Precisamos analisar uma sequ\u00eancia de texto ainda maior, vamos considerar os pares em \u201cO Vento Levou\u201d, de Margaret Mitchell \u2013 sendo preciso, nos primeiros 20% do livro. Eis algumas das s\u00edlabas:<\/p>\n<p>he \u2014 11460<br>\nth \u2014 9260<br>\ner \u2014 7089<br>\nin \u2014 6515<br>\nan \u2014 6214<br>\nnd \u2014 4746<br>\nre \u2014 4203<br>\nou \u2014 4176<br>\nwa \u2014 2166<br>\nsh \u2014 2161<br>\nea \u2014 2146<br>\nnt \u2014 2144<br>\nwc \u2014 1<\/p>\n<p>Como voc\u00ea pode ver, a possibiliade de encontrar a combina\u00e7\u00e3o <em>he <\/em>\u00e9 duas vezes mais de se ver um <em>an. <\/em>J\u00e1 <em>wc <\/em>aparece apenas uma vez (nesse caso \u00e9 na palavra <em>newcomer<\/em>),<\/p>\n<p>Ent\u00e3o, agora temos um modelo de texto limpo, mas como podemos us\u00e1-lo? Primeiro, definimos a probabilidade de uma linha ser limpa ou maliciosa, o que chamaremos de <em>autenticidade. <\/em>Definiremos a frequ\u00eancia de cada par de letras com o aux\u00edlio de um modelo (pela avalia\u00e7\u00e3o do qu\u00e3o real\u00edstica \u00e9 a combina\u00e7\u00e3o de letras) e a multiplica\u00e7\u00e3o de seus n\u00fameros.<\/p>\n<blockquote><p>F(Gi) * F(iv) * F(ve) * F(e ) * F( a) * F(a ) * F( m) * F(ma) * F(an) * F(n ) * \u2026<br>\n6 * 364 * 2339 * 13606 * 8751 * 1947 * 2665 * 1149 * 6214 * 5043 * \u2026<\/p><\/blockquote>\n<p>Na determina\u00e7\u00e3o do valor final de autenticidade, tamb\u00e9m consideramos o n\u00famero de s\u00edmbolos na linha: quanto maior a linha, mais n\u00fameros multiplicamos. Dessa forma, para tornarmos esse valor adequado para frases longas e curtas fazemos algumas m\u00e1gicas matem\u00e1ticas (extra\u00edmos a raiz quadrada do \u201ctamanho da linha em quest\u00e3o e subtra\u00edmos um\u201d do resultado.<\/p>\n<h3><strong>Utilizando o modelo <\/strong><\/h3>\n<p>Agora podemos tirar algumas conclus\u00f5es: quanto mais alto o n\u00famero calculad, melhor a linha em quest\u00e3o se encaixa ao modelo \u2013 e consequentemente, maior a chance de ter sido escrita por um humano. Se o texto tem nota alta, chamamos de <em>limpo. <\/em><\/p>\n<p>Se uma linha cont\u00e9m muitas repeti\u00e7\u00f5es de combina\u00e7\u00f5es raras (como <em>wx, zg, yq, <\/em>entre outras), \u00e9 prov\u00e1vel que seja maliciosa.<\/p>\n<p>Para a linha sob an\u00e1lise, medimos sua autenticidade por pontos, da seguinte forma:<\/p>\n<ul>\n<li><em>Give a man a fire and he\u2019s warm for the day. But set fire to him and he\u2019s warm for the rest of his life<\/em> \u2014 1984 pontos<\/li>\n<li><em>It is well known that a vital ingredient of success is not knowing that what you\u2019re attempting can\u2019t be done<\/em> \u2014 1601 pontos<\/li>\n<li><em>The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it<\/em> \u2014 2460 pontos<\/li>\n<li><em>DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiuerwp2ijnsd,mfns sdlfkls wkjgwl<\/em> \u2014 16 pontos<\/li>\n<li><em>reoigh<\/em> dfjdkjfhgdjbgk nretSRGsgkjdxfhgkdjfg gkfdgkoi \u2014 9 pontos<\/li>\n<li><em>dfgldfkjgreiut rtyuiokjhg cvbnrtyu<\/em> \u2014 43 pontos<\/li>\n<\/ul>\n<p>Como voc\u00ea pode ver, as linhas <em>limpas <\/em>faturam mais de 1000 pontos e as maliciosas nem chegam aos 100. Parece que o algoritmo funciona como esperado.<\/p>\n<p>De modo a contextualizar pontua\u00e7\u00f5es altas e baixas, a melhor forma \u00e9 delegar esse trabalho para a m\u00e1quina e deix\u00e1-la aprender. Para isso, submeteremos certo n\u00famero de linhas limpas reais \u00e0 avalia\u00e7\u00e3o e checaremos sua autenticidade, depois repetiremos o processo para linhas maliciosas. A partir da\u00ed calculamos a base da avalia\u00e7\u00e3o. No nosso caso, chega a 500 pontos.<\/p>\n<h3><strong>E na vida real?<\/strong><\/h3>\n<p>Vamos revisar o que j\u00e1 fizemos.<\/p>\n<p><strong>1. Definimos as caracter\u00edsticas de linhas limpas (ex: pares de caracteres)<\/strong><\/p>\n<p>Na vida real, para desenvolver um antiv\u00edrus funcional, analistas tamb\u00e9m definiram caracter\u00edsticas de arquivos e outros objetos. Inclusive, suas contribui\u00e7\u00f5es s\u00e3o vitais: ainda \u00e9 um ser humano que define as fun\u00e7\u00f5es de avalia\u00e7\u00e3o do sistema, e o n\u00edvel de expertise e experi\u00eancia do especialista influencia diretamente na qualidade dessas fun\u00e7\u00f5es. Por exemplo, quem disse que algu\u00e9m precisa analisar caracter\u00edstica em pares e n\u00e3o trios? Essas considera\u00e7\u00f5es s\u00e3o avaliadas tamb\u00e9m em laborat\u00f3rios de antiv\u00edrus. Devo dizer aqui que na Kaspersky Lab usamos aprendizado de m\u00e1quina para selecionar as melhores fun\u00e7\u00f5es complementares.<\/p>\n<p><strong>2. Usamos indicadores definidos para construir nossos modelos matem\u00e1ticos, feitos a partir de aprendizado originado de exemplos.<\/strong><\/p>\n<p>Claro, na vida real os modelos s\u00e3o um pouco mais complexos. Agora, o melhor resultado vem do conjunto de \u00e1rvores de decis\u00e3o constru\u00eddas pela t\u00e9cnica de <a href=\"https:\/\/en.wikipedia.org\/wiki\/Gradient_boosting\" target=\"_blank\" rel=\"noopener nofollow\">Dinamiza\u00e7\u00e3o de Gradiente.\u00a0<\/a>Por\u00e9m, continuamos a ter a perfei\u00e7\u00e3o como objetivo, n\u00e3o podemos esperar sentados e aceitar o melhor dispon\u00edvel hoje.<\/p>\n<p><strong>3. Usamos modelos matem\u00e1ticos simplificados para calcular a taxa de autenticidade<\/strong><\/p>\n<p>Para ser honesto, na vida real, fazemos bem o contr\u00e1rio: calculamos a taxa de \u201cmal\u00edcia\u201d. O que parece n\u00e3o ser muito diferente. Contudo considere o qu\u00e3o n\u00e3o aut\u00eantica seria uma linha escrita em outra l\u00edngua para nosso modelo. Mas \u00e9 inaceit\u00e1vel que um antiv\u00edrus d\u00ea falsos negativos para uma s\u00e9rie de arquivos simplesmente porque ainda n\u00e3o os conhece.<\/p>\n<h3><strong>Uma alternativa para o aprendizado de m\u00e1quina? <\/strong><\/h3>\n<p>Por volta de 20 anos atr\u00e1s, quando malwares eram menos abundantes, a \u201cbaboseira\u201d era facilmente identificada por assinaturas (fragmentos distintos). Nos exemplos acima, as assinaturas pareceriam algo como:<\/p>\n<blockquote><p>DFgdgfkljhdfnmn vdfkjdfk kdfjkswjhwiu<strong>erwp2ij<\/strong>nsd,mfns sdlfkls wkjgwl<br>\nreoigh dfjdkjfhgdjbgk nretSRGs<strong>gkjdxfhg<\/strong>kdjfg gkfdgkoi<\/p><\/blockquote>\n<p>Um antiv\u00edrus verificaria o arquivo e encontraria o trecho <strong>erwp2ij<\/strong>\u00a0e reconheceria: \u201cAh\u00e1, olha a baboseira n\u00famero 17 aqui!\u201d E ao encontrar <strong>gkjdxfhg <\/strong>reconheceria a baboseira n\u00famero 139.<\/p>\n<p>Quinze anos depois, quando a popula\u00e7\u00e3o de malware cresceu significativamente, a detec\u00e7\u00e3o gen\u00e9rica ficou sob os holofotes. Um analista de v\u00edrus detectou as regras, as quais, quando aplicadas a texto real, seriam algo como:<\/p>\n<ol>\n<li>O comprimento de uma palavra deve ter entre 1 e 20 caracteres.<\/li>\n<li>Letras mai\u00fasculas e n\u00fameros raramente aparecem no meio de uma palavra.<\/li>\n<li>Vogais est\u00e3o relativamente misturadas com consoantes.<\/li>\n<\/ol>\n<p>E por a\u00ed vai. Se uma linha n\u00e3o contempla um determinado n\u00famero destas regras, \u00e9 definida como maliciosa.<\/p>\n<p>Essencialmente, o princ\u00edpio funcionava da mesma forma, \u00a0mas no caso das regras definidas, o analista devia escrev\u00ea-las manualmente, no lugar do modelo matem\u00e1tico.<\/p>\n<p>Dez anos atr\u00e1s, quando o n\u00famero de amostras de malware cresceu al\u00e9m de qualquer estimativa, algoritmos de aprendizado de m\u00e1quina come\u00e7aram a crescer lentamente at\u00e9 chegarem aos programas de antiv\u00edrus. Em um primeiro momento, em termos de complexidade n\u00e3o faziam nada muito al\u00e9m do que o algoritmo primitivo que descrevemos mais cedo como exemplo. Mas nessa \u00e9poca est\u00e1vamos ativamente recrutando especialistas e expandindo nossa expertise. Como resultado, temos a <a href=\"https:\/\/www.kaspersky.com\/top3\" target=\"_blank\" rel=\"noopener nofollow\">mais alta taxa<\/a> de detec\u00e7\u00e3o entre os antiv\u00edrus. Hoje, nenhum antiv\u00edrus funcionaria sem aprendizado de m\u00e1quina. Comparando m\u00e9todos de detec\u00e7\u00e3o, Machine Learning seria a liga\u00e7\u00e3o entre t\u00e9cnicas avan\u00e7adas como an\u00e1lise comportamental. Contudo, an\u00e1lise comportamental utiliza aprendizado! No fim, ela \u00e9 essencial para prote\u00e7\u00e3o eficiente. Ponto final.<\/p>\n<h3><strong>Inconvenientes<\/strong><\/h3>\n<p>Aprendizado de m\u00e1quina possui muitas vantagens, mas trata-se de uma solu\u00e7\u00e3o absoluta? Bem, n\u00e3o. Esse m\u00e9todo funciona eficientemente se os algoritmos mencionados anteriormente estiverem na nuvem ou em algum tipo de infraestrutura que analisa um grande n\u00famero de objetos <em>limpos <\/em>e <em>maliciosos. <\/em><\/p>\n<p>Al\u00e9m disso, \u00e9 tamb\u00e9m \u00fatil possuir um time de especialistas que supervisem esse processo de aprendizado e intervenham cada vez que suas experi\u00eancias possam fazer a diferen\u00e7a.<\/p>\n<p>Nesse caso, os atrasos s\u00e3o minimizados, para uma \u00fanica desvantagem: a necessidade de uma infraestrutura cara e especialistas bem pagos.<\/p>\n<p>Mas se algu\u00e9m quiser cortar custos severamente e usar apenas um modelo matem\u00e1tico, as coisas podem dar muito errado.<\/p>\n<p><strong>1.Falsos positivos<br>\n<\/strong>Detec\u00e7\u00e3o baseada em aprendizado de m\u00e1quina trata-se sempre de encontrar o ponto certo entre objetos detectados e falsos positivos. Caso queiramos viabilizar mais detec\u00e7\u00f5es, eventualmente encontraremos falsos positivos. Com o aprendizado de m\u00e1quina, eles podem sair de lugares os quais voc\u00ea nunca previu ou imaginou. Por exemplo, a linha limpa \u201cVisite Reykjavik\u201d seria detectada como maliciosa ao marcar apenas 101 pontos de autenticidade. \u00c9 por isso que \u00e9 essencial que um laborat\u00f3rio de antiv\u00edrus mantenha registros de arquivos limpos e viabilize o m\u00f3dulo de aprendizado e testes.<\/p>\n<p><strong>2.Modelo bypass<\/strong><\/p>\n<p>Um malfeitor pode desmontar um produto para descobrir como ele funciona. Criminosos s\u00e3o humanos, o que os torna mais criativos (se n\u00e3o espertos) que as m\u00e1quinas, de modo que se adaptam. Por exemplo, a linha a seguir \u00e9 considerada limpa, mesmo que a primeira parte seja claramente maliciosa para olhos humanos: \u201c<em>dgfkljhdfnmnvdfkA\u00ed vai um mont\u00e3o de texto do bom para enganar uma m\u00e1quina.<\/em>\u201d Contudo, algoritmos inteligentes sempre est\u00e3o pass\u00edveis de serem enganados por humanos ainda mais espertos. Por isso que um laborat\u00f3rio de antiv\u00edrus necessita de uma infraestrutura altamente responsiva para reagir instantaneamente as novas amea\u00e7as.<\/p>\n<p><strong>3.Atualiza\u00e7\u00e3o de modelo<\/strong><\/p>\n<p>Descrevendo o algoritmo mencionado anteriormente, falamos que o modelo desenvolvido para o ingl\u00eas n\u00e3o funcionaria em outras l\u00ednguas. Dessa perspectiva, arquivos maliciosos (criados por seres humanos que possam pensar fora da caixa) s\u00e3o como um alfabeto em constante mudan\u00e7a. O ambiente de amea\u00e7as \u00e9 extremamente vol\u00e1til. Por meio de longos anos de pesquisa, a Kaspersky Lab desenvolveu uma abordagem balanceada: atualizamos o modelo etapa \u00e0 etapa direto nas nossas bases de dados de antiv\u00edrus. Isso nos permite prover aprendizado extra ou at\u00e9 uma mudan\u00e7a completo do \u00e2ngulo de aprendizado para um modelo, sem interrup\u00e7\u00e3o de suas opera\u00e7\u00f5es usuais.<\/p>\n<p><strong>Conclus\u00e3o<br>\n<\/strong>Com respeito consider\u00e1vel ao aprendizado de m\u00e1quina e a sua import\u00e2ncia no mundo da ciberseguran\u00e7a, n\u00f3s na Kaspersky Lab pensamos que a abordagem mais eficiente \u00e9 baseada em um paradigma multin\u00edveis.<\/p>\n<p>Antiv\u00edrus devem todos ser consistentes e perfeitos, com an\u00e1lise comportamental, aprendizado de m\u00e1quina e muitas outras coisas. Mas falaremos dessas \u201cmuitas outras coisas\u201d em outra ocasi\u00e3o.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aprendizado por m\u00e1quina \u00e9 a nova moda no setor de defesa digital. Mas ser\u00e1 que \u00e9 a palavra final?<\/p>\n","protected":false},"author":669,"featured_media":9183,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1260,1119,1656,1029],"tags":[769,94,316,1097,77],"class_list":{"0":"post-9182","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-threats","8":"category-business","9":"category-smb","10":"category-technology","11":"tag-ai","12":"tag-antivirus","13":"tag-cloud","14":"tag-machine-learning","15":"tag-tecnologia"},"hreflang":[{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/machine-learning-explained\/9182\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/machine-learning-explained\/10471\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/machine-learning-explained\/7987\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/machine-learning-explained\/7995\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/machine-learning-explained\/9560\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/machine-learning-explained\/9350\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/machine-learning-explained\/13605\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/machine-learning-explained\/13487\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/machine-learning-explained\/6353\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/machine-learning-explained\/9245\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/machine-learning-explained\/13301\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/machine-learning-explained\/13605\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/machine-learning-explained\/13487\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/machine-learning-explained\/13487\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.com.br\/blog\/tag\/tecnologia\/","name":"tecnologia"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/posts\/9182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/users\/669"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/comments?post=9182"}],"version-history":[{"count":5,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/posts\/9182\/revisions"}],"predecessor-version":[{"id":13037,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/posts\/9182\/revisions\/13037"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/media\/9183"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/media?parent=9182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/categories?post=9182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.com.br\/blog\/wp-json\/wp\/v2\/tags?post=9182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}