O que é e como funciona a metodologia Cyber Kill Chain®?

O conceito conhecido por Kill Chain se origina da abordagem militar em relação ao planejamento de um ataque coordenado. As tarefas são segmentadas por objetivos como identificação do alvo, envio da força para o alvo, decisão e ordem de ataque e, por fim, a destruição do alvo.  

Um modelo de uso militar bem difundido é o “F2T2EA” que estabelece fases por cada letra, e as relaciona com as atividades que deverão ser desempenhadas.

· Find (localizar): tem foco na localização do alvo;
· Fix (determinar/estabelecer): mesmo não sendo possível a tradução “ao pé da letra”, esta tarefa determina a localização e/ou dificuldade nos movimentos;
· Track (monitorar/acompanhar): a ação de monitorar os movimentos do alvo;
· Target (alvo): a fase de selecionar o armamento adequado para o ataque;
· Engage (engajar): etapa de engajamento onde deve ser utilizado o armamento selecionado na fase anterior;
· Assess (avaliação): quaisquer informações coletadas devem ser analisadas nesta etapa.

Neste ponto, é interessante salientar que no modelo proposto na forma de chain, ou seja, cadeia, a execução deste processo é integralmente sequencial e uma interrupção em qualquer fase pode frustrar o ataque como um todo.


Mas, o que é mesmo Cyber Kill Chain®?

Cyber Kill Chain® é a marca registrada de um framework, aqui também chamado de metodologia, que foi concebido para atuar na identificação e prevenção de atividades de intrusão. Esse framework faz parte do modelo de Intelligence Driven Defense®, da empresa Lockheed Martin.

Baseado no modelo de planejamento de manobra coordenada de ataque militar, onde são correlacionadas situações de combate real com as de “guerra cibernética”, foi elaborado um modelo em “cadeia” onde a interrupção de qualquer evento relacionado pode limitar ou até mesmo cessar o ataque.

A proposta é identificar quais são as tarefas que devem ser realizadas pelo invasor para atingir seu objetivo, bem como pará-lo, em algum momento, quebrando a “cadeia” e impedindo o sucesso do ataque.

O modelo Cyber Kill Chain® compreende sete etapas:

· Reconnaissance (identificação do alvo): compreende a pesquisa que o atacante deve fazer para selecionar e avaliar informações sobre os alvos que podem conduzir ao sucesso do seu ataque. Ex: coleta de endereços de e-mail, identificação de empregados em redes sociais, reconhecimento de servidores expostos publicamente na internet;
· Weaponization (preparo do armamento): a operação está na fase de planejamento. Aqui são selecionados os exploits, criados os backdoors, payloads, trojans e demais “armas” ou ferramentas que serão utilizadas no ataque;
· Delivery (entrega): aqui é onde acontece a entrega propriamente dita. O atacante transmite suas “armas” para o alvo.
· Exploitation (ganhando acesso ao alvo): ocorre a exploração das vulnerabilidades encontradas por meio das ferramentas previamente selecionadas e transmitidas;
· Installation (instalação): o objetivo é garantir o retorno do atacante, mantendo seu acesso por meio da instalação de um backdoor persistente, por exemplo.
· Command and control (comando e controle):  se faz a abertura de um canal de controle que permite ao atacante manipular remotamente o alvo;
·Actions on objectives (alcançando os objetivos): é quando, após o comprometimento do alvo, o atacante executa procedimentos de pós exploração realizando seus objetivos.


Considerações Finais

Esta é a apenas uma abordagem superficial sobre a metodologia  Cyber Kill Chain®, sob o ponto de vista do invasor.

Muito ainda pode ser explorado como, por exemplo, a aplicação desta metodologia nas atividades relacionadas à defesa.

As informações contidas neste artigo são resultado de um compilado de pesquisas realizadas e podem ser encontradas com mais detalhes nas referências abaixo.


Referências

Meltdown e Spectre - Entendendo as falhas de processador


A finalidade deste artigo é apresentar informações sobre as vulnerabilidades Meltdown e Spectre, resumindo os resultados publicados pelos pesquisadores que identificaram as falhas.

