Dicas de segurança para código JavaScript

Com a alta dos crimes cibernéticos, é extremamente importante utilizar os recursos de segurança ao nosso favor. Como desenvolvedores de software e aplicações, precisamos seguir, no mínimo, algumas das melhores práticas para poder mitigar os ataques e possivelmente evitá-los. Então, aí vão algumas dicas de como tornar o seu código mais seguro:

Confiança

Cuidado ao confiar dados à terceiros. Ao escrever código para Web, não confie em ninguém. Você pode ter uma arquitetura de validação em vigor a seu favor. Com dados provenientes do seus servidores, ou dos usuários, é muito importante sempre validar os dados antes dos mesmos entrarem no seu aplicativo. Com formulários na web, corremos o risco de termos brechas para SQL Injections, Cross-Site Scripting (XSS) e outros problemas relacionados. Por isso, é importante a existência de validação de dados.

Minimize o seu código

Existem coisas muito utilizadas por pessoas más-intencionadas: as ferramentas do navegador. Lá, eles podem ter acesso ao código JavaScript, podendo entendê-lo e utilizar as brechas de segurança para prejudicar sua aplicação.

Sempre tente minimizar e ofuscar o seu código, removendo caracteres desnecessários e modificando seu código para dificultar e legibilidade de terceiros. Você pode utilizar ferramentas para redução do seu código e também, para ofuscá-lo.

Linting:

O JavaScript é dinâmico e flexível. Isso torna-o muito suscetível a introdução de erros. O Linting é um processo de análise de código, que retorna para você alguns “erros” que pareçam suspeitos.

Utilize o strict

Se você não utilizar o modo estrito(strict), as ferramentas de linting logo o alertarão. O modo use strict adiciona algumas exceções ao seu código, não permitindo realizar algumas ações denominadas inseguras, como acessar objetos globais declarados. O modo estrito garante que o seu código seja bem pensado e consequentemente, mais seguro.

Simplicidade

Se esforce para manter sua aplicação simples. Seu design, a arquitetura do seu software, seu código. Quanto mais complexo, maior a possibilidade de vulnerabilidades e mais fácil ele pode vir a ser alvo de invasores. Sempre utilize os guias de estilo e melhores práticas de codificação.

Concluindo

Estes são alguns passos eficazes e simples de como você pode tornar o seu aplicativo menos vulnerável à ataques de invasores. Utilize as dicas e implemente-as na sua aplicação.

Referências:https://ngninja.com/posts/secure-coding-javascript

Gostou deste artigo? Comente abaixo:

O trabalho remoto pós-covid

2020 foi um ano diferente para todos e, com essa pandemia, uma das soluções adotadas foi o trabalho remoto. Muitas empresas foram forçadas a permitir suas equipes trabalhando à distância, para manter a empresa funcionando e seus colaboradores saudáveis. Agora é um momento de reflexão e, sabendo disso, muitas empresas podem manter o trabalho remoto no mundo pós-covid, porém, algumas velhas formas de pensar das empresas podem surgir. Aqui irão algumas dicas importantes para você que deseja trabalhar remotamente pós-pandemia, passando um tempo a mais com sua família.

Dica nª 1: Procure empresas remotas:

Existem empresas onde a totalidade de seus funcionários (ou uma grande maioria) trabalham de forma remota, mantendo funcionários de todas as partes do planeta. Dificilmente essas empresas pedirão que você faça a transição para o escritório, pois ele não existe! Essas empresas possuem ferramentas e processos que facilitarão o trabalho remoto, pois há a necessidade de todos em realizá-lo. O Gitlab é um exemplo de empresa remota.

Dica nº 2: Mostre que você é um funcionário remoto experiente:

Levando em consideração a epidemia, muitas pessoas possuem uma experiência real de trabalho remoto. Você pode acrescentar e enfatizar isso em seu currículo ou apresentação. Explique que você se mantém motivado e produtivo trabalhando em casa, mantendo o trabalho muito eficaz.

Continue lendo “O trabalho remoto pós-covid”

Black Hat 2019 elimina vulnerabilidades no WhatsApp, iOS, Azure

A criptografia de ponta a ponta do seu messenger favorito pode não ser tão segura quanto você pensa. Na conferência de segurança cibernética da Black Hat 2019 (de 7 a 8 de agosto), em Las Vegas, pesquisadores de segurança do código-fonte do WhatsApp da CheckPoint realizaram engenharia reversa para interceptar e manipular mensagens privadas com êxito. O WhatsApp não é a única plataforma importante que está sendo examinada na conferência.

Natalie Silvanovich, da equipe do Project Zero do Google, investigou a superfície de ataque remoto sem interação do iPhone e encontrou 10 bugs no SMS, MMS, Visual Voicemail, iMessage e Mail, todos corrigidos pela Apple. As vulnerabilidades remotas podem ser exploradas para invadir e controlar remotamente um iPhone sem o conhecimento do usuário.

Em uma postagem oficial do blog do Project Zero, Silvanovich escreve: “Diferentemente do Android, as mensagens SMS são processadas em código nativo pelo iPhone, o que aumenta a probabilidade de vulnerabilidades de corrupção de memória. A maioria das vulnerabilidades ocorreu no iMessage devido à sua superfície de ataque ampla e difícil de enumerar. ”

