Na semana passada, a Progress Software Corporation, que vende software e serviços para desenvolvimento de interface de usuário, devops, gerenciamento de arquivos e muito mais, alertou os clientes sobre sua Transferência MOVEit e afins Nuvem MOVEit produtos sobre um vulnerabilidade crítica apelidado CVE-2023-34362.
Como o nome sugere, o MOVEit Transfer é um sistema que facilita o armazenamento e o compartilhamento de arquivos entre uma equipe, um departamento, uma empresa ou até mesmo uma cadeia de suprimentos.
Na sua próprias palavras, “O MOVEit fornece colaboração segura e transferências automatizadas de arquivos de dados confidenciais e recursos avançados de automação de fluxo de trabalho sem a necessidade de scripts.”
Infelizmente, o front-end baseado na web do MOVEit, que torna mais fácil compartilhar e gerenciar arquivos usando apenas um navegador da web (um processo geralmente considerado menos propenso a arquivos mal direcionados ou “perdidos” do que compartilhá-los por e-mail), acabou por ter um SQL vulnerabilidade de injeção.
Injeções de SQL explicadas
Erros de injeção de SQL baseados na Web surgem quando uma solicitação HTTP é enviada para um servidor web é convertido de forma insegura em um comando de consulta que é então emitido pelo servidor para fazer uma pesquisa no banco de dados para descobrir qual resposta HTTP construir.
Por exemplo, uma pesquisa de banco de dados acionada a partir de uma página da Web pode terminar como uma URL solicitada por seu navegador com esta aparência:
https://search.example.com/?type=file&name=duck
O texto da consulta duck
poderia então ser extraído do parâmetro de nome na URL, convertido em sintaxe de consulta de banco de dados e costurado em um comando para enviar ao servidor de banco de dados.
Se os dados de back-end estiverem armazenados em um banco de dados SQL, o servidor da web pode converter esse URL em um comando SQL como o mostrado abaixo.
A %
caracteres adicionados ao texto duck
significa que o termo de pesquisa pode aparecer em qualquer lugar no nome do arquivo recuperado e as aspas simples em cada final são adicionadas como marcadores para denotar uma string de texto SQL:
SELECT filename FROM filesdb WHERE nome LIKE '%duck%'
Os dados que retornam da consulta podem ser formatados corretamente, convertidos em HTML e enviados de volta como uma resposta HTTP ao seu navegador, talvez fornecendo uma lista clicável de arquivos correspondentes para download.
Obviamente, o servidor da Web precisa ter muito cuidado com os nomes de arquivos que são enviados como um termo de pesquisa, caso um usuário mal-intencionado crie e solicite uma URL como esta:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Se esse termo de pesquisa for convertido cegamente em uma string de consulta, você poderá enganar o servidor da web para enviar ao servidor SQL um comando como este:
SELECT filename FROM filesdb WHERE nome LIKE '%duck';DROP TABLE filesdb;--%'
Porque um ponto e vírgula (;
) atua como um separador de instrução no SQL, esse comando de linha única é, na verdade, o mesmo que enviar três comandos consecutivos:
SELECT filename FROM filesdb WHERE name LIKE '%duck' -- corresponde aos nomes que terminam duck DROP TABLE filesdb -- exclui todo o banco de dados --%' -- comentário, não faz nada
Sorrateiramente, porque todo depois --
é descartado pelo SQL como um comentário do programador, essas três linhas são iguais a:
SELECT filename FROM filesdb WHERE nome LIKE '%duck' DROP TABLE filesdb
Você receberá uma lista de todos os nomes de arquivos no banco de dados que terminam com a string duck
(o caractere SQL especial %
no início de um termo de pesquisa significa “corresponde a qualquer coisa até este ponto”)…
...mas você será a última pessoa a tirar algo útil do filesdb
banco de dados, porque seu termo de pesquisa não autorizado seguirá a pesquisa com o comando SQL para excluir todo o banco de dados.
Mesinhas de Bobby
Se você já ouviu administradores ou programadores fazendo piadas sobre Mesinhas de Bobby, porque esse tipo de injeção de SQL foi imortalizado em um desenho animado XKCD de volta em 2007:
Como o desenho termina no último quadro, você realmente precisa limpar suas entradas de banco de dados, o que significa que você precisa tomar muito cuidado para não permitir que a pessoa que envia o termo de pesquisa controle como o comando de pesquisa é interpretado pelos servidores de back-end envolvidos.
Você pode ver por que esse tipo de truque é conhecido como ataque de injeção: nos exemplos acima, os termos de pesquisa mal-intencionados fazem com que um comando SQL adicional seja injetado no processamento da solicitação.
Na verdade, ambos os exemplos envolvem dois formulários injetados, seguindo o caractere de “aspas fechadas” inserido sorrateiramente para finalizar a string de pesquisa antecipadamente. O primeiro comando extra é o destrutivo DROP TABLE
instrução. O segundo é um “comando de comentário” que faz com que o resto da linha seja ignorado, comendo assim astutamente o final %'
caracteres gerados pelo gerador de comandos do servidor, que de outra forma teria causado um erro de sintaxe e impedido a injeção DROP TABLE
comando de trabalhar.
Boas e más notícias
A boa notícia neste caso é que a Progress corrigiu todas as suas versões MOVEit suportadas, juntamente com seu serviço baseado em nuvem, assim que tomou conhecimento da vulnerabilidade.
Portanto, se você usar a versão em nuvem, agora estará atualizado automaticamente e, se estiver executando o MOVEit em sua própria rede, esperamos que você já tenha corrigido.
A má notícia é que essa vulnerabilidade era de dia zero, o que significa que o Progress descobriu isso porque os bandidos já a estavam explorando, e não antes de descobrirem como fazer isso.
Em outras palavras, no momento em que você corrigiu seus próprios servidores (ou a Progress corrigiu seu serviço de nuvem), os criminosos já podem ter injetado comandos desonestos em seus bancos de dados de back-end MOVEit SQL, com uma variedade de resultados possíveis:
- Exclusão de dados existentes. Como mostrado acima, o exemplo clássico de um ataque de injeção SQL é a destruição de dados em larga escala.
- Exfiltração de dados existentes. Em vez de descartar tabelas SQL, os invasores podem injetar suas próprias consultas, aprendendo não apenas a estrutura de seus bancos de dados internos, mas também extraindo e roubando suas partes mais suculentas.
- Modificação de dados existentes. Os invasores mais sutis podem decidir corromper ou interromper seus dados em vez de (ou também) roubá-los.
- Implantação de novos arquivos, inclusive malware. Os invasores podem injetar comandos SQL que, por sua vez, iniciam comandos externos do sistema, obtendo assim a execução arbitrária de código remoto dentro de sua rede.
Um grupo de atacantes, alegado pela Microsoft para ser (ou estar conectado com) a infame gangue de ransomware Clop, aparentemente usando essa vulnerabilidade para implantar o que é conhecido como conchas de teia nos servidores afetados.
Se você não estiver familiarizado com webshells, leia nosso explicador de inglês simples que publicamos na época dos problemáticos ataques HAFNIUM em março de 2021:
perigo de webshell
Simplificando, os webshells fornecem uma maneira para que os invasores que podem adicionar novos arquivos ao seu servidor da web voltem mais tarde, invadam quando quiserem e transformem esse acesso somente para gravação em controle remoto completo.
Webshells funcionam porque muitos servidores web tratam certos arquivos (geralmente determinados pelo diretório em que estão ou pela extensão que possuem) como scripts executáveis usado para gerar a página para enviar de volta, em vez do conteúdo real a ser usado na resposta.
Por exemplo, o IIS (servidor de informações da Internet) da Microsoft geralmente é configurado para que, se um navegador da Web solicitar um arquivo chamado, digamos, hello.html
, o conteúdo bruto e não modificado desse arquivo será lido e enviado de volta ao navegador.
Portanto, se houver algum malware nesse hello.html
arquivo, isso afetará a pessoa que está navegando no servidor, não o próprio servidor.
Mas se o arquivo for chamado, digamos, hello.aspx
(onde ASP é a abreviação da frase autodescritiva Páginas do Active Server), esse arquivo será tratado como um programa de script para ser executado pelo servidor.
A execução desse arquivo como um programa, em vez de simplesmente lê-lo como dados, gerará a saída a ser enviada em resposta.
Em outras palavras, se houver algum malware nesse hello.aspx
arquivo, isso afetará diretamente o próprio servidor, não a pessoa que está navegando até ele.
Resumindo, descartar um arquivo webshell como efeito colateral de um ataque de injeção de comando significa que os invasores podem voltar mais tarde e visitando o URL correspondente ao nome de arquivo desse webshell…
…eles podem executar seu malware diretamente dentro de sua rede, usando nada mais suspeito do que uma solicitação HTTP despretensiosa feita por um navegador da web comum.
De fato, alguns webshells consistem em apenas uma linha de script malicioso, por exemplo, um único comando que diz “obtenha o texto de um cabeçalho HTTP específico na solicitação e execute-o como um comando do sistema”.
Isso fornece acesso de comando e controle de uso geral a qualquer invasor que conheça a URL correta a ser visitada e o cabeçalho HTTP correto a ser usado para fornecer o comando não autorizado.
O que fazer?
- Se você é usuário do MOVEit, certifique-se de que todas as instâncias do software em sua rede estejam corrigidas.
- Se você não pode corrigir agora, desligue as interfaces baseadas na web (HTTP e HTTP) para seus servidores MOVEit até que você possa. Aparentemente, essa vulnerabilidade é exposta apenas pela interface da Web do MOVEit, não por outros caminhos de acesso, como SFTP.
- Pesquise seus registros para arquivos de servidor da Web recém-adicionados, contas de usuário recém-criadas e downloads de dados inesperadamente grandes. Progress tem uma lista de lugares para pesquisar, juntamente com nomes de arquivos e para pesquisar.
- Se você é um programador, higienize suas entradas.
- Se você é um programador SQL, usou consultas parametrizadas, em vez de gerar comandos de consulta contendo caracteres controlados pela pessoa que enviou a solicitação.
Em muitos, se não na maioria, ataques baseados em webshell investigados até agora, Progresso sugere que você provavelmente encontrará um arquivo webshell desonesto chamado human2.aspx
, talvez junto com arquivos maliciosos recém-criados com um .cmdline
extensão.
(Os produtos Sophos detectarão e bloquearão arquivos webshell conhecidos como Troj/WebShel-GO, sejam eles chamados human2.aspx
ou não.)
Lembre-se, no entanto, que se outros invasores soubessem sobre esse dia zero antes do lançamento do patch, eles podem ter injetado comandos diferentes, e talvez mais sutis, que agora não podem ser detectados pela verificação de malware que foi deixado para trás ou pesquisando para nomes de arquivos conhecidos que podem aparecer nos logs.
Não se esqueça de revisar seus logs de acesso em geral e, se não tiver tempo para fazer isso sozinho, não tenha medo de pedir ajuda!
Saiba mais sobre Detecção e Resposta Gerenciada Sophos:
Caça, detecção e resposta a ameaças 24 horas por dia, 7 dias por semana ▶
Pouco tempo ou experiência para cuidar da resposta a ameaças de segurança cibernética? Preocupado que a segurança cibernética acabe distraindo você de todas as outras coisas que você precisa fazer?
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoAiStream. Inteligência de Dados Web3. Conhecimento Amplificado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Compre e venda ações em empresas PRE-IPO com PREIPO®. Acesse aqui.
- Fonte: https://nakedsecurity.sophos.com/2023/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 15%
- 2021
- a
- Capaz
- Sobre
- sobre isso
- acima
- absoluto
- Acesso
- Contas
- alcançar
- atos
- real
- adicionar
- adicionado
- Adicional
- avançado
- afetar
- com medo
- Depois de
- Todos os Produtos
- permitir
- juntamente
- já
- tb
- an
- e
- qualquer
- nada
- qualquer lugar
- aparecer
- SOMOS
- AS
- At
- ataque
- Ataques
- autor
- auto
- Automatizado
- automaticamente
- Automação
- consciente
- em caminho duplo
- Backend
- background-image
- Mau
- BE
- passou a ser
- Porque
- sido
- antes
- atrás
- abaixo
- cegamente
- Bloquear
- policial
- fronteira
- ambos
- Inferior
- violação
- Break
- navegador
- Navegando
- erros
- mas a
- by
- chamado
- veio
- CAN
- capacidades
- Cuidado
- cuidadoso
- desenho animado
- casas
- Causar
- causado
- causas
- Centralização de
- certo
- cadeia
- personagem
- caracteres
- clássico
- Na nuvem
- código
- colaboração
- cor
- como
- vem
- comentar
- Empresa
- completar
- conectado
- consecutivo
- considerado
- construir
- conteúdo
- ao controle
- controlado
- converter
- convertido
- CORPORAÇÃO
- Correspondente
- poderia
- curso
- cobrir
- crio
- criado
- Crooks
- Clientes
- Cíber segurança
- dados,
- violação de dados
- banco de dados
- bases de dados
- decidir
- entregando
- Departamento
- detectou
- Detecção
- determinado
- Desenvolvimento
- DevOps
- diferente
- diretamente
- Ecrã
- perturbe
- do
- parece
- não
- download
- de downloads
- Cair
- Caindo
- apelidado
- cada
- Cedo
- fácil
- final
- erro
- Mesmo
- SEMPRE
- cotidiano
- exemplo
- exemplos
- executar
- execução
- existente
- experiência
- Explorar
- exposto
- extensão
- externo
- extra
- fato
- familiar
- longe
- figurado
- Envie o
- Arquivos
- Encontre
- Primeiro nome
- seguir
- seguinte
- Escolha
- encontrado
- QUADRO
- da
- frente
- Front-end
- Gangue
- Geral
- propósito geral
- geralmente
- gerar
- gerado
- gerando
- gerador
- ter
- dá
- Dando
- Bom estado, com sinais de uso
- ótimo
- Grupo
- tinha
- Manipulação
- Ter
- ouviu
- altura
- esperança
- pairar
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- Caça
- if
- É
- in
- Incluindo
- infame
- INFORMAÇÕES
- injetável
- inputs
- em vez disso
- Interface
- interfaces de
- interno
- Internet
- para dentro
- envolver
- envolvido
- Emitido
- IT
- ESTÁ
- se
- apenas por
- apenas um
- conhecido
- grande
- em grande escala
- Sobrenome
- mais tarde
- lançamento
- aprendizagem
- esquerda
- menos
- como
- Line
- linhas
- Lista
- OLHARES
- pesquisa
- moldadas
- fazer
- FAZ
- Fazendo
- malwares
- gerencia
- gerenciados
- de grupos
- muitos
- Março
- Margem
- correspondente
- max-width
- Posso..
- significar
- significado
- significa
- Microsoft
- poder
- mais
- a maioria
- nome
- Nomeado
- nomes
- você merece...
- Cria
- rede
- Novo
- recentemente
- notícias
- normal
- nada
- agora
- of
- WOW!
- on
- uma vez
- ONE
- só
- or
- ordem
- Outros
- de outra forma
- A Nossa
- Fora
- resultados
- saída
- próprio
- página
- parâmetro
- peças
- Remendo
- Paul
- possivelmente
- pessoa
- Locais
- platão
- Inteligência de Dados Platão
- PlatãoData
- posição
- possível
- POSTAGENS
- provavelmente
- processo
- Produtos
- Agenda
- Programador
- Progresso
- fornecer
- fornece
- publicado
- colocar
- consultas
- citar
- alcance
- ransomware
- em vez
- Cru
- Leia
- Leitura
- clientes
- relacionado
- relativo
- remoto
- resposta
- solicitar
- solicitadas
- pedidos
- resposta
- DESCANSO
- rever
- certo
- Execute
- corrida
- mesmo
- dizer
- diz
- exploração
- Scripts
- Pesquisar
- pesquisar
- Segundo
- seguro
- Vejo
- Vende
- enviar
- envio
- sensível
- enviei
- serviço
- Serviços
- Partilhar
- compartilhando
- Baixo
- mostrar
- mostrando
- simplesmente
- solteiro
- So
- até aqui
- Software
- sólido
- alguns
- especial
- específico
- SQL
- Injeção de SQL
- começo
- Declaração
- loja
- armazenadas
- Tanga
- estrutura
- enviar
- apresentado
- tal
- Sugere
- supply
- cadeia de suprimentos
- Suportado
- suspeito
- SVG
- sintaxe
- .
- mesa
- Tire
- Profissionais
- prazo
- condições
- do que
- que
- A
- deles
- Eles
- então
- Lá.
- Este
- deles
- coisas
- isto
- ameaça
- três
- todo
- tempo
- para
- topo
- transferência
- fáceis
- transição
- transparente
- tratar
- desencadeado
- VIRAR
- Virado
- dois
- até
- que vai mais à frente
- URL
- usar
- usava
- Utilizador
- Interface de Usuário
- utilização
- geralmente
- versão
- via
- Visite a
- vulnerabilidade
- foi
- Caminho..
- we
- web
- navegador web
- servidor web
- Web-Based
- semana
- BEM
- foram
- O Quê
- quando
- se
- qual
- QUEM
- inteiro
- porque
- precisarão
- de
- sem
- palavras
- Atividades:
- exercite-se
- de gestão de documentos
- automação de fluxo de trabalho
- trabalhar
- preocupado
- seria
- Você
- investimentos
- você mesmo
- zefirnet