Injeção de SQL

Os cibercriminosos utilizam injecções SQL para explorar vulnerabilidades de software em aplicações Web e obter acesso não autorizado aos seus dados sensíveis e valiosos.

O que é um ataque de injeção de SQL?

Pode não saber o que é um ataque de injeção SQL (SQLI) ou como funciona, mas certamente conhece as vítimas. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn A Sony Pictures e outras empresas foram todas alvo de ciberataques realizados por criminosos que utilizaram injeções SQL.

Um SQLI é um tipo de ataque através do qual os cibercriminosos exploram vulnerabilidades de software em aplicações Web com o objetivo de roubar, apagar ou modificar dados ou obter controlo administrativo sobre os sistemas que executam as aplicações afectadas.

Os investigadores de cibersegurança consideram o SQLI uma das ciberameaças menos sofisticadas e mais fáceis de se defender. Malwarebytes Labs O SQLI foi classificado como o terceiro na lista das 5 ciberameaças mais estúpidas que, mesmo assim, funcionam , citando o facto de o SQLI ser um ataque conhecido e previsível, com contramedidas facilmente implementadas.

Os ataques SQLI são tão fáceis que, de facto, os atacantes podem encontrar sites vulneráveis usando pesquisas avançadas do Google, chamadas Google Dorking. Depois de encontrarem um alvo adequado, os atacantes SQLI podem utilizar programas automatizados para levar a cabo o ataque por eles. Tudo o que têm de fazer é introduzir o URL do site alvo e ver os dados roubados a entrar.

No entanto, os ataques SQLI são comuns e acontecem todos os dias. De facto, se tem um sítio Web ou um negócio em linha, é provável que os cibercriminosos já tenham tentado utilizar a SQLI para tentar entrar no seu sítio Web. Um estudo do Ponemon Institute sobre The SQL Injection Threat & Recent Retail Breaches revelou que 65% das empresas inquiridas foram vítimas de um ataque baseado em SQLI.

As aplicações Web frequentemente visadas incluem: sites de redes sociais, retalhistas em linha e universidades. As pequenas e médias empresas são especialmente vulneráveis, uma vez que muitas vezes não estão familiarizadas com as técnicas que os cibercriminosos utilizam num ataque SQLI e, do mesmo modo, não sabem como se defender contra esse tipo de ataque.

Com isso, vamos dar o primeiro passo para nos defendermos contra uma injeção de SQL, informando-nos sobre o assunto. Aqui está a sua cartilha sobre injecções de SQL.

"Um SQLI é um tipo de ataque através do qual os cibercriminosos exploram vulnerabilidades de software em aplicações Web com o objetivo de roubar, apagar ou modificar dados, ou obter controlo administrativo sobre os sistemas que executam as aplicações afectadas."

Como funciona uma injeção de SQL?

Desenvolvida no início dos anos 70, a SQL (abreviatura de structured query language - linguagem de consulta estruturada) é uma das linguagens de programação mais antigas ainda utilizadas atualmente para gerir bases de dados online. Estas bases de dados contêm elementos como preços e níveis de inventário para sítios de compras em linha. Quando um utilizador precisa de aceder a informações da base de dados, a SQL é utilizada para aceder e apresentar esses dados ao utilizador. Mas estas bases de dados também podem conter dados mais sensíveis e valiosos, como nomes de utilizador e palavras-passe, informações sobre cartões de crédito e números da segurança social. É aqui que as injecções de SQL entram em jogo.

Em termos simples, uma injeção SQL ocorre quando um criminoso hackers Inserir comandos maliciosos em formulários web, como o campo de pesquisa, o campo de login ou o URL de um site não seguro, para obter acesso não autorizado a dados confidenciais e valiosos.

Eis um exemplo. Imagine que vai ao seu site de roupa online preferido. Está a comprar meias e vê um mundo Technicolor de meias coloridas, todas disponíveis com um clique do rato. As maravilhas da tecnologia! Cada meia que vê existe numa base de dados num servidor qualquer. Quando encontra uma meia de que gosta e clica nela, está a enviar um pedido à base de dados de meias e o sítio de compras responde com a informação sobre a meia em que clicou. Agora imagine que o seu sítio de compras em linha preferido foi construído de uma forma descuidada, repleto de vulnerabilidades SQL exploráveis.

Um cibercriminoso pode manipular as consultas à base de dados de tal forma que um pedido de informação sobre um par de meias devolve o número do cartão de crédito de um infeliz cliente. Repetindo este processo vezes sem conta, um cibercriminoso pode explorar as profundezas da base de dados e roubar informações sensíveis sobre todos os clientes que já fizeram compras no seu site de roupa online favorito - incluindo você. Levando a experiência de pensamento ainda mais longe, imagine que é o proprietário deste sítio de roupa. Tem em mãos uma enorme violação de dados.

