このリリースでは、セキュリティ コンプライアンス ソリューションの改善と既存機能の拡張に重点が置かれました。
環境のサポート
以下のサポートが追加されました。
- Windows Server 2019
以下の OS はサポートされなくなりました。
- Windows 8
- Windows Server 2008
追加または更新されたテスト コンフィギュレーション
CWE SANS Top 25 2011 標準のサポートが拡張され、On the Cusp ガイドラインが含まれるようになりました。次のテスト コンフィギュレーションは、ビルトインの Security Compliance Pack テスト コンフィギュレーションカテゴリで提供されるようになりました。
- CWE SANS Top 25 2011+On the Cusp
次のテスト コンフィギュレーションが拡張され、新規ルールまたは更新されたルールによってセキュリティ標準のサポートが強化されました。
- CWE 3.1 → CWE 3.2 として拡張されました
- OWASP Top 10 2017 → OWASP Top 10-2017 として拡張されました
- PCI Data Security Standard → PCI DSS 3.2 として拡張されました
- CWE SANS Top 25 2011 → 拡張されました
- UL 2900 → 新しい UL 2900 テスト コンフィギュレーションに置き換えられました。このコンフィギュレーションには、CWE SANS Top 25 2011+On the Cusp および OWASP Top 10-2017 テスト コンフィギュレーションのルールが含まれます。
解析結果の向上のため、以下のテスト コンフィギュレーションが更新されました。
- Calculate Application Coverage
- Recommended .NET Core Rules
dotTEST に付属するテスト コンフィギュレーションの一覧は「ビルトイン テスト コンフィギュレーション」を参照してください。
非推奨のテスト コンフィギュレーション
PCI Data Security Standard – 非推奨になり、PCI DSS 3.2 テスト コンフィギュレーションに置き換えられました。
- UL 2900 - 非推奨となり、新しい UL 2900 テスト コンフィギュレーションに置き換えられました。このコンフィギュレーションには、CWE SANS Top 25 2011 および OWASP Top 10 2017 ルールが含まれます。
非推奨のテスト コンフィギュレーションは、デフォルトでは利用できません。ユーザー定義コンフィギュレーションとして適用することはできます。これらのテスト コンフィギュレーションは、次の場所にあります: [INSTALL_DIR]\configs\Deprecated
フロー解析の改善
- 実行パス中で発見されたときに常に解析対象とする関数を指定できるようになりました。詳細は「フロー解析の設定」を参照してください。
- .aspx や .cshtml など、Website プロジェクトファイルから生成される CS ファイルが解析スコープに含まれるようになりました。
- XUnit アサーションのサポートが追加されました。
その他の改善
-property
オプションが追加され、コマンド ラインで直接コンフィギュレーション設定を指定できるようになりました。「コマンド ライン オプション」を参照してください。- IDE からの解析実行またはカバレッジ情報を収集する際の dotTEST のパフォーマンスが向上しました。
新規静的解析ルール
以下のルールが追加されました。
ルール ID | ヘッダー |
---|---|
BD.PB.CHECKRET | 非 void 関数の戻り値を必ずチェックする |
BD.PB.INTOVERF | 整数のオーバーフローを避ける |
BD.PB.NOTEXPLINIT | 明示的に初期化する前の使用を避ける |
BD.SECURITY.AUTH | 認証に影響を与える可能性がある信頼性のない入力を避ける |
BD.SECURITY.SALT | ランダムな salt が使用されていることを確認する |
BD.SECURITY.TDRFL | Reflection インジェクションから防御する |
BD.SECURITY.USXRS | セキュアな XmlResolver プロパティでオブジェクトを使用する |
CT.ECLTS | データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける |
CT.ECLSII | データの損失または予期しない結果が発生する可能性がある場合、データ型の間の明示的な変換を避ける |
PB.AIHUE | HttpResponse メソッドで不適切な HTML または URL エンコーディングを使用しない |
SEC.IREC | 完全性のチェックを行わずに外部コードを実行しない |
SEC.WEB.AAM | MVC Core に認可サービスを追加する |
SEC.WEB.IIPHEU | セキュリティ上の決定を行う際に逆引き DNS に依存しない |
SEC.WEB.ISE | セッション有効期限が適切であるようにする |
SEC.WEB.LUAFLA | ログインの試行が失敗したあとにユーザーをロックアウトする |
SEC.WEB.UAAMC | 認可属性がコントローラーと一致していることを確認する |
SEC.WEB.VAFT | POST メソッドでは anti-forgery 属性を使用する |
更新された静的解析ルール
解析結果の向上のため、以下の静的解析ルールが更新されました。
- BD.SECURITY.TDRESP
- BD.SECURITY.TDSQL
- BRM.CMT.TSC
- CS.PB.CNFA
- CS.PB.USC.UC
- NG.CAPSTY.PASCAL.ENUMTYPE
- NG.CAPSTY.PASCAL.STRUCT
- PB.EMPTYMETHODS
- SEC.LGE
- TUG.AU.UFABFE
以下のルールの出力メッセージが更新されました。そのため、以前に DTP で関連付けられたこれらのルールの抑制はもう利用できない場合があります。
- CS.PB.USC.UC
解決済みのバグおよび FR
バグ/FR ID | 説明 |
---|---|
DT-9402 | "Calculate Application Coverage" コンフィギュレーション実行時に -exclude オプションが考慮されない |
DT-13026 | SEC.LGE 違反を検出できない可能性 |
DT-13093 | SymbolsParser が複雑な lambda で表現されたメソッドで失敗する |
DT-13262 | catch で when 条件を使用している場合に「到達できないコードを避ける」 CS.PB.USC.UC ルールの誤検出 |
DT-12353 | CS.PB.USC.UC ルールの ?? 演算子に対する誤検出 |
DT-13043 | CS.PB.USC.UC の誤検出 |
DT-11051 | CS.PB.USC.UC ルールの誤検出 |
DT-10958 | 「到達できないコードを避ける」 CS.PB.USC.UC の誤検出 |
DT-13217 | 単体テスト違反スタック トレースから余計なファイルをスコープに追加しない |
DT-13160 | 日本語環境で TUG.AU.UFABFE が違反を検出できない |
DT-13056 | 巨大なプロジェクトをテストする場合、MAX_COVERABLE_LINES カバレッジ制限が十分ではない |
DT-12608 | CS.PB.CNFA ルールの再実装 |
DT-12657 | 大文字/小文字表記ルール ((NG.CAPSTY.PASCAL.ENUMTYPE, NG.CAPSTY.PASCAL.STRUCT)) の違反検出漏れ |
DT-11571 | BRM.CMT.TSCの誤検出 |
FA-6416 | 変数がイニシャライザー/linq で使用されている場合の BD.PB.VOVR の誤検出 |
FA-6786 | .NET Framework と .NET Core を混合して使用しているプロジェクトで TextWriter/TextReader に関する BD.RES.LEAKS 違反が検出されない |
FA-6805 | 例外をスローする可能性があるメソッドの判定に関する問題 (Dllimport、NETの extern メソッド) |
FA-6822 | 変数がオブジェクトイニシャライザーのリスト イニシャライザーで使用されている場合の BD.PB.VOVR の誤検出 |
XT-36443 | dottestcli.properties のテクニカル サポート設定値が UI の設定より優先される |
XT-36549 | IDE 内で設定された名前はシステム ユーザーをオーバーライドできるか? |