JAVA.SV.LLM.APIKEY.HC

LLM クライアント 内のハードコードされた API キー

JAVA.SV.LLM.APIKEY.HC チェッカーは、LLM クライアントの構成時に API キーをハードコーディングするコードに対してフラグを立てます。

脆弱性とリスク

ハードコードされた API キーは、ソース管理、ログ、ビルド成果物、またはコピーされたバイナリを通じて漏洩する可能性があります。攻撃者がこのキーを入手した場合、不正なリクエストを行ったり、保護されている LLM サービスにアクセスしたり、予期せぬ利用料金を発生させたりする可能性があります。

軽減と防止

アプリケーションのソースコードに API キーをハードコードしないでください。シークレットは、環境変数、シークレット管理サービス、またはアプリケーションコードにコミットされないデプロイメント固有の構成など、安全なソースから読み込みます。

脆弱コード例 1

コピー
import com.google.genai.Client;

public class Example {
    public Client create() {
        return Client.builder().apiKey("sk-hardcoded-1234567890abcdef").build(); // hardcoded key
    }
}

API キーがソースコードに直接埋め込まれているため、Klocwork は 5 行目でJAVA.SV.LLM.APIKEY.HC の欠陥を報告しています。

修正コード例 1

コピー
import com.google.genai.Client;

public class Example {
    public Client create() {
        return Client.builder().apiKey(System.getenv("GOOGLE_API_KEY")).build(); // key from environment
    }
}

この修正例では、API キーがハードコードされるのではなく環境変数から読み取られるため、Klocwork は JAVA.SV.LLM.APIKEY.HC の欠陥を報告しなくなります。

拡張機能

このチェッカーは、Klocwork ナレッジベースを利用した拡張はできません。