CodeQL CLI を .NET C# で試してみた

検証用の .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

タグ: , ,