Inteligência de ameaças: uma área necessária para toda empresa de segurança

ElevenPaths    9 mayo, 2019

Hoje em dia, os ataques digitais são realizados por pessoas que utilizam técnicas sofisticadas, por isso é muito difícil prever as intenções e quais serão as técnicas utilizadas na hora de um ataque. Diante desse cenário, o modelo tradicional de atuação da segurança da informação não é suficiente. As empresas precisar recrutar profissionais especialistas que produzam inteligência de ameaças, descobrindo assim novas indicadores de comprometimento, técnicas de ataque e mecanismos avançados de defesa dos ativos de TI da companhia.

O que é a inteligência de ameaças (Cyber Threat Intelligence)
inteligência de ameaças, também conhecia como CTI, se define como a análise de informações e padrões empregados em um ataque para criar medidas que possam prevenir sua realização. O processo de entendimento de ameaças desconhecidas é formado por três etapas bem definidas: recolhimento de informações, investigação dos dados recolhidos e análise de tendências durante um ataque. O objetivo principal da CTI é que a empresa seja capaz de identificar novas falhas, tomando precauções para evitar que elas sejam exploradas. 

O processo de transformar uma ameaça desconhecida em uma conhecida deve ser transversal a todas as áreas de negócio da empresa, que só assim poderá se antecipar aos ataques.

As etapas da inteligência de ameaças
Existem três etapas que compõem o estudo de inteligência de ameaças: “unknown unknowns”, “known unknowns” e “known knowns”. Na primeira etapa, “unknown unknowns”, não se tem qualquer ideia sobre a ameaça que se está tentando localizar. Quando se obtém alguma informação sobre ela, passamos para a segunda etapa chamada, ou “known unknowns”, onde se passa a analisar a informações que permitam entender a natureza das ameaças, o que nos leva a terceira etapa, ou “known knowns”, em que se atua para mitigar as falhas encontradas. Resumindo, podemos definir a cyber threat intelligence como o processo de recolher informação sobre ataques presumidos, entendendo o que está por trás desses ataques, para tentar proteger de maneira proativa as infraestruturas de TI da empresa. O gráfico abaixo pode ajudar na compreensão do processo:

Características da Cyber Threat Intelligence

  • Recolher dados de múltiplas fontes, sejam de código aberto ou comerciais, assim como aquelas internas ou externas ao ambiente;
  • Criar alertas customizados e priorizados sobre a infraestrutura de TI da empresa;
  • Ajudar a identificar os indicadores de comprometimento (IoC) para proteger ativos de um possível ataque;
  • Possibilitar a implementação de novas estratégias de proteção; 
  • Compreender as campanhas de ataque ativas, definindo “quem”, “oque”, “quando”, “onde”, “por que” e “como”;
  • Tentar prever o risco e o impacto que as ameaças podem impor ao ambiente
  • Recomendar soluções de mitigação desse risco.

Como a inteligência de ameaças pode ajudar as empresas?
Diminuindo o efeito das falhas de segurança sobre os ambientes de TI das empresas. A CTI é importante para fortalecer a postura de segurança, atuando nas seguintes áreas:

  • Identify and Protect: a monitoria de ameaças internas e externas permite revelar falhas desconhecidas e vulnerabilidades que podem representar riscos para o negócio. A inteligência de ameaças ajuda a adaptar a estratégia atual de segurança para combater as estratégias de ataques que podem ser utilizadas contra o ambiente. Uma varredura do ambiente é crucial para determinar suas características, superfície de ataque e possíveis falhas que podem ser exploradas.
  • Detect: a monitoria e inteligência aplicada em tempo real ajuda as empresas a detectar ataques com mais rapidez e de maneira mais eficientes. A CTIA ajuda os analistas de segurança a descobrir ataques em suas fases iniciais, reduzindo alertas irrelevantes e falsos positivos.
  • Respond: a CTI entrega informação contextual sobre os ataques, incluindo IoCs, TTPs, etc. que podem prevenir a propagação do ataque, reduzindo seu impacto e duração, além de permitir o uso de medidas correspondentes de mitigação. A inteligência de ameaças suporta todo o processo de tomada de decisões para ajudar na criação de atividades de resposta aos incidentes correspondentes.
  • Recover: a CTI detecta e elimina os mecanismos permanentes utilizados por atacantes como, por exemplo, arquivos infectados instalados em sistemas, permitindo rápida recuperação do ambiente, priorizando a segurança de ativos e ajudando a melhoras os mecanismos existentes de proteção dos mesmos.

Fernando Palacios Escribano
www.elevenpaths.com

Se você quer mudar os hábitos de segurança dos seus colaboradores, não conte com vontade própria, mude o ambiente

ElevenPaths    30 abril, 2019

Imagine que você está em uma cafeteria e precisa conectar seu smartphone a uma rede Wi-Fi, ao abrir a tela de conexões disponíveis você vê as opções abaixo e supõem que pode pedir a senha da rede a um funcionário da loja, caso necessite. Qual rede Wi-Fi você escolheria?

Dependendo do seu nível de conscientização em segurança da informação, você escolheria a primeira “mi38”, que parece ter sinal melhor, ou a “v29o” que não está mal de sinal, mas é segura e solicitará uma senha.

Agora, imagine que você está na mesma cafeteria, mas na tela do seu smartphone mostra a lista de redes de uma maneira diferente. Qual rede você escolheria?

Você pode ou não ter consciência elevada em segurança da informação, mas minha aposta é que você escolheria a rede “3gk6”. Mas o que mudou? São as mesmas redes, mas apresentadas de maneira diferente, o que levou você a inconscientemente mudar de decisão. Bem-vindo ao poder dos “empurrõezinhos”!

Esses pequenos “empurrõezinhos” influenciam suas decisões, sem que você saiba
Em 2008, Richard Thaler e Cass Sunstein publicaram o livro “Um pequeno empurrão: o impulso que você precisa para tomar melhores decisões sobre saúde, dinheiro e felicidade”, que ajudou a populariza a “teoria do empurrão” (nudge) e o conceito de “arquitetura da escolha”. Nesse livro os autores propõem que desenhando cuidadosamente as opções apresentadas ao público, incluindo a maneira como as ordenamos ou marcamos, podemos influenciar sutilmente a tomada de decisão, sem restringir a liberdade de escolha.

Segundo os autores, o empurrãozinho é “qualquer aspecto da arquitetura de escolha que altera o comportamento das pessoas de uma maneira previsível sem proibir nenhum opção ou mudar significativamente seus incentivos econômicos”. 

Nesse libro são mencionadas dezenas de casos de sucesso de “empurrõezinhos” e de arquitetura de escolha: como pegadas em forma de mosca em vasos sanitários que façam com que homens mirem melhor e sujem menos, frutas e verduras colocadas no início de um self-service que fazem com que os clientes consumam mais esse tipo de alimento, painel em estradas que simplesmente por demonstrar a velocidade atual dos motoristas, fazem com que estes reduzam a velocidade e formulários que já trazem a opção por doar órgãos preenchida e que geram diferenças abismais entre o volume de doações em diferentes países. A leitura do livro é muito ilustrativa e vale a pena.

Como já vimos em artigos passados, nossa racionalidade é limitada e nossas decisões estão sistematicamente ligadas a vieses e heurísticas que produzem resultados indesejados em certas situações complexas. Os “empurrõezinhos” se apoiam na lógica binária dos sistemas cognitivos: sistema I e sistema II e são caracterizados por explorar nossa irracionalidade.

Como o passar dos anos, o conceito dos empurrões foi se refinando e apareceram novas definições, uma particularmente útil é a do especialista em ciência de comportamento P. G. Hansen que diz que “um empurrão é a qualquer tentativa (1) de influir no juízo, na eleição ou no comportamento das pessoas de uma maneira previsível, num processo que só é possível (2) devido aos limites cognitivos, vieses, rotinas e hábitos de tomada de decisão individuais ou sociais que representem barreira para que as pessoas desempenhem racionalmente seus interesses próprios autodeclarados e que (3) utilize os mesmos limites, vieses, rotinas e hábitos como parte integral dessa tentativa”.

Essa definição sugere as seguintes características dos “empurrõezinhos”:

  • Produzem resultados previsíveis: influenciam em uma direção que se pode saber.
  • Combatem a irracionalidade: intervém quando as pessoas não agem racionalmente em seu próprio interesse devido a limites cognitivo, vieses, rotinas e hábitos.
  • Exploram a irracionalidade: chegam ao limite cognitivo, de heurística, rotinas e hábitos para influenciar em um comportamento melhor.

