ルールの更新

バージョン 2.2.0 のルールの更新

  1. 新規ルール
言語 CWE 説明
CSS CSS スキャナーのパフォーマンスが向上し、余分な時間を消費せずに非常に大きな HTML ファイルを処理できるようになりました。
Delphi (Object Pascal1 を含む) CWE-22 制限されたディレクトリーへのパス名の不適切な制限
CWE-77 コマンドで使用される特殊要素の不適切な中立化
CWE-78 OS コマンドで使用される特殊要素の不適切な中立化
CWE-79 Web ページ生成時の入力の不適切な中立化 (クロスサイト・スクリプティング)
CWE-89 SQL コマンドで使用される特殊要素の不適切な中立化
CWE-94 コード生成の不適切な制御 (「コード・インジェクション」)
CWE-99 リソース識別子の不適切な制御 (「リソース・インジェクション」)
CWE-119 メモリー・バッファー境界内での不適切な操作制限
CWE-120 入力サイズをチェックせずにコピーをバッファする
CWE-200 情報公開
CWE-266 不正な特権の割り当て
CWE-295 不適切な証明書検証
CWE-312 機密情報のクリア・テキストでの保存
CWE-327 壊れたまたは危険な暗号化アルゴリズムの使用
CWE-328 脆弱なハッシュの使用
CWE-330 十分にランダムでない値の使用
CWE-338 脆弱な疑似乱数発生ルーチン (PRNG) の使用
CWE-345 データの信頼性の不適切な検証
CWE-434 危険なタイプのファイルの無制限なアップロード
CWE-497 権限のない制御領域へのシステム・データの漏えい
CWE-502 信頼できないデータの非直列化。
CWE-614 「Secure」属性のない HTTPS セッションの機密 Cookie
CWE-643 XPath 式 (「Xpath インジェクション」) 内のデータの不適切な中立化
CWE-760 予測可能なソルトを使用した片方向ハッシュの使用
CWE-780 OAEP を使用しない RSA アルゴリズムの使用
CWE-787 範囲外の書き込み
CWE-798 ハードコーディングされた資格情報の使用
CWE-942 信頼されていないドメインを使用した許可されたクロスドメイン・ポリシー
CWE-1004 「HttpOnly」フラグがない、秘密情報の Cookie
CWE-120 StrCopy、StrCat、StrPCopy、lstrcpy、lstrcat が安全でない方法で使用されていないか確認します。1
CWE-143 書式文字列の使用に安全でない書式を確認します。1
CWE-295 SSL 証明書の検証を無効にする設定を確認します。1
CWE-33 RandSeed の使用を確認します。1
CWE-367 ファイルとの TOCTOU (Time of Check\Time of Use) 競合状態を確認します。1
CWE-522 暗号化キーが空または Null であるかどうかを確認します。1
CWE-522 データベース接続文字列でハードコードされた資格情報を確認します。1
CWE-539 Cookie の有効期限が非常に長いかどうかを確認します。1
CWE-693 廃止された X-XSS-Protection ヘッダーの使用を確認します。1
CWE-693 セキュア・コンパイラー・ディレクティブが無効になっているかどうかを確認します。1
CWE-703 不適切な例外の再スローを確認します。1
CWE-732 新しい Cookie に安全でないドメイン・エントリーがないかどうかを確認します。1
CWE-732 安全でない Cookie パス・エントリーを確認します。1
HTML CWE-798 ハード・コードされた値でハードコードされた入力要素タイプのパスワード・フィールドのチェックを追加しました。
注: ソース・コード・スキャナーとハイブリッド・スキャナーの両方に追加しました。
Java CWE-502 安全でない非直列化のチェックを追加しました。1
CWE-532 ログ記録の重要な欠陥に対するチェックを追加しました。1
CWE-1004 追加された Cookie に HttpOnly フラグが欠落しているかどうかの新しいチェック。1
CWE-79 SpringBoot コントローラーで無害化されていないユーザー入力がないかどうか HTTP 応答を確認します。1
CWE-208 潜在的に機密の文字列によるタイミング攻撃がないかどうかを確認します。1
CWE-215 機密情報が公開されていないか SpringBoot 構成を確認します。1
CWE-338 脆弱な乱数発生ルーチンをチェックするルールが検索対象とする API を拡充しました
CWE-502 XStream 非直列化の危険な使用がないかどうかを確認します。1
CWE-611 危険な XMLInputFactory 構成を確認するためのルールを拡充しました。
CWE-614 新しい Cookie で欠落している安全フラグがないかどうかを確認します。1
CWE-749 Spring アプリケーションに安全でない RequestMapping 注釈がないかどうかを確認します。1
CWE-76 片方向ハッシュ・アルゴリズムで予測可能なソルトがないかどうかを確認します。1
CWE-922 HTTP セッションに機密データが保存されているかどうかを確認します。1
CWE-1275 Cookie に安全な SameSite 設定があるかどうかを確認します。1
CWE-22 java.nio.file.Path および java.io.File API のカバー範囲を拡張しました。
CWE-611 安全な設定検証のための XMLReaderFactory.createXMLReader() および sxabuilder.setXMLReaderFactory スタイルの呼び出しを適切に説明するようになりました。
根本的な問題が Java で悪用されることはなく、ルールが安全なコードで誤検出を生成していたため、Java タイミング攻撃ルールを削除しました。
Javascript CWE-521 JSON オブジェクトなどの JavaScript のオブジェクト・リテラルでの検出が向上しました。
MuleSoft1 CWE-22 制限されたディレクトリーへのパス名の不適切な制限 (「パス・トラバーサル」)
CWE-78 OS コマンドで使用される特殊要素の不適切な中立化 (「OS コマンド注入」)
CWE-79 Web ページ生成時の入力の不適切な中立化 (「クロスサイト・スクリプティング」)
CWE-89 SQL コマンドで使用される特殊要素の不適切な中立化 (「SQL 注入」)
CWE-94 コード生成の不適切な制御 (「コード・インジェクション」)
CWE-306 重大な機能に関する認証の欠落
CWE-319 機密情報のクリア・テキスト送信
CWE-326 不適切な暗号化強度
CWE-338 脆弱な疑似乱数発生ルーチン (PRNG) の使用
CWE-359 権限のないアクターへのプライベートな個人情報の漏えい
CWE-497 権限のない制御領域への機密性の高いシステム情報の漏えい
CWE-532 ログ・ファイルへの機密情報の挿入
CWE-611 XML 外部エンティティー参照の不適切な制限
CWE-942 信頼されていないドメインを使用した、許可されたクロスドメイン・セキュリティー・ポリシー
CWE-1287 指定されたタイプの入力の不適切な検証
PHP CWE-79 Web ページ生成時の入力の不適切な中立化 (「クロスサイト・スクリプティング」)
シークレット CWE-798 ハードコーディングされた資格情報の使用
スキャンを高速化するためにタイムアウトを 1 秒に設定します。
ハードコードされたシークレットの .properties ファイルで追加します。
CWE-798 ハード・コーディングされた資格情報をチェックする際のシークレット・パフォーマンスを最適化しました。
CWE-798 JWT ハードコードされた資格情報のチェックを追加しました。
CWE-798 Base64.encode 呼び出しを通過するハードコードされた資格情報のチェックを追加しました。

