
Kit de ferramentas em C que implementa ataques de canal lateral microarquiteturais em Intel x86-64, incluindo Prime+Probe, Flush+Reload, Flush+Flush, CacheBleed e Prime+Abort.
Ataques de canal lateral micro-arquiteturais exploram a contenção em componentes internos do processador para vazar informações entre processos. Embora, em teoria, tais ataques sejam diretos, as implementações práticas tendem a ser complicadas e requerem um entendimento significativo de recursos do processador mal documentados e outros conhecimentos obscuros específicos do domínio. Consequentemente, há uma barreira de entrada para o trabalho em ataques de canal lateral micro-arquiteturais, o que dificulta o desenvolvimento da área e a análise da resiliência de softwares existentes contra tais ataques.
Este repositório contém o Mastik, um kit de ferramentas para experimentar com ataques de canal lateral micro-arquiteturais. O Mastik visa fornecer implementações de técnicas de ataque e análise publicadas. Atualmente, o Mastik suporta seis técnicas de ataque de canal lateral na arquitetura Intel x86-64:
O Mastik segue o processo de instalação padrão de fato do Linux.
Se o sistema tiver todo o software necessário e
você quiser a configuração padrão, use:
$ ./configure && make && sudo make install
Veja abaixo para mais informações.
Para a operação principal, o Mastik não requer nenhum pacote.
No entanto, a capacidade de resolver símbolos em binários é extremamente útil,
e requer os pacotes de compilação binutils e libdwarf no Linux.
No Mac OS X ainda não há suporte para símbolos de depuração.
A interface gráfica do Mastik doubloon
requer Python 3 com os seguintes pacotes:
wx, numpy, paramiko, matplotlib e tqdm.
A instalação depende da variante do Sistema Operacional.
Fedora:
$ sudo dnf install binutils-devel libdwarf-devel
Ubuntu:
$ sudo apt-get install binutils-dev libdwarf-dev libelf-dev
CentOS:
Habilite o repositório PowerTools:
$ sudo dnf config-manager --set-enabled PowerTools
Em seguida, instale os pacotes:
$ sudo dnf install libdwarf binutils-devel elfutils-libelf-devel libdwarf-devel python3
Para configurar o ambiente de compilação, use o script configure.
Para usar as opções padrão, use:
$ ./configure
O script aceita várias flags para modificar seu comportamento.
Algumas delas estão listadas abaixo.
Use ./configure --help para uma lista completa.
| Flag | Descrição |
|---|---|
--help | Mensagem de ajuda |
--prefix=PREFIX | Instala os arquivos em PREFIX [/usr/local] |
--disable-symbols | Desabilita o tratamento de tabelas de símbolos em binários. Também remove a exigência de binutils e libdwarf |
--disable-debug-symbols | Desabilita o tratamento de símbolos de depuração em binários. Remove a exigência de libdwarf |
--disable-doubloon | Não instala o doubloon. Remove a exigência de Python3 |
Após configurar o ambiente de compilação, compile o Mastik usando:
$ make
Para instalar o Mastik, use:
$ make install
Para alterar o diretório de instalação, use:
$ make prefix=DIR install
Para ver um exemplo de uso, consulte a pasta de demonstração.
O Mastik é apoiado por: