
Escáner de vulnerabilidades de código fuente basado en web

Raptor es un escáner de vulnerabilidades de código fuente centrado en GitHub, basado en web (servicio web + interfaz de usuario), es decir, escanea un repositorio con solo la URL del repositorio de GitHub. Puedes configurar webhooks para garantizar escaneos automáticos cada vez que realizas un commit o fusionas una solicitud de pull. El escaneo se realiza de forma asíncrona y los resultados están disponibles solo para el usuario que inició el escaneo.
Algunas de las características de Raptor:
Esta herramienta es un intento de ayudar a la comunidad y a las empresas emergentes a enfatizar la codificación segura. Esta herramienta puede o no igualar las características/calidad de las alternativas comerciales, no se garantiza nada y se le ha advertido. Esta herramienta está dirigida a ser utilizada por revisores de seguridad de código y/o desarrolladores con experiencia en codificación segura para encontrar puntos de entrada de vulnerabilidades durante auditorías de código o revisiones entre pares. Por favor, NO confíe ciegamente en la salida de la herramienta. Es mejor usarla si integra Raptor en su canal de CI/CD.
0.1 beta
Complementos integrados:
Nota: La mayoría de las siguientes herramientas/módulos/bibliotecas han sido modificados considerablemente para integrarse bien en el marco.
Paquetes de reglas disponibles:
Video de instalación: Instalación en YouTube
$ wget https://github.com/dpnishant/raptor/archive/master.zip -O raptor.zip
$ unzip raptor.zip
$ cd raptor-master
$ sudo sh install.sh
Video de instalación: Uso en YouTube
cd raptor-master
sudo sh start.sh # inicia el servicio web backend
Ahora apunte su navegador a Página de inicio de Raptor (http://localhost/raptor/)
Inicie sesión con el nombre de usuario registrado en el servidor de GitHub correspondiente al que está conectado y cualquier contraseña (pero recuerde el nombre de usuario para ver el historial de escaneo)
Por ejemplo:
Si está registrado como foobar en https://github.com, use el mismo nombre de usuario al escanear repositorios en https://github.com. Sin embargo, si está registrado como foobar_corp en su GitHub personal/corporativo (por ejemplo, https://github.corp.company.com), use ese mismo nombre de usuario si tiene la intención de escanear repositorios en https://github.corp.company.com
Sin embargo, por ahora la contraseña puede ser cualquier cosa, ya que NO hemos implementado una base de datos en la versión de desarrollo.
Puede usar el editor de reglas ligero del lado del cliente incluido para agregar cualquier regla nueva o personalizada para sus requisitos específicos, o cualquier otro editor de texto plano, ya que los archivos de paquetes de reglas son simplemente estructuras JSON simples. Use su navegador para abrir las reglas ubicadas en 'backend/rules'. Cuando termine, guarde su archivo de reglas nuevo/modificado en el mismo directorio, es decir, 'backend/rules'. Todo lo que necesita hacer ahora es una edición menor, aquí: Script de inicio. Agregue el nombre de su nuevo archivo de paquete de reglas a este arreglo sin la extensión '.rulepack' y reinicie el servidor backend. ¡Listo! 👍
Puede acceder aquí: Editor de reglas (http://localhost/raptor/editrules.php)
Agregue un patrón de nombre de archivo o nombre de directorio para excluir del escaneo. Esto es útil para ignorar cualquier archivo conocido como jquery.min.js o, por ejemplo, todo el directorio /test/. Por ejemplo, en el contenido de muestra a continuación, jquery significa jquery y distingue entre mayúsculas y minúsculas, por lo tanto, tenga cuidado. En la sección plugins, name del complemento es el nombre del archivo de paquete de reglas sin la extensión ".rulepack" según lo disponible en el directorio rules/. El campo issue es el ID del problema mencionado en cada regla de los archivos de paquete de reglas: Ejemplo #1, Ejemplo #2. El valor del campo match_type puede ser regex, start o end. El campo value es la cadena exacta que se va a comparar en caso de que match_type sea start o end. En caso de que el campo match_type sea regex, value debe contener el patrón de RegEx sin procesar que debe estar codificado en Base64 para evitar problemas relacionados con el escape de sintaxis JSON. regex es una coincidencia basada en Expresiones Regulares, start coincidirá al comienzo del fragmento y end coincidirá al final del fragmento.
La forma en que funciona es que cuando el escáner ha terminado de escanear en busca de problemas, iterará a través de todos los problemas encontrados y eliminará aquellos que coincidan con los patrones (según el tipo de coincidencia) de cada complemento mencionado en el archivo ignore_list.rulepack.