Ambas as falhas exploram vulnerabilidades críticas em processadores modernos. Essas vulnerabilidades de hardware permitem a captura de dados sendo processados no computador em tempo real. Enquanto os softwares geralmente não possuem autorização para ler dados de outros programas, um software malicioso pode explorar as falhas Meltdown e Spectre para obter dados secretos armazenados na memória, provenientes de outros programas em execução. Isso pode incluir: senhas armazenadas em um gerenciador de senhas ou navegador, suas fotos pessoais, e-mails, mensagens instantâneas e até mesmo documentos sigilosos.

Tanto o Meltdown quanto o Spectre funcionam em computadores pessoais, smartphones e fornecedores de serviços na nuvem. Em algumas infraestruturas em nuvem, pode ser possível capturar informações de outros clientes.

Meltdown (CVE-2017-5754)

O Meltdown foi chamado assim porque "derrete" limites de segurança normalmente aplicados por hardware. Através da falha é possível fragmentar o isolamento fundamental entre as aplicações do usuário e o sistema operacional. Este ataque permite que um software acesse diretamente a memória, permitindo também o acesso de dados privados de outros programas e do próprio sistema operacional.

Caso o seu computador pessoal tenha um processador vulnerável e execute um sistema operacional sem patch de segurança, não é seguro trabalhar com informações confidenciais sem que haja o perigo de vazamentos de informação. Isso se aplica tanto aos computadores pessoais, quanto a infraestruturas processadas na nuvem.

O vídeo acima demonstra como o Meltdown, permite aos atacantes ler não só a memória do kernel, mas também a memória física do alvo.

Para mais informações acesse o artigo técnico feito pelos pesquisadores da falha:
https://meltdownattack.com/meltdown.pdf


O nome Spectre (fantasma) é baseado na causa raiz, execução especulativa. Como não é fácil de mitigar e pelo fato que nos “amedrontará” por algum tempo, o nome “fantasma” veio bem a calhar.

Da mesma forma que o Meltdown, o Spectre burla o isolamento entre diferentes aplicativos. Ele permite que um invasor manipule um software, supostamente seguro, para que o mesmo vaze dados secretos sem que haja em sua execução.
A falha Spectre é mais difícil de explorar do que Meltdown, mas também é mais difícil de mitigar.

Para mais informações acesse o artigo técnico feito pelos pesquisadores da falha: https://spectreattack.com/spectre.pdf

O que deve ser feito? Mitigações e patches

Muitos fornecedores possuem patches de segurança disponíveis para um ou ambos os ataques:
  • Windows - A Microsoft emitiu uma atualização de patch de atualização para o Windows 10, enquanto outras versões do Windows serão corrigidas nos tradicionais patches semanais;
  •  MacOS - A Apple já havia corrigido a maioria dessas falhas de segurança no MacOS High Sierra 10.13.2 no mês passado, mas o MacOS 10.13.3 aprimorará ou completará essas atenuações;
  • Linux - Os desenvolvedores do kernel do Linux também lançaram patches implementando o isolamento da tabela de página do kernel (KPTI) para mover o kernel para um espaço de endereçamento totalmente separado.
  • Android - O Google lançou patches de segurança para usuários de Pixel/Nexus como parte da atualização de patches de segurança do Android. Outros usuários precisam esperar que seus fabricantes de dispositivos liberem uma atualização de segurança compatível.

É aconselhável que empresas e pessoas físicas, tirem algum tempo para considerar seus requisitos de segurança. É um ano novo e certamente temos novos desafios por vir com ele.

Mesmo se você sentir que você “fugiu da vulnerabilidade”, passe algum tempo hoje pensando sobre como a sua organização irá lidar com a próxima grande falha. Todos nós interessados por segurança da informação, sabemos que não é uma questão de "se", mas uma questão de "quando e como" a próxima vulnerabilidade irá surgir.

Referências:

Bad Rabbit: Prepare-se para esta nova epidemia de ransomware


Um novo malware, apelidado de Bad Rabbit, está se disseminando rapidamente em diferentes países. Empresas de segurança já o identificaram como uma forma de ransomware, pois ele criptografa dados de host, exigindo um resgate de 0,05 bitcoins - cerca de R$ 1 mil - como pagamento para liberar a chave de recovery (recuperação) dos arquivos sequestrados.

