...
サポート対象フレームワークとして、.NET5が新規追加されました。
※ .NET 6 対応版も提供可能です。
C# 9 のサポートを開始
C# 9 で書かれたコードを解析できるようになりました。
...
Windows 7(64bit) はサポート対象外になりました。
VisualStudio Visual Studio のサポート
以下のバージョンは非推奨となりました。将来のバージョンで削除される予定です。
Visual Studio 2012
Visual Studio 2013
サポート対象から削除されたプラットフォーム
32 ビット版の OS はサポートされなくなりました。
静的解析の拡張
現在のブランチで変更されたコードをターゲットとする新しいスコープ オプション
現在の作業ブランチで変更されたファイルだけに解析範囲を制限するファイル フィルターを作成できるオプションが追加されました。
これにより、メインの開発ストリームにコードをマージする前に、最近のコードの変更で入り込んだバグを検出し、修正する作業に集中できるようになります。
さらに、ローカルで変更されたファイルだけに範囲を狭め、変更したコードをソース管理システムにチェックインする前に解析することもできます。
詳細は Parasoftユーザーガイドの「ソース管理データに基づくファイル フィルターの定義」および「カスタム テスト コンフィギュレーションの作成」を参照してください。
コード解析ベースラインを定義する新しいレポート参照オプション
...
Parasoft EULA への同意
dotTEST または dotTEST Plugin のインストール時、インストール ウィザードによって Parasoft エンド ユーザー ライセンス契約 (EULA) の条項への同意を求められます。
Extension for Visual Studio Code の拡張
Extension for Visual Studio Code の機能が拡張されました。Azure DevOps リポジトリから解析結果をインポートできるようになりました。
詳細についてはVisual Studio Code Marketplace を参照してください。
GitHub連携の拡張
GitHub ActionsにdotTEST実行のためのActionが追加されました。これにより、GitHub ActionsからdotTESTの実行が可能になります。
また、SARIFフォーマットでのレポート生成が可能となったため、dotTESTで解析を実行し、GitHub上で解析結果を確認できます。
詳細については こちらを参照してください。
Azure DevOps との連携
Azure DevOpsに拡張機能としてdotTEST Extension for Azure DevOpsが追加され、dotTESTとAzurePipelinesの連携が可能になりました。
dotTESTの解析を実行することで、Azure DevOps固有のSARIFフォーマットでのレポートを生成し、Azure Pipelines上で解析結果を確認できます。
詳細についてはこちらを参照してください。
GitLab との連携
GitLab ワークフローでdotTEST の解析を実行して SAST フォーマットで解析レポートを生成が可能になりました。
dotTEST からレポートされた結果をコードの脆弱性として GitLab で参照できます。
詳細については こちらを参照してください。
Roslyn Analyzerルールのサポートを開始
Visual Studioのソースコード解析機能であるRoslyn AnalyzerのルールをdotTESTから実行し、dotTEST上で解析結果を確認できます。
新規及び更新されたテストコンフィギュレーション
次のテストコンフィギュレーションが追加されました。
CWE 4.5
CWE Top 25 2021
CWE Top 25 + On the Cusp 2021
OWASP API Security Top 10-2019
OWASP Top 10-2021
DISA-ASD-STIG
Roslyn .NET Analyzers Default Rules
削除されたテスト コンフィギュレーション
古くなった CWE コンプライアンス用テスト コンフィギュレーションが削除されました。
CWE 4.2
CWE 4.4
CWE Top 25 2020
CWE Top 25 + On the Cusp 2020OWASP Top 10-2021
セキュリティ コンプライアンス パックの拡張
CWE および OWASP Top 10 の最新版のサポートが追加されました。
...
以下のルールが更新されました。
ルールID | ルールヘッダー |
---|---|
BD.EXCEPT.AN | ArgumentNullException を避ける |
BD.EXCEPT.NR | NullReferenceException を避ける |
BD.PB.DEREF | null チェックの前に間接参照しない |
BD.PB.EVIPT | 呼び出しパラメーターの型をデリゲートの定義に一致させる |
BD.PB.STRNULL | 文字列に null を付加しない |
BD.PB.VOVR | 未使用の値を避ける |
BD.PB.ZERO | ゼロによる除算を避ける |
BD.TRS.DIFCS | 変数は単一のクリティカル セクションのコンテキストで使用するべきである |
BD.TRS.MUTEX | 未解放の mutex を放棄しない |
CMUG.MU.AUPM | 未使用の private メソッドを避ける |
CS.BRM.SWDEFLAST | switch 文の最後の case として default を配置する |
CS.BRM.UCO | 条件演算子 ('?') の代わりに null 合体演算子 ('??') を使用する |
CS.EU.VZS | すべての列挙型に値が 0 のメンバーがあることを確認する |
CS.PB.CEB | 内容が空の条件文を避ける |
CS.PB.IDNE | 効果のないインクリメント文およびデクリメント文を避ける |
CS.PB.NACC | アクセスできないクラスおよび構造体を避ける |
EXCEPT.NCSAE | 'Exception'、'SystemException'、'ApplicationException' に対する "catch" の使用を避ける |
METRIC.CC | McCabe Cyclomatic Complexity |
METRIC.ECC | Essential Cyclomatic Complexity |
METRIC.MCC | Modified Cyclomatic Complexity |
SEC.ACWNS | 名前空間のないクラスがあるべきではない |
SEC.WEB.UAA | ページおよびコントローラーで authorization 属性を使用する |
RuleWizard が改善されました。これに伴いRuleWizard で作成したカスタム ルールのレポートする違反が、以前のリリースとは異なる場合があります。