Voltemos ao exemplo inicial desse artigo sobre as redes Wi-Fi, se seguirmos a definição de Hansen, observamos que a segunda forma de apresentar a lista de redes afeta a decisão da seguinte maneira:

  • Produz resultados previsíveis: mais usuários escolherão as opções mais seguras.
  • Combatem a irracionalidade: vão afastar o impulso irracional de conexão, que será satisfeito pela primeira rede com boa potência que aparece na lista, sem importar se ela está aberta ou fechada.
  • Exploram essa mesma irracionalidade: julgamos como mais seguro o que está na cor verde em comparação ao vermelho, favorecemos as duas primeiras opções da lista em relação as últimas, damos mais atenção a pistas visuais do que textuais, damos mais valor a (suposta) maior velocidade do que a segurança etc.

Tudo isso mostrando as mesmas redes ao usuário, sem proibir nenhuma opção nem mudar qualquer dos incentivos econômicos ao usuário, ou seja, estamos aproveitando todos os vieses para mostrar a opção preferível como primeiro lugar na lista, na cor verde, com um cadeado além de texto e com uma hierarquia definida, além de apresentar o critério segurança em primeiro lugar e velocidade de conexão em segundo. Seguramente, estamos analisando os vieses e desenhando um pequeno empurrão, mas respeitando a liberdade de escolha.

Vários trabalhos de pesquisa realizaram o mesmo experimento com redes Wi-Fi, conseguindo mudar a conduta dos usuários ao influenciar em escolhas mais seguras. Em todos os casos, os estudos chegaram a conclusões semelhantes:

  • Os “empurrõezinhos” bem desenhados tem o poder de influir na decisão.
  • Essa capacidade para modificar o comportamento é maior quanto mais inseguro for o usuário.
  • O poder de alterar o comportamento aumenta se combinamos vários tipos de empurrões apelando para os sistemas I e II.

Como influenciar no comportamento de segurança dos seus colaboradores
A cada dia as pessoas na sua empresa enfrentam decisões de segurança as mais variadas, muito mais do que escolher uma rede sem fio seguro:

  • Se faço o download e instalo essa aplicação. Será um risco para a segurança?
  • Se conecto esse USB no meu laptop, será ele um vetor para um ataque de vírus?
  • Se utilizo uma senha curta, fácil de relembrar, estou abrindo as portas para um invasor?

É para responder a essas perguntas que existem as políticas de segurança. Para guiar o comportamento dos usuários, forçando-os a adotar uma conduta cada vez mais segura em alinhamento com os objetivos da organização. Mas existem alternativas? É possível guiar as decisões de um grupo de pessoas respeitando sua autonomia, sem restringir as opções? Em outras palavras, é possível fazer com que atuem de maneira segura, sem que estejam conscientes de que se está influenciando suas decisões?

Segundo o professor especialista em cibersegurança R. Calo, existem três tipos de intervenção comportamental:

  1. Códigos: implicam na manipulação do ambiente para que o comportamento inseguro seja quase impossível. Por exemplo, se você quer que os usuários dos seus sistemas criem senhas seguras, pode impedir qualquer alternativa de que não cumpra a política de segurança: 12 ou mais caracteres, alfanuméricos e especiais, distinguindo maiúsculas e minúsculas, que não repitam. O usuário não tem escolha. No geral, todas as regras de segurança que não permitem ao usuário escolher, entram nessa categoria: bloquear portas USB, instalação de software, navegação na web, limitar o tamanho de anexos de e-mail etc. Os códigos são muito eficazes na hora de direcionar o comportamento, mas não permitem qualquer escolhe e nem exploram a racionalidade limitada, assim não podem ser chamados de “empurrõezinhos”. Na verdade, muitas dessas medidas são impopulares entre os usuários e podem levar a busca de maneiras de burlar seu propósito, como escrever uma senha complexa em um post-it e deixa-lo no monitor.
  2. “Empurrõezinhos”: esses sim, explorar os vieses cognitivos e as heurísticas para influenciar os usuários a adotar condutas sábias (ou seguras). Por exemplo, voltando para o tema de senhas, se você quer que os usuários do seu sistema criem senhas mais seguras seguindo suas políticas de segurança, você pode utilizar um medidor de força de senha. Os usuários sentem a necessidade de conseguir uma senha mais forte e é mais provável que sigam adicionando caracteres e complicando cada vez mais o resultado final até chegar ao “verde de senha forte”. Apesar da proibição sistêmica de senha fracas, ao respeitar o poder de escolha dos usuários, um empurrãozinho simples eleva drasticamente a complexidade das senhas criadas.
  3. Notificações: são intervenções puramente informativas dirigidas a provocar uma reflexão. Por exemplo, um formulário para inserção de senhas incluir a mensagem informando as características necessárias para a criação do valor e a importância de usar senhas robustas para prevenir ataques. Essas mensagens, no entanto, não muito ineficientes já que os usuários tendem a ignora-las. Você também não pode considerar tais mensagens empurrõezinhos, mas se pode incrementar drasticamente sua efetividade ao se combinar com um pequeno empurrão. Por exemplo, ao incluir um medido de força de senha e uma mensagem informativa.

Quais são os empurrões mais efetivos em segurança?
São os “empurrõezinhos” híbridos aqueles que resultam em maior eficiência, ao convidar o usuário a refletir, além de explorar algum viés ou heurística.

  • Opções predeterminadas: oferecem mais de uma opinião, mas assegurando que a opção predeterminada seja a mais segura, ainda que permita que o usuário selecione outra opção se assim o desejar.
  • Informação subliminar: uma página de criação de senhas influencia a criação de senhas mais seguras se, nela, aparecem imagens de hackers ou simplesmente olhos. Outro recurso é mudar a frase de “introduza sua senha” para “crie seu segredo”.
  • Objetivos: apresentam um desafio ao usuário, por exemplo o medidor de força da senha, percentual de conclusão, barra de progresso etc., e ele se esforçará para completar essa tarefa.
  • Feedback: proporciona informação ao usuário para que ele perceba que cada açõa está tendo o resultado esperado, enquanto se executa uma tarefa. Por exemplo, informar o grau de segurança alcançado na configuração de uma aplicação ou serviço ou mesmo os riscos envolvidos em uma ação como o apertar de um botão “Enviar”. A linguagem deve adaptar-se cuidadosamente ao nível de conhecimento do destinatário. Por exemplo, nesse estudo o uso de metáforas conhecidas fez com que os usuários entendessem melhor a informação, tomando melhores decisões. Neste outro, os pesquisadores comprovaram como a comunicação periódica a usuários Android sobre o uso de permissões de app faz com que eles as revisem periodicamente. Nessa outra pesquisa, os mesmos investigadores informavam o usuário do uso de sua localização, o que fez com que o usuário desligasse a opção no aparelho. Por fim, nesse outro estudo, a informação de quantas pessoas são capazes de ver um post na internet fez com que usuário desistissem de compartilhar suas vidas na web.
  • Comportamento normativo: mostra o lugar que cada usuário ocupa em relação à média de usuários. Ninguém gosta de ficar para trás, todo mundo quer estar na liderança, para exemplificar, se ao escolher sua senha, o usuário enxergar a mensagem “87% dos colaboradores criaram uma senha mais forte” vai seguramente tentar reforçar a sua.
  • Ordem: apresenta a opção mais seguro no início de uma lista, tendemos a selecionar o primeiro valor que nos oferecem.
  • Convenções: usa convenções pictográficas, como a cor verde que significa “seguro” ou a cor vermelha que significa “perigo”, um cadeado representando a segurança, e assim por diante.
  • Proeminência: destacar as opções seguras atrai a atenção sobre elas e facilita sua seleção. Quanto mais visível seja a opção mais segura, maior será a probabilidade de que ela seja selecionada.
  • Resultados: pode-se apresentar o resultado de uma ação como obter uma vantagem ou evitar uma perda. A aversão a perda, normalmente, resulta em um impulso mais poderoso.

Implicações éticas dos “empurrõezinhos”
Como você pode imaginar, o assunto dos “empurrõezinhos” não está a salvo de implicações éticas, já que induz a tomada de decisões, explorando falhas nos processos cognitivos dos usuários. Em resumo, se pode dizer que estamos hackeando cérebros.

As pesquisadoras K. Renaud e V. Zimmermann publicaram um trabalho completo em que exploram as ramificações sobre essa estratégia e propõem uma série de princípios para adicionar ética ao processo. Assim, antes de desenhar seus próprios “empurrõezinhos”, reflita cuidadosamente sobre esses cinco princípios éticos:

  1. Autonomia: o usuário final deveria ser livre para escolher qualquer uma das opções oferecidas, com independência de direcionamento. Nenhuma opção deveria ser proibida ou eliminada do conjunto, se o objetivo é restringir as opções por motivos de segurança, é necessário explicar o porquê.
  2. Benefício: só deveríamos utilizar a estratégia para entregar um benefício claro ao usuário, justificando totalmente a intervenção no processo de escolha.
  3. Justiça: deve-se beneficiar o máximo possível de indivíduos, não só o criador do empurrão.
  4. Responsabilidade social: deve-se considerar os resultados esperados e não esperados, escolher “empurrõezinhos” que sejam sociais, avancem em direção a um bem comum.
  5. Integridade: os empurrões devem ser desenhados com respaldo científico, na medida do possível.

