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 ナレッジベースを利用した拡張はできません。