
Dawn es un escáner de seguridad de análisis estático para aplicaciones web escritas en Ruby. Es compatible con los frameworks Sinatra, Padrino y Ruby on Rails.
dawn es un escáner de código fuente diseñado para revisar sus aplicaciones web en busca de problemas de seguridad.
La herramienta puede escanear aplicaciones web escritas en Ruby y soporta todos los principales frameworks MVC (Modelo Vista Controlador) de forma inmediata:
dawn versión 2.0 tiene más de 680 comprobaciones de seguridad cargadas en su base de conocimiento, la cual se actualiza semanalmente desde la National Vulnerability Database por NIST.
Cuando ejecuta dawn en su código, analiza su proyecto Gemfile.lock buscando las gemas utilizadas e intenta detectar la versión del intérprete de Ruby que está utilizando o que declaró en su herramienta de gestión de versiones de Ruby que más le guste (RVM, rbenv, ...).
Luego, la herramienta intenta detectar el framework MVC que utiliza su aplicación web y aplica la comprobación de seguridad correspondiente. Hay comprobaciones diseñadas para aplicaciones Rails o comprobaciones que son aplicables a cualquier código Ruby.
dawn también puede entender el código en sus vistas y hacer backtracking de sinks para detectar cross site scripting e inyecciones SQL introducidas por el código que usted realmente escribió (en la hoja de ruta del proyecto, este es el código en el que se centrará la mayor parte del esfuerzo de desarrollo futuro).
El resultado del escaneo de seguridad de dawn es una lista de vulnerabilidades con algunas acciones de mitigación que desea seguir para construir una aplicación web más sólida.
Puede instalar la última versión de dawn, obteniéndola desde Rubygems escribiendo:
$ gem install dawnscanner
Después, necesita descargar la base de conocimiento desde GitHub y descomprimir el archivo en el directorio $HOME/dawnscanner/kb.
Un diseño típico del directorio kb es similar 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
La base de conocimiento está estructurada de esta manera:
A partir de la versión 2.0, la herramienta utiliza subcomandos para iniciar tareas específicas, cada una con mensajes de ayuda específicos.
El subcomando scan le indica a dawn que escanee el objetivo especificado en busca de problemas de seguridad.
$ dawn scan target
Por el momento, los resultados están disponibles solo en formato de texto y se almacenan en un directorio con el nombre de la marca de tiempo del escaneo, bajo $HOME/dawnscanner/results/target, donde target es el nombre de la aplicación que se está analizando.
Es posible, con el subcomando kb, consultar la base de conocimiento.
dawn kb find # Busca en la base de conocimiento una vulnerabilidad dada
dawn kb help [COMMAND] # Describe subcomandos o un subcomando específico
dawn kb lint # Verifica la corrección del contenido de la base de conocimiento
dawn kb list gem_name[gem_version] # Lista todos los problemas de seguridad que afectan a una gema pasada como argumento (la cadena de versión es opcional).
dawn kb status # Verifica el estado de la base de conocimiento
dawn kb unpack # Descomprime las comprobaciones de seguridad en la ruta de la biblioteca KB
Perfil de Twitter: @dawnscanner Repositorio de GitHub: https://github.com/thesp0nge/dawnscanner
Los comentarios son geniales y realmente nos encanta escuchar tu voz.
Si eres un orgulloso usuario de dawn, si lo encuentras útil, si lo has integrado en tu proceso de lanzamiento y si deseas apoyar abiertamente el proyecto, puedes poner tu referencia aquí. Solo abre un issue con una declaración diciendo cómo te sientes con la herramienta y el logotipo de tu empresa si lo tienes.
Gracias.
saten: primer issue publicado sobre un error tipográfico en el README
presidentbeef: por su excelente trabajo que me inspiró a crear dawn y por verificar la matriz de comparación. El issue #2 es tuyo :)
marinerJB: por varios informes de errores e ideas adicionales
Matteo: por ideas sobre la API y su uso con hooks de github.com
Copyright (c) 2013-2023 Paolo Perego [email protected]
Licencia MIT
Por la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para utilizar el Software sin restricción, incluyendo, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso deben incluirse en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.