Quando alguém decide começar a pesquisar sobre alguma ameaça, é indispensável realizar uma análise do código malicioso. Podemos caracterizar a análise em dois tipos: estática e dinâmica. A principal diferença é que em uma análise dinâmica temos a possibilidade de observar em tempo real o comportamento de um arquivo ao ser executado em um ambiente controlado. Isso não quer dizer que um tipo de análise seja melhor que a outra, mas que sempre depende do que estamos pesquisando ou tentando obter como resultado.
Para analisar ou observar detalhadamente o que acontece quando um arquivo é executado, normalmente o pesquisar recorre a uma técnica chamada “depurar” ou “debugging”, que permite a execução controlada de um programa. Entre as ferramentas que possibilitam realizar esta ação, a mais populares são o IDA Pro, o Immunity Debugger e o OllyDbg.e
Quando analisamos um código malicioso, é necessário ter certas precauções, considerando que sem perceber podemos nos infectar de forma indesejada, perder o controle e dar ao cibercriminoso diversas informações (talvez esta não seja a nossa real intenção).
Por esta razão, explicaremos como configurar o IDA Pro para poder fazer debugging de forma remota para um executável, evitando o vazamento de informações como, por exemplo, uma licença paga do software mencionado.
Mãos à obra!
Para realizar este processo, utilizaremos duas máquinas, um PC físico e um virtual, ambos com sistema operacional Windows, mas diferentes versões do mesmo. Na máquina física teremos instalado o IDA Pro e a execução do arquivo .EXE ocorrerá na máquina virtual.
Primeiro abriremos o executável com o IDA Pro. Na parte superior da tela principal da ferramenta observaremos um menu com várias opções, entre as quais vamos selecionar o botão “Debbuger”. Em seguida, podemos escolher a que seja correspondente ao nosso ambiente de análise. No nosso caso, utilizaremos a opção “Remote Windows debbuger” e pressionaremos “OK” para salvar a configuração.
Em seguida, voltaremos ao “Debugger” e selecionaremos “Process options…”. Na nova janela que será apresentada na tela, teremos que indicar onde se encontra o arquivo que vamos depurar na máquina virtual, como também o endereço IP e a senha correspondente, caso já esteja configurada. Do contrário, deixaremos em branco, assim como podemos ver nas imagens abaixo:
Agora chegou o momento de configurar a máquina virtual, onde será necessário e crucial ter dois arquivos. O primeiro é o executável que queremos analisar e o outro é também um executável, chamado “win32_remote.exe”, que será responsável por estabelecer a comunicação do depurador com a máquina virtual. Este arquivo se encontra na pasta “dbgsrv” dentro da unidade onde o IDA Pro está instalado.
Após a configuração dos ambientes, voltaremos à janela principal do IDA Pro e pressionaremos F9 para começar a execução do software que decidimos analisar.
A seguir, é possível observar o depurador em ação, onde o registro EIP contém o valor 0040108F que é o endereço da próxima instrução que deve ser executada. Desta maneira, podemos manipular a execução de um software de forma controlada e segura.
Esta é uma boa prática na hora de realizar uma análise ou engenharia inversa sobre um software que desconhecemos.
Cada um pode aplicar as técnicas que cria da forma mais adequada para realizar o seu trabalho. Não existe uma receita ou uma única metodologia para realizar uma análise ou coletar informações sobre algum arquivo. No entanto, sem dúvida, nunca é demais conhecer outra forma de realizar uma mesma tarefa ou processo.