CXX.SV.PWD.PLAIN.LENGTH

15 文字未満の長さでパスワードを設定しようとしている

アプリケーションが 15 文字未満のプレーンテキストパスワードを設定しようとするときに、Klocwork は CXX.SV.PWD.PLAIN.LENGTH の欠陥を報告します。

脆弱性とリスク

認証プロセス中に、ユーザーが 15 文字未満のパスワードを提示すると、悪意のある攻撃者は、ブルートフォース攻撃を使用することで、そのデータを傍受し、パスワードを推測する可能性があります。

軽減と防止

パスワードの長さを 15 文字以上に増やすことで、強力なパスワードを使用してください。

脆弱コード例

コピー
#include <QtSql/QSqlDatabase>
void Database::connect(Ui::MainWindow *ui){
    /* Set connections */
    this->qSqlDatabase.setUserName("mojito");
    this->qSqlDatabase.setPassword("J0a1m8");
}

Klocwork は、5 行目で CXX.SV.PWD.PLAIN.LENGTH の欠陥を報告し、「15 文字未満の長さでパスワードを設定しようとしています。長さを 15 文字以上に増やすことを検討してください」を示します。Database::connect メソッドでは、認証中に、プレーンな文字列 "J0a1m8" が setPassword API に直接渡されています。パスワード "J0a1m8" は 15 文字未満です。

修正コード例

コピー
#include <QtSql/QSqlDatabase>
void Database::connect(Ui::MainWindow *ui){
    /* Set connections */
    QString pwd = "J0a1m8welCome6469";
    this->qSqlDatabase.setUserName("mojito");
    this->qSqlDatabase.setPassword(pwd);
}

setPassword API に提示されるパスワードの長さが 15 文字以上であるため、Klocwork は CXX.SV.PWD.PLAIN.LENGTH の欠陥を報告しなくなります。