
Encontre os bugs de segurança de autenticação (authn) e autorização (AUTHZ) nas rotas de aplicativos da web:
Rotas do servidor de streaming koel
Web Application HTTP Route Authn e Authz Bugs são alguns dos problemas de segurança mais comuns encontrados hoje. Esses recursos padrão da indústria destacam a gravidade da questão:
Estruturas da Web suportadas (IDs route-detect entre parênteses):
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 )* O suporte aos trilhos é limitado. Consulte este problema para obter mais informações.
Use pip para instalar route-detect :
$ python -m pip install --upgrade route-detect
Você pode verificar se a route-detect é instalada corretamente com o seguinte 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 fornece o comando CLI routes e usa semgrep para pesquisar rotas.
Use o which subcomando para apontar semgrep nas regras corretas do aplicativo da web:
$ semgrep --config $(routes which django) path/to/django/code
Use o Subcomando viz para visualizar informações de rota em seu navegador:
$ semgrep --json --config $(routes which django) --output routes.json path/to/django/code
$ routes viz --browser routes.json
Se você não tem certeza de qual estrutura procurar, pode usar o ID all para verificar tudo:
$ semgrep --json --config $(routes which all) --output routes.json path/to/code
Se você possui lógica Authn ou Authz personalizada, pode copiar as regras da route-detect :
$ cp $(routes which django) my-django.yml
Então você pode modificar a regra conforme necessário e executá -la como acima:
$ semgrep --json --config my-django.yml --output routes.json path/to/django/code
$ routes viz --browser routes.json
route-detect usa poetry para gerenciamento de dependência e configuração.
Antes de prosseguir, instale as dependências do projeto com o seguinte comando:
$ poetry install --with dev
Todos os arquivos de projeto com o seguinte comando:
$ poetry run pre-commit run --all-files
Execute os testes do Python com o seguinte comando:
$ poetry run pytest --cov
Execute os testes de regra do sêmep com o seguinte comando:
$ poetry run semgrep --test --config routes/rules/ tests/test_rules/