検証用の .NET コンソールアプリを作成
dotnet new console --name src
cd src
dotnet build
cd ..
Program.cs を CodeQL 検証用コードに変更
using System.Text;
var values = "test";
var str = new StringBuilder('('); // BAD: Character value.
for (int i = 0; i < values.Length; ++i)
{
if (i > 0) str.Append(',');
str.Append(values[i]);
}
str.Append(')');
CodeQL をダウンロードして実行
curl -s -OL https://github.com/github/codeql-cli-binaries/releases/download/v2.12.5/codeql-osx64.zip
unzip -q codeql-osx64.zip
./codeql/codeql database create codeqldb --language=csharp --source-root=src
./codeql/codeql database analyze codeqldb --download codeql/csharp-queries --format=csv --output=codeql.csv
./codeql/codeql database analyze codeqldb --download 'codeql/csharp-queries:codeql-suites/csharp-security-and-quality.qls' --format=csv --output=codeql.csv
./codeql/codeql database analyze codeqldb --download 'codeql/csharp-queries:codeql-suites/csharp-security-and-quality.qls' --format=sarif-latest --output=codeql.sarif
VSCode に Sarif Viewer 拡張を入れて CodeQL の分析結果を表示

参考サイト
https://docs.github.com/ja/code-security/codeql-cli/using-the-codeql-cli/about-the-codeql-cli
https://codeql.github.com/codeql-query-help/csharp/cs-stringbuilder-initialized-with-character/
https://github.com/github/codeql/tree/main/csharp/ql/src/codeql-suites
タグ: .NET, CodeQL, VSCode