O Google está anunciando hoje que libera o código-fonte do Atheris, um fuzzer Python desenvolvido internamente para encontrar bugs automaticamente no código Python e extensões nativas. O Atheris está focado no fuzzing diferencial para casos em que várias bibliotecas estão disponíveis para fornecer a mesma funcionalidade, mas em muitos casos podem apresentar diferenças sutis.
O Google encontrou milhares de vulnerabilidades de segurança e outros bugs usando essa técnica. O fuzzing é tradicionalmente usado em linguagens nativas como C ou C++, mas no ano passado, construímos um novo mecanismo de fuzzing em Python. Hoje, estamos lançando o mecanismo de difusão Atheris como código aberto.
Google libera “Atheris” para encontrar erros automaticamente no código Python
O Atheris suporta extensões nativas do Python usando o código libFuzzer do LLVM Clang. Atheris suporta difusão de código Python 2.7 e Python 3. O Google também está adicionando Atheris ao seu serviço OSS-Fuzz.
Atheris pode ser usado para localizar erros automaticamente no código Python e extensões nativas. O Atheris é um difusor “guiado por cobertura”, o que significa que o Atheris tentará repetidamente várias entradas em seu programa enquanto observa como ele é executado e tentará encontrar caminhos interessantes. Um dos melhores usos do Atheris é para difusores diferenciais. São fuzzers que procuram diferenças no comportamento de duas bibliotecas que têm o mesmo objetivo.
Atheris suporta código Python fuzzing e extensões nativas em Python 2.7 e Python 3.3+. Ao difundir o código Python, o uso do Python 3.8+ é altamente recomendado, pois permite informações de cobertura muito melhores. Ao difundir extensões nativas, o Atheris pode ser usado em combinação com Address Sanitizer ou Undefined Behavior Sanitizer.
Para fazer a instalação, precisa apenas abrir um Terminal e digitar os seguintes comandos:
Mais detalhes sobre Atheris para difundir o código Python por meio do Google Open-Source Blog. Além disso, o Atheris é open-source sob uma licença Apache 2.0 no GitHub.