Os ataques foram iniciados na Rússia e Ucrânia e ganharam volume na última terça-feira (24). No entanto, outros países como Turquia, Bulgária, Japão e Alemanha também tiveram registros de ataques afetando organizações e consumidores. No Brasil, empresas do setor de comunicação e outras áreas também notificaram ataques do Bad Rabbit.

O fato de outro ataque importante atingir a Ucrânia não surpreende, considerando que o serviço de segurança do país alertou, no início deste mês, sobre um possível ciberataque de grande escala em organizações estatais e empresas privadas. A agência disse que o objetivo do ataque seria interromper os sistemas de TI e desestabilizar a situação no país.


Uma das mensagens requisitando o resgate dos dados para as vítimas sugere que a  única forma de recuperar os arquivos é pagando o resgate

De acordo com os pesquisadores da fabricante de softwares de segurança Kaspersky, o ataque não utiliza exploits. Eles são feitos no modo drive-by, onde as vítimas baixam um falso instalador do Adobe Flash de sites infectados e, após executarem manualmente o arquivo.exe, o malware afeta seus computadores.

As mensagens enviadas às vítimas sugerem que apenas com o pagamento de resgate será possível recuperar os arquivos, mas não há nenhuma garantia de que a chave de descriptografia seja realmente enviada pelos atacantes. Por isso, há uma orientação de que as vítimas não efetuem nenhum pagamento.

tradução: #BadRabbit foi espalhado pela web através de sites de notícia comprometidos.

Lista com alguns sites comprometidos pelo Bad Rabbit. Em tradução livre: #BadRabbit foi espalhado pela web através de sites de notícia comprometidos
No momento, vários pesquisadores de segurança estão fazendo uma análise profunda para entender o funcionamento do Bad Rabbit e identificar se existem falhas no código que facilitem a recuperação dos arquivos.

A empresa de segurança ESET identificou que o malware atua como uma variante do ransonware NotPetya, também conhecido como Diskcoder, Petya, Petrwrap, exPetr e GoldenEye. Alguns relatos também mostram o Bad Rabbit explorando a mesma falha de SMB que o WannaCry utilizava para se espalhar. No entanto, nenhuma das informações foi confirmada por outros pesquisadores.

Para quem se interessar, o site Securelist, mantido por especialistas do Kaspersky Labs, fez uma demonstração da inteligência aplicada neste novo malware.

A seguir, listamos algumas medidas defensivas que devem ser aplicadas para se proteger do Bad Rabbit:

Desinstale o Flash
Os instaladores e atualizações falsas do Flash funcionam como uma tática de engenharia social. Ao remover o Flash completamente, você não só se protege dos furos de zero-day, mas também elimina a tentação de baixar atualizações falsas e comprometer seus arquivos.

Instale patches de segurança
Surtos como NotPetya e WannaCry exploraram vulnerabilidades para as quais já haviam correções e patches atualizados disponíveis. Por isso, seja precavido e instale todos os patches de atualização que o seu sistema operacional requisitar.

Faça backups de seus arquivos
Faça backups regularmente de suas informações. Também mantenha um backup recente offline e offsite que possa ser acessado mesmo fora dos limites de onde está o computador. Isso poderá mantê-lo seguro mesmo que seu local de trabalho seja prejudicado por incêndios, inundações ou causas extraordinárias e não relacionadas ao malware.

Cuidado com as concessões de acesso
Usuários comuns não devem ter concessões de acesso administrativo. Se necessário, promova-os para uma conta de administrador para a execução de tarefas pontuais e renuncie a esses privilégios assim que possível. Se a vítima tiver acesso de administrador nos outros computadores da rede, um malware como o Bad Rabbit pode se espalhar sem sequer precisar adivinhar senhas.

Bloqueie a execução de arquivos
Bloqueie a execução de arquivos como c:\windows\infpub.dat e c:\Windows\cscc.dat. e, caso seja possível fazer isso em seu ambiente, desabilite o serviço WMI para impedir que o malware se espalhe pela sua rede.

Não pague o resgate
É muito importante não pagar o resgate para recuperar seus arquivos sequestrados. Embora a mensagem cause uma tensão nesse sentido e dê esperança de obter suas informações de volta, o pagamento não garante que os dados serão realmente devolvidos.

O que é a vulnerabilidade File Inclusion?



