Route Detect: Encuentra errores de seguridad de autenticación (Authn) y autorización (Authz)

Los errores de autenticación y autenticación de rutas HTTP de aplicaciones web son algunos de los problemas de seguridad más comunes que se encuentran en la actualidad. Estos recursos estándar de la industria resaltan la gravedad del problema:

Frameworks web compatibles (route-detect ID entre paréntesis):

  • Python: Django ( django, django-rest-framework), matraz ( flask), Sanic ( sanic)
  • PHP: Laravel ( laravel), Symfony ( symfony), CakePHP ( cakephp)
  • Rubí: Rieles* ( rails), Uva ( grape)
  • Java: JAX-RS ( jax-rs), primavera ( spring)
  • Ir: Gorila ( gorilla), Ginebra ( gin), Chi ( chi)
  • JavaScript/TypeScript: Expreso ( express), Reaccionar ( react), Angular ( angular)

El soporte de rieles es limitado. Consulte este problema para obtener más información.

👉 ¿Qué Encontrarás Aquí? ❤️ Índice del Contenido

Instalación

Utilice pippara instalar route-detect:

$ python -m pip install --upgrade route-detect

Puedes comprobar que route-detectestá instalado correctamente con el siguiente comando:

$ echo 'print(1 == 1)' | semgrep --config $(routes which test-route-detect) -
Scanning 1 file.

Findings:

  /tmp/stdin
     routes.rules.test-route-detect
        Found '1 == 1', your route-detect installation is working correctly

          1┆ print(1 == 1)


Ran 1 rule on 1 file: 1 finding.

Usando

route-detectproporciona el routescomando CLI y lo utiliza semgreppara buscar rutas.

Utilice el whichsubcomando para señalar semgreplas reglas correctas de la aplicación web:

$ semgrep --config $(routes which django) path/to/django/code

Utilice el vizsubcomando para visualizar información de ruta en su navegador:

$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code
$ routes viz --browser routes.json

Si no está seguro de qué marco buscar, puede utilizar el allID especial para comprobarlo todo:

$ semgrep --json --config $(routes which all) --output routes.json path/to/code

Si tiene una lógica de autenticación o autenticación personalizada, puede copiar route-detectlas reglas de :

$ cp $(routes which django) my-django.yml

Luego puede modificar la regla según sea necesario y ejecutarla como se muestra arriba:

$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json

Contribuyendo

route-detectusos poetry para la gestión de dependencias y configuración.

Antes de continuar, instale las dependencias del proyecto con el siguiente comando:

$ poetry install --with dev

Enlaces

Lint todos los archivos del proyecto con el siguiente comando:

$ poetry run pre-commit run --all-files

Pruebas

Ejecute pruebas de Python con el siguiente comando:

$ poetry run pytest --cov

Ejecute pruebas de reglas de Semgrep con el siguiente comando:

$ poetry run semgrep --test --config routes/rules/ tests/test_rules/

Descargar Ruta-Detectar

📌 Más Artículos Relacionados


Descubre más desde CIBERNINJAS

Suscríbete y recibe las últimas entradas en tu correo electrónico.