A Injeção de SQL ocorre quando dados inseguros são enviados ao interpretador como parte de um comando ou consulta. Os dados alterados são enviados pelo invasor visando enganar o interpretador para que este execute os comandos maliciosos ou permita o acesso a dados não autorizados. Considerado um dos grandes desafios das aplicações web o SQL Injection tomou o posto principal em uma analise realizada pela OWASP, quando um ataque obtém sucesso o invasor poderá ter acesso ao banco de dados da aplicação.
Os vetores de ataque são simples, baseados em textos enviados pelos atacantes, visando explorar a sintaxe do interpretador onde praticamente qualquer fonte de dados pode ser considerada como um vetor de injeção, inclusive fontes internas. Já as vulnerabilidades de segurança exploradas no SQL Injection quando uma aplicação enviar dados não confiáveis a um interpretador, os impactos técnicos poderão resultar em perda ou corrupção de dados, negação de acesso e, em alguns casos, poderá acarretar no comprometimento completo do servidor. Finalmente, os impactos no negócio são que a reputação e as atividades da empresa poderão ser totalmente prejudicadas já que os dados podem ser roubados, modificados ou excluídos, perdendo a confidencialidade, integridade e até mesmo disponibilidade das informações.
Uma aplicação esta suscetível a SQL Injection se os interpretadores não separam dados não confiáveis dos comandos ou consultas, para se proteger de tal ação deve-se utilizar variáveis de ligação nos procedimentos armazenados e instruções preparadas buscando também não realizar consultas dinâmicas. Analisar o código fonte é uma forma eficaz de se identificar se os interpretadores estão sendo utilizados de maneira segura, os testes de invasão por meio de exploits podem ajudar a confirmar se tal vulnerabilidade esta presente.
A prevenção do SQL Injection deve ocorrer buscando manter os dados inseguros separados das consultas e comandos, a forma preferida de prevenção é por meio de interfaces de programação de aplicativos (API) que buscam evitar totalmente o uso de interpretadores o seu uso deve ser cuidadosamente avaliado pois podem ocorrer injeções em segundo plano se utilizados incorretamente, caso não seja utilizado um API deve-se efetuar a filtragem dos caracteres especiais utilizados para tal finalidade maliciosa.
Já as falhas de XSS residente ocorrem sempre que uma aplicação recebe dados não confiáveis e os envia ao navegador sem validação ou filtro adequados. Permite aos agentes de ameaça executarem scripts no navegador da vítima que podem obter sessões do usuário, desfigurar sites, ou redirecionar o usuário para sites maliciosos.
Diferente da injeção de SQL que busca executar instruções SQL maliciosas em consultas no banco de dados ocorrendo fora da vista dos usuários, o XSS Residente busca executar marcações maliciosas ou códigos Javascript em valores que serão mostrados em uma página web. Este tipo de ataque busca enganar o usuário que tem confiança em um site levando-o a executar uma ação ou exibição de informações para um outro site não confiável.
As vulnerabilidades relacionadas ao XSS Residente estão ligadas a não filtragem de todas as entradas enviadas pelos usuários bem como a não avaliação da segurança das informações na entrada antes que sejam incluídas na pagina de saída. Sem um filtro apropriado as entradas fornecidas serão consideradas conteúdos ativos no navegador, existem algumas ferramentas que podem localizar algumas falhas de XSS automaticamente, entretanto cada aplicação possui paginas de saída diferenciadas utilizando interpretadores diversos juntamente com o navegador como Javascript, Flash, Silverlight e ActiveX causando maior dificuldades para uma detecção automatizada assim necessitando de uma analise manual, bem como testes de invasão para analise das vulnerabilidades. Prevenir os ataques por XSS consistem na separação de dados inseguros do conteúdo ativo do navegador, assim deve-se efetuar uma filtragem total dos dados inseguros baseados no contexto HTML (corpo, atributo, Javascript, CSS ou URL).
O spoofing (falsificação) funciona assim: Um cibercriminoso se finge ser outra pessoa ou entidade para enganar alguém. Assim que o cibercriminoso ganha a confiança da vítima, o perigo é iminente. Spoofers de e-mail, telefone e SMS enganam as vítimas para que elas entreguem informações pessoais, que podem levar a fraudes financeiras ou roubo de identidade.
Cibercriminosos usam frequentemente spoofing de e-mail para iludir as vítimas em golpes de phishing. Outros tipos de spoofing visam redes em vez de indivíduos, com o objetivo de espalhar malware, roubar dados, contornar sistemas de segurança ou preparar ataques subsequentes.
Como o spoofing se baseia em enganação, impedir e detectar esses ataques pode ser complicado. Por isso, é muito importante se proteger com uma segurança de internet forte e confiável. O antivírus escaneia constantemente se há ameaças e protege contra os tipos de ataques de phishing e malware que os spoofers adoram.
A diferença entre spoofing e phishing é que, embora o spoofing use a identidade de outra pessoa, os ataques de phishing tentam acessar informações confidenciais. Golpes de phishing comuns envolvem “atrair” as vítimas com uma isca, como e-mails falsos, e fazer com que elas forneçam dados pessoais que podem ser usados para roubo de identidade.
Ataques de spoofing fazem parecer que as comunicações do cibercriminoso são confiáveis, porque imitam a aparência de fontes confiáveis. Muitos phishers usam o spoofing para fazer com que as vítimas acreditem que o e-mail que usam é legítimo. Esse tipo de engenharia social manipuladora é usado pelos golpes de phishing para convencer as vítimas a divulgar informações pessoais.
Como mencionamos, há vários tipos de spoofing. Spoofing no nível de DNS ou endereço IP é diferente de phishing, pois envolve métodos técnicos para enganar um computador ou um sistema. Por exemplo, “typosquatting” é um tipo de ataque de spoofing que usa erros comuns que as pessoas cometem ao digitar URLs para fazer com que pensem que acessaram o site correto.
Porém, spoofing de e-mail e phishing são muito parecidos e muitas vezes são usados juntos.
Cibercriminosos mais inteligentes usam spoofing para tornar os e-mails de phishing ou as mensagens SMS muito mais convincentes e aumentar as chances de sucesso.
O spoofing de site ocorre quando um cibercriminoso cria um site falso que parece legítimo. Ao fazer login, o cibercriminoso obtém suas credenciais.
Às vezes, spoofers mal-intencionados usam um URL disfarçado, que redireciona você para o sistema deles e coleta suas informações pessoais. Eles podem até disfarçar o verdadeiro URL de destino, inserindo caracteres de controle especiais que contêm um significado diferente dos caracteres exibidos. Frequentemente, como no “typosquatting”, o URL é tão parecido com o endereço pretendido que você pode não notar a diferença.
Spoofing de IP acontece em um nível mais profundo da internet do que o spoofing de e-mail. Quando um cibercriminoso usa o spoofing de IP, ele está lidando com um dos protocolos web mais básicos. Todo dispositivo se conecta à internet de um endereço IP, uma cadeia de números que informa aos outros onde ele está. Quando o dispositivo envia e recebe informações, ele usa pacotes de dados que podem encontrar o endereço IP do dispositivo.
Muitas redes fechadas são configuradas para aceitar apenas pacotes de um intervalo pré-aprovado de endereços IP. Essa medida de segurança impede o ingresso de dispositivos desconhecidos. Um cibercriminoso pode usar um ataque de spoofing de IP para alterar o endereço IP do seu dispositivo e enganar uma rede segura permitir a invasão. Você pode ocultar seu endereço IP para evitar que ele seja usado como disfarce.
Um buffer overflow (ou transbordamento de dados) ocorre quando um programa em execução tenta gravar dados além do que o buffer de memória permite, sobrecarregando o sistema operacional. Este tipo de falha é usada por cibercriminosos para executar código arbitrário em um computador, de modo que em muitos casos eles conseguem obter o controle do dispositivo da vítima ou executar um ataque de Negação de Serviço (DoS).
Na verdade, um buffer overflow ocorre quando um aplicativo não conta com os controles de segurança necessários em seu código de programação. Deve-se destacar que, para realizar um transbordamento de dados, é necessário ter conhecimentos de programação, bem como noções básicas de arquitetura de sistemas operacionais.
O princípio operacional de um buffer overflow anda de mãos dadas com a arquitetura do processador no qual um aplicativo vulnerável é executada, seja ele de 32 bits ou 64 bits. Os dados inseridos em um aplicativo são armazenados na memória de acesso aleatório, em uma área conhecida como buffer. Um programa devidamente projetado estipula um tamanho máximo para os dados de entrada e garante que esse valor não seja excedido.
As instruções e os dados de um programa em execução são armazenados temporariamente na memória, em uma área chamada de pilha. Os dados que ficam depois do buffer contêm um endereço de retorno (chamado de ponteiro de instruções) que permite que o programa continue seu tempo de execução. Se o tamanho dos dados for maior que o buffer, o endereço de retorno é sobrescrito e o programa lerá um endereço de memória inválido, causando uma violação de segmento no aplicativo. Qual é o risco de segurança nisso?
Um cibercriminoso com sólidos conhecimentos técnicos pode garantir que o endereço de memória sobrescrito corresponda a um endereço real, por exemplo, um que esteja localizado no mesmo buffer. Ao inserir as instruções no buffer (o código arbitrário), torna-se fácil executar essa instrução. Desta forma, é possível incluir instruções no buffer que permitem a abertura de um intérprete de comandos (como um shell), o que pode fazer com que um atacante assuma o controle do sistema. Este código arbitrário que permite a execução do intérprete de comandos é conhecido como código de shell ou shellcode.
Como vimos anteriormente, essa falha pode ser encontrada em sistemas operacionais, em outros tipos de aplicativos de terceiros e até mesmo em protocolos. Nestes casos, o ideal é realizar a leitura das falhas que são corrigidas através de atualizações dos aplicativos e sistemas operacionais – a instalação de atualizações corrige este tipo de erro, fechando brechas que podem facilitar a ocorrência de um vazamento de dados.
A adoção de uma política de atualizações, em conjunto com uma solução de segurança, ajuda a evitar a exploração desses bugs na programação de aplicativos.
Essa expressão típica brasileira está ligada diretamente ao honeypot em segurança digital. Ao traduzir para o português, honeypot significa “pote de mel”, algo doce e gostoso que pode atrair predadores. Essa é a função básica do honeypot, atrair os invasores para uma armadilha.
O honeypot é um sistema conectado à rede e configurado como chamariz para atrair os ataques cibernéticos detectando, desviando e estudando as tentativas dos hackers em obter acesso não autorizado aos sistemas de informação.
A função de um honeypot é se apresentar na internet como um alvo potencial para invasores — geralmente, um servidor ou outra fonte de alto valor — e coletar informações, notificando os defensores — white hats — sobre quaisquer tentativas de acesso a isca por usuários não autorizados.
Basicamente, o hacker atua roubando dados e informações, mas ao cair no honeypot, ele estará dando informações para os defensores do sistema. Se o usuário, por exemplo, fosse responsável pela segurança de TI de um banco, poderia configurar um sistema honeypot que, para quem está de fora, se parece com a rede do banco.
Ao monitorar o tráfego para esses sistemas isca, pode-se entender melhor de onde vêm os criminosos, como operam e o que desejam. Mais importante, pode-se determinar quais medidas de segurança estão funcionando — e quais podem precisar de melhorias — simplesmente observando como estão praticando a invasão. É um verdadeiro “Raio-X” sobre a forma de agir do determinado hacker.
Usualmente, esse tipo de ferramenta vem sendo utilizada em sistemas de alta poder de destruição na mão dos hackers, principalmente envolvendo o público e risco de vida, onde a ação de um invasor pode ser tornar um ataque terrorista em potencial.
Pesquisadores e defensores — white hats — usam honeypots para expor vulnerabilidades com dispositivos médicos, postos de gasolina, sistemas de controle industrial usados para atividades como controle de redes de energia elétrica, abertura de comportas de hidrelétricas etc.
Dada toda a atenção que os bandidos recebem por seus esforços de invasão e violação de dados, é bom saber que os protetores de sistemas têm alguns truques para ajudar na proteção contra os ataques cibernéticos. Ao passo que mais dispositivos e sistemas se conectam à Internet, a importância de lutar contra aqueles criminosos que usam a rede como uma arma só vai aumentar, os honeypots podem ajudar na proteção dos sistemas.
Contas e senhas são atualmente o mecanismo de autenticação mais usados para o controle de acesso a sites e serviços oferecidos na internet. É por meio das suas contas e senhas que os sistemas conseguem saber quem é o usuário (autenticação) e definir as ações que ele pode (ou não) realizar (autorização).
Uma senha é um dado secreto, geralmente uma sequência de caracteres, empregada para confirmar a identidade de um usuário em um sistema. Sendo assim, é um mecanismo de autenticação baseado em algo que somente você sabe - um segredo, portanto. As senhas são comumente empregadas em conjunto com um nome de usuário, constituindo desta forma um par de valores para autenticação em um sistema.
Se os caracteres que compõe a senha são obrigatoriamente apenas numéricos, a senha é comumente chamada de PIN - Personal Identification Number. Um exemplo clássico são as senhas de autorização de transação de cartão de crédito ou de contas bancárias.
Já uma sequência de palavras ou de cadeias de caracteres separadas por espaços é chamada de passphrase (ou frase secreta), funcionando de forma similar à de uma senha, porém geralmente mais seguras (por serem mais longas).
Técnicas empregadas para descobrir senhas:
Podemos usar sites para testar a segurança de senhas.
Algumas técnicas que empregamos para criar senhas seguras incluem:
C@qu1_P1ngu1m_$0rt&10
). Preferencialmente empregue palavras relacionadas a assuntos que você não costuma ter interesse.ePc0mdcCmN@lDp
, retirada da frase Eu posso calcular o movimento dos corpos celetes, mas não a loucura das pessoas, de Isaac Newton.
O que evitar ao criar uma senha:
senhaou sequências como 123 ou similares. Palavras relacionadas a hobbies que você tenha.