File Inclusion é uma das vulnerabilidades mais comuns em aplicações web e ocorre quando a inclusão de ficheiros externos à aplicação principal é feita sem validação.
Sites em PHP que fazem uso da função include() de um modo inseguro, tornam-se vulneráveis a estes ataques.

O que a função include() faz?
Um desenvolvedor pode incluir conteúdo de um arquivo PHP dentro de outro arquivo PHP usando a função include(). Por exemplo:
Vamos supor que tenhamos dois arquivos PHP:

file1.php

<?php
echo “Modelo php file 1…”;
?>
file2.php
<?php
echo “Modelo php file 2…”;
?>
Se o desenvolvedor deseja o conteúdo do arquivo file2.php em file1.php, simplesmente pode utilizar o seguinte comando:

<?php
include(‘file2.php’);
echo “Modelo php file 1…”;
?>
Isto pode ser um problema, pois além de ser possível incluir o conteúdo de um arquivo dentro de outro, também é possível que um desenvolvedor inclua um arquivo fazendo input como usuário. E quando o input do usuário não é validado corretamente, um atacante pode incluir arquivos maliciosos no servidor.

A File include é uma vulnerabilidade que pode ser dividida em duas partes:
Local File Inclusion (LFI) e Remote File Inclusion (RFI), este último, aliás, do qual já falamos em artigos anteriores aqui no Site Blindado Labs.

Como o Local File Inclusion é utilizado?
Os desenvolvedores costumam utilizar a função include de duas maneiras: a primeira delas é obtendo o arquivo como entrada de usuário. A segunda, é obtendo o arquivo como entrada do usuário, porém anexando uma extensão.
O trecho abaixo mostra o exemplo de um código vulnerável para lfi.php

<?php
echo ‘<br/>’;
echo ‘Ola’;
echo ‘<br/>’;
echo ‘<br/>’;
echo ‘<html>
<body>
<a href=”index.php?page=news.php”><button>Mostrar News</button></a>
</body>
</html>
‘;
echo ‘<br/>’;
echo ‘<br/>’;
include($_GET[‘page’]);
echo ‘<br/>’;
?>

No código apresentado, é possível notar que a aplicação está recebendo um arquivo do cliente utilizando uma requisição no método GET e incluindo-no diretamente na página atual. Quando usuário clica em “Mostrar News”, na página, é exibido o conteúdo do arquivo news.php.
Além disso, uma pessoa mal-intencionada consegue alterar os diretórios do site na URL, tendo acesso a arquivos do servidor. Veja um exemplo:

meusite.com.br/lfi/index.php?page=news.php

Após a alteração:

meusite.com.br/lfi/index.php?page =/etc/passwd

Essa vulnerabilidade é conhecida como Path Traversal e ocorre porque, uma vez que o caminho é inserido dentro da URL e dado ao código PHP, a codificação do arquivo lfi.php ficará vulnerável e exposta, como é mostrado abaixo:

<?php
echo ‘<br/>’;
echo ‘Ola’;
echo ‘<br/>’;
echo ‘<br/>’;
echo ‘<html>
<body>
<a href=”index.php?page=news.php”><button>Mostrar News</button></a>
</body>
</html>
‘;
echo ‘<br/>’;
echo ‘<br/>’;
include(“/etc/passwd”);
echo ‘<br/>’;
?>

Por consequência, o conteúdo do arquivo será carregado.
O LFI se torna perigoso pois um atacante poderia percorrer os diretórios do servidor e conseguir obter acesso a dados sensíveis.
Uma pessoa mal-intencionada, que tenha identificado que a aplicação está lendo os arquivos de usuários, poderia simplesmente fazer um input de um arquivo malicioso.

Quais as recomendações para evitar ataques LFI e RFI?
Para prevenir estes dois tipos de ataque, é necessário validar as entradas dos usuários. O método de prevenção será o mesmo para as duas vulnerabilidades e é possível seguir os passos que já explicamos no post dedicado ao RFI (veja aqui).
Além disso, o valor de “allow_url_include” deverá estar em “on” para que o LFI funcione. Sendo assim, para prevenir de ataques LFI atribui o valor “off” para o “allow_url_include”.
O mesmo pode ser feito para ataques RFI, mas o valor a ser “setado” como “off” terá que ser o “allow_url_fopen”.

Referências: