Como realizar testes fuzz com o IoSpy e o IoAttack

Observação

O IoAttack já não está disponível no WDK após a versão 1703 do Windows 10.

Como alternativa a esta ferramenta, considere usar os testes de fuzzing disponíveis no HLK. Aqui estão alguns a considerar.

Você também pode usar o difusor de atraso de sincronização do kernel incluído no Verificador de Driver.

Para executar testes difusos usando o IoSpy e o IoAttack, faça o seguinte:

  1. Instale o IoSpy:

    Para instalar o IoSpy e habilitar fuzz tests em dispositivos específicos, execute o teste Enable I/O Spy. O parâmetro DQ controla em quais dispositivos o driver de filtro do IoSpy está instalado.

  2. Execute testes IOCTL e WMI nos dispositivos especificados:

    Depois de reiniciar o sistema de teste, o IoSpy está pronto para filtrar solicitações IOCTL e WMI para os dispositivos que foram habilitados para testes difusos. Agora você deve exercitar os caminhos de código IOCTL e WMI em drivers para esses dispositivos usando os testes apropriados. Isso permite que o IoSpy registre o maior número possível de detalhes com base nessas solicitações IOCTL e WMI. O IoSpy salva esses detalhes no Arquivo de Dados do IoSpy.

  3. Desinstale o IoSpy:

    Depois de ter exercido totalmente os caminhos de código IOCTL e WMI, deves primeiro desinstalar o IoSpy antes de correr o IoAttack para realizar testes de fuzzing. Para desinstalar o IoSpy, execute o teste Desativar E/S Spy .

    Este comando remove o driver de filtro IoSpy de todos os dispositivos que foram habilitados para testes de fuzz. Depois que o comando for executado, reinicie o sistema de teste para descarregar o driver de filtro do IoSpy da memória.

    Observação Quando você desinstalar o IoSpy, ele não excluirá o arquivo de dados do IoSpy. O local deste arquivo é definido pelo parâmetro DFD para o teste Enable I/O Spy . O local padrão é %SystemDrive%\DriverTest\IoSpy. Para obter mais informações, consulte Arquivo de dados do IoSpy.

  4. Execute o IoAttack:

    O sistema de teste agora está pronto para executar os testes difusos executando o teste Run I/O Attack . Para obter mais informações sobre como executar o IoAttack, consulte IoAttack.

    Observação

    Para verificar os privilégios de acesso das interfaces IOCTL e WMI do seu driver, deve executar contas IoAttack com diferentes privilégios, como uma conta de convidado e uma conta de administrador.