Instalando CodeQL
Aí pra galera que nunca usou o CodeQL CLI, configurei e testei dessa forma na minha máquina.
Baixe a release do bundle do CodeQL CLI em https://github.com/github/codeql-action/releases.
Descompacte a pasta; ela deve conter um binário chamado “codeql”.
Adicione o binário ao seu PATH. No Linux, adicione a seguinte linha ao ~/.bashrc:
export PATH="$HOME/codeql:$PATH"Em seguida, execute:
source ~/.bashrcTeste o binário com o seguinte comando:
codeql --versionPara validar a resolução de pacotes, execute:
codeql resolve packsAtenção: é importante saber exatamente onde está instalado o seu CodeQL e onde ficam os seus query packs. Isso facilita quando for necessário adicionar novas queries feitas manualmente.
Instale a extensão SARIF Viewer no VS Code: https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer Crie e acesse um diretório para os testes:
mkdir test_codeql && cd test_codeqlSalve o código abaixo como “app.py”.
import requests
from flask import Flask, request
app = Flask(__name__)
@app.route('/fetch', methods=['GET'])
def fetch():
url = request.args.get('url')
if not url:
return "Missing URL parameter", 400
try:
response = requests.get(url)
return response.text
except requests.exceptions.RequestException as e:
return str(e), 500
if __name__ == '__main__':
app.run(debug=True)Opcional (recomendado): baixe o pacote de queries oficial da linguagem.
codeql pack download codeql/python-queriesCrie um banco de dados com o CodeQL para Python com o nome “appdb” executando o comando:
codeql database create appdb --language=python --source-root=.Em seguida, analise o código com o comando:
codeql database analyze appdb codeql/python-queries:codeql-suites/python-code-scanning.qls --format=sarif-latest --output=output.sarifNo VS Code, acesse a pasta test_codeql e clique no arquivo output.sarif. A extensão SARIF Viewer deve exibir uma aba com as labels “Locations” e “Rules”, que informam sobre as falhas encontradas.