バージョン 2.1.0 のルールの更新

注:
  1. 新規ルール
言語 CWE 説明
Android Java CWE-319 新しい対象範囲: usesCleartextTraffic または cleartextTrafficPermitted が AndroidManifest.xml で安全ではない true に設定されていないか確認します。
C# CWE-89 SQLi 検出のノイズを低減します。
CWE-215 機密情報を含む疑わしい変数がないかログ出力を確認します。1
CWE-397 新しい例外のスローや新しい SystemException のスローなど、安全ではない可能性がある、汎用的スローを探します。
CWE-89 新しい対象範囲: += パターンと一部のストアド・プロシージャ・パターンを検出するように SQL インジェクションに対するチェックを追加しました。
CWE-89 新しい対象範囲: ノイズを低減するために、正しいクエリーであるかを確認するより制約が高いチェックを追加しました。
CWE-1004 ノイズ低減: http=true をチェックし、設定されている場合は検出を回避します。
CSS CWE-79 .css ファイルのハードコードされた変数チェックで検出されたノイズを低減します。
Dart CWE-943 NoSQL インジェクションを探します。1
CWE-338 脆弱な疑似乱数を探します。1
CWE-116 File.writeAs スタイルの呼び出しを探します。1
CWE-79 安全でない可能性のある方法で Response.ok の呼び出しや類似の呼び出しが使用されていないか確認します。1
CWE-348 安全でない可能性のあるディレクトリーの一覧表を探します。1
CWE-78 Process.run が安全でない方法で使用されていないか確認します。1
CWE-89 SQL インジェクションの可能性がないか、query/execute/prepare スタイルの呼び出しをチェックします。1
Dart: Flutter