Um ataque de SQLI pode dar aos cibercriminosos informações pessoais, e-mails, logins, números de cartões de crédito e números de segurança social de milhões de consumidores. Os cibercriminosos podem então dar a volta e vender estas informações pessoais nos cantos mais sombrios da dark web, para serem utilizadas para todo o tipo de fins ilegais.

Os e-mails roubados podem ser utilizados para ataques de phishing e malspam . Os ataques de malspam, por sua vez, podem ser utilizados para infetar vítimas com todo o tipo de malware destrutivo, como ransomware , adware , cryptojackers e Trojans (como o Emotet ), para citar alguns. Números de telefone roubados para Android e iOS Os dispositivos móveis podem ser alvo de chamadas automáticas e spam por SMS.

Os logins roubados das redes sociais podem ser utilizados até para enviar spam e roubar ainda mais logins de outros sites. Malwarebytes Labs já reportou casos de contas LinkedIn pirateadas a serem utilizadas para enviar spam a outros utilizadores com mensagens InMail contendo URLs falsos, falsificados para se parecerem com uma página de login do Google Docs, através das quais os cibercriminosos podiam recolher nomes de utilizador e palavras-passe do Google.

"Um cibercriminoso pode manipular as consultas à base de dados de tal forma que um pedido de informações sobre um par de meias devolve o número do cartão de crédito de um infeliz cliente."

Qual é a história das injecções de SQL?

A vulnerabilidade de injeção de SQL foi documentada pela primeira vez em 1998 pelo investigador de cibersegurança e hacker Jeff Forristal. As suas descobertas foram publicadas na revista de longa duração hacker Na revista Phrack, Forristal, escrevendo sob o pseudónimo de Rain Forest Puppy, explicou como alguém com conhecimentos básicos de programação poderia inserir comandos SQL não autorizados em comandos SQL legítimos e extrair informações confidenciais da base de dados de um site não seguro.

Quando Forristal notificou a Microsoft sobre a forma como a vulnerabilidade afectava o seu popular produto SQL Server, a empresa não viu isso como um problema. Como disse Forristal: "De acordo com eles [Microsoft], o que está prestes a ler não é um problema, por isso não se preocupe em fazer nada para o impedir."

O que torna a resposta indiferente da Microsoft tão chocante é o facto de muitas indústrias e instituições dependerem seriamente (então e agora) da tecnologia de gestão de bases de dados da empresa para manter as suas operações em funcionamento, incluindo o retalho, a educação, os cuidados de saúde, a banca e os recursos humanos. Isto leva-nos ao próximo evento na cronologia da história da SQLI - o primeiro grande ataque da SQLI.

Em 2007, a maior cadeia de lojas de conveniência dos Estados Unidos, a 7-Eleven, foi vítima de um ataque SQLI. O ataque russo hackers utilizaram injeções SQL para invadir o site da 7-Eleven e utilizá-lo como ponto de partida para aceder à base de dados de cartões de débito dos clientes da loja de conveniência. Isso permitiu que hackers para depois levantar o dinheiro e regressar à Rússia. Ao todo, os culpados fugiram com dois milhões de dólares, como relata a revista Wired.

Nem todos os ataques SQLI são motivados pela ganância. Num outro exemplo notável de 2007, os cibercriminosos utilizaram a SQLI para obter o controlo administrativo de dois sítios Web relacionados com o exército dos EUA e redirecionar os visitantes para sítios Web com propaganda anti-americana e anti-israelita.

A violação de dados do MySpace em 2008 é um dos maiores ataques a um sítio Web de consumidores. Os cibercriminosos roubaram e-mails, nomes e palavras-passe parciais de quase 360 milhões de contas. E é por isso que não reutilizamos as palavras-passe de um site para outro.

O título de falta de segurança mais flagrante vai para a Equifax. A violação de dados da Equifax em 2017 forneceu informações extremamente pessoais (ou seja, nomes, números de segurança social, datas de nascimento e moradas) de 143 milhões de consumidores. Para uma organização que actua como guardiã da informação de todos os americanos, exceto dos que vivem fora da rede, seria de esperar que tomasse precauções contra um ataque SQLI básico. Antes de ocorrer a violação de dados, uma empresa de investigação em cibersegurança chegou a avisar a Equifax de que era suscetível a um ataque SQLI, mas a agência de crédito não tomou qualquer medida até ser demasiado tarde.

