Klocwork 2023.2 の新機能
Klocwork 2023.2 のハイライトを次に示します。アップグレードする場合は、Klocwork の使用方法に影響を与える項目を制限事項で参照してください。
Validate
Validate では、指摘をより簡単に調査できるようなりました。[指摘の詳細] ページを開いたままで、指摘検索リストを表示、変更、および移動できるようになりました。新しい [ファイルナビゲーション] ペインを使用して、個々のファイルを検索し、指摘を調査します。これらの新しい UI ペインは構成可能であり、同じブラウザーを使用している場合、構成はセッション間で保持されます。
Validate では、QAC メトリックをインポートおよびエクスポートできるようになりました。QAC メトリックのリストについては、QAC メトリックリファレンスを参照してください。メトリックレポートデザイナーが改善されました: Validate では、しきい値と合計メトリック値のレポート定義を編集できます。レポート選択ページも強化されました。
Validate で使用できるいくつかのコマンドの名前が更新されました。詳細については、Validate コマンドリファレンスを参照してください。
Visual Studio 拡張機能
外部解析エンジンとして kwcheck コマンドを使用する場合、Visual Studio 拡張機能に対するビルドスペック生成のパフォーマンスが向上しました。これは、解析をはるかに早く開始できることを意味します。
ストリーム
表示にかかる時間が劇的に短縮され、ストリーム用のプロジェクトリストを使用できます。
C/C++
このリリースでは、
-
いくつかの MISRA 規則のサポートを追加し、MISRA C 2012 (AMD2 まで) の適用範囲を 拡大しました
-
重大度の高い DISA STIG 規則の適用範囲を拡大しました
-
2022 CWE 上位 25 の最も危険なソフトウェアの弱点に関する分類基準を追加するなど、CERT、OWASP、および CWE の適用範囲を改善しました
-
C++14 および C++17 解析のサポートを強化しました
* MISRA C 2012 を カバーするには、カスタマーサポートからさらなるパッケージが必要です。
C#
以下により、バージョン 8.0 の C# 言語仕様のサポートを改善しました
-
静的コンストラクターのサポートの追加
-
インターフェイスでの入れ子にされた型と演算子宣言のサポートの追加
-
逐語的に補間された文字列のサポートの改善
-
.. 演算子と ^ 演算子のサポートによる、範囲とインデックスのサポートの改善
Java
追加しました
- Jakarta EE のサポート
- DISA STIG と CWE のカバレッジを改善するチェッカー
- Java 14 スイッチ式用に改善されたサポート
JavaScript
JavaScript プロジェクトのルートディレクトリを指定できるように、kwjsspec コマンドに --project-dir オプションを追加しました。このオプションは、解析のために .eslintignore ファイル (プロジェクトのルートディレクトリに存在する場合) をキャプチャするのに役立ちます。
コーディング基準
このリリースには、次のコーディング標準に関する新しい標準と拡張標準カバレッジが含まれています。
- CERT
- CWE
- DISA STIG
- MISRA
- OWASP
チェッカーの改善
リリースを重ねるたびに、当社は指摘検出を改善して最先端の機能をお客様に提供しています。結果として、精度とカバレッジが向上すると解析結果が変わると予想されます。
新しいチェッカー
チェッカー | 説明 |
---|---|
CXX.SV.PRIVATE_KEY.EMPTY_PASSWD | この C/C++ チェッカーは、公開キー基盤 (PKI) ベースの認証で、秘密キーを保存するために空のパスワードが使用されると、それを検出します。 |
CXX.SV.PRIVATE_KEY.UNENCRYPTED | この C/C++ チェッカーは、公開キー基盤 (PKI) ベースの認証で、秘密キーを保存するために暗号化されていない暗号が使用されると、それを検出します。これは、不正アクセスを引き起こす可能性があります。 |
CXX.SV.PWD_INPUT.REVIEW | この C/C++ チェッカーは、アプリケーションでパスワード認証が使用されると、それを検出します。会社の認証ポリシーを確実に実施させるために、設計者は欠陥をレビューできます。 |
CXX.SV.PWD.PLAIN | この C/C++ チェッカーは、アプリケーションがプレーンテキストに記述された文字列を使用して、パスワードまたは PIN を設定しようとすると、それを検出します。 |
CXX.SV.PWD.PLAIN.LENGTH | この C/C++ チェッカーは、アプリケーションが 15 文字未満のプレーンテキストパスワードを設定しようとすると、それを検出します。 |
CXX.SV.PWD.PLAIN.LENGTH.ZERO | この C/C++ チェッカーは、アプリケーションがゼロ文字の長さのプレーンテキストパスワードを設定しようとすると、それを検出します。 |
CXX.SIZEOF.CSTRING | この Community C/C++ チェッカーは、char* で sizeof が使用されていることを検出します。 |
JAVA.SV.EMAIL.HOST | この Java チェッカーは、サーバーが正しい証明書を確実に提示するようにメールサーバーのホスト名検証機能が適切に構成されていない場合を検出します。 |
JAVA.SV.XML.INVALID | この Java チェッカーは、XML データが処理される前に XDS 検証されていることを確認することで、潜在的な XML インジェクションの脆弱性を検出します。 |
MISRA.MEMCMP.NTS.2012_AMD1 |
この MISRA チェッカーは、次の MISRA 2012 AMD1 のサポートに対応しています。規則 21.14 (必須): 標準ライブラリ関数 memcmp は、null 終端された文字列を比較するために使用してはなりません。 |
MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 |
この MISRA チェッカーは、次の MISRA 2012 AMD1 のサポートに対応しています。規則 21.14 (必須): 標準ライブラリ関数 memcmp は、null 終端された文字列を比較するために使用してはなりません。 |
MISRA.STDLIB.ABORT.2012_AMD2 | この MISRA チェッカーは、次の MISRA C 2012 AMD2 Rule 21.8 のサポートに対応しています。<stdlib.h> の標準終了関数を使用してはなりません |
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 | この MISRA チェッカーは、次の MISRA 2012 AMD1 のサポートに対応しています。規則 22.7 (必須): マクロ EOF は、EOF を返すことができる標準ライブラリ関数からの未変更の戻り値とのみ比較されなければなりません。 |
変更されたチェッカー
チェッカー | 説明 |
---|---|
ABV.GENERAL |
新たな欠陥が検出されました |
ABV.STACK | チェッカーへの全体的な改善 |
ANDROID.RLK.SQLOBJ | 誤検知を削減しました |
CS.HIDDEN.MEMBER.LOCAL.CLASS | 誤検知を削減しました |
CS.HIDDEN.MEMBER.PARAM.CLASS | 誤検知を削減しました |
CS.NRE.FUNC.MIGHT | 誤検知を削減しました |
DBZ.GENERAL | 新たな欠陥が検出されました |
FUNCRET.GEN |
誤検知を削減しました |
INVARIANT_CONDITION.UNREACH |
誤検知を削減しました |
LOCRET.ARG |
誤検知を削減しました |
LV_UNUSED.GEN | 誤検知を削減しました |
MISRA.ASSIGN.OVERLAP |
新たな欠陥が検出されました |
MISRA.CAST.PTR.UNRELATED |
誤検知を削減しました |
MISRA.INIT.BRACES | 誤検知を削減しました |
MISRA.TYPEDEF.NOT_UNIQUE |
誤検知を削減しました |
RNPD.DEREF | 新たな欠陥が検出されました |
UNREACH.GEN |
誤検知を削減しました |
有効または無効なチェッカー
このリリースのチェッカー構成ファイルのデフォルトの enabled
フィールドに、以下のチェッカーが追加されました。
- JAVA.SV.EMAIL.HOST
-
JAVA.SV.XML.INVALID
-
PY3.E0001
-
PY3.E0011
-
PY3.E0013
-
PY3.E0014
-
PY3.E0015
-
PY3.F0001
-
PY3.F0002
-
PY3.F0010
-
PY3.F0011
-
PY3.R0022
-
PY3.W0012
分類基準の改善
インストールの一部として、チェッカーを MISRA、CWE、OWASP、DISA STIG などの規格にマッピングするカスタム分類基準ファイルがいくつか提供されています。
分類基準 | 新規または更新 |
---|---|
cert_c_all.tconf と cert_c_all_ja.tconf cert_c_rules.tconf and cert_c_rules_ja.tconf cert_cpp.tconf と cert_cpp_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
cwe_2019_top_25_cxx.tconf と cwe_2019_top_25_cxx_ja.tconf cwe_2020_top_25_cxx.tconf と cwe_2020_top_25_cxx_ja.tconf |
チェッカーマッピングを以下の弱点に追加または更新しました。
|
cwe_2021_top_25_cxx.tconf と cwe_2021_top_25_cxx_ja.tconf |
チェッカーマッピングを以下の弱点に追加または更新しました。
|
cwe_2021_top_25_java.tconf と cwe_2021_top_25_java_ja.tconf |
チェッカーマッピングを以下の弱点に追加または更新しました。
|
cwe_2022_top_25_cxx.tconf と cwe_2022_top_25_cxx_ja.tconf | Klocwork チェッカーを 2022 CWE 上位 25 の最も危険なソフトウェアの弱点にマッピングする新しい分類基準を追加しました。 |
cwe_all_cs.tconf と cwe_all_cs_ja.tconf |
チェッカーマッピングを以下の弱点に追加または更新しました。
|
cwe_all_cxx.tconf と cwe_all_cxx_ja.tconf |
チェッカーマッピングを以下の弱点に追加または更新しました。
|
cwe_all_java.tconf と cwe_all_java_ja.tconf |
チェッカーマッピングを以下の弱点に追加または更新しました。
|
disa_stig_v4_cxx.tconf と disa_stig_v4_cxx_ja.tconf disa_stig_v5_cxx.tconf と disa_stig_v5_cxx_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
disa_stig_v5_java.tconf and disa_stig_v5_java_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
Helix QAC 分類基準 | Helix QAC 分類基準は、Helix QAC バージョン 2023.2 に更新されています。 |
jsf_av_rev_c_cpp.tconf と jsf_av_rev_c_cpp_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
misra_c_2012_c90_all_checkers.tconf と misra_c_2012_c90_all_checkers_ja.tconf misra_c_2012_c90_certified.tconf と misra_c_2012_c90_certified_ja.tconf misra_c_2012_c99_all_checkers.tconf と misra_c_2012_c99_all_checkers_ja.tconf misra_c_2012_c99_certified.tconf と misra_c_2012_c99_certified_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
misra_c_2012_with_amd1_c90_all_checkers.tconf と misra_c_2012_with_amd1_c90_all_checkers_ja.tconf misra_c_2012_with_amd1_c90_certified と misra_c_2012_with_amd1_c90_certified_ja.tconf misra_c_2012_with_amd1_c99_all_checkers.tconf と misra_c_2012_with_amd1_c99_all_checkers_ja.tconf misra_c_2012_with_amd1_c99_certified.tconf と misra_c_2012_with_amd1_c99_certified_ja.tconf
|
チェッカーマッピングを以下の規則に追加または更新しました。
|
misra_c_2012_with_amd2_c11_all_checkers.tconf と misra_c_2012_with_amd2_c11_all_checkers_ja.tconf misra_c_2012_with_amd2_c11_certified.tconf と misra_c_2012_with_amd2_c11_certified_ja.tconf misra_c_2012_with_amd2_c90_all_checkers.tconf と misra_c_2012_with_amd2_c90_all_checkers_ja.tconf misra_c_2012_with_amd2_c90_certified と misra_c_2012_with_amd2_c90_certified_ja.tconf misra_c_2012_with_amd2_c99_all_checkers.tconf と misra_c_2012_with_amd2_c99_all_checkers_ja.tconf misra_c_2012_with_amd2_c99_certified.tconf と misra_c_2012_with_amd2_c99_certified_ja.tconf |
チェッカーマッピングを以下の規則に追加または更新しました。
|
py.base.tconf and py.base_ja.tconf |
チェッカーマッピングを以下のカテゴリに追加または修正しました。
|
サポートされているコンパイラへの改善
以下のコンパイラのサポートを追加または改善しました。
- Clang
サポートされる C/C++ コンパイラの全リストについては、「ビルド統合でサポートされる C/C++ コンパイラ」を参照してください。
ライセンス
Klocwork は、Reprise License Manager (RLM) をサポートします。
2022 ライセンスは、Klocwork 2023.2 との互換性がありません。最新バージョンの製品を使用するには、新しいライセンスが必要です。ライセンスの入手に関しては、license@perforce.com 宛てにお問い合わせください。
Klocwork 2023.1 の時点での FLEXlm/FlexNet Publisher の販売終了通知
Klocwork 2023.1 の時点で、Klocwork は、FLEXlm/FlexNet Publisher から Reprise License Manager (RLM) に移行することで、ライセンス管理ツールを変更しています。FLEXlm/FlexNet Publisher はサポートされなくなります。
Reprise 用の新しい製品ライセンスファイルが生成される予定であり、Klocwork 旧バージョン用の FLEXlm ライセンスファイルは、必要な場合に提供されます。
移行の詳細については、FlexLM から Reprise への移行ライセンスを参照してください。
システム要件の変更
このリリースでは、次のサポートが追加されました。
- Debian 11.7
-
Red Hat Enterprise Linux 8.8
- Oracle Linux 8.7
-
Amazon Linux 2 (2.0.20230515.0 Update)
-
Ubuntu 22.04 ~ 22.04.2 LTS
-
Fedora 38
-
Eclipse 4.27 (2023-03)
-
Android Studio Flamingo 2022.2.1 Patch 2
-
Visual Studio 2017 バージョン 15.9.54
-
Visual Studio 2019 バージョン 16.11.26
-
Visual Studio 2022 バージョン 17.6.1
-
Visual Studio Code 1.78.2
-
IntelliJ IDEA 2022.2.5、2022.3.3
-
CLion 2022.2.5、2022.3.3、2023.1 (~ 2023.1.3)
-
Microsoft Edge 113.x
-
Firefox 113.x
-
Chrome 112.x
-
Jenkins 2.406
このリリースでは、次のサポートを終了しました。
-
Fedora 36
-
Visual Studio Code 1.65.2 ~ 1.69.1
-
Microsoft Edge 99.x ~ 102.x
-
Firefox 98.x ~ 102.x
-
Chrome 99.x ~ 102.x
-
Safari 13.x
サポート対象のバージョンの完全なリストについては、「システム要件」を参照してください。
Klocwork 2021 のメンテナンス終了
全バージョンの Klocwork 2021 のメンテナンスが、2023 年 3 月 31 日に終了しました。メンテナンス終了 (EOM) 日と販売終了 (EOS) 日も 2023 年 3 月 31 日でした。Klocwork リリースのサポート可否についての詳細は、「Klocwork 製品のライフサイクル」を参照してください。
Klocwork 2023.1 での Path API バージョンのアップグレード
パス解析インスタンス内でのマルチスレッド実行に対応するため、Path API のバージョンをアップグレードしました。アップグレードされた API には、旧バージョンとの下位互換性はありません。Path API を使用するすべてのカスタムチェッカーは、2023 Klocwork Path API のヘッダーとライブラリを使用することで、更新および再コンパイルする必要があります。詳細については、Path API ドキュメンテーションを参照してください。
Klocwork 2023.1 の時点での macOS の販売終了通知
Klocwork 2023.1 以降では、以下のオペレーティングシステムとインストーラーはサポートされなくなります。
- macOS