O que é um ataque de injeção de SQL?
Poderá não saber o que é um ataque de injeção de SQL (SQLI) ou como funciona, mas de certeza que conhece as vítimas. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn e Sony Pictures - todas estas empresas foram pirateadas por cibercriminosos utilizando injecçõ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 a SQLI como uma das ameaças cibernéticas menos sofisticadas e fáceis de defender. Malwarebytes Labs classificou a SQLI em terceiro lugar na lista das 5 ameaças cibernéticas mais estúpidas que funcionam de qualquer forma, citando o facto de a SQLI ser um ataque conhecido e previsível, com contramedidas fáceis de implementar.
Os ataques SQLI são tão fáceis que, de facto, os atacantes podem encontrar sites vulneráveis usando pesquisas avançadas no 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 de 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 de SQL é quando os hackers introduzem comandos maliciosos em formulários Web, como o campo de pesquisa, o campo de início de sessão ou o URL de um sítio Web não seguro, para obterem acesso não autorizado a dados sensíveis 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 SQLI pode fornecer 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 de malspam. Os ataques de malspam, por sua vez, podem ser utilizados para infetar as vítimas com todo o tipo de malware destrutivo, como ransomware, adware, cryptojackers e cavalos de Troia (por exemplo, Emotet), para citar alguns. Números de telefone roubados para Android e iOS podem ser alvo de chamadas automáticas e mensagens de texto spam.
Os logins roubados de sites de redes sociais podem até ser usados para enviar mensagens de spam e roubar ainda mais logins para outros sites. Malwarebytes Labs relatou anteriormente a utilização de contas do LinkedIn pirateadas para enviar spam a outros utilizadores através de mensagens InMail com URLs falsos, ou falsificados, para se parecerem com uma página de início de sessão do Google Docs, através da qual os cibercriminosos podiam recolher nomes de utilizador e palavras-passe do Google.
"Um cibercriminoso pode manipular as consultas à base de dados de forma a que um pedido de informações sobre um par de meias devolva o número do cartão de crédito de um infeliz cliente."
Qual é a história das injecções de SQL?
A exploração da injeção SQL foi documentada pela primeira vez em 1998 pelo investigador de cibersegurança e hacker Jeff Forristal. As suas descobertas foram publicadas na longa revista de hackers Phrack. Sob a alcunha de Rain Forest Puppy, Forristal explicou como alguém com conhecimentos básicos de codificação podia juntar comandos SQL não autorizados a comandos SQL legítimos e retirar informações sensíveis da base de dados de um sítio Web 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. Os piratas informáticos russos utilizaram injecções SQL para entrar no sítio Web da 7-Eleven e utilizá-lo como trampolim para a base de dados de cartões de débito dos clientes da loja de conveniência. Isso permitiu que os hackers retirassem dinheiro de volta para casa, na Rússia. No total, os culpados fugiram com dois milhões de dólares, como informou 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 tarde demais.
Naquela que é considerada a pirataria informática mais assustadora da história, um ataque da SQLI em 2015 ao fabricante de brinquedos Vtech levou a uma violação de quase cinco milhões de pais e 200 000 crianças. Em declarações à Motherboard, a publicação multimédia em linha, o hacker responsável afirmou que não tinha quaisquer planos para os dados e que não os publicou em lado nenhum na Internet. Por outro lado, o hacker também explicou que os dados eram muito fáceis de roubar e que outra pessoa poderia ter chegado a eles primeiro. Um consolo de facto.
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
- O que é um honeypot? Como são utilizados na cibersegurança
- Entrevista com um caçador de prémios de insectos: Youssef Sammouda
- Um guia de dia zero para 2020: Ataques recentes e técnicas preventivas avançadas
- As vulnerabilidades nas aplicações móveis financeiras põem em risco os consumidores e as empresas
- Como proteger o seu sistema de gestão de conteúdos
- Explicação: Injeção de SQL
- OWASP top ten - Segurança aborrecida que compensa
- As 5 ameaças cibernéticas mais estúpidas que funcionam na mesma
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 concluiu que o custo médio de uma violação de dados, incluindo correção e sanções, é de 3,86 milhões de dólares. A violação de dados do LinkedIn mencionada anteriormente acabou por custar ao site de rede de negócios 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 não se cansa de injeção de SQL na sua vida, visite o blogue do Malwarebytes Labs para conhecer os últimos acontecimentos no mundo das ciberameaças e da cibersegurança.