Use os “empurrõezinhos” para o bem
Este recurso está sendo cada vez mais utilizado em cibersegurança como objetivo de influenciar as pessoas para que escolham opções consideradas mais seguras. No entanto, novas arquiteturas estão sendo estudadas para que se possa desenhar ambientes melhores de tomada de decisão em segurança, sem a necessidade de se recorrer aos “empurrõezinhos”. Seja ético ao desenhar os seus, eles devem ajudar os usuários a vencer seus vieses e heurísticas que ponham em perigo suas decisões sobre privacidade e segurança.

Empurre sua empresa em direção da maior segurança da informação, respeitando a liberdade das pessoas.

Gonzalo Álvarez de Marañón
Inovação e laboratório na ElevenPaths
[email protected]

Nova pesquisa: descobrimos como contornar o SmartScreen através de um hijacking sem privilégios no COM

ElevenPaths    29 abril, 2019

A técnica de COM Hijacking é um sequestro do objeto COM e tem uma base teórica muito simples, semelhante à um sequestro de DLL: O que acontece quando um aplicativo procura por um objeto COM inexistente no computador no qual está sendo executado? Ou quando o objeto existe, mas não é encontrado na chave do registro onde foi pesquisado? Um invasor pode criá-lo com informações adulteradas, por exemplo, usando uma rota que em vez de levar à DLL solicitada, leve a vítima a uma criada pelo invasor. Pode-se assim aproveitar o padrão no qual um computador trabalha para encontrar esse objeto, contornando o SmartScreen no Windows. 

Pequena introdução
O COM (Component Object Model) é um modelo de interface binária para componentes de software, ele permite a comunicação entre processos e a criação dinâmica de objetos, independentemente do idioma em que foram programados. O COM oferece um ABI (Application Binary Interface) estável que não muda com as diferentes versões dos compiladores. Esta estabilidade é muito atraente para desenvolvedores C ++, onde o código deve ser compartilhado com diferentes clientes usando diferentes versões de compiladores. 

Normalmente os objetos COM são compilados como uma DLL, mas a maneira de usá-los é diferenciada. Os objetos COM devem ser exclusivamente identificáveis no momento da execução e, para isso, uma identificação conhecida como GUID é usada, como por exemplo: 

{CB4445AC-D88E-4846-A5F3-05DD7F220288}

Cada objeto COM é registrado com seu GUID correspondente, acompanhado por uma ou mais chaves que fornecem informações sobre o próprio objeto como o caminho real de sua DLL. Normalmente os objetos COM são registrados das seguintes formas no Registro: HKLM \ SOFTWARE \ Classes \ CLSID ou HKLU \ SOFTWARE \ Classes \ CLSID. Neste registro sob a chave GUID correspondente, as chaves de Registro InprocServer, InprocServer32, InprocHandler e InprocHandler32 são geralmente usadas para fornecer as rotas para a DLL do objeto. Se o objeto COM estiver sob a raiz HKEY_LOCAL_MACHINE (HLKM), significa que está disponível para todos os usuários do computador e que foi criado com permissões de administrador do sistema. Enquanto aqueles criados sob a raiz HKEY_CURRENT_USER (HCKU) são válidos para o usuário atualmente autenticado e não necessariamente criado por um administrador. 

A ordem de busca natural do sistema é um processo muito interessante. Um cenário comumente usado pelo sistema é o de pesquisar primeiro o ramo do usuário e depois o ramo do computador onde ele é executado. Pense em um aplicativo que, quando iniciado, precisa usar as funções do objeto COM localizado na seguinte chave do Registro: 

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{CB4445AC-D88E-4846-A5F3-05DD7F220288}\InprocServer32

Porém antes de pesquisá-lo, o aplicativo primeiro irá procura a seguinte rota: 

HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID\{CB4445AC-D88E-4846-A5F3-05DD7F220288}\InprocServer32

Supondo que esta última chave não exista estaremos enfrentando um aplicativo vulnerável ao uso de COM Hijacking. Executar a técnica não implica mais do que criar a seguinte estrutura no registro:

HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID {CB4445AC-D88E-4846-A5F3-05DD7F220288} InprocServer32 (Default) = C:\DLLsMaliciosas\miDLL.dll


COM Hijacking como persistencia
A técnica de COM Hijacking com persistência tem várias vantagens em comparação com o resto das técnicas tradicionais que se infiltram na raiz. Pois normalmente é melhor ter um objeto COM nativo chamado toda vez que o sistema for iniciado. O principal problema com isso é que os objetos COM nativos geralmente são encontrados no HKCR (classes raiz) em vez de consultar o registro do usuário, desta forma um usuário por si próprio não deve ser capaz de acessá-lo.

Na verdade, o HKCR é uma visualização virtual do que vemos em HKCU e HKLM. O que significa que se você quiser escrever uma chave… 

