Herramienta de auditoría de seguridad de código abierto, multiplataforma y multipropósito
Nota: DevAudit utiliza la base de datos de OSS Index, la cual tiene ciertos límites de tasa. Si notas que estás alcanzando el límite, por favor abre un issue. Los usuarios autenticados tienen un límite más alto, y pronto implementaremos autenticación en DevAudit. La mayoría de los usuarios no autenticados probablemente no notarán el límite para muchos casos de uso. Normalmente solo se activa en proyectos mucho más grandes o con volúmenes elevados de paquetes.
Obtén la última versión desde la página de versiones.


DevAudit es una herramienta de auditoría de seguridad de código abierto, multiplataforma y multipropósito, dirigida a desarrolladores y equipos que adoptan DevOps y DevSecOps. Detecta vulnerabilidades de seguridad en múltiples niveles de la pila de soluciones. DevAudit ofrece una amplia gama de capacidades de auditoría que automatizan prácticas de seguridad e implementan la auditoría de seguridad en el ciclo de vida del desarrollo de software. DevAudit puede escanear su sistema operativo y las dependencias de paquetes de aplicaciones, las configuraciones de aplicaciones y servidores de aplicaciones, y el código de la aplicación, en busca de posibles vulnerabilidades basadas en datos agregados por proveedores como OSS Index y Vulners a partir de una amplia variedad de fuentes y feeds de datos como el feed de datos CVE de la Base Nacional de Vulnerabilidades (NVD), el feed de avisos de seguridad de Debian, los avisos de seguridad de Drupal y muchos otros.
DevAudit ayuda a los desarrolladores a abordar al menos 4 de los riesgos del OWASP Top 10 para el desarrollo de aplicaciones web:
así como riesgos clasificados por MITRE en el diccionario CWE como CWE-2 Entorno y CWE-200 Divulgación de información
A medida que el desarrollo avanza y sus capacidades maduran, DevAudit podrá abordar los otros riesgos de las listas OWASP Top 10 y CWE, como Inyección y XSS. Con el enfoque en aplicaciones web, en la nube y distribuidas multi-usuario, el desarrollo de software hoy en día es cada vez más complejo, con problemas de seguridad y vulnerabilidades potenciales que surgen en todos los niveles de la pila de la que dependen los desarrolladores para entregar aplicaciones. El objetivo de DevAudit es proporcionar una plataforma para automatizar la implementación de revisiones de seguridad y mejores prácticas en todos los niveles de la pila de soluciones, desde las dependencias de paquetes de bibliotecas hasta la configuración de aplicaciones y servidores y el código fuente.
Multiplataforma con imagen Docker también disponible. DevAudit se ejecuta en Windows y Linux, con soporte planeado para *BSD, Mac y ARM Linux. Solo se requiere una versión actualizada de .NET o Mono para ejecutar DevAudit. También se puede obtener una imagen Docker de DevAudit desde Docker Hub y ejecutarla sin necesidad de instalar Mono.
Interfaz CLI. DevAudit tiene una interfaz CLI con una opción para salida no interactiva y se puede integrar fácilmente en pipelines de compilación CI o como tareas de línea de comandos posteriores a la compilación en IDEs de desarrolladores. Ya se ha comenzado a trabajar en la integración de la biblioteca central de auditoría en GUIs de IDE con la extensión Audit.Net para Visual Studio.
Datos de vulnerabilidades actualizados continuamente. DevAudit utiliza proveedores de datos backend como OSS Index y Vulners que proporcionan datos de vulnerabilidades actualizados continuamente, recopilados de una amplia gama de fuentes y feeds de datos de seguridad, como los feeds CVE de NVD, los avisos de seguridad de Drupal, etc. Se agregará soporte para proveedores adicionales de vulnerabilidades y datos de paquetes como vFeed y Libraries.io.
Auditar dependencias de paquetes del sistema operativo y de desarrollo. DevAudit audita aplicaciones de Windows y paquetes instalados mediante MSI de Windows, Chocolatey y OneGet, así como paquetes de Debian, Ubuntu y CentOS Linux instalados mediante Dpkg, RPM y YUM, en busca de vulnerabilidades reportadas para versiones específicas de las aplicaciones y paquetes. Para dependencias de paquetes de desarrollo y bibliotecas, DevAudit audita dependencias de NuGet v2 para .NET, dependencias de Yarn/NPM y Bower para nodejs, y dependencias de paquetes de Composer para PHP. Se agrega soporte para otros gestores de paquetes de diferentes idiomas de forma regular.
Auditar configuraciones de servidores de aplicaciones. DevAudit audita la versión del servidor y la configuración del servidor para OpenSSH sshd, Apache httpd, MySQL/MariaDB, PostgreSQL y Nginx, con muchos más por venir. La auditoría de configuración se basa en la biblioteca Alpheus y se realiza mediante análisis sintáctico completo de los archivos de configuración del servidor. Las reglas de configuración del servidor se almacenan en archivos de texto YAML y se pueden personalizar según las necesidades de los desarrolladores. Se agrega soporte para muchos más servidores y aplicaciones, y tipos de análisis como la auditoría de bases de datos de forma regular.
Auditar configuraciones de aplicaciones. DevAudit audita aplicaciones ASP.NET de Microsoft y detecta vulnerabilidades presentes en la configuración de la aplicación. Las reglas de configuración de la aplicación se almacenan en archivos de texto YAML y se pueden personalizar según las necesidades de los desarrolladores. Próximamente se incluirá la auditoría de configuración de aplicaciones como Drupal, WordPress y DNN CMS.
Auditar código de aplicaciones mediante análisis estático. DevAudit actualmente admite análisis estático de bytecode .NET CIL. Los analizadores residen en archivos de script externos y se pueden personalizar completamente según las necesidades del desarrollador. Próximamente se incluirá soporte para análisis de código fuente de C# mediante Roslyn, código fuente de PHP7 y muchos más lenguajes y herramientas externas de análisis estático de código.
Auditoría remota sin agentes. DevAudit puede conectarse a hosts remotos a través de SSH con características de auditoría idénticas disponibles en entornos remotos y locales. Solo se requiere un inicio de sesión SSH válido para auditar hosts remotos, y DevAudit ejecutándose en Windows puede conectarse y auditar hosts Linux a través de SSH. En Windows, DevAudit también puede conectarse de forma remota y auditar otras máquinas Windows mediante WinRM.
Auditoría de contenedores Docker sin agentes. DevAudit puede auditar contenedores Docker en ejecución desde el host Docker con características idénticas disponibles en entornos de contenedores y locales.
Auditoría de repositorios de GitHub. DevAudit puede conectarse directamente a un repositorio de proyectos alojado en GitHub y realizar auditorías de fuente de paquetes y configuración de aplicaciones.
Soporte para PowerShell. DevAudit también se puede ejecutar dentro del entorno de administración del sistema PowerShell como cmdlets. El trabajo en el soporte de PowerShell está actualmente en pausa, pero se reanudará en un futuro cercano con soporte para PowerShell multiplataforma tanto en Windows como en Linux.
DevAudit es una aplicación .NET 4.6. Para instalarlo localmente en su máquina, necesitará el runtime de Microsoft .NET Framework 4.6 en Windows, o Mono 4.4+ en Linux. .NET 4.6 ya debería estar instalado en la mayoría de las versiones recientes de Windows; si no es así, está disponible como una característica de Windows que se puede activar o instalar desde el applet de Programas y Características del Panel de control en Windows de consumo, o desde la opción Agregar roles y características en Administrador del servidor en versiones de servidor de Windows. Para versiones anteriores de Windows, el instalador de .NET 4.6 de Microsoft se puede encontrar aquí.
En Linux, la versión mínima de Mono compatible es 4.4. Aunque DevAudit se ejecuta en Mono 4 (con un problema conocido), se recomienda instalar Mono 5. Mono 5 trae muchas mejoras en los componentes de compilación y tiempo de ejecución de Mono que benefician a DevAudit.
Los paquetes de Mono existentes proporcionados por su distribución probablemente aún no sean Mono 5, por lo que deberá instalar paquetes de Mono manualmente para poder usar Mono 5. Las instrucciones de instalación para los paquetes más recientes proporcionados por el proyecto Mono para varias distribuciones importantes de Linux están aquí. Se recomienda tener instalado el paquete mono-devel, ya que esto reducirá las posibilidades de que falten ensamblados.
Alternativamente, en Linux puede usar la imagen Docker de DevAudit si no desea instalar Mono y ya tiene Docker instalado en su máquina.
DevAudit se puede instalar mediante los siguientes métodos:
Requisitos previos: Mono 4.4+ (se recomienda Mono 5) y el paquete mono-devel que proporciona el compilador y otras herramientas necesarias para compilar aplicaciones Mono. Su distribución debería tener paquetes para al menos Mono versión 4.4 o superior; de lo contrario, las instrucciones de instalación manual para los paquetes más recientes proporcionados por el proyecto Mono para varias distribuciones importantes de Linux están aquí.
Clone el repositorio de DevAudit desde https://github.com/OSSIndex/DevAudit.git
Ejecute el script build.sh en el directorio raíz de DevAudit. DevAudit debería compilarse sin errores.
Ejecute ./devaudit --help y debería ver la versión de DevAudit y la pantalla de ayuda impresa.
Tenga en cuenta que NuGet en Linux puede salir ocasionalmente con Error: NameResolutionFailure, lo que parece ser un problema transitorio al contactar los servidores que contienen los paquetes NuGet. Simplemente ejecute ./build.sh nuevamente hasta que la compilación se complete normalmente.
Requisitos previos: Debe tener uno de los siguientes:
Clone el repositorio de DevAudit desde https://github.com/OSSIndex/DevAudit.git
Desde una línea de comandos de Visual Studio 2015 o .NET, ejecute el script build.cmd en el directorio raíz de DevAudit. DevAudit debería compilarse sin errores.
Ejecute ./devaudit --help y debería ver la versión de DevAudit y la pantalla de ayuda impresa.
Requisitos previos: Debe tener Mono 4.4+ en Linux o .NET 4.6 en Windows.
Descargue el último archivo de distribución para Windows o Linux desde la página de versiones del proyecto. Descomprima este archivo en un directorio.
Desde el directorio donde descomprimió el archivo de distribución, ejecute devaudit --help en Windows o ./devaudit --help en Linux. Debería ver la versión y la pantalla de ayuda impresa.
(Opcional) Agregue el directorio de instalación de DevAudit a su variable de entorno PATH
El instalador MSI para una versión se puede encontrar en la página de versiones de Github.
DevAudit también está disponible en Chocolatey.
choco install devauditDescargue la imagen de DevAudit desde Docker Hub: docker pull ossindex/devaudit. La imagen etiquetada como ossindex/devaudit:latest (que es la imagen predeterminada que se descarga) está construida a partir de la versión más reciente, mientras que ossindex/devaudit:unstable está construida en la rama master del código fuente y contiene las adiciones más recientes, aunque con menos pruebas.
Representa un grupo lógico de funciones de auditoría. DevAudit actualmente admite los siguientes objetivos de auditoría:
Representa un entorno lógico donde se ejecutan las auditorías contra los objetivos de auditoría. Los entornos de auditoría abstraen las operaciones de E/S y ejecución de comandos necesarias para una auditoría y permiten realizar funciones idénticas contra los objetivos de auditoría independientemente de la ubicación física o de red donde se encuentren los archivos y ejecutables del objetivo. Actualmente se admiten los siguientes entornos:
Son diferentes opciones que se pueden habilitar para la auditoría. Puede especificar opciones que se apliquen al programa DevAudit, por ejemplo, para ejecutar en modo no interactivo, así como opciones que se apliquen al objetivo, por ejemplo, si establece la opción AppDevMode para auditar aplicaciones ASP.NET en true, ciertas reglas de auditoría no se habilitarán.
La CLI es la interfaz principal del programa DevAudit y es adecuada tanto para uso interactivo como no interactivo en tareas programadas, scripts de shell, pipelines de compilación CI y tareas posteriores a la compilación en IDEs de desarrolladores. La sintaxis básica de la CLI de DevAudit es:
devaudit TARGET [ENVIRONMENT] | [OPTIONS]
donde TARGET especifica el objetivo de auditoría, ENVIRONMENT especifica el entorno de auditoría y OPTIONS especifica las opciones para el objetivo y entorno de auditoría. Hay 2 formas de especificar opciones: las opciones del programa y las opciones generales de auditoría que se aplican a más de un objetivo se pueden especificar directamente en la línea de comandos como parámetros. Las opciones específicas del objetivo se pueden especificar con la opción -o utilizando el formato: -o OPCION1=VALOR1,OPCION2=VALOR2,.... con comas delimitando cada par clave-valor de opción.
Si está redirigiendo la salida del programa a un archivo, debe usar siempre la opción -n --non-interactive para deshabilitar cualquier función interactiva de la interfaz de usuario y animaciones.
Al especificar rutas de archivo, un prefijo @ antes de una ruta indica a DevAudit que esta ruta es relativa al directorio raíz del objetivo de auditoría. Por ejemplo, si especifica:
-r c:\myproject -b @bin\Debug\app2.exe
DevAudit considera la ruta al archivo binario como c:\myproject\bin\Debug\app2.exe.
msi Realiza una auditoría de paquetes de la fuente de paquetes MSI de Windows Installer en máquinas Windows.
npm Realiza una auditoría de paquetes del archivo package.json de NPM.
choco Realiza una auditoría de paquetes instalados por el gestor de paquetes Choco.
oneget Realiza una auditoría de paquetes de la fuente de paquetes OneGet del sistema en Windows.
nuget Realiza una auditoría de paquetes de una fuente de paquetes NuGet v2. Debe especificar la ubicación del archivo packages.config de NuGet que desea auditar usando la opción -f o --file; de lo contrario, se buscará este archivo en el directorio actual.
bower Realiza una auditoría de paquetes de una fuente de paquetes Bower. Debe especificar la ubicación del archivo packages.json de Bower que desea auditar usando la opción -f o --file; de lo contrario, se buscará este archivo en el directorio actual.- composer Realizar una auditoría de paquetes de una fuente de paquetes Composer. Debes especificar la ubicación del archivo composer.json de Composer que deseas auditar usando la opción -f o --file; de lo contrario, se buscará este archivo en el directorio actual.
dpkg Realizar una auditoría de paquetes de la fuente de paquetes dpkg del sistema en Debian Linux y derivados.
rpm Realizar una auditoría de paquetes de la fuente de paquetes RPM del sistema en RedHat Linux y derivados.
yum Realizar una auditoría de paquetes de la fuente de paquetes Yum del sistema en RedHat Linux y derivados.
Para cada fuente de paquetes se pueden usar las siguientes opciones de auditoría generales:
-f --file Especifica la ubicación del archivo de configuración del gestor de paquetes si es necesario. Las fuentes de paquetes NuGet, Bower y Composer requieren esta opción.
--list-packages Solo lista los paquetes en la fuente de paquetes escaneados por DevAudit.
--list-artifacts Solo lista los artefactos encontrados en OSS Index para los paquetes escaneados por DevAudit.
Las fuentes de paquetes etiquetadas como [Experimental] solo están disponibles en la rama master del código fuente y pueden tener soporte limitado del backend de OSS Index. Sin embargo, siempre puedes listar los paquetes escaneados y los artefactos disponibles en OSS Index usando las opciones list-packages y list-artifacts.
aspnet Realizar una auditoría de aplicación en una aplicación ASP.NET. Las opciones relevantes son:
-r --root-directory Especifica el directorio raíz de la aplicación. Este es simplemente el directorio de nivel superior de la aplicación que contiene archivos como Global.asax y Web.config.-b --application-binary Especifica el binario de la aplicación. Este es el ensamblado .NET que contiene el bytecode .NET de la aplicación. Este archivo suele ser un .DLL y se encuentra en la subcarpeta bin del directorio raíz de la aplicación ASP.NET.--config-file o -o AppConfig=configuration-file Especifica el archivo de configuración de la aplicación ASP.NET. Este archivo suele llamarse Web.config y se encuentra en el directorio raíz de la aplicación. Puedes sobrescribir el valor predeterminado @Web.config con esta opción.-o AppDevMode=enabled Especifica que el modo de desarrollo de la aplicación debe estar habilitado para la auditoría. Este modo se puede usar al auditar una aplicación que está en desarrollo. Ciertas reglas de configuración etiquetadas como deshabilitadas para AppDevMode (por ejemplo, ejecutar la aplicación en modo de depuración ASP.NET) no se habilitarán durante la auditoría.netfx Realizar una auditoría de aplicación en una aplicación .NET. Las opciones relevantes son:
-r --root-directory Especifica el directorio raíz de la aplicación. Este es simplemente el directorio de nivel superior de la aplicación que contiene archivos como App.config.-b --application-binary Especifica el binario de la aplicación. Este es el ensamblado .NET que contiene el bytecode .NET de la aplicación. Este archivo suele ser un .DLL y se encuentra en la subcarpeta bin del directorio raíz de la aplicación ASP.NET.--config-file o -o AppConfig=configuration-file Especifica el archivo de configuración de la aplicación .NET. Este archivo suele llamarse App.config y se encuentra en el directorio raíz de la aplicación. Puedes sobrescribir el valor predeterminado @App.config con esta opción.-o GendarmeRules=RuleLibrary Especifica que el analizador estático Gendarme debe habilitarse para la auditoría con reglas de la biblioteca de reglas especificada. Por ejemplo:
devaudit netfx -r /home/allisterb/vbot-debian/vbot.core -b @bin/Debug/vbot.core.dll --skip-packages-audit -o GendarmeRules=Gendarme.Rules.Naming
ejecutará el analizador estático Gendarme en el ensamblado vbot.core.dll usando reglas de la biblioteca Gendarme.Rules.Naming. La lista completa de bibliotecas de reglas es (tomada de la wiki de Gendarme):drupal7 Realizar una auditoría de aplicación en una aplicación Drupal 7.
-r --root-directory Especifica el directorio raíz de la aplicación. Este es simplemente el directorio de nivel superior de tu instalación de Drupal 7.drupal8 Realizar una auditoría de aplicación en una aplicación Drupal 8.
-r --root-directory Especifica el directorio raíz de la aplicación. Este es simplemente el directorio de nivel superior de tu instalación de Drupal 8.Todas las aplicaciones también admiten las siguientes opciones comunes para auditar los módulos o plugins de la aplicación:
--list-packages Solo lista los plugins o módulos de la aplicación escaneados por DevAudit.
--list-artifacts Solo lista los artefactos encontrados en OSS Index para los plugins y módulos de la aplicación escaneados por DevAudit.
--skip-packages-audit Solo realiza una auditoría de configuración o análisis de código de la aplicación y omite la auditoría de paquetes.
sshd Realizar una auditoría de servidor de aplicaciones en un servidor compatible con OpenSSH sshd.
httpd Realizar una auditoría de servidor de aplicaciones en un servidor compatible con Apache httpd.
mysql Realizar una auditoría de servidor de aplicaciones en un servidor compatible con MySQL (como MariaDB u Oracle MySQL).
nginx Realizar una auditoría de servidor de aplicaciones en un servidor Nginx.
pgsql Realizar una auditoría de servidor de aplicaciones en un servidor PostgreSQL.
Este es un ejemplo de línea de comandos para una auditoría de servidor de aplicaciones:
./devaudit httpd -i httpd-2.2 -r /usr/local/apache2/ --config-file @conf/httpd.conf -b @bin/httpd
que audita un servidor Apache Httpd ejecutándose en un contenedor Docker llamado httpd-2.2.
Las siguientes son opciones de auditoría comunes a todos los servidores de aplicaciones:
-r --root-directory Especifica el directorio raíz del servidor. Este es simplemente el nivel superior del sistema de archivos de tu servidor y por defecto es / a menos que desees una raíz de servidor diferente.--config-file Especifica el archivo de configuración del servidor. Por ejemplo, en la auditoría anterior, el archivo de configuración de Apache se encuentra en /usr/local/apache2/conf/httpd.conf. Si no especificas el archivo de configuración, DevAudit intentará detectar automáticamente el archivo de configuración del servidor seleccionado.-b --application-binary Especifica el binario del servidor. Por ejemplo, en la auditoría anterior, el binario de Apache se encuentra en /usr/local/apache2/bin/httpd. Si no especificas la ruta del binario, DevAudit intentará detectar automáticamente el binario del servidor para el servidor seleccionado.Los servidores de aplicaciones también admiten las siguientes opciones comunes para auditar los módulos o plugins del servidor:
--list-packages Solo lista los plugins o módulos de la aplicación escaneados por DevAudit.
--list-artifacts Solo lista los artefactos encontrados en OSS Index para los plugins y módulos de la aplicación escaneados por DevAudit.
--skip-packages-audit Solo realiza una auditoría de configuración del servidor y omite la auditoría de paquetes.
Actualmente hay 5 entornos de auditoría compatibles: local, hosts remotos a través de SSH, hosts remotos a través de WinRM, contenedores Docker y GitHub. Los entornos locales se usan por defecto cuando no se especifican otras opciones de entorno.
El entorno SSH permite realizar auditorías en cualquier host remoto accesible a través de SSH sin necesidad de instalar DevAudit en el host remoto. Los entornos SSH son multiplataforma: puedes conectarte a un host remoto Linux desde una máquina Windows que ejecute DevAudit. Un entorno SSH se crea con las siguientes opciones: -s SERVER [--ssh-port PORT] -u USER [-k KEYFILE] [-p | --password-text PASSWORD]
-s SERVER Especifica el host remoto o IP al que conectarse a través de SSH.
-u USER Especifica el usuario con el que iniciar sesión en el servidor.
--ssh-port PORT Especifica el puerto en el host remoto al que conectarse. El valor predeterminado es 22.
-k KEYFILE Especifica el archivo de clave privada compatible con OpenSSH que se usará para conectarse al servidor remoto. Actualmente solo se admiten claves RSA o DSA en archivos en formato PEM.
-p Proporciona un aviso con eco local deshabilitado para la entrada interactiva de la contraseña del servidor o la frase de contraseña del archivo de clave.
--password-text PASSWORD Especifica la contraseña de usuario o la frase de contraseña del archivo de clave como texto plano en la línea de comandos. Ten en cuenta que en Linux, cuando tu contraseña contiene caracteres especiales, debes encerrar el texto en la línea de comandos usando comillas simples como 'MyPa<ss' para evitar que el shell interprete los caracteres especiales.
El entorno WinRM permite realizar auditorías en cualquier host remoto Windows accesible a través de WinRM sin necesidad de instalar DevAudit en el host remoto. Los entornos WinRM actualmente solo están disponibles en máquinas Windows que ejecutan DevAudit. Un entorno WinRM se crea con las siguientes opciones: -w IP -u USER [-p | --password-text PASSWORD]
-w IP Especifica la IP remota a la que conectarse a través de WinRM.
-u USER Especifica el usuario con el que iniciar sesión en el servidor.
-p Proporciona un aviso con eco local deshabilitado para la entrada interactiva de la contraseña del servidor o la frase de contraseña del archivo de clave.
--password-text PASSWORD Especifica la contraseña del servidor o la frase de contraseña del archivo de clave como texto plano en la línea de comandos.
Esta sección explica cómo auditar imágenes Docker usando DevAudit instalado en la máquina local. Para ejecutar DevAudit como una aplicación Docker contenerizada, consulta la sección siguiente sobre Uso de Docker.
Un entorno de auditoría Docker se especifica con la siguiente opción: -i CONTAINER_NAME | -i CONTAINER_ID
CONTAINER_(NAME|ID) Especifica el nombre o id de un contenedor Docker en ejecución al que conectarse. El contenedor ya debe estar en ejecución, ya que DevAudit no sabe cómo iniciar el contenedor con el nombre o el estado que requieras.
El entorno de auditoría GitHub permite realizar auditorías directamente en un repositorio de proyectos de GitHub. Un entorno GitHub se crea con la opción -g: -g "Owner=OWNER,Name=NAME,Branch=BRANCH"
OWNER Especifica el propietario del proyecto
NAME Especifica el nombre del proyecto
PATH Especifica la rama del proyecto a la que conectarse
Puedes usar las opciones -r, --config-file y -f como de costumbre para especificar la ruta a los archivos y directorios del sistema de archivos necesarios para la auditoría. Por ejemplo, el siguiente comando:
devaudit aspnet -g "Owner=Dnnsoftware,Name=Dnn.Platforn,Branch=Release/9.0.2" -r /Website --config-file @web.config
realizará una auditoría ASP.NET en este repositorio https://github.com/dnnsoftware/Dnn.Platform/ usando la carpeta fuente /Website como directorio raíz y el archivo web.config como archivo de configuración ASP.NET. Ten en cuenta que los nombres de archivo distinguen entre mayúsculas y minúsculas en la mayoría de los entornos.

