
Buscar errores de seguridad de autenticación (Authn) y autorización (AuthZ) en rutas de aplicaciones web:
Rutas del servidor de transmisión de koel
Aplicación web HTTP Route Authn y Authz Bugs son algunos de los problemas de seguridad más comunes que se encuentran en la actualidad. Estos recursos estándar de la industria destacan la gravedad del problema:
Marcos web compatibles (ID route-detect entre paréntesis):
django , django-rest-framework ), Flask ( flask ), SANIC ( sanic ), FASTAPI ( fastapi )laravel ), Symfony ( symfony ), CakePhp ( cakephp )rails ), uva ( grape )jax-rs ), primavera ( spring )gorilla ), Gin ( gin ), Chi ( chi )express ), React ( react ), Angular ( angular )* El soporte de Rails es limitado. Consulte este problema para obtener más información.
Use pip para instalar route-detect :
$ python -m pip install --upgrade route-detect
Puede verificar que route-detect se instale 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.
route-detect proporciona el comando routes CLI y usa semgrep para buscar rutas.
Use which subcomando para señalar semgrep en las reglas de aplicación web correctas:
$ semgrep --config $(routes which django) path/to/django/code
Use el subcomando viz para visualizar la 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 usar la identificación especial all para verificar todo:
$ semgrep --json --config $(routes which all) --output routes.json path/to/code
Si tiene una lógica personalizada Authn o AuthZ, puede copiar las reglas de route-detect :
$ cp $(routes which django) my-django.yml
Luego puede modificar la regla según sea necesario y ejecutarla como arriba:
$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json
route-detect utiliza poetry para la gestión de dependencia y configuración.
Antes de continuar, instale dependencias del proyecto con el siguiente comando:
$ poetry install --with dev
Piel todos los archivos de proyecto con el siguiente comando:
$ poetry run pre-commit run --all-files
Ejecute pruebas de Python con el siguiente comando:
$ poetry run pytest --cov
Ejecute pruebas de regla SEMGREP con el siguiente comando:
$ poetry run semgrep --test --config routes/rules/ tests/test_rules/