HKCR\CLSID\{A47979D2-C419-11D9-A5B4-001185AD2B89

Pode-se cria-la no seguinte caminho

Portanto, para executar o Hijacking para o objeto COM nativo do Windows, você pode criar a esta chave como se mostra na imagem a seguir e assim dissemina-la. 

Devido a forma como se trabalha o HKEY_CURRENT_USER (HKCU), a permissão de administrador não se faz necessária para executar o ataque. Uma vez que a chave de registro é criada, o código contido na DLL introduzida será executado toda vez que o aplicativo vulnerável encontrar o objeto COM sequestrado e carregar a DLL maliciosa. 

Elevar privilégios através do Event Viewer e do Task Scheduler
Para elevar os privilégios por meio de uma técnica como a do Hijacking COM você deve aproveitar um aplicativo vulnerável que é executa-lo com privilégios elevados (admin) e com alta integridade de processo. As aplicações Event Viewer e Task Scheduler invocam um processo de alta integridade e alto nível chamado mmc.exe. Este é usado por várias aplicações do Windows.As funções mencionadas procuram objetos COM na seguinte rota:

HKCU\Software\Classes\CLSID\{0A29FF9E-7F9C-4437-8B11-F424491E3931}\InprocServer32

O que aconteceria se um sequestro de COM fosse feito para esse objeto? Na linha abaixo mostramos como simular o comando:

powershell.exe -Command {$Path=»HKCU:\Software\Classes\CLSID\{0A29FF9E-7F9C-4437-8B11-F424491E3931}\InprocServer32″;$Name=»(Default)»;$Value=»C:\\MisDLLs\epp1.dll»;New-Item -Path $Path -Force;New-ItemProperty -Path $Path -Name $Name -Value $Value}

Uma vez invocado o processo vulnerável, ele encontrará o objeto COM (apriore não contaminado) e executará a DLL maliciosa, que nesse caso é um shell meterpreter (que em suma é um payload do tipo staged) localizado em «C: \ MisDLLs \ epp1.dll»

Como o processo vulnerável possui um privilégio alto (admin) e possui alta integridade, o shell fornecido passa a ter privilégios SYSTEM sem problemas. Uma técnica similar foi usada para contornar o UAC. 

Passando despercebido: SmartScreen é vulnerável ao Hijacking de COM
Há algum tempo descobrimos como os “agressores” conseguiram contornar o SmartScreen explorando as técnicas de sequestro de DLL. Essa abordagem de Hijacking alcança efeitos semelhantes, mas de uma forma diferente. Toda vez que um programa é executado no Windows, o SmartScreen é executado para tentar nos proteger.… Não importa qual seja o programa, cada execução passa pelo SmartScreen, que consulta na nuvem se o programa pode representar um risco para o sistema ou não. 

Todavia o SmartScreen é vulnerável ao Hijacking do COM Veja que toda vez que um binário é executado, o SmartScreen também é executado e, toda vez que o SmartScreen é executado, vários objetos COM são pesquisados no registro sem sucesso. Entre eles: 

HKCU\Software\Classes\CLSID\{A463FCB9-6B1C-4E0D-A80B-A2CA7999E25D}\InprocServer32.

Através de uma DLL, você pode executar um sequestro neste objeto através do seguinte comando na console do Powershell:

Após a execução do script acima faz com que qualquer programa que o usuário execute acione juntamente o SmartScreen e, por sua vez, será o mesmo processo que carregará e executará a DLL maliciosa, neste caso, retornando um shell do meterpreter. Na prova de conceito, usamos simplesmente uma DLL que mostrava um Hello World, matando desta forma um processo que deveria nos proteger. 

Embora você também possa simplesmente usá-lo para substituí-lo o SmartScreen.\ e se tronar permanente, como no video abaixo: 

Nós alertamos a Microsoft sobre essa vulnerabilidade em potencial, que permitiria a persistência e o burlar de uma função de segurança. 

Gostou? Que saber mais? Veja o estudo completo em:

Inovação e laboratório na ElevenPaths
www.elevenpaths.com

Lazarus, levante e caminhe…

ElevenPaths    17 abril, 2019

Quero começar esse post fazendo alusão a frase célebre dita por Jesus a Lázaro quando o ressuscita, mas nesse caso o protagonista não é o personagem bíblico, mas sim um grupo de cibercriminosos norte-coreano, e “levante e caminhe” cabe perfeitamente com o fenômeno que ocorre nos países da América Latina em que diversas campanhas e ataques são atribuídos ao grupo desde 2007.

Em seu primeiro ataque conhecido, chamada de “Operação Chama” (Operation Flame, em inglês) utilizou um malware de primeira geração contra o governo da Coréia do Sul. Segundo alguns investigadores, a atividade dessa ameaça pode ser vinculada a ataques como “Operação Missão”, “Operação Tróia” e os ataques “DarkSeoul” em 2013.

O segundo ataque do grupo aconteceu em 4 de julho de 2009 e marcou o início da “Operação Tróia”, em que se utilizou o malware Mydoom e Dozer para lançar um ataque DDoS em grande escala, pouco sofisticado, contra os sites da União Europeia e Coreia do Sul. A sequência de ataques afetou trinta e seis portais web e reproduziu nas páginas o texto “Memória do Dia da Independência” no registro mestre de inicialização (MBR). Com o passar do tempo, os ataques desse grupo se sofisticaram, suas técnicas e ferramentas evoluíram e são mais efetivas. O ataque de março de 2011, conhecido como “Dez Dias de Chuva” se focou em meios de comunicação, finanças e infraestrutura crítica na Coréia do Sul e usou a negação distribuída de serviço (DDoS) mais sofisticada que se originou em computadores invadidos na própria Coreia do Sul.

As investidas do grupo continuaram em 20 de março de 2013, com o ataque DarkSeoul (mais sobre ele e a vida de um hacker na Coreia do Sul no nosso blog), um malware wiper que teve como objetivo três companhia de transmissão da Coreia do Sul, institutos financeiros e um ISP. Outros grupos como NewRomantic, Cyber Army Team e WhoIs Team se proclamaram autores dos ataques, mas investigadores descobriram que o Grupo Lazarus era o real responsável. Outro ataque notável do foi o realizado em 2014 pela Sony Pictures, que utilizou técnicas mais sofisticadas e deixou claro o quanto o grupo tinha evoluído, ao ponto de se atribuir a criação do ransomware “Wannacry”.

Quem são?
Segundo várias investigações, o Grupo Lazarus (também conhecido como Hidden Cobra ou DarkSeoul) é um grupo de cibercriminosos composto por um número desconhecido de participantes, seu modus operandi principal é o uso de malware avançado contra os alvos. De acordo com o governo dos EUA, Reino Unido e Rússia, é um grupo patrocinado por algum Estado, utiliza o codinome Hidden Cobra, é supostamente controlado pelo Bureau 121, uma divisão do Escritório Geral de Reconhecimento, uma agência de inteligência da Coreia do Norte. O Bureau 121 é responsável realizar campanhas cibernéticas militares contra distintos objetivos.

Sabe-se que o Lazarus se especializou em ataques DDoS e invasões corporativas dirigidas a instituições governamentais, militares e aeroespaciais em todo o mundo. Agora que a pressão econômica global sobre a Coreia do Norte aumentou, o Lazarus mudou seu foco para organizações financeiras internacionais para realizar roubos e espionagem.

O primeiro ataque do Lazarus a empresas financeiras ocorreu em fevereiro de 2016 quando os criminosos tentaram roubar 1 bilhão de dólares do Banco Central de Bangladesh, aproveitando falhas de segurança do banco para se infiltrar nos sistemas internos, obter acesso aos computadores com acesso à rede SWIFT. Um erro de estratégia permitiu que os atacantes roubassem somente 81 milhões de dólares e, em março de 2017, funcionários do FBI e da NSA confirmaram publicamente pela primeira vez que Pyongyang estava, provavelmente, atrás do ataque ao Banco Central de Bangladesh.

Em fevereiro de 2017, vários bancos poloneses foram invadidos e, após a investigação do código fonte do malware, pesquisadores atribuíram a atividade ao grupo Lazarus. Como as ferramentas maliciosas são, normalmente, reutilizadas por diferentes grupos, a análise não permitiu evidenciar a atribuição do ataque ao grupo.

Especialistas da empresa russa Group IB investigaram o grupo e encontraram provas que identificam que a Coreia do Norte esteve por trás dos ataques, através da detecção e análise exaustivo de várias camadas de infraestrutura de comando e controle (CC) utilizadas por Lazarus, identificaram endereços IP da Coreia do Norte desde os quais controlaram os ataques.

A partir desses ataques, muitos outros utilizaram o modus operandi e vetores similares, o que nos permite dizer que o Grupo Lazarus ampliou seu alcance e, tanto o Grupo IB, relacionaram atividades em outros países em que se identificou ataques com os objetivos de roubar dinheiro.

Mapa preparado pelo Grupo B nos países-alvo de Lazarus

Após os primeiros ataques e assumindo que o sistema financeiro aumentou suas defesas, o grupo começou a focar em outros objetivos e, assim, chegou à América Latina.
O primeiro ataque do Lazarus em nossa região aconteceu no Equador e comprometeu o Banco del Austro em fevereiro de 2016, custando 12 milhões de dólares à instituição. A estratégia desse ataque foi a seguinte:

  1. Utilizar malware para burlar o sistema de segurança do banco.
  2. Obter acesso à rede de mensagens SWIFT.
  3. Enviar mensagens fraudulentos à rede para iniciar transferências de dinheiro desde as contas correntes locais para bancos maiores.

Durante dez dias os hackers utilizaram as credenciais da rede SWIFT pertencentes a um empregado do banco para modificar detalhes de transações de 12 transferências que levaram o dinheiro a contas em Hong Kong, Dubai, Nova York e Los Angeles. 

Há outros ataques cuja autoria não foi confirmada, mas que podem ser ligados ao grupo e que tentou sacar 100 milhões de dólares do sistema financeiro mexicano. “Identificamos que um grupo de hackers de origem norte-coreano tentou afetar o sistema financeiro nacional”, revelou Marco Rosales, titular da Unidade de Investigação e Operação Tecnológica da Procuradoria Geral da República (PGR).

O Grupo Lazarus também roubou, supostamente, 11 milhões de dólares de um banco não identificado na Costa Rica e tentou ataques no Uruguai, Colômbia e Brasil até que foram bem sucedidos em um ataque no Chile, onde atacaram o Banco do Chile em maio de 2018, sacando 10 milhões de dólares, além do Banco Consórcio em novembro de 2018 (2 milhões de dólares) e o Redbanc em dezembro de 2018 (que foi mitigado antes de sua conclusão).

Gabriel Bergel
CSA
[email protected]
@gbergel

Em busca do phishing perfeito que pode enganar até você mesmo

ElevenPaths    15 abril, 2019

Jogue uma moeda para o alto (sem truques) seis vezes seguidas. Quais das três sequências a seguir você acredita ser mais provável, representando “cara” com um 1 e “coroa” com um 0?

1. 1 0 1 0 1 0 
2. 1 1 1 1 1 1
3. 1 0 1 1 0 1

A maioria das pessoas vai escolher a terceira sequência, 101101, porque parece mais aleatória. As duas primeiras parecem muito ordenadas e não coincidem com nossa ideia de aleatoriedade. Na realidade, as três sequências têm a mesma probabilidade de ocorrer, que é de (1/6)6. Mas como estamos mais acostumados a ver sequências desordenadas que aquelas em ordem (porque, no exemplo, aparecem mais), de alguma maneira a terceira sequência é a que melhor representa nossa imagem de como deve ser a aleatoriedade.

Esse erro de pensamento é chamado de heurística de representatividadeclassificamos um exemplo de acordo com o que representa nosso próprio estereótipo, ou ideia preconcebida, daquele tipo de exemplo. Por exemplo, se você vê uma jovem usando saia de couro, cores escuras e pulseira de “espinhos”, normalmente assumirá que ela gosta mais de música heavy metal do que um executivo engravatado.

Record que uma heurística é um atalho de pensamento: no lugar de responder a uma pergunta complicada, respondemos àquela mais simples, que seja parecida com a primeira, de maneira automática. No exemplo da moeda, ao invés de responde à pergunta “qual a probabilidade de cada sequência”, nos perguntamos “qual a sequência parece mais aleatória”. O uso de heurística de representatividade é o reflexo da presunção implícita de que similares estão sempre juntos. Pensamos de maneira errada que um membro de uma categoria deveria parecer-se com o estereótipo daquela categoria, que um efeito deveria parecer com sua causa.

Como ocorre com todas as heurísticas, a quantidade de ocorrências serve muito bem como ponto de comparação: se um esportista é magro e tem mais de dois metros de altura, é mais provável que ele jogue basquete do que futebol. Ao mesmo tempo, se um homem viaja com uma maleta em forma de guitarra, é mais provável que transporte dentro dela uma guitarra que uma metralhadora. E, se você recebe uma carta do seu chefe, é mais provável que o remetente tenha sido o próprio chefe, não um cibercriminosos fazendo um ataque phishing.

Mas não é sempre assim.

Se você ouve ruídos de casos, não espere zebras
Marcos é um jovem espanhol de uns 30 anos, que usa óculos, meio desajeitado, veste camisetas pretas com desenhos de filmes e séries geeks e usa Linux. Para você, oque é mais provável?

A. Trabalha como programador na ElevenPaths em Madri?
B. Trabalha como repositor em um supermercado?

Carregados pela heurística da representatividade, somos tentados a escolher a alternativa “A” como a mais provável. No entanto, na Espanha, existem muito, mas muito mais pessoas trabalhando em um supermercado do que na sede da ElevenPaths, por isso, ainda que haja uma proporção maior de amantes de Linux entre os empregados da ElevenPaths do que entre repositores, o número total será sendo muito inferior ao de “linuxeiros” em supermercados.

O problema é que um estereótipo muito forte está impedindo que a gente analise outras informações, como por exemplo a taxa base da questão, ou seja, o conhecimento da frequência relativa de um subconjunto em relação ao total. Quanto mais um indivíduo se parece com a população geral, mais vamos ignorar a taxa base.

Nas escolas europeias de medicina se fala muito o ditado “se você ouve barulho de casos, não espere por zebras”, ou seja, na hora de diagnosticar uma enfermidade é preciso pensar primeiro nas causas mais prováveis, ao invés daquelas mais exóticas. Ao avaliar a probabilidade de um sucesso, podemos ignorar a taxa base.

Se você já assistiu ao filme “O Homem que mudou o mundo”, vai lembra como Billy Beane cria uma equipe de baseball extraordinário recrutando jogadores com excelentes estatísticas de acerto no rebate, mas que tinham sido descartados por outros técnicos por não possuir o estereótipo do grande rebatedor. Diante da surpresa de outros clubes, Beane obteve resultados excelentes com baixíssimo custo, tudo porque foi o único que não sucumbiu à ilusão da representatividade.

Mais uma vez, a heurística nos faz esquecer o (pouco) que sabemos sobre probabilidade e estatística e nos faz tomar decisões com consequências que são, normalmente, desastrosas, como o exemplo a seguir. 

Se alguma coisa é mais plausível, não significa que seja mais provável
Sérgio tem 35 anos, estudou informática e, desde a adolescência, gostou muito de hacking e de programação. Ao longo de sua carreira, trabalhou dois anos em uma empresa de antivírus e, depois disso, três anos como um pentester em uma empresa internacional dedicada a segurança da informação, onde se tornou gerente de departamento. Na sequência, Sérgio fez um mestrado em Gestão de Risco e Fraude, escreveu seu trabalho de conclusão de curso sobre a Teoria dos Jogos aplicada à detecção de malware. Com esse histórico, oque você acha mais provável?

A. Sérgio trabalho em um grande banco
B. Sérgio trabalha em um grande banco, mas na unidade de cibersegurança, onde dirige uma equipe de resposta à incidentes digitais

Apresentei esse problema a dezenas de classes em que leciono e a totalidade dos meus alunos escolhe sempre a mesma resposta: B. Infelizmente, essa resposta é equivocada e eu suponho que a essa altura do post você já deve saber o porquê. Os empregados das unidades de cibersegurança de um banco são um subconjunto muito pequeno de todos os empregados da empresa, é matematicamente impossível que a probabilidade de ocorrência de um subconjunto seja maior que a probabilidade de um conjunto completo.

Por exemplo, é mais provável sacar de um deck de baralho uma carta de copas ou um ás do que sacar um ás de copas. Se você escolheu a opção B, foi vítima de outro erro de pensamento muito comum e conectado ao anterior, a falácia da conjunção.

É óbvio que a probabilidade de que os eventos ocorram em juntos (em conjunção) é sempre menor ou igual do que a probabilidade de cada um ocorrer em separado.

• Quando mostramos a história do sérvio antes de fazer a pergunta, triunfa a intuição e esta dá uma resposta equivocada
• Por outro lado, quando faço diretamente a pergunta, sem contar previamente a história do Sérvio, ninguém escolhe a opção B, ao contrário, todo escolhe a alternativa A. Sem uma histórica plausível, ganha a lógica.

Cada novo detalhe adicionado ao cenário, reduz o total de probabilidades desse mesmo cenário, além de aumentar a representatividade e, portanto, a aparente probabilidade. Que paradoxo! Quanto mais plausível e com mais detalhe nos “pintam” um cenário, menor probabilidade ele tem de acontecer, no entanto mais provável achamos que ele seja possível.

Bom, as histórias mais coerentes não são as mais prováveis, mas são as mais plausíveis. Nós confundimos coerência, plausibilidade e probabilidade. Os resultados mais representativos se combinam com a descrição da personalidade para produzir as histórias mais coerentes.

Esse erro de juízo é especialmente perigoso quando elaboramos cenários hipotéticos para fazer prognósticos e previsões. Considere os seguintes cenários e avalie sua probabilidade:
A. Durante as próximas eleições, se espera um ataque cibernético massivo no Twitter contra políticos brasileiros, capaz de tomar o controle de mais de 100 contas.
B. Durante as próximas eleições, se espera que um mesmo que foi expulso de um dos partidos políticos e que possui contatos com grupos hacktivistas realize uma represália, um ataque massivo no Twitter contra os membros do seu partido, capaz de sequestrar mais de 100 contas.

O segundo cenário propõe uma história muito mais vívida e emocionante, ou seja, mais plausível, ainda que sua probabilidade seja muito menor. Realmente, o segundo cenário está contido no primeiro: os políticos de um único partido constituem um subconjunto dentro do conjunto de todos os partidos políticos existentes. Assim, adicionar mais detalhes a um cenário o torna mais persuasivo, mas ao mesmo tempo o torna menos provável. É uma armadilha comum tentar estimar cenários.

Aqui te damos outro exemplo:

A. A Telefônica vai sofrer um ataque cibernético
B. A Telefônica vai sofrer um ataque cibernético em grande escala desde a Coreia do Norte, orientado a interromper as comunicações de grande parte do país e causar o caos.

Agora que você já sabe como eliminar os vieses de análise, sabemos que o cenário A é mais provável. Convido você a propor os dois aos seus amigos e verá que a maioria elege a opção B.

Em busca do malware perfeito
Como um cibercriminosos pode se aproveitar da heurística da representatividade? Ele vai explorar nossa tendência em acreditar em um cenário mais rico em detalhes representativos do que outros que possui menos detalhes. Se uma história contém detalhe que “tem que estar ali”, tendemos a acreditar nela mais do que se a mesma não tivesse os mesmos detalhes. Matematicamente, no entanto, quanto mais detalhes incorporamos em uma história, menor a probabilidade de essa mesma história ser verdadeira comparada àquela com menos detalhes.

Por exemplo, o criminoso poderia chamar uma vítima com a intenção de imitar o gerente de segurança, explicando que trabalha no CPD da companhia e que está fazendo a ligação porque recebeu alertas de comportamento anormal na rede, com origem no computador da vítima. Por isso, ele precisa se conectar de maneira remota para fazer testes de segurança e das credenciais de acesso desse usuário para iniciar uma seção e verificar o que está acontecendo.

Já que todos esses detalhes encaixam com nossa imagem estereotipada da rotina de trabalho de um administrador de segurança, é mais provável que a vítima revele suas credenciais. Preste atenção como, de acordo com a teoria da probabilidade, esse segundo cenário é muito mais provável que o primeiro, mas muito mais plausível!

A presença de informações plausíveis provavelmente aumenta nossa credibilidade naquilo que é implausível. Em outras palavras, para explorar a representatividade e a conjunção em uma petição implausível, precisamos de tantas afirmações e detalhes quanto seja possível, enriquecendo a histórica. Quanto mais plausíveis sejam as primeiras afirmações, mais fácil será fazer com que a vítima acredite no argumento, ainda que ele seja implausível.

Podemos presenciar essa estratégia em:

• Ataques de engenharia social por telefone, e-mail ou em pessoal, que buscam enganar uma pessoa na própria organização com o fim de obter informação sensível da vítima• Ataques que utilizam dispositivos físicos infectados, como unidades USB, perfeitamente etiquetados e deixados em lugares insólitos, para que a vítima os encontre e sinta-se tentada em conecta-los• Mensagens de phishing com textos muito bem redigidos que oferecem vários detalhes plausíveis antes de solicitar que se clique em um link que, normalmente, levará a uma página que pode até ser familiar no início do acesso. Esses ataques estão tão dirigidos a um tipo de pessoa que podem ser encaixados na categoria de spear phishing• Janelas falsas de alerta de vírus simulando ser de antivírus instalados no equipamento que solicitar a execução de uma varredura para limpar uma suposta infecção ou ameaça

Autodefesa contra ataques e a heurística de representatividade
Resumindo, para você evitar ser arrastado pela heurística de representatividade, precisamos lembras as seguintes medidas, algumas inspiradas na obra “Irracionalidade”:
• Se um cenário demanda o cumprimento de uma condição adicional, não importa o quanto plausível pareça a condição, o cenário será menos provável, não mais
• Não julgue unicamente pela aparência. Se algo está mais próximo de X do que de Y, é mais provável que ele seja Y se, no total, há mais Ys do que Xs. Tente se informar sobre a taxa base!
• É sempre menos provável que uma declaração que tenha dois ou mais dados seja verdadeira do que a que contenha somente um desses dados, por mais verossímeis que eles sejam
• Não acredite que uma hipótese seja verdadeira apenas porque parte dela é verdadeira
• Uma história muito plausível não significa que seja muito provável

Quando você tiver que tomar uma decisão em segurança, evite os contos e faça as contas!

Gonzalo Álvarez Marañón
@gonalvmar
Inovação e laboratório na ElevenPaths
www.elevenpaths.com

A ElevenPaths cria um add-on para que o Firefox seja compatível com o recurso Certificate Transparency

ElevenPaths    4 abril, 2019
O recurso certificate transparency é obrigatório no Chrome para os novos certificados criados desde finais de 2017 e mostrará um alerta nas páginas protegidas por certificados que não estejam armazenados no Chrome e que possam ter sua data checada. Nenhum outro navegador suporta o recurso certificate transparency e o Firefox tenta utilizar o recurso há anos, mas não o conseguiu por problemas de desempenho que, até o momento, não foram solucionados.

Connection not private alert imagem
Criamos nosso próprio certificador através de uma extensão
Já que a Mozilla não tem ainda uma data definida para ativar essa funcionalidade, decidimos criar uma extensão própria para que o navegador possa testar o cumprimento do certificate transparency nos sites visitados pelo usuário, ou ao menos saber se estas páginas tem o SCT (Signed Certificate Timestamp) corretos.
Um certificado é considerado válido se conta com um SCT, definido pela entidade certificadora no momento em que faz o upload do mesmo nos logs dos navegadores, que então podem comparar o registro armazenado com aquele mostrado pelas páginas que se tenta abrir. É isso que o Chrome vem fazendo há um bom tempo.
O SCT pode ser oferecido ao usuário de três maneiras diferentes:
  • Gravado diretamente no certificado
  • Através de uma extensão TLS
  • Usando o protocolo OCSP (Online Certificate Status Protocol)
Para um plugin no Firefox não é simples chegar à camada TLS ou do OCSP para comprovar as informações de SCT e, por isso, nossa extensão só é capaz de comprovar o SCT gravado diretamente nos próprios certificados. Ainda que essa não seja a solução ideal, o cenário é utilizado pela grande maioria de certificados digital hoje em dia.
Através desse link você pode baixar a extensão diretamente do repositório oficial do Firefox, programada por nosso colega Tomás Coiro, de Buenos Aires.
Certificate Transparency imagem
Porque não utilizar a solução da própria Mozilla?
A Mozilla incluiu há algum temo uma API para extensões do seu navegador que permitia calcular o valor do certificate transparency, basicamente comprovante que o site havia cumprido os requisitos de certificação.
 
Certificate Transparency imagem
 
Nós não pudemos usa-la, no entanto. Isso porque ela simplesmente não funciona, foram encontrados problemas de desempenho e se decidiu há um par de anos desativar o recurso.
problemas de desempenho imagem
Ainda assim é possível, de maneira muito simples, ativa-la novamente na página de configurações do navegador:
API imagem
Mas não se anime, a API não servirá para muita coisa. Ela não produz nada além de um log no console do navegador, podemos ver na imagem abaixo que sem o recurso habilitado, um “not applicable” é mostrado, com ele, obtivemos “compliant” ou “not_enough_scts” de acordo com o caso.
Not enough scts imagem
Até pensamos em ativa a opção por padrão na extensão para avaliar seus resultados, no entanto não realizamos os testes porque o impacto no desempenho do navegador é tremendo, por razões que vamos detalhar mais à frente.
Analisando o, agora em pausa, certificate transparency no Firefox não temos claramente definida a quantidade de SCT suficientes para o navegador, porque as contas realizadas por ele são algo estranhas.
SCT Policy Enforcer imagem
De qualquer forma (para além do problema de rendimento reconhecido pela Mozilla), comprovamos que na maioria das vezes o número de SCTs não é suficiente para satisfazer a política. Enquanto o Chrome nos mostra um status válido de segurança, o Firefox continua mostrando “not_enough_sct”.
 
Not enough SCT imagem
Em resumo, a Mozilla está trabalhando em uma solução para o uso de certificate transparency no seu navegador, mas parece que existem outras prioridades no roadmap do produto, o que atrasou o desenvolvimento de uma solução. Enquanto não haja uma solução definitiva, você pode utilizar nossa extensão de Certificate Transparency como paliativo.
Laboratório de Inovação ElevenPaths

Uma revisão sobre as melhores técnicas de hacking na internet (Parte 2)

ElevenPaths    1 abril, 2019
Uma revisão sobre as melhores técnicas de hacking na internet de 2018 – Parte 2 imagem
Na semana pasada publicamos a primeira parte do ranking de melhores técnicas de hacking de 2018 e hoje continuamos o trabalho. Para recordar, se trata de uma classificação semelhante ao OWASP Top 10, mas focada em ressaltar técnicas associadas as aplicações web publicadas durante 2018. A segurança na internet está em constante evolução. Todos os dias são publicadas novas falhas em frameworks, bibliotecas e aplicações conhecida, muitas delas não chegam a merecer a publicação de um CVE e algumas dessas vulnerabilidades são utilizadas para melhorar técnicas de hacking já existentes.

5.- Attacking ‘Modern’ Web Technologies
O investigador Fran Rosen apresentou uma palestra na conferência AppSec Europe, organizada pela OWASP, em que reviu as técnicas de exploração em novas capacidades daquilo que chamado de internet moderna, baseada principalmente em APIs de persistência e websockets. Uma palestra que não deixará você tranquilo, sobretudo porque vai te fazer entender que estamos em uma nova era onde as injeções clássicas ou inclusões de arquivos locais se tornaram antiquadas (ainda não tenham caído em desuso).

4.- Prototype pollution attacks in NodeJS applications

Nesse caso de uso, Olivier Arteau encontra uma forma interessante de executar código de maneira arbitrária em aplicações NodeJS, que nos leva para “dentro” do servidor através da exploração da propriedade proto do objeto predefinido “object” na linguagem JavaScript, algo que até agora só era considerado no lado do cliente.

3.- Beyond XSS: Edge Side Include Injection

Nessa pesquisa, Louis Dion-Marcil nos mostra o exploit ESI (Edge Side Include), uma linguagem baseada em XML que permite indicar aos proxys cache se partes de uma página devem ou não ser “cacheadas”. A técnica permitiu ao pesquisador executar ataques SSRF (Server Side Requests Forgery), evadindo a proteção HTMLOnly que impede a manipulação de cookies com JavaScript.

2.- Practical Web Cache Poisoning: Redefining ‘Unexploitable

A vice-campeã da nossa lista vem de James Kettle, empregado da PortSwigger e, ainda que em um primeiro momento ele próprio a tenha descartado, a comunidade decidiu que sua qualidade era merecedora da classificação (abrindo uma exceção à regra de impedir empregados da empresa de participar do próprio ranking).
Ele conseguiu descobrir uma maneira de explorar o cache web (isso mesmo, o mesmo do item 3) para compromete-la, injetando conteúdo arbitrário em hosts terceiros. Uma técnica ímpar que tem grande impacto na arquitetura de soluções web atuais.

1.- Breaking Parser Logic: Take Your Path Normalization off and Pop 0days Out!

A técnica vencedora desse ano foi apresentada na DEF CON do ano passado por Orange Tsai. A nova técnica de exploração está baseada na normalização de rotas que, ainda que tenham o objetivo de adequar o uso de URLs e evitar explorações, se torna ineficiente por sua complexidade e implementações múltiplas. Desde frameworks e bibliotecas até linguagens de programação, cada implementação particular da normalização de rotas esconde um potencial problema de segurança. Em alguns casos, se aproveitar da falha é um processo simples, que causam impactos que vão desde a evasão de restrições e controles até a execução remota de códigos.
Não perca de vista todo o trabalho do Orange Tsai, que também ganhou a edição 2017 desse ranking.
Esse é a nossa revisão das melhores técnicas de 2018 em segurança para web. Como pudemos ver, as técnicas estão cada vez mais complexas, acompanhando o grau de evolução vertiginoso das aplicações para a internet. Tanto para um pesquisador de segurança, quanto para um auditor ou devops, que tenha se comprometido a defender qualquer infraestrutura, é crucial estar atualizado com estes tipos de técnicas, porque é certo que elas serão utilizadas em algum momento contra sistemas e aplicações.

Uma revisão sobre as melhores técnicas de hacking na internet de 2018 – Parte 1

ElevenPaths    29 marzo, 2019

Uma revisão sobre as melhores técnicas de hacking na internet de 2018 – Parte 1 imagem





Todo mundo gosta de usar a internet, não é mesmo? Para a segurança das aplicações web temos um framework muito conhecido, a OWASP 10, no qual um grupo de especialistas em segurança de várias organizações discutem e elegem os riscos mais importantes. A última revisão foi publicada em 2017.

Mesmo que essa lista reflita muito bem a realidade, o rápido ritmo de evolução das ameaças online faz com que a foto mostrada no framework se torne obsoleta em pouco tempo. Além disso, o ranking da OWASP não está focado em ataques concretos, mas em categorias, abstrações de diversos tipos de vulnerabilidades que possuem um ou vários elementos em comum.

Ainda em 2006, um especialista em segurança para web chamada Jeremiah Grossman iniciou, em parceria com outros pesquisadores, um ranking das melhores técnicas de ataques na web utilizadas ao longo do ano, era uma coleção de tudo o que se havia publicado ou apresentado em relação a esse tipo de falha. Não se falava aqui de CVEs concretos, mas sim de técnicas inovadores que podiam, em alguns casos, gerar famílias inteiras de vulnerabilidades (como o que aconteceu com o cross-site scripting).
Não podemos deixar a oportunidade de revisitar, com certa nostalgia, algumas das técnicas mais utilizadas naquele ano (se passaram somente 13, é verdade, mas isso equivale a um século na internet) como, por exemplo, a varredura de porta através do uso de JavaScript ou o “roubo” do histórico de navegação através da obtenção do atributo cor no CSS da página aplicado à uma lista de links. 
A iniciativa foi mantida ano após ano até 2015, quando saiu a última edição do ranking. Felizmente, a equipe da PortSwigger, criadora da ferramenta de auditoria Burp Suite, recuperou a lista de técnicas mais importantes do ano em 2017, reiniciando o registro histórico da lista. Com ela é possível se manter atualizado em relação ás técnicas de exploração usadas na web, assim como analisar comparativamente os dados para determinar tendências de evolução em segurança. 
Algumas semanas atrás a lista de técnicas de 2018 foi publicada. Vamos analisar cada uma das técnicas que entrou no ranking e fazer um breve comentário sobre suas características, vetores e riscos causados, começando pelo final:
10 – XS-Searching Google’s bug tracker to find out vulnerable source code
Trata-se de uma técnica curiosa encontrada no gerenciador de bugs usado pelo Google no Chrome. Luan Herrera, que a encontrou, percebeu um curioso método de consultas booleanas que permite identificar elementos do sistema com base nas respostas dadas pelo gerenciador a consultas cegas.
A ferramenta, chamado de “Monorail”, oferece a possibilidade de exportar resultados de busca em alguns formatos como, por exemplo, CSV. Além disso, permite indicar campos na consulta como nome de colunas e, ainda mais curioso, repetir esses campos. Observando uma consulta de URL, podemos entender melhor:
hxxps://bugs.chromium.org/p/chromium/issues/csv?can=1&q=id:51337&colspec=ID+Summary+Summary+Summary
Isso faz com que o sistema crie um arquivo CSV com 3 cópias do relatório de um determinado bug. Como podemos imaginar, se esse bug existe, o sistema vai demorar para criar o arquivo em relação ao tempo que levaria para criar o mesmo arquivo em uma consulta que não retorna nenhum valor.
Podemos repetir a consulta usando outros parâmetros de busca que nos interessem, até encontrar elementos restritos como códigos fonte de bugs privados. A lógica booleana de consultas vai permitir afinar os parâmetros até encontrar algo valioso.
É verdade que o uso da técnica esta condicionado, em determinadas situações, a uma seção com privilégios adequados, o que o pesquisador tinha. Ainda assim, a mesma estratégia poderia ser aplicada a outros sistemas que revelem, com respostas a pesquisas, conteúdo restrito.
9 – Data exfiltration via Formula Injection
Esse ataque está focado em como injetar expressões nas fórmulas das planilhas do Google Sheets e do LibreOffice para conseguir informações e acesso a partes compartilhadas da planilha, além da leitura de arquivos aleatórios no sistema (no caso do LibreOffice). Esse tipo de ataque aproveita uma falha nas aplicações, quando se importa arquivos externos através de um link.
Suponhamos que, por exemplo, indiquemos em uma parte da planilha a importação de um arquivo CSV através do endereço “hxxp://pruebas.noexiste/archivo_que_no_existe.csv?v=», o que pode ser feito através das fórmulas “IMPORTFEED” ou “IMPORTHTML”. Ao utilizar a fórmula, usamos no endereço um parâmetro solto “v=”, se concatenamos certas colunas usando “CONCATENATE()” vamos gerar uma consulta a um servidor web que levará toda a informação no intervalo contido na função de concatenação, permitindo o vazamento de informações que poderiam ser sensíveis. O cenário de uso dessa técnica é restrito, já que demanda algumas permissões que facilitem a inserção de fórmulas em um documento, no entanto, se pode vislumbrar o poder de aplicação desse tipo de função que, devidamente combinada, podem dar acesso à dados sensíveis.
O ataque no LibreOffice possui um elemento potencialmente mais perigoso porque usando a mesma técnica se pode extrair arquivos do sistema. Para isso o usuário deveria abrir o arquivo e dar permissões de acesso à links externo, o que não é difícil de se conseguir. Os pesquisadores não comentam se a técnica funciona para a versão do Windows do LibreOffice, somente citam a versão para GNU/Linux.
8 – Prepare(): Introducing novel Exploitation Techniques in WordPress
Se trata de uma técnica de exploração exclusiva para a plataforma WordPress. É bastante curiosa porque, ainda que todos saibamos da importância de utilizar sequências separadas para a realização de consultas SQL em códigos, é imprescindível que a implementação subjacente também seja feita dessa forma. Robin Peraglia explica em sua apresentação como explorar esse tipo de sentença, fazendo inclusive o uso de objetos serializados em PHP, o que abre a porta para a execução arbitrária de códigos.
7 – Exploiting XXE with local DTD files
Uma variação da já conhecida técnica de injeção de entidade externas em XML, XXE. Nela, o autor Arseniy Sharoglazov, de forma engenhosa, aproveita documentos DTD locais, usados em sistemas para evadir políticas de firewall que impeçam o processador XML acessar domínios externos.
Por exemplo, ao explorar XXE é comum fazer referência a um DTD externo:
Apesar da possibilidade de se injetar entidades XML no documento, o processador não poderá acessar o domínio acima e provocará um erro ou resposta vazia. Na técnica, o pesquisador faz referência a uma DTD que pode existir no sistema operacional, por exemplo, o Windows:
Ou em algumas compilações Linux:
É interessante também a resposta ao tuíte publicado por ele com a técnica, que melhora o ataque inserindo uma DTD na requisição.
6 – It’s A PHP Unserialization Vulnerability Jim, But Not As We Know It
Um ranking sem uma nova técnica de serialização não é um ranking. E se há uma técnica complexa de explorar (e de se evitar) é o curioso truque de “teletransporte” de objetos no melhor estilo Star Trek, que quando são devolvidos ao servidor de origem possuem um elemento malicioso: a serialização de objetos maliciosos.
Na pesquisa, nos apresentaram um conjunto de técnicas de serialização em PHP, além de uma extensa explicação de como utilizar phar:// que permite fazer referência a aplicações completas em PHP encapsuladas em um tipo único de arquivo. É um conceito similar ao jai do Java, mas ao estilo PHP e exploráveis em determinados cenários.
No segundo post da série, analisaremos as técnicas restantes do ranking.
David García
Innovación y laboratorio en ElevenPaths

Analisando o impacto da vulnerabilidade FakesApp e decifrando o tráfego do WhatsApp Web com “WhatsApp Decoder” (Parte 2/2)

ElevenPaths    1 marzo, 2019
decifrando o tráfego do WhatsApp imagem

Retomamos o post anterior, no qual realizamos a introdução às vulnerabilidades FakesApp publicadas pelos pesquisadores da Checkpoint, aprendemos como instalar a extensão WhatsApp Decoder e a decifrar o tráfego do WhatsApp. Assim, para replicar o ataque deveríamos seguir os seguintes passos: mudar o texto entrante da mensagem pelo desejado, modificar vários parâmetros, criptografar a mensagem nova, copiá-la em extensão base64, decodifica-la e, por último, enviá-la.

Vejamos o este processo passo-a-passo: a seguinte mensagem pertence à uma conversa que eu tive com meu pai durante o momento em que preparei as capturas de tela para esse post:
whatsapp decryption and encryption imagen

Para testar a vulnerabilidade, substituo a mensagem para indicar que o produto que «menos» é vendido (em vez do «mais») é a telefonia móvel:

WhatsApp desencriptación y encriptación imagen

Segundo os pesquisadores, antes de criptografar a mensagem é necessário modificar o valor ID a qualquer outro que não exista na base de dados, assim como o messageTimeStamp. Feito isso, basta clicar no botão “Encrypt” e copia os valores na janela “Intercept”, onde temos a mensagem original esperando para ser trocada pelo conteúdo falso.

WhatsApp desencriptación y encriptación imagen 2

Uma vez que tenhamos a mensagem modificada em base64, basta copiá-la na janela “Intercept”, pressionar as teclas “CTRL-SHIFT-B” para decodificá-la do formato base64.

burp suite community edition imagen

Agora basta clicar no botão “Forward” para enviar a mensagem modificada para a seção do WhatsApp Web. Cabe notar que há algumas ocasiões que, apesar de seguir os passos indicados, a mensagem modificada não é visualizada na seção web. 
conversación WhatsApp imagen
Como podemos observar, a mensagem modificada não chega a ser visualizada na conversa em grupo do WhatsApp Web, porque não foi possível replicar o ataque. Ainda assim, conseguimos reproduzi-lo em outras ocasiões, tal como podemos ver na captura de tela seguinte, durante um teste em que conseguimos modificar a mensagem enviada pelo meu amigo David com emojis, substituindo-os por texto. 
conversación WhatsApp con emoticonos imagen

Como mostrado na imagem, a mensagem inclui o texto “guapo” que ele jamais enviou. Foi a segunda mensagem com emojis que eu modifiquei na minha seção do WhatsApp Web para realizar o processo de troca de conteúdo, veja abaixo.

Emojis WhatsaApp imagen

Nesse ponto, bastou responder na seção do WhatsApp Web para tanto ele quanto eu víssemos o texto na citação, conseguindo reproduzir palavras que ele não havia escrito e replicar assim o FakesApp. 
Conclusões Finais
Em alguns casos não é possível reproduzir em tempo real o ataque FakesApp, se trata de um processo relativamente complexo que deve ser executado em um curto espaço de tempo. Ainda assim, é interessante conhecer a anatomia desse ataque para poder utilizar a extensão para decifrar mensagens e analisar o protocolo de comunicação usado pelo WhatsApp.

Além do tráfego criptografado, pudemos perceber que são transmitidos alguns pacotes de texto aberto, que não tem a ver com as conversas em si, mas com signaling.

Tráfico WhatsApp web

A partir do conteúdo visualizado na imagem anterior, podemos deduzir que o usuário está mantendo uma conversão com o contato identificado pelo parâmetro “id” e que esse contato está atualmente no estado “composing”, que é mostrado para os usuários como “escrevendo…”

Isso pode abrir porta para um atacante obter informação sobre as pessoas que estariam falando com o usuário comprometido, incluindo números de telefone e outra informação que pudesse ser extraída desses pacotes não criptografados. Tudo isso, claro, depende da realização de um ataque man in the middle que permita a intercepção HTTPS. 

Como vimos, as vulnerabilidades FakesApp não tem impacto sobre a confidencialidade das conversas¸ ainda que se possa gerar algum caos em cenários determinados, sobretudo se a tática combinar engenharia social. Sua exploração requer algumas condições específicas e as mensagens manipuladas devem ser interceptadas em tempo real. Ainda assim, não deixa de ser um trabalho de investigação interessante, que pode ajudar a aprofunda o conhecimento dos detalhes técnicos sobre um dos sistemas de mensagens instantâneas mais utilizados no planeta.

Você pode também estar interessado em:
» Analisando o impacto da vulnerabilidade FakesApp e decifrando o tráfego do WhatsApp Web com “WhatsApp Decoder” (Parte 1/2)

Deepak Daswani
Chief Security Ambassador de ElevenPaths
@dipudaswani



Extensão na Chrome Web Store ativa há um ano rouba dados de cartão de crédito

ElevenPaths    22 enero, 2019
Detectamos uma extensão para o navegador Google Chrome, ainda ativa, que rouba dados de formulários nas páginas visitadas pelas vítimas. O complemento do navegador, que ainda se encontra disponível na loja de extensões do Chrome, está ativo desde fevereiro do ano passado. Ele, no entanto, não aparece nas buscas da web store e só pode ser acessado através de um link que os atacantes estão distribuindo por meio de injeções de JavaScript em páginas que direcionam o usuário para a extensão.

Chrome web store Javascript Segurança imagem

A extensão simula um “leitor Flash” criado pelo suposto desenvolvedor fbsgang.info. Uma vez instalada, injeta uma pequena função em todas as páginas visitadas pelo usuário ao explorar uma funcionalidade da API webRequest.onBeforeRequest que permite criar um “hook” que será chamado imediatamente antes de uma nova solicitação HTTP dentro da página (por exemplo, ao clicar no botão “Enviar” de um formulário). 

segurança de extensão background imagem

Essa função monitora a inserção de expressões numéricas características de cartões de crédito (ao examinar o código vemos expressões padrão para Visa (vvregex), MasterCard (mcregex), etc.), ao detectar a inserção de um número de cartão válido a extensão codifica os dados em JSON e os envia ao atacante através de uma solicitação AJAX. De maneira prática, ela emprega a função “sendFormData” que contém a URL destino codificada em base64:

codificação em base64 a URL de cibersegurança imagem
aHR0cDovL2Zic2dhbmcuaW5mby9jYy9nYXRlLnBocA==

que, uma vez decodificada, leva à:

hxxp://fbsgang.info/cc/gate.php

Assim, se trata de uma extensão simples que aproveita o grande poder de alcance de uma única chamada API. No momento em que a detectamos, a extensão contava com pouco mais de 400 instalações e não se difundiu massivamente, ao menos até agora. O complemento está na loja desde fevereiro de 2018 mas como as atacantes não a configuraram como “pública”, não é possível encontrá-la através de busca.

opciones de visibilidad ciberseguridad imagen

¿Como ela é distribuída então?
Ao invés de captar vítimas através da busca ou então de um envio massivo de e-mails, algo que faria com que o ataque fosse muito mais efetivo, mas também muito mais detectável, os atacantes preferiram outra técnica. Eles infectam páginas web (hospedagens completas com todas as suas subpáginas, como observamos) com um JavaScript que detecta se o navegador é o Google Chrome. Caso positivo, simplesmente redirecionam a vítima para uma página falsa de instalação do Flash, que faz o download da extensão maliciosa. 

 60/5000 fragmento de JavaScript injetado nas redes de cibersegurança imagem

Aqui encontramos um erro dos atacantes, que não finalizaram corretamente a página que indica a necessidade de instalação do Flash (ou a desativaram por alguma razão), a página exibe hoje o índice de arquivos do servidor. 

índice de arquivos do servidor de segurança imagem
Isso não afeta a extensão, só sua técnica de difusão. Se acessamos uma página em cache, podemos ver que sua versão anterior tinha aspecto muito mais real. 

índice de arquivos do servidor aparência anterior cybersecurity imagem

Se observarmos seu código fonte: 

índice do código fonte do cybersecurity dos arquivos do servidor imagem

E o código JavaScript, após sua decodificação, demonstrado abaixo:

Aspecto do código JavaScript, após sua decodificação da segurança imagem

Resumindo, apresenta uma solicitação de instalação ao Adobe Flash e redireciona o usuário à loja de extensões do Chrome, diretamente à página da extensão falsa “leitor Flash” que comentamos ao início, completando o ciclo de ataque. Nós alertamos ao Google sobre a extensão para que seja retirada do site o mais rápido possível. 


Recomendamos que você busque o JavaScript com a estrutura demonstrada acima para garantir que nenhuma página em seu servidor está infectada. Ainda que o ataque pareça contido, a extensão ainda é uma grande ameaça, seu hash é: 4d2efd3eebcae2b26ad3009915c6ef0cf69a0ebf. 

Utilizamos a ferramenta NETO, desenvolvida pela ElevenPaths para analisar extensões em geral nesse estudo. Aqui você pode acessar o relatório completo da ferramenta.


Ferramenta NETO analisa extensões de segurança cibernética imagem



Inovação e Laboratório em ElevenPaths