Para torná-los mais seguros, a Apple está dando iPhones a hackers e ethical hackers para que eles possam invadir e sinalizar vulnerabilidades que encontrarem. Na conferência Black Hat, a Apple abriu seu programa de recompensas por bug para iOS e MacOS a todos os pesquisadores e também aumentou o prêmio de recompensa por bug de US $ 100.000 para US $ 1 milhão.

Ao elaborar as vulnerabilidades do WhatsApp, os pesquisadores da Check Point apontaram que haviam criado uma ferramenta para descriptografar as comunicações no WhatsApp. Quando eles reverteram seu algoritmo para descriptografar os dados, descobriram que a plataforma de mensagens estava usando o protocolo protobuf2 para criptografia.

Quando converteram os dados do protobuf2 em JSON (JavaScript Object Notation) – um formato de intercâmbio de dados – eles viram os parâmetros secretos das mensagens que eles foram capazes de manipular.

Continue lendo “Black Hat 2019 elimina vulnerabilidades no WhatsApp, iOS, Azure”

Backdoor descoberto na carteira de criptomoedas Agama

Recentemente a Komodo Plataform descobriu uma backdoor em um de seus aplicativos mais antigos, o Agama. Sabendo que eles tinham pouco tempo para agir, a equipe usou a própria falha de segurança para remover todos as aplicações e valores para um local mais seguro.

Graças a esta tatica, 8 milhoes de Komodo coins e 96 bitcoins (quase 13 milhões de dólares) foram removidas das contas com a vulnerabilidade que poderiam ser hackeadas a qualquer momento.


Sobre a falha

O backdoor foi descoberto pela equipe de auditoria de segurança dos pacotes de repositório JavaScript do NPM. A equipe do NPM disse que identificou uma atualização maliciosa na biblioteca JavaScript electron-native-notify (versão 1.1.6), que continha código projetado para roubar criptomoedas e outras senhas de login específicas para aplicativos de criptomoeda.

Embora inicialmente não fizesse sentido que uma biblioteca com um conjunto de recursos muito limitado contivesse uma funcionalidade tão avançada, depois de investigar o problema, o pessoal do NPM percebeu que estavam lidando com um ataque na cadeia de fornecimento e usando a biblioteca agora como backdoor.

A equipe do npm disse que o código malicioso funcionaria conforme o planejado e coletaria os seeds e senhas do aplicativo de carteira da Agama e faria o upload dos dados para um servidor remoto. Com estes seeds e senhas teriam permitido que um hacker se conectasse às contas de criptomoedas gerenciadas pela carteira Agama e roubasse os fundos dos usuários.


Ações tomadas

Continue lendo “Backdoor descoberto na carteira de criptomoedas Agama”

Aprenda JavaScript “hackeando” sites

Uma das melhores maneiras de aprender uma nova linguagem é através da prática. Por isso, neste post eu estarei mostrando algumas formas de utilizar funções básicas do JavaScript e ao mesmo tempo “hackear” a tela de alguns sites para que você possa observar o poder desta linguagem.

Você precisará:

  • De um navegador (Chrome, Firefox, etc..).
  • Acesso ao console do navegador (normalmente a tecla F12 abrirá uma tela que terá a aba console).

Estes trechos de códigos serão simples, e você só precisa copiar e colar em qualquer site de sua escolha para ver o efeito. No entanto eu aconse-lho a alterar e mexer nele para que você realmente entenda o que está acontecendo.

Não se preocupe… Nada do que será mostrado tem efeito permanente na página e você precisa apenas fazer um F5 para limpar suas alterações.

Desmascarando Passwords

let passwords = document.querySelectorAll("input[type=password]");
for(let elem of passwords){elem.type="text";}

Este código pegará todos os inputs do tipo password e os transformará em texto. Com isso você poderá ver o que está sendo digitado nesses campos.

 

Bagunçando a orientação da tela

Array.prototype.slice.call(  
  document.querySelectorAll(
    'div,p,span,img,a,body')).map(function(tag){
    tag.style['transform'] = 'rotate(' + (
    Math.floor(Math.random() * 3) - 1) + 'deg)';
});

Aqui utilizamos diversas funcionalidades do JavaScript como o querySelector, Array Slice e Math para zoar com a orientação dos textos na tela.

 

Alterar todas as imagens da tela

Array.prototype.slice.call(  
  document.querySelectorAll('img')).map(function(tag){
    tag.src = 'http://bit.ly/2okYTfn';
});

Você pode colocar qualquer imagem que quiser, esse link é apenas um exemplo. Com esse script é possível trocar todas as imagens do HTML para o que você desejar.

 

Virando a tela depois de um tempo

setTimeout(function(){  
 document.onmousemove = document.onkeypress = 
 function(){
     document.body.style['transition'] = 'transform 3s';
     document.body.style['transform'] = 'rotate(180deg)';
 }
}, 4000);

Esse é um bom exemplo para dar um susto em alguém. Depois de 4 segundos (o 4000 passado por parametro) a tela gira um pouco, veja se você conegue notar

 

É isso ai pessoal, espero que tenham gostado deste post e que tenham aprendido algo. Deixem qualquer duvida ou sugestão aqui nos comentários. Até mais.