Considerado o ciberataque mais assustador da história, um ataque SQLI em 2015 contra a fabricante de brinquedos Vtech expôs os dados de quase cinco milhões de pais e 200 mil crianças. Em entrevista à Motherboard , uma publicação multimédia online, o... hacker Os responsáveis ​​alegaram que não tinham planos para os dados e não os publicaram em lado nenhum online. Por outro lado, o hacker Explicou ainda que os dados eram muito fáceis de roubar e que outra pessoa poderia tê-los obtido primeiro. Uma consolação muito frágil.

Atualmente, o ataque SQLI continua a ser uma realidade. De três em três anos, o Open Web Application Security Project (OWASP) classifica os 10 riscos mais críticos para a segurança das aplicações Web. Na edição mais recente, de 2017, o ataque SQLI foi classificado como o número um.

Para além da longevidade do ataque SQLI, o que é interessante é que os ataques SQLI não mudaram nem evoluíram de forma alguma. Os ataques SQLI funcionam e continuarão a funcionar até que as pessoas mudem as suas atitudes em relação à cibersegurança. Seja essa mudança.

Notícias sobre injecções de SQL

Como é que as injecções de SQL afectam a minha empresa?

Tal como referido no nosso relatório sobre Tácticas e Técnicas de Cibercrime, os ciberataques (de todos os tipos) a empresas aumentaram 55% no segundo semestre de 2018, enquanto os ataques a consumidores individuais aumentaram apenas 4%. As estatísticas não são surpreendentes. As empresas com uma segurança deficiente constituem um alvo fácil para os criminosos, que possuem um tesouro de dados valiosos que valem milhões.

Por outro lado, uma empresa no centro de uma violação de dados pode esperar pagar milhões. Um estudo da IBM apurou que o custo médio de uma violação de dados , incluindo remediação e penalizações, é de 3,86 milhões de dólares. LinkedIn A violação de dados anteriormente mencionada acabou por custar ao site de redes sociais profissionais 1,25 milhões de dólares num acordo extrajudicial.

Após a violação de dados, a Target foi obrigada a pagar o maior montante de que há registo - 18,5 milhões de dólares - para resolver investigações levadas a cabo por vários estados. Este valor foi adicionado aos 10 milhões de dólares que a Target pagou para resolver uma ação judicial colectiva intentada por consumidores.

É certo que se trata de grandes violações de dados que afectam milhões de consumidores. No entanto, as empresas de pequena e média dimensão ainda podem esperar pagar 148 dólares por cada registo de consumidor roubado.

A moral da história? Leve a sua segurança a sério e evite ser um "alvo" para os cibercriminosos.

Como posso proteger-me contra injecções de SQL?

Deixando de lado toda essa confusão, você está aqui porque sabe que as injeções de SQL são uma ameaça séria. Agora, vamos fazer algo a respeito. Aqui estão algumas dicas para proteger sua empresa contra ataques de injeção de SQL.

Actualize o seu software de gestão de bases de dados. O seu software é defeituoso tal como vem do fabricante. Isto é um facto. Não existe software livre de erros. Os cibercriminosos podem tirar partido destas vulnerabilidades de software, ou exploits, com um SQLI. Pode proteger-se apenas corrigindo e actualizando o seu software de gestão de bases de dados.

Aplicar o princípio do menor privilégio (PoLP). O PoLP significa que cada conta só tem acesso suficiente para fazer o seu trabalho e nada mais. Por exemplo, uma conta Web que apenas necessita de acesso de leitura a uma determinada base de dados não deve ter a capacidade de escrever, editar ou alterar dados de forma alguma.

Utilizar instruções preparadas ou procedimentos armazenados. Ao contrário da SQL dinâmica, as instruções preparadas limitam as variáveis nos comandos SQL de entrada. Desta forma, os cibercriminosos não podem fazer injecções de SQL maliciosas em instruções SQL legítimas. Os procedimentos armazenados limitam de forma semelhante o que os cibercriminosos podem fazer, armazenando instruções SQL na base de dados, que são executadas a partir da aplicação Web pelo utilizador.

Contrate programadores competentes e experientes. Os ataques SQLI resultam frequentemente de uma codificação deficiente. Informe antecipadamente os programadores do seu software sobre as suas expectativas em matéria de segurança.

E se as minhas informações pessoais forem roubadas numa violação de dados? Deve consultar a nossa lista de verificação de violação de dados. Aí ficará a saber tudo sobre como limpar e manter-se seguro depois de uma violação de dados de um ataque SQLI o afetar.

Visite o OWASP. O Open Web Application Security Project, abreviadamente OWASP, é a principal autoridade em aplicações Web e tem muitas leituras adicionais sobre como evitar injecções de SQL.

E se ainda não se cansa de informações sobre a injeção de SQL, visite o blogue Malwarebytes Labs para ficar a par de todas as novidades do mundo das ciberameaças e da cibersegurança.