
Seguro, Unificado, Poderoso e Extensível Analisador Android em Rust
Analisador Android Rust Seguro, Unificado, Poderoso e Extensível
SUPER é uma aplicação de linha de comando que pode ser usada no Windows, MacOS X e Linux, que analisa arquivos .apk em busca de vulnerabilidades. Ele faz isso descomprimindo APKs e aplicando uma série de regras para detectar essas vulnerabilidades.
Mas, por que criar um novo analisador? Não é suficiente com MobSF, Qark, Androbugs…? Bem, achamos que não é suficiente. Todos eles têm dois problemas principais que queríamos corrigir: Eles são escritos em Java ou Python e não são facilmente extensíveis. Eles não são feitos para serem usados por empresas que trabalham diretamente com análise Android, e não colocam esse tipo de funcionalidade em primeiro lugar.
Nossa abordagem resolve esses problemas de maneiras diferentes: Primeiro, decidimos usar Rust como nossa linguagem de programação. A linguagem desenvolvida abertamente pela Mozilla Foundation nos oferece muitas utilidades para trabalhar com expressões regulares, arquivos etc. e, mais importante, nos permite criar um software seguro que não depende de compiladores JVM ou JIT. Com Rust, estouros de pilha, falhas de segmentação etc. simplesmente não são possíveis, o que faz sentido em uma aplicação centrada em segurança. E também nos dá poder suficiente para fazer análises eficientes, dando-nos a opção de automatizá-las em alto volume. Isso é proporcionado pelas abstrações de custo zero do Rust, que nos dá uma eficiência comparável apenas a C/C++.
E em segundo lugar, decidimos tornar o software 100% extensível: Todas as regras estão centralizadas em um arquivo rules.json, e cada empresa ou testador pode criar suas próprias regras para analisar o que precisam. Também é modular, para que novos desenvolvimentos possam facilmente adicionar novas funcionalidades. Finalmente, um sistema de modelos para relatórios de resultados dá aos usuários a capacidade de personalizar o relatório.
Também oferece ótimas ferramentas de revisão de código, diretamente no relatório HTML, para que qualquer pessoa possa pesquisar no código gerado com realce de sintaxe para uma análise de vulnerabilidade ainda melhor.
Lançamos alguns binários na página de download para Windows (8.1+), Linux e MacOS X. Por enquanto, só temos pacotes de 64 bits. Se você precisar usar o SUPER em um sistema de 32 bits, será necessário compilar o SUPER a partir do código-fonte. Para isso, você precisará instalar Rust com rustup.rs.
Nota: Requer Java 1.7+ para executar.
SUPER é muito fácil de usar. Basta baixar o .apk desejado para a pasta downloads (crie essa pasta se necessário) e usar o nome como argumento ao executar o programa. Após a execução, um relatório detalhado aparecerá na pasta results com o nome da aplicação. Existem algumas opções de uso disponíveis:
USAGE:
super [FLAGS] [OPTIONS] <package>
FLAGS:
--bench Show benchmarks for the analysis
--force If you'd like to force the auditor to do everything from the beginning
-h, --help Prints help information
--html Generates the reults in HTML format
--json Generates the reults in JSON format
--open Open the report in a browser once it is complete
-q, --quiet If you'd like a zen auditor that won't output anything in stdout
-a, --test-all Test all .apk files in the downloads directory
-V, --version Prints version information
-v, --verbose If you'd like the auditor to talk more than necessary
OPTIONS:
--dex2jar <dex2jar> Where to store the jar files
--dist <dist> Folder where distribution files will be extracted
--downloads <downloads> Folder where the downloads are stored
--jd-cmd <jd-cmd> Path to the jd-cmd file
--min-criticality <min_criticality> Set a minimum criticality to analyze (Critical, High, Medium, Low)
--results <results> Folder where to store the results
--rules <rules> Path to a JSON rules file
--template <template> Path to a results template file
-t, --threads <threads> Number of threads to use, by default it will use one thread per logical CPU core
ARGS:
<package> The package string of the application to test
Todos são bem-vindos para contribuir com o SUPER. Por favor, consulte as Diretrizes de Contribuição do SUPER para instruções sobre como proceder.
Documentação de desenvolvimento
Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License publicada pela Free Software Foundation, seja a versão 3 da Licença, ou (a seu critério) qualquer versão posterior.