diff --git a/network-services-pentesting/pentesting-web/code-review-tools.md b/network-services-pentesting/pentesting-web/code-review-tools.md index a8e050c2d..a9890b0ea 100644 --- a/network-services-pentesting/pentesting-web/code-review-tools.md +++ b/network-services-pentesting/pentesting-web/code-review-tools.md @@ -107,7 +107,7 @@ También puedes usar la [**extensión de Snyk para VSCode**](https://marketplace Existe una **versión gratuita instalable**. -#### Instalar +#### Instalación ```bash brew install codeql # Check it's correctly installed @@ -145,30 +145,35 @@ codeql resolve qlpacks ## You need to export a GITHUB_TOKEN (codeql will detect languages automatically) export GITHUB_TOKEN=ghp_32849y23hij4... codeql database create --db-cluster --source-root -## Or to indicate the languages yourself (https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create) +## Or to indicate the languages yourself codeql database create --language= --source-root ## For example export GITHUB_TOKEN=ghp_32849y23hij4... -codeql database create /tmp/codeql_db --db-cluster --source-root /path/to/repo # Generate the folder /tmp/codeql_db +codeql database create /tmp/codeql_db --db-cluster --source-root /path/to/repo # This will generate the folder /tmp/codeql_db # Analyze the code -codeql database analyze --format= --output= --download -## Example -codeql database analyze /tmp/codeql_db --download --format=csv --output=/tmp/graphql_results.csv +codeql database analyze --format= --output= +# If you used --db-cluster a different db was created per language, you need to indicate it. In this example I analyze the javascript folder. +codeql database analyze /tmp/codeql_db/javascript --format=csv --output=/tmp/graphql_results.csv + +# Get sarif format +codeql database analyze /tmp/codeql_db/javascript --format=sarif-latest --output=/tmp/graphql_results.sarif + +# You can visualize the findings in https://microsoft.github.io/sarif-web-component/ ``` {% endcode %} -También puedes usar la [**extensión de VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) para obtener los hallazgos dentro de VSCode. +También puedes usar la [**extensión de VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) para obtener los hallazgos dentro de VSCode. Aún necesitarás crear una base de datos manualmente, pero luego puedes seleccionar cualquier archivo y hacer clic en `Click derecho` -> `CodeQL: Ejecutar consultas en archivos seleccionados` ### [Insider](https://github.com/insidersec/insider) -Es **Open Source**, pero parece **desatendido**. +Es **Open Source**, pero parece **no estar mantenido**. -#### Lenguajes Soportados +#### Lenguajes compatibles Java (Maven y Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C# y Javascript (Node.js). -#### Inicio Rápido +#### Inicio rápido ```bash # Check the correct release for your environment $ wget https://github.com/insidersec/insider/releases/download/2.1.0/insider_2.1.0_linux_x86_64.tar.gz @@ -244,17 +249,17 @@ Java es un lenguaje de programación de alto nivel y orientado a objetos ampliam La revisión de código es una técnica importante en el proceso de pentesting de aplicaciones web escritas en Java. Permite identificar vulnerabilidades y errores en el código fuente que podrían ser explotados por un atacante. -Existen varias herramientas de revisión de código en Java que pueden ayudar en este proceso. Algunas de las más populares son: +Existen varias herramientas de revisión de código en Java que pueden ayudar en este proceso. Estas herramientas analizan el código fuente en busca de posibles problemas de seguridad, como vulnerabilidades de inyección de SQL, XSS (Cross-Site Scripting) y CSRF (Cross-Site Request Forgery), entre otros. -- **FindBugs**: una herramienta de análisis estático que busca errores comunes en el código Java, como el uso incorrecto de variables o la falta de validación de entradas. +Algunas de las herramientas populares de revisión de código en Java son: -- **Checkstyle**: una herramienta que verifica si el código Java cumple con las convenciones de estilo definidas, como la indentación correcta y el uso adecuado de nombres de variables. +- FindBugs: una herramienta de análisis estático que busca errores de programación y posibles problemas de seguridad en el código fuente. +- PMD: una herramienta de análisis estático que busca patrones de código sospechosos y posibles problemas de seguridad. +- Checkstyle: una herramienta que verifica si el código fuente cumple con las convenciones de codificación y las reglas de estilo definidas. -- **PMD**: una herramienta que busca problemas potenciales en el código Java, como variables no utilizadas o métodos demasiado complejos. +Estas herramientas pueden ser utilizadas durante el proceso de desarrollo para identificar y corregir posibles problemas de seguridad en el código fuente. También se pueden utilizar durante una auditoría de seguridad para evaluar la seguridad de una aplicación web escrita en Java. -- **SonarQube**: una plataforma de análisis de código que proporciona una amplia gama de reglas y métricas para evaluar la calidad del código Java. - -Estas herramientas pueden ayudar a los pentesters a identificar posibles vulnerabilidades y mejorar la calidad del código Java en el proceso de pentesting de aplicaciones web. Es importante utilizar una combinación de estas herramientas para obtener una cobertura completa y garantizar la seguridad de la aplicación. +Es importante tener en cuenta que la revisión de código es solo una parte del proceso de pentesting y no garantiza la ausencia de vulnerabilidades en una aplicación. Es recomendable combinar la revisión de código con otras técnicas de pentesting, como pruebas de penetración y análisis de vulnerabilidades, para obtener una evaluación completa de la seguridad de una aplicación web. ```bash # JD-Gui https://github.com/java-decompiler/jd-gui