SV.PASSWD.HC.MINLEN

長さが 15 文字以上のハードコードされたパスワード

Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があるか、ヒューマンエラーを引き起こす可能性があるため、安全でないソースはユーザーが提示したデータである可能性があります。

Klocwork は、パスワードを受理するメソッドまたは暗号化を実行するメソッドによってハードコードされた文字列が使用されるときに、SV.PASSWD.HC.MINLEN 欠陥を報告します。

脆弱性とリスク

ソースコードは、パスワードの保存に良くないと常に考えられており、可能な限り避ける必要があります。ただし、開発者がハードコードされたパスワードを保存する必要がある場合は、その複雑さを高めることで、パスワードが簡単に侵害されるリスクを軽減できます。たとえば、攻撃者による推測がより困難になるように、長さを 15 文字以上などにすることができます。

軽減と防止

長いパスワードを使用してください。文字が増えるたびに、パスワードを推測するために必要な組み合わせの数が指数関数的に増加します。これには、ブルートフォース攻撃が含まれますが、これに限定はされません。

脆弱コード例

コピー
  public static void main(String[] args) throws SQLException {
        Properties info = new Properties();
        info.setProperty("user", "admin");
        info.setProperty("password", "0102030405");
        DriverManager.getConnection("jdbc:mysql://localhost:8800", info);
    }

Klocwork は、4 行目で「文字列 "0102030405" がパスワードとして使用されています」という、SV.PASSWD.HC.MINLEN 欠陥を報告します。15 文字未満のパスワードでは、セキュリティを侵害する可能性があります。

修正コード例

コピー
   public static void main(String[] args) throws SQLException {
        Properties info = new Properties();
        info.setProperty("user", "admin");
        info.setProperty("password", "0102030405060708");
        DriverManager.getConnection("jdbc:mysql://localhost:8800", info);
    }

パスワードの長さが 16 文字であるため、Klockwork は欠陥を報告しなくなります。

関連チェッカー