
OWASP ASST (Kit de Seguridad de Software Automatizado) | Un novedoso escáner de seguridad web de código abierto.
OWASP ASST (Automated Software Security Toolkit) | Un novedoso escáner de seguridad web de código abierto.
Nota: AWSS es el nombre anterior de ASST

Las aplicaciones web se han convertido en una parte integral de la vida cotidiana, pero muchas de estas aplicaciones se implementan con vulnerabilidades críticas que pueden ser explotadas de forma fatal. A medida que la tecnología utilizada para desarrollar estas aplicaciones se vuelve sofisticada, también lo hacen las técnicas de los atacantes. Los atacantes ya no necesitan acceso físico a las víctimas, pueden atacar a varias al mismo tiempo y la posibilidad de ser capturados y llevados ante la justicia es mínima. Los escáneres automatizados de vulnerabilidades web se han utilizado ampliamente para evaluar la seguridad de las aplicaciones web. Pueden mejorar la eficiencia del escaneo de vulnerabilidades en comparación con la detección manual tradicional, que consume tiempo, requiere mucho trabajo y es ineficiente. Hay muchos escáneres de vulnerabilidades web en Internet, sin embargo, no explican el posible ataque ni cómo contrarrestarlo. Diseñamos e implementamos un nuevo escáner automatizado de vulnerabilidades web llamado Automated Software Security Toolkit (ASST), que escanea el código fuente de un proyecto web y genera un informe de los resultados con una explicación detallada sobre cada posible vulnerabilidad y cómo protegerse contra ella. Hemos probado el rendimiento de ASST y comparado sus resultados con otros escáneres de vulnerabilidades de código abierto importantes. Nuestros resultados muestran que ASST puede identificar vulnerabilidades de seguridad en software web de manera más completa y precisa.
NOTA: Todavía está en desarrollo. Por favor, informe de cualquier error que encuentre.
ASST es una herramienta de escaneo de código fuente de código abierto, es una aplicación CLI (Interfaz de línea de comandos), desarrollada con JavaScript (framework Node.js).
Actualmente se centra en los lenguajes de programación PHP y MySQL, pero como sus funcionalidades principales están listas y disponibles para todos, los programadores pueden contribuir y agregar complementos o extensiones para añadir funciones y hacer que escanee otros lenguajes de programación como Java, C#, Python, etc., y sus frameworks. Por lo tanto, su infraestructura está diseñada para que otros programadores contribuyan a mejorarla y hacerla más novedosa.
Hasta donde sabemos, ASST es la única herramienta que escanea el lenguaje PHP de acuerdo con los Riesgos de Seguridad de Aplicaciones Web del OWASP Top 10.
Cuando ASST escanea un proyecto, revisa cada archivo línea por línea en busca de vulnerabilidades de seguridad. Si se detecta una vulnerabilidad, alertará en el informe en qué línea de qué archivo se detectó y un enlace "Click Here" para explicar el ataque y cómo protegerse contra él.
Los resultados de ASST se muestran como un informe HTML enlazado con archivos PDF para explicar cada ataque y su mecanismo de protección.
ASST se puede extender fácilmente para admitir otros lenguajes de programación que puedan ser escaneados en busca de vulnerabilidades. El proyecto es de código abierto, por lo tanto, los programadores con experiencia en ciberseguridad pueden contribuir o hacer fork del kit de herramientas y agregar funciones. Se pueden agregar otros lenguajes de programación como Python, C#, Java o el propio Node.js para ser escaneados como código de servidor backend.
Si eres un desarrollador con experiencia en seguridad, puedes contribuir a mejorar esta versión actual, o puedes contribuir agregando nuevos lenguajes de programación para ser escaneados. Pero hay reglas que deben seguirse al mejorarlo:
Para que ASST funcione al 100%, necesitarás instalar:
Video completo de cómo ejecutar ASST en Windows: https://youtu.be/FKxDa3zYz1E
Puedes descargar XAMPP para Windows desde aquí: https://www.apachefriends.org/download.html elige la versión de PHP que se adapte a tu proyecto, si no sabes qué versión elegir, simplemente elige la primera para Windows.
Después de descargar e instalar XAMPP (Siguiente, Siguiente, Siguiente, Finalizar), ejecuta el Panel de Control de XAMPP, puedes escribir XAMPP en el campo de búsqueda del menú Inicio y lo verás, ejecútalo, junto a las etiquetas Apache y MySQL presiona Inicio (dos botones).
Asegúrate de que tu PC no tenga instalado un programa de Máquina Virtual porque XAMPP y la Máquina Virtual entran en conflicto en los puertos, tendrás que forzar el cierre de los servicios en segundo plano de la VM usando el Administrador de tareas (Googlealo si no sabes de lo que estoy hablando).
Asegúrate de que el programa Skype esté cerrado (incluso desde la bandeja del sistema), porque también entran en conflicto en los puertos, puedes iniciar Skype después de iniciar XAMPP.
Coloca la carpeta de tu proyecto en htdocs: por defecto: "C:\xampp\htdocs\NombreDeTuCarpetaDelProyecto"
Abre el navegador, escribe: localhost/phpmyadmin, crea una base de datos vacía, importa tu archivo project_database.sql, abre la carpeta de tu proyecto y cambia el archivo de configuración para conectarse a localhost de MySQL: las configuraciones predeterminadas son: host: "localhost" o "127.0.0.1", usuario: "root", contraseña: "" (cadena vacía), nombre de la base de datos: "nombrebd_que_elegiste_en_phpmyadmin"
Debes descargar una versión específica de Node.js para Windows desde aquí: https://nodejs.org/en/blog/release/v12.13.0/ selecciona (Windows 64-bit Installer), luego descarga, Siguiente, Siguiente, Siguiente y Finalizar.
No estamos siguiendo las actualizaciones de nodejs cada mes, así que si quieres probarlo por tu cuenta, puedes descargar la última versión de node.js desde aquí: https://nodejs.org/en/download/ elige (Windows Installer (.msi)), descárgalo y ejecútalo, Siguiente, Siguiente, Siguiente y Finalizar.
Descarga y extrae el proyecto ASST desde esta página de github, renombra la carpeta a "ASST" solamente, no "ASST-main", mueve la carpeta de ASST al lado de tu proyecto web para escanearlo, por defecto: "C:\xampp\htdocs\ASST"
Abre config.js dentro de la carpeta de ASST y establece el nombre de la carpeta de tu proyecto web a escanear en la variable DEFAULT_PROJECT_PATH_TO_SCAN.
Abre config_php_lang.js dentro de la carpeta de ASST: si estás usando MySQL debes configurar las variables como se explica en el archivo, si no estás usando MySQL, simplemente establece la variable IS_DBMS_USED en false e ignora el resto, ten en cuenta que PHP_EXE_BIN_PATH está configurado en la ubicación predeterminada de XAMPP, así que cámbiala si usas un binario PHP diferente o una ubicación de XAMPP diferente.
Haz doble clic en ASST.bat para ejecutarlo. Si es bloqueado por Windows Defender Smart Screen, permítelo haciendo clic en Más información y luego Ejecutar de todas formas, o puedes ejecutarlo usando el comando CMD.
Ejecuta este comando una vez para instalar los node_modules de este proyecto:
$ cd C:\xampp\htdocs\ASST && npm install
Comando CMD predeterminado para ejecutar ASST:
$ node C:\xampp\htdocs\ASST\main.js
Video completo de cómo ejecutar ASST en Ubuntu: https://youtu.be/XrAB8_BHxfo
Usando un navegador web, abre este enlace: https://www.apachefriends.org/download.html y busca la sección "XAMPP for Linux", elige la versión de PHP que se adapte a tu proyecto y descárgala, si no sabes qué versión elegir, simplemente elige la primera. O puedes descargar XAMPP a través del terminal usando el comando (herramienta) "wget", pero necesitarás tener y conocer la URL correcta de la versión para descargar.
Ahora trabajando en Terminal:
$ cd Downloads
$ ls
Deberías ver el archivo de instalación de XAMPP que descargaste.
$ sudo chmod +x xampp-linux-*
$ sudo ./xampp-linux-*
Espera un segundo para que se ejecute la instalación, luego sigue las instrucciones. Después de descargar e instalar XAMPP, ejecútalo.
$ sudo /opt/lampp/lampp start
Coloca la carpeta de tu proyecto en htdocs: por defecto: "/opt/lampp/htdocs/NombreDeTuCarpetaDelProyecto"
Abre el navegador, escribe: localhost/phpmyadmin, crea una base de datos vacía, importa tu archivo project_database.sql, abre la carpeta de tu proyecto y cambia el archivo de configuración para conectarse a localhost de MySQL: las configuraciones predeterminadas son: host: "localhost" o "127.0.0.1", usuario: "root", contraseña: "" (cadena vacía), nombre de la base de datos: "nombrebd_que_elegiste_en_phpmyadmin"
$ sudo apt-get install nodejs -y
$ sudo apt-get install npm -y
Debes configurar una versión específica de Node.js para que ASST funcione sin problemas.
$ sudo npm install n -g
$ sudo n 12.13.0
No estamos siguiendo las actualizaciones de nodejs cada mes, así que si quieres probarlo por tu cuenta, puedes ignorar los últimos dos comandos de instalar "n" usando npm
Descarga y extrae el proyecto ASST desde esta página de github, usando un navegador, wget o git, renombra la carpeta a "ASST" solamente, no "ASST-main", mueve la carpeta de ASST al lado de tu proyecto web para escanearlo, por defecto: "/opt/lampp/htdocs/ASST"
Abre config.js dentro de la carpeta de ASST usando nano, vim o un editor de texto y establece el nombre de la carpeta de tu proyecto web a escanear en la variable DEFAULT_PROJECT_PATH_TO_SCAN.
Abre config_php_lang.js dentro de la carpeta de ASST: si estás usando MySQL debes configurar las variables como se explica en el archivo, si no estás usando MySQL, simplemente establece la variable IS_DBMS_USED en false e ignora el resto, ten en cuenta que PHP_EXE_BIN_PATH está configurado en la ubicación predeterminada de XAMPP, así que cámbiala si usas un binario PHP diferente o una ubicación de XAMPP diferente.
Ejecuta este comando una vez para instalar los node_modules de este proyecto:
$ cd /opt/lampp/htdocs/ASST && sudo npm install
Para ejecutar ASST, comando predeterminado:
$ sudo node /opt/lampp/htdocs/ASST/main.js
Video completo de cómo ejecutar ASST en MacOSX: https://youtu.be/IThRZEQVa7M
Usando un navegador web, abre este enlace: https://www.apachefriends.org/download.html y busca la sección "XAMPP for OSX", elige la versión de PHP que se adapte a tu proyecto y descárgala, si no sabes qué versión elegir, simplemente elige la primera.
Abre la carpeta Descargas y haz doble clic en el archivo xampp-osx-.dmg que descargaste. luego instala: Siguiente, Siguiente, Siguiente, Finalizar.
Después de la instalación, abre la carpeta Aplicaciones usando Finder y abre la carpeta XAMPP, haz clic en manager-osx.app para abrir el Panel de Control de XAMPP, haz clic en la pestaña Manage Servers y luego en Start All.
Coloca la carpeta de tu proyecto en htdocs:
Abre el navegador, escribe: localhost/phpmyadmin, crea una base de datos vacía, importa tu archivo project_database.sql, abre la carpeta de tu proyecto y cambia el archivo de configuración para conectarse a localhost de MySQL: las configuraciones predeterminadas son: host: "localhost" o "127.0.0.1", usuario: "root", contraseña: "" (cadena vacía), nombre de la base de datos: "nombrebd_que_elegiste_en_phpmyadmin"
Hay varias formas de descargar e instalar Node.js en MacOSX especificadas aquí: https://nodejs.org/en/download/package-manager/#macos
Nosotros usamos: brew (sistema de paquetes), abre Terminal:
$ sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo brew install node
Debes configurar una versión específica de Node.js para que ASST funcione sin problemas.
$ sudo npm install n -g
$ sudo n 12.13.0
No estamos siguiendo las actualizaciones de nodejs cada mes, así que si quieres probarlo por tu cuenta, puedes ignorar los últimos dos comandos de instalar "n" usando npm
Descarga y extrae el proyecto ASST desde esta página de github, usando un navegador o git, renombra la carpeta a "ASST" solamente, no "ASST-main", mueve la carpeta de ASST al lado de tu proyecto web para escanearlo, por defecto: "/Applications/XAMPP/htdocs/ASST"
Abre config.js dentro de la carpeta de ASST usando un editor de texto, coloca el nombre de la carpeta de tu proyecto web a escanear en la variable DEFAULT_PROJECT_PATH_TO_SCAN.
Abre config_php_lang.js dentro de la carpeta de ASST: si estás usando MySQL debes configurar las variables como se explica en el archivo, si no estás usando MySQL, simplemente establece la variable IS_DBMS_USED en false e ignora el resto, ten en cuenta que PHP_EXE_BIN_PATH está configurado en la ubicación predeterminada de XAMPP, así que cámbiala si usas un binario PHP diferente o una ubicación de XAMPP diferente.
Ejecuta este comando una vez para instalar los node_modules de este proyecto:
$ cd /Applications/XAMPP/htdocs/ASST && sudo npm install
Para ejecutar ASST, comando predeterminado:
$ sudo node /Applications/XAMPP/htdocs/ASST/main.js
Agradecimientos especiales a:
Por hacer posible este kit de herramientas brindando su orientación y ayuda.