-n --non-interactive Ejecuta DevAudit en modo no interactivo con todas las funciones interactivas y animaciones de la CLI deshabilitadas. Este modo es necesario para ejecutar DevAudit en scripts de shell, por ejemplo; de lo contrario, se producirán errores cuando DevAudit intente usar funciones interactivas de la consola.
-d --debug Ejecuta DevAudit en modo de depuración. Esto imprimirá una variedad de mensajes informativos y de diagnóstico. Este modo se utiliza para solucionar errores y fallos de DevAudit.
DevAudit también se distribuye como una aplicación Docker contenerizada, lo que permite a los usuarios en Linux ejecutar DevAudit sin necesidad de instalar Mono y compilar desde el código fuente. Para extraer la imagen Docker de DevAudit desde Docker Hub:
docker pull ossindex/devaudit[:label]
Las imágenes actuales tienen aproximadamente 131 MB comprimidas. Por defecto, se extrae la imagen etiquetada como latest, que es la versión más reciente del programa. También está disponible una imagen unstable que sigue la rama master del código fuente. Para ejecutar DevAudit como una aplicación contenerizada:
docker run -i -t ossindex/devaudit TARGET [ENVIRONMENT] | [OPTIONS]
Las opciones Docker -i y -t son necesarias para ejecutar DevAudit de forma interactiva. Si no especificas estas opciones, entonces debes ejecutar DevAudit en modo no interactivo usando la opción -n de DevAudit.
Debes montar cualquier directorio en la máquina host Docker al que DevAudit necesite acceder en el contenedor Docker de DevAudit usando la opción -v de Docker. Si montas tu directorio raíz local en un punto de montaje llamado /hostroot en la imagen Docker, entonces DevAudit puede acceder a archivos y directorios en tu máquina local usando las mismas rutas locales. Por ejemplo:
docker run -i -t -v /:/hostroot:ro ossindex/devaudit netfx -r /home/allisterb/vbot-debian/vbot.core
permitirá que el contenedor Docker de DevAudit audite el directorio local /home/allisterb/vbot-debian/vbot.core. Debes montar tu raíz local de esta manera para auditar otros contenedores Docker desde el contenedor DevAudit, por ejemplo:
docker run -i -t -v /:/hostroot:ro ossindex/devaudit mysql -i myapp1 -r / --config-file /etc/my.cnf --skip-packages-audit
ejecutará una auditoría MySQL en un contenedor Docker llamado myapp1 desde el contenedor ossindex/devaudit.
Si no necesitas montar todo tu directorio raíz, entonces puedes montar solo el directorio necesario para la auditoría. Por ejemplo:
docker run -i -t -v /home/allisterb/vbot-debian/vbot.core:/vbot:ro ossindex/devaudit netfx -r /vbot -b @bin/Debug/vbot.core.dll
montará en modo solo lectura el directorio /home/allisterb/vbot-debian/vbot.core como /vbot en el contenedor DevAudit, lo que permite a DevAudit acceder a él como el directorio raíz de auditoría para una auditoría de aplicación netfx en /vbot.
Si deseas usar archivos de clave privada en el host Docker local para una auditoría a través de SSH, puedes montar tu directorio que contiene el archivo de clave necesario y luego indicarle a DevAudit que use esa ruta de archivo, por ejemplo:
docker -i -t -v /home/allisterb/.ssh:/ssh:ro run ossindex/devaudit dpkg -s localhost -u allisterb -p -k /ssh/mykey.key
montará el directorio que contiene los archivos de clave en /ssh y permitirá que el contenedor DevAudit los use.
Ten en cuenta que actualmente no es posible que el contenedor Docker audite fuentes de paquetes del sistema operativo como dpkg o rpm, o servidores de aplicaciones como OpenSSH sshd en el host Docker local sin montar tu directorio raíz local en /hostroot como se describió anteriormente. DevAudit debe hacer chroot en tu directorio raíz local desde el contenedor Docker al ejecutar ejecutables como dpkg o binarios de servidor como sshd y httpd. También debes montar tu raíz local como se describió anteriormente para auditar otros contenedores Docker desde el contenedor DevAudit, ya que DevAudit también necesita hacer chroot en tu raíz local para ejecutar comandos Docker locales y comunicarse con tus otros contenedores.
Para ejecutar auditorías a través de SSH desde el contenedor DevAudit, no es necesario montar la raíz local en /hostroot.
Si encuentras un error u otro problema con DevAudit, hay un par de cosas que puedes habilitar para ayudarnos a resolverlo:
-n --non-interactive al canalizar o redirigir la salida del programa a un archivo; de lo contrario, se producirá un bloqueo. Este comportamiento puede cambiarse en el futuro para que el modo no interactivo sea el predeterminado.