JAVA.SV.LLM.CLIENT.NOTIMEOUT
タイムアウトが設定されていない LLM クライアント呼び出し
JAVA.SV.LLM.CLIENT.NOTIMEOUT チェッカーは、タイムアウトが構成されていない LLM クライアント呼び出しを特定します。
脆弱性とリスク
タイムアウトを設定していない LLM クライアント呼び出しでは、モデルの応答が停滞した場合に、スレッドやその他のリソースが想定よりも長い時間消費される可能性があります。
軽減と防止
LLM クライアント呼び出しに対して明示的なタイムアウトを構成し、タイムアウトによる失敗に対処します。
脆弱コード例
コピー
import dev.langchain4j.model.openai.OpenAiChatModel;
public class Example {
private final OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o-mini")
.build(); // no timeout configured
public String summarize(String prompt) {
return model.generate(prompt);
}
}
修正コード例
コピー
import java.time.Duration;
import dev.langchain4j.model.openai.OpenAiChatModel;
public class Example {
private final OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o-mini")
.timeout(Duration.ofSeconds(10))
.build();
public String summarize(String prompt) {
return model.generate(prompt);
}
}
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。