Usando Whitelists para melhorar a segurança de Firmware

Firmware tornou-se mais popular no mundo da pesquisa de segurança de computadores. Os ataques que operam ao nível de firmware podem ser difíceis de descobrir, e têm o potencial de persistir mesmo em cenários de recuperação de metal. Este tipo de hack foi bem documentado pelas investigações da equipa HackingTeam e das façanhas Vault7.Felizmente, existem métodos para detectar e defender contra tais ataques. Ataques baseados em Firmware normalmente tentam adicionar ou modificar módulos de firmware do sistema armazenados no NVRAM. Ferramentas fornecidas pelo projeto CHIPSEC de código aberto podem ser usadas para gerar e verificar hashes desses módulos, para que os usuários possam detectar mudanças não autorizadas.CHISPEC, introduzido em Março de 2014, é um framework para analisar a segurança de nível de plataforma de hardware, dispositivos, firmware de Sistema, mecanismos de proteção de baixo nível, e a configuração de vários componentes de plataforma. Ele contém um conjunto de módulos, incluindo testes simples para proteções de hardware e configuração correta, testes para vulnerabilidades em firmware e componentes de plataforma, avaliação de segurança e ferramentas de fuzzing para vários dispositivos de plataforma e interfaces, e ferramentas adquirindo firmware crítico e artefatos de dispositivo.

o módulo whitelist (tools.uefi.whitelist) usa CHIPSEC para extrair uma lista de executáveis EFI a partir de uma imagem de firmware binário, e constrói uma lista de executáveis “esperados” e traços correspondentes (.JSON file) a ser usado mais tarde para comparação. A documentação está disponível como parte do código fonte do módulo no github, e no manual CHIPSEC.

processo pressupõe que você esteja começando a partir de uma “boa conhecida imagem de firmware”, de preferência uma versão de produção do firmware fornecido pelo fabricante, e que você tenha usado CHIPSEC para procurar problemas conhecidos, antes de acidentalmente whitelisting algo desagradável. Este exemplo usa o firmware UEFI open source para o pregado MinnowBoard (release 0.97), para uma melhor visibilidade no processo.

a seguinte linha de comando CHIPSEC cria uma lista branca chamada efilist.json based on a “known good image” (platform_fw.bin):

python chipsec_main.py -i -n -m tools.uefi.whitelist -a generate,efilist.json,platform_fw.bin

CHIPSEC no Ubuntu Linux

Aplicando este processo para o x64 “release” e “depurar” as imagens da MinnowBoard Pregado 0.97 firmware produz o seguinte whitelists:

  • MNW2MAX1.X64. 0097.D01. 1709211100.bin (UEFI x64 firmware, modo de depuração) – X64d97_ Whitelist.json
  • MNW2MAX1.X64. 0097.R01. 1709211052.bin (UEFI x64 firmware, modo de lançamento) – X64r97_ Whitelist.json

(exercício para o leitor: obtenha as imagens do firmware, execute o CHIPSEC, veja se a sua lista branca corresponde)

é importante notar que o ficheiro JSON whitelist resultante não é apenas um hash do ficheiro binário, ele contém traços dos módulos executáveis da imagem do firmware. CHIPSEC tem a capacidade de digitalizar e catalogar componentes individuais de firmware, que podem ser usados para whitelist ou Blacklist executables específicos.

postar listas brancas

se você fosse um fabricante de Sistemas, você poderia publicar essas listas brancas para verificação do cliente. No entanto, é melhor assinar arquivos para fins de verificação. Para garantir que a lista branca obtida por um utilizador final é a lista branca oficial, ela pode ser assinada com o GPG usando uma assinatura destacada:

gpg –detach-sign <file>

além disso, os usuários devem autenticar certificados para um nome de domínio bem conhecido para o fabricante do sistema quando entregue através de HTTPS. Também é aconselhável que as organizações de TI assinem listas brancas geradas internamente para evitar que listas não autorizadas sejam usadas em auditorias.

verificação das listas brancas

se estiver disponível uma assinatura destacada, o GPG pode ser usado para verificar o ficheiro da lista branca:

gpg –verify <file>

uma vez verificada a autenticidade da lista branca, o utilizador precisa de tirar uma imagem do firmware da plataforma usando CHIPSEC. Esta linha de comandos usou o comando’ dump ‘ para gerar o user_ FW.bin:

python chipsec_util.py spi dump user_fw.bin

agora CHIPSEC pode ser usado para verificar a imagem de firmware de Plataforma contra a lista de whitelist associada. Este exemplo iria verificar contra a imagem x64 “release” para o pregado de Minnowboard 0.97:

python chipsec_main.py -i -n -m tools.uefi.whitelist -a check,X64REL_whitelist.json,user_fw.bin

neste momento, CHIPSEC retornará um status” passado” ou “aviso”. Se o teste retorna “passado”, todos os hashs foram encontrados na lista branca e eles correspondem aos valores esperados. Se o teste retorna “aviso”, então algo é diferente. Note que um “aviso” contra não indica imediatamente uma ameaça de segurança (ex: o usuário pode ter atualizado para o mais recente firmware do fabricante), mas requer investigação para se certificar de que a imagem de firmware alterada não é devido a uma tentativa de ataque.

limitações

usando ferramentas como CHIPSEC isso pode melhorar a segurança, mas nenhum sistema pode ser absolutamente seguro, e estes procedimentos não podem se defender contra todos os possíveis ataques. Há uma série de limitações a considerar ao interpretar os resultados da lista branca:

  • pode haver métodos de embalagem de imagens personalizados ou proprietários que CHIPSEC não entende. Isto pode resultar na exclusão de alguns módulos, pelo que as alterações correspondentes podem ser omitidas durante uma comparação com a lista branca.
  • Software executado em um sistema já comprometido pode ser enganado. Se um sistema já estiver comprometido, CHIPSEC e software similar podem não produzir indicadores confiáveis.

Summary

The ability for CHIPSEC to generate whitelists provides a method for validating the firmware supply chain. Os fabricantes podem alavancar essas ferramentas para ajudar os usuários a verificar os lançamentos oficiais de firmware, e os administradores de TI podem gerar listas brancas para auditorias internas com base em imagens confiáveis.

Deixe uma resposta

O seu endereço de email não será publicado.