
Dawn é um scanner de segurança de análise estática para aplicações web escritas em Ruby. Ele suporta os frameworks Sinatra, Padrino e Ruby on Rails.
dawn é um scanner de código fonte projetado para revisar suas aplicações web em busca de problemas de segurança.
A ferramenta é capaz de escanear aplicações web escritas em Ruby e suporta todos os principais frameworks MVC (Model View Controller), prontos para uso:
dawn versão 2.0 possui mais de 680 verificações de segurança carregadas em sua base de conhecimento, que é atualizada semanalmente a partir do National Vulnerability Database pelo NIST.
Quando você executa dawn em seu código, ele analisa o Gemfile.lock do seu projeto em busca das gems utilizadas e tenta detectar a versão do interpretador ruby que você está usando ou que declarou na sua ferramenta de gerenciamento de versão ruby preferida (RVM, rbenv, ...).
Em seguida, a ferramenta tenta detectar o framework MVC que sua aplicação web utiliza e aplica a verificação de segurança de acordo. Existem verificações projetadas para aplicações Rails ou verificações que são aplicáveis a qualquer código ruby.
dawn também pode entender o código em suas views e rastrear sinks para identificar cross site scripting e sql injections introduzidos pelo código que você realmente escreveu (no roadmap do projeto, este é o código no qual a maior parte do esforço de desenvolvimento futuro estará focada).
O resultado da varredura de segurança do dawn é uma lista de vulnerabilidades com algumas ações de mitigação que você pode seguir para construir uma aplicação web mais forte.
Você pode instalar a versão mais recente do dawn, obtendo-a do Rubygems digitando:
$ gem install dawnscanner
Depois disso, você precisa baixar a base de conhecimento do Github e descompactar o arquivo no diretório $HOME/dawnscanner/kb.
Um layout típico do diretório kb é semelhante a este:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
A base de conhecimento está estruturada desta forma:
A partir da versão 2.0, a ferramenta usa subcomandos para iniciar tarefas específicas, cada uma com mensagens de ajuda específicas.
O subcomando scan instrui o dawn a escanear o alvo especificado em busca de problemas de segurança.
$ dawn scan target
No momento, os resultados estão disponíveis apenas em formato de texto e são armazenados em um diretório nomeado com o timestamp da varredura, em $HOME/dawnscanner/results/target, onde target é o nome da aplicação sendo analisada.
É possível, com o subcomando kb, consultar a base de conhecimento.
dawn kb find # Searches the knowledge base for a given vulnerability
dawn kb help [COMMAND] # Describe subcommands or one specific subcommand
dawn kb lint # Checks knowledge base content for correcteness
dawn kb list gem_name[gem_version] # List all security issues affecting a gem passed as argument (the version string is optional).
dawn kb status # Checks the status of the knowledge base
dawn kb unpack # Unpacks security checks in KB library path
Perfil no Twitter: @dawnscanner Repositório no Github: https://github.com/thesp0nge/dawnscanner
Feedbacks são ótimos e adoramos ouvir sua opinião.
Se você é um orgulhoso usuário do dawn, se o acha útil, se o integrou em seu processo de release e se deseja apoiar abertamente o projeto, pode colocar sua referência aqui. Basta abrir uma issue com uma declaração dizendo como você se sente em relação à ferramenta e seu logotipo da empresa, se houver.
Obrigado.
saten: primeiro issue postado sobre um erro de digitação no README
presidentbeef: pelo seu excelente trabalho que me inspirou a criar o dawn e pela verificação dupla da matriz de comparação. Issue #2 é seu :)
marinerJB: por vários relatórios de bugs e ideias adicionais
Matteo: por ideias sobre API e seu uso com hooks do github.com
Copyright (c) 2013-2023 Paolo Perego [email protected]
Licença MIT
A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeito às seguintes condições:
O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM FIM ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.