Olá pessoal eu vou falar aqui sobre algumas questões de segurança da linguagem husky uma linguagem bastante interessante e que tem muita coisa Justamente na área de segurança no desenvolvimento Esse artigo foi sugerido pelo Melo do cultura libertária obrigado e aqui em sugeriu a notícia e vamos vamos a notícia em si a questão toda é que segundo a esse artigo aqui neste blog na do Silviano quer cor e ele coloca aqui a grande problema que ele como desenvolvedor rãs enfrenta com a linguagem é a questão de atualizações muito frequentes é uma linguagem que tem que tá
cada vez mais crescendo acrescentando coisas e esse isso por um lado é uma coisa positiva Lógico você tem mais possibilidade mais funções mais mecanismos para trabalhar na própria linguagem isso por outro lado acaba tornando o código gerado complicado porque você escreve um código hoje amanhã já tem uma versão nova da linguagem que dá para fazer aquilo que você fez hoje muito mais rápido e isso pode ser um problema é difícil você ficar se manter a par da linguagem se manter com as últimas por último os recursos da linguagem esse tipo de coisa não é um
problema da linguagem Rust tá esse problema acontece com todas as linguagens de programação porque todas elas evoluem com o tempo porque a linguagem emocionar até mesmo ser que começou lá atrás dela de e Coisa e Tal foi algum vindo o número do tempo código seu hoje em dia é bem diferente de um código C lá no início o grosso a base É lógico é a mesma coisa se não teria mudado a linguagem mas tem muita coisa diferente de muita coisa nova muito biblioteca nova muito recurso novo incluso na linguagem as linguagens mais recentes você tem
muito mal número você pegar joga script por exemplo já inscrito uma loucura você tem quase todo ano um padrão novo diferente um monte de interpretações diferentes geralmente com compatibilidade reversa então você não precisa se preocupar tanto assim o código que você escreveu o ano passado continua rodando esse ano só que já é considerado um código o velho já tem maneiras melhores de escrever a mesma coisa ali isso é muito comum com já descript e o que ele tá falando aqui é justamente que isso é um problema para o Husky então eu tô tomando esse esse
caso como exemplo não existe tipo de problema acontece na verdade em todas as imagens você tem realmente uma linguagem um monte de mudança linguagens mudam com o tempo e quando essas mudanças são muito frequentes você tem esse o problema de você não conseguir estar na ponta de Lança e não consegui tempo para aprender a linguagem Isso é Um Desafio que todo programador passa por que você tem que trabalhar Uma parte do tempo você tá trabalhando no seu código já é ali já é Um Desafio enorme se você além disso tem que estudar Novas features Novas
coisas a linguagem o que acaba acontecendo aqui não tem como você fazer as duas coisas o que você acaba ficando é para o código preso numa versão antiga da linguagem que não tem problema tá naquela versão antiga porque em tese tem a compatibilidade reversa então a continua rodando Mas isso é um problema porque você começa a ficar cada vez mais defasado cada vez mais é casado em relação a linguagem atual não tem uma solução simples para isso e isso é sim um problema de segurança a única alternativa que você tem para resolver isso é periodicamente
reescrever seu pode esse tipo de solução não é uma solução mágica porque você vai você sabe se você é linda com o código no dia a dia você sabe a vai escrever o código todo tá de brincadeira se tem código e código para caramba reescrever a coisa toda é o que acontece mas na prática o que acontece isso a única solução que você tem é essa ou então continuar aceitando o confiando que aquele código artigo vai continuar rodando devido a compatibilidade reversa o grande problema de você continuar confiando é porque isso de vez em quando
você tem a quebra pego no momento em que determinado as construções na linguagem deixam de ser aceitáveis né você tem Java por exemplo já descritos também você tem várias funções da prefeita de ou seja funções que não é para usar elas estão lá só com compatibilidade reversa coisa então mas tem casos muito piores do que isso recentemente você teve a situação do um dos applets Java o applet Java para quem não sabe era uma forma de você construir componentes em Java que rodavam no cliente então o navegador baixava o applet Java rodava ali no cliente
coisa e tal e sal muito usado tem muitas muitas implementações nessa nesse tipo de coisa foi usado durante muito tempo mas acabou caindo em desuso porque hoje em dia você tem tecnologias muito melhores para fazer a mesma coisa tipicamente as plataformas em Java scripts que hoje em dia fazem tudo que você poderia fazer em Java elas fazem joga script até com muito mais eficiência muito melhores então não tinha mais justificativa para ter o o applet Java que seria aquele componente compilado previamente né E aí você ainda tem a dificuldade de que a compilação R queria
da jvm e um monte de outras alterações ele o que começou acontecer que começaram a ter problemas de segurança como é o Mack um jeito ninguém usava ela não sofria atualização você começa a ter problemas de segurança o que aconteceu foi que e já faz uns 3 4 anos já os navegadores simplesmente pararam de aceitar a applet java e hoje em dia é incrível Você ainda tem sites rodando principalmente certo o governo brasileiro tá aqui o pessoal tem uma dificuldade maior em atualizar as coisas e você tem aquele site ainda requer que o seu ódio
não internet é que se pode é isso tem site de governo de agência do governo brasileiro que você tem que usar o Internet Explorer porque o único que aceitava a java ainda ou versões antigas no Chrome versões antigas do Firefox depois e tal Porque as versões mais recentes não aceitam mais rápido e não aceitam mais rápido porque porque ninguém tá usando e virou uma um problema de segurança Então essa coisas estão toda e já da evolução da linguagem é Um Desafio muito grande por equipe de desenvolvimento se você tem um projeto que grande que você
começa a perceber que tá sendo tá confiando numa tecnologia que tá ficando defasada é muito importante você planejar e escrever que ele pode não tem dificuldade nenhuma qualquer coisa o que quer que seja que você fazia em applet Java você consegue fazer também javscript hoje em dia só uma questão de importar o código jogar fora que ele pode ué escrever ele na nova função não é simples Eu sei que não é simples mas é o que tem agora chegou nesse nesse limite e você é obrigado a fazer aquilo com velocidade porque o navegador não aceita
mais rápido sua aplicação simplesmente não roda mais então essa preocupação que com relação ao host é válido Rush tem um lado uma política de desenvolvimento com ciclos muito rápidos né ele fala que ciclos de seis semanas então tem sempre muita coisa nova recentemente a o leite passo você estava eu não sei que lá questão de código rodando de forma síncrona é muito importante principalmente compra por uma linguagem como ajuste que se pretende ser uma linguagem de performance uma linguagem que é rápida porque lembra você rodar código assíncrono é a melhor maneira de você aproveitar múltiplos
processadores hoje em dia quase todo processador tem vários núcleos tem vários processadores dentro dele então mas isso é útil para você ganhar velocidade se consegue fazer as coisas de forma 5 né então você tem uma linguagem que não permite código assíncrono basicamente você não tá usando até formas do seu processador de forma completa né ainda tem outras possibilidades usar esse daí mais certamente é necessário esse tipo de coisa e vale a pena a gente aproveitar oportunidade de se neste nessa questão sobre o Husky para falar um pouco sobre a linguagem Hut em si que é
uma linguagem bastante interessante o ultimamente nova ela surgiu em 2010 dentro do Mozilla é ainda é mantida pela Fundação Mozilla então 2010 você pode ficar todas as medalhas são 11 anos atrás né mas em termos de linguagem a gente já coisa chama o ovo como eu falei você nasceu década de 70 já javscript nasceram 1990 Sim toda linguagem tem isso lá tem um ciclo leva um tempo até se estabelecer até ficar madura coisa e tal então sim husky é uma linguagem relativamente recente é uma linguagem muito boa Qual que é a proposta dela proposta dela
é manter uma linguagem o mais próximo do baixo nível possível então ela segue Você sabe né não tem uma linguagem programação Você sempre tem um trade-off entre segurança e performance você tem linguagens quanto mais próximo da linguagem de máquina mais velocidade você tem mais controle você tem em compensação você tem menos segurança porque um um ponteiro maior o ponteiro reutilizado o porteiro que faltou a usado de forma errada um erro de se você gera o buffer overflow gera outros ataques e pode acabar comprometendo a sua segurança a gente fala muito no curso sobre o buffer
overflow que é o pior caso mas é um caso muito comum eu tenho uma figurinha aqui que eu acho que é interessante mostrar é isso aqui foi uma medição que a Microsoft fez de todos os erros todos os bancos de segurança em aplicativos desenvolvidos pela Microsoft então CV ano ano aqui ela eles traçaram pontos bugs os bancos todos que tiveram naquele ano você ver né que o comuneiro habilite enumeration da Microsoft tudo que tinha e a parte em azul escuro é referente a problemas de memória Ou seja é isso aí boa fotografou o ponteiro problemas
de alocação de memória duplo uso de memória usa após free todos aqueles problemas que são específicos de 6 é mais mais é só sei se é mais repara todos os demais problemas são Essa parte a azulzinha Clara aquilo então assim você vê que realmente é impressionante uma pesada de boca uma força um ataque antigos se ataques de exploração de ponteira do serem coisas antigas em há muito tempo para poder antes Ok ideia do Rusty linguagens em geral vos tem linguagem mais rápidos e menos seguras em tese o assembly o extremo disso você programa direto praticamente
na linguagem de máquina os seios e mais mais é um pouquinho a mais do que isso eu já tem alguma v-red ali mas não tem muita proteção ainda muito rápido do outro lado você chega por JavaScript que aquela linguagem que é totalmente alto nível pois estão interpretada não sei que lava cuida da sua memória de forma muito completo tem garbage collector tem uma série de verificação de bom da vitória é super segura porém ela é lenta né porque você tentou nessa proteção no meio do caminho e não tem jeito de fugir desse dilema tá gente
porque proteger na memória significa tem um código chegando a memória não tem jeito em algum momento vai ter que ter esse código aí o que Qualquer proposta na Rússia A roxa e pegou o seguinte você tem de um lado os seios ser mais mais que não tem proteção nenhuma contra isso é tudo depende do programador programador que tem que dar uma Loki tem que dar o frio tem que fazer o realoque tudo depende do programador muito propenso a erro muito risco de segurança de cair nessa parte azul escuro aqui da do desenho Zinho de você
gerar o aparelho de segurança por outro lado você pega Java alto nível ponta para compilada com um monte de cuidados de segurança Coisa e Tal Qual que é a proposta do husky o resto é vamos fazer uma coisa muito parecida com você mais mais mas tô com uma casquinha para mim dar na memória então ele não busca trazer uma linguagem de mais alto nível não busca cuidar de todo o código de todas as informações Além Deste problema em particular da alocação de memória e ele procura fazer isso da forma mais rápida possível através de tempo
de compilação então no momento da compilação o Husky ele já tenta identificar quando a memória é usada quando ela não é mais necessária para ela para ele fazer uma Loki o frio para você ali checando pelo seu código então é uma linguagem que ela é fortemente pada Vamos ser você é mais mais e mais o compilador é muito mais complexo ele checa muita coisa porque ele precisa justamente conseguir entender a memória o início do uso diário fim do uso dele para ele colocar ali a questão do malote do frio no tempo de compilação então com
isso veja é um trenó que você tá tendo alguma perda de performance não tenha dúvida mas você tem uma perda de performance muito pequeno então realmente é uma linguagem que é muito próximo de um ser mais mais seguro o que é excelente você não chega a ser uma linguagem de alto nível como Java que já tem todos um controle mas é logo É mas você protege o único grande problema do serviço é mais mais que é a questão do tratamento de memória então uma linguagem muito interessante nesse aspecto o trade-off era muito pequeno se você
perde muita coisa em performance Principalmente um pai o time que não é uma coisa problemático Você tá trabalhando no desenvolvimento depois que você compilou aqueles free emalloc ele já estão colocados no código então em tese não vai impactar na performance no final mas de certa forma não deixa de ser uma um trade-off aí não deixa de haver um trabalho adicional aí tanto por barco parte não trabalha do programador arranjar uma linguagem chatinha ela tem ela demora dá muito erro de compilação porque você precisa justamente informar ou compilador quando você usa cada memória mas ao mesmo
tempo ela é segura isso é uma coisa muito positiva Principalmente uma aplicação que tá vindo aí eu não vou falar muito sobre isso porque Esse é um assunto enorme mas é um assunto que tá vindo com muita força e certamente vai ser o nosso paradigma de programação em pouco tempo JavaScript node Heat é viu angula Esquece isso é passado Acabou já era o que vem por aí meu amigo webassembly e realmente é uma coisa fantástica porque você vai compilar o código antes de mandar para o navegador jogar it que acontece hoje com JavaScript JavaScript vai
todo em código que interpretado pelo navegador certo mas o navegador de todos incorporam várias utilizações em cima do código do javscript tudo certa forma todos os navegadores já compilam o código do javscript por uma linguagem interno deles e todos eles fazem sobre uma forma eles usam os mesmos em genes de de compilação então no final das contas você já tem o código java script compilado Em algum momento imagina se ao invés de você fazer isso que trans o servidor todo o código já descrito para ele ser compilado no navegador e ser usado aí você não
faz essa compilação no seu servidor já manda esse código compilado já descritos que é muito menor é porque ele tá com teu lado para o navegador e o navegador roda aquele pó digo a compilado ali então é uma coisa excelente o negócio maravilhoso uma tecnologia que realmente tá ganhando muita força e qual que é a grande questão disso aqui lembra pode pôr pelado você tem que ter prestar atenção já tá com pelado então daí a importância da segurança e isso é uma coisa que o Husky fornece me pede você pode fazer web a sempre eu
não sei se é mais mais tá dá para fazer a Pois então é como o Husky tem essa segurança na alocação de memória ele fica uma coisa muito mais positiva neste ponto aí eu vou ver se eu vou na menina que os assuntos foram surgindo aqui quando surgiu mais algum assunto mais específico de webb acender a gente fala um pouco mais sobre isso daí já funciona tá já tem vários navegadores não são compatíveis com leva CEB eu não sei se tem aqui algum lugar tá a taxa de compatibilidade mas aqui já tem esses quatro maiores
aqui ó dá para ver que já englobou quase todo mundo mas tem muito pouco código sendo produzido por que uma coisa nova Muita gente Ainda tá usando os velhos Heat Rio angula e etc mais a tendência Claro é isso daqui tá Ingrid vai e presta atenção no rancho realmente é um paradigma muito legal é uma coisa muito bacana e se chegou até aqui e gostou do conteúdo clique no like se inscreva no canal isso me ajuda a ganhar relevância no YouTube e levar o tema da segurança no desenvolvimento de software há mais pessoas Obrigado considere
também clicar no Sininho e pedir para ser notificado dos novos vídeos caso queira sugerir uma notícia para falarmos aqui é só ir no nosso site https: Duas Barras Safe só se pontocom Safe sr.com e clicar em sugerir uma pauta colocar o link da Notícia ali Agradeço a todos que nos ajudam a fazer esse pro