(新しいフレームワークのサポート、新たな対象範囲)
CWE-35 ユーザーが制御できる可能性のあるパス引数を MethodChannel が使用していないかチェックします。
CWE-78 MethodChannel 呼び出しに潜在的な OS インジェクションがないか探します。
CWE-80 javascript が制限されていない状態 (危険) になっていないか WebView または InAppWebView をチェックします。
CWE-89 sqflite flutter 固有の DB API をサポートします。
CWE-117 デバッグ制御で囲まれていない print および同様のステートメントを検出します。これらの呼び出しは一般的に、デバッグ用ブランチ以外の実稼働コードで使用すべきではありません。
CWE-312 FlutterSecureStorage がパスワードやその他セッション情報などの疑わしい個人情報を保存していないかをルールでチェックします。
CWE-598 Navigator オブジェクトでクエリー・パラメーターが安全でない可能性のある方法で使用されていないか確認します。
CWE-918 MethodChannel.invokeMethod でユーザーが制御可能な URL を SSRF 攻撃ベクトルとして探します。
Go CWE-79 fprintf チェックで発生するノイズを低減します。
IaC Docker CWE-22 DockerFile に追加されている機密パスをチェックします。1
IaC Kubernetes CWE-209 .yaml 構成ファイルに残されたスタック・トレース・コードのチェックが追加されました。1
Java CWE-209 コード内における System.out と System.err の使用状況 (本番コードから削除されるべきデバッグ・コール) をチェックします。1
CWE-78 Runtime.getRunTime() のインライン・コールを検索します。
CWE-757 安全でない、および破損しているものに対するチェックリストを拡充しました。
CWE-916 PBEKeySpec と PBEParameterSpec の脆弱な反復回数をチェックします。1
CWE-1188 大規模な値またはユーザー制御の値を使用し、StringBuilder コンストラクターでサービス拒否をチェックします。1
CWE-215 機密情報を含む疑わしい変数がないかログ出力を確認します。1
CWE-397 例外のスローや Throwable のスローなど、安全ではない可能性がある、汎用的なスローを探します。
CWE-396 catch (Exception e) や catch (Throwable t) などの汎用的な catch ブロックを探します。1
JavaScript CWE-397 "message" のスローなど、安全ではない可能性がある、汎用的なスローを探します。
CWE-80 @if パターンが使用されているが、handlebars テンプレートではない不具合が修正されました。
JavaScript: Angular CWE-80 ノイズ低減: @if テンプレートを使用していないことを確認します。
NodeJS CWE-78 安全でない child_process.exec 呼び出しがないかチェックを追加しました。
Perl CWE-732 IO::File::open 呼び出しのカバレッジがより完全になりました。
CWE-89 パラメーター化されたステートメントに対して誤検出を生成していた SQL インジェクション・ルールのノイズを低減します。
CWE-732 入力として STDIN を使用して、オープン・コールにおけるノイズを低減します。
CWE-397 Error("foo") のスローなど、安全でない可能性のある汎用的なスローを探します。
PHP CWE-89 sqlite_escape_string のバリデーター・チェックが追加されました。
CWE-213 PHP コードに残存する phpinfo 呼び出しのチェックを追加しました。1
CWE-89 sqlite_escape_string を使用して誤検出を検証する新しいチェックを追加しました。
Python CWE-397 raise BaseException のスローなど、安全でない可能性のある汎用的なスローを探します。
シークレット CWE-798 ハードコードされたシークレットがないか秘密鍵を検証するチェックを追加しました。
CWE-798 新しい対象範囲: Tuleap のサポートが追加されました。
CWE-798 新しい対象範囲: equalsIgnoreCase 呼び出し内にハードコードされたパスワードがないか確認します。
CWE-798 ノイズ低減: コメントアウトされた C\C++ コードの検出結果をシークレット・スキャナーの検出結果として追加しないようにします。
CWE-798 ノイズの多いパターンの一部は検出結果として削除されました。
CWE-798 web.config ファイルでハードコードされた資格情報を確認します。
CWE-1051 IP アドレスではないにもかかわらずそのように見える文字列を回避するために調整された、ハードコードされた IP アドレスをチェックします。
CWE-1051 ノイズ低減: ハードコードされた IP アドレスのチェックで類似したバージョン番号を回避します
CWE-798 Atlassian シークレット検出のノイズを低減します。
CWE-798 シークレットのキーと値のペアに含まれるノイズを低減します。
CWE-798 対象範囲を拡大し、ハードコードされたパスワードの一部として文字列に含まれる 1234 のパスワードを検出します。
Swift CWE-1188 新しい対象範囲: UIFileSharingEnabled または LSSupportsOpeningDocumentsInPlace が安全でない true に設定されていないか info.plist ファイルをチェックします。
TypeScript CWE-94 ユーザーが制御できる可能性のある変数を含む eval に対するチェックを追加しました。

また、CWE-319 に関する一般的なアップデートも行われています。ノイズが多すぎるため、コード内の危険な http スタイルの文字列を探すルールを削除しました。適切な場面では、JavaScript での fetch 呼び出しなど、ハイブリッド・スキャナーで使用されているオープンな通信の具体的なインスタンスを引き続き探します。

この CWE-319 への変更は、次の言語に影響します。
  • ASP
  • Golang
  • Groovy
  • Kotlin
  • Objective-C
  • PHP
  • Scala
  • Swift
  • C#
  • Dart
  • RPG
  • VB
  • Xamarin