JAVA.SV.LLM.SAFETY.DISABLED

LLM 安全フィルターが無効

JAVA.SV.LLM.SAFETY.DISABLED チェッカーは、LLM プロバイダーの安全フィルタリングを無効にし、ブロックしきい値をそのまま残していないコードに対してフラグを立てます。

脆弱性とリスク

安全フィルターを無効にすると、プロンプトや生成された応答が、プロバイダー側の危険または有害なコンテンツに対する保護機能を迂回する可能性があります。これは、アプリケーションが安全でないコンテンツを処理したり、返したりするリスクを高めます。

軽減と防止

プロバイダーの安全チェックを有効にしたままにし、アプリケーションの安全要件に合わせて明示的なブロックしきい値を構成します。デプロイ前に、安全設定に対するあらゆるオーバーライドをレビューしてください。

脆弱コード例 1

コピー
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.HarmBlockThreshold;
import com.google.genai.types.SafetySetting;

public class Example {
    public GenerateContentConfig configure() {
        return GenerateContentConfig.builder()
                .safetySettings(SafetySetting.builder()
                        .category("HARM_CATEGORY_DANGEROUS_CONTENT")
                        .threshold(HarmBlockThreshold.Known.OFF) // OFF disables the content filter
                        .build())
                .build();
    }
}

安全しきい値が OFF に設定されているため、Klocwork は 10 行目で JAVA.SV.LLM.SAFETY.DISABLED の欠陥を報告しています。

修正コード例 1

コピー
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.HarmBlockThreshold;
import com.google.genai.types.SafetySetting;

public class Example {
    public GenerateContentConfig configure() {
        return GenerateContentConfig.builder()
                .safetySettings(SafetySetting.builder()
                        .category("HARM_CATEGORY_DANGEROUS_CONTENT")
                        .threshold(HarmBlockThreshold.Known.BLOCK_MEDIUM_AND_ABOVE) // real threshold keeps the filter on
                        .build())
                .build();
    }
}

この修正例では、安全しきい値が有効なままであるため、Klocwork は JAVA.SV.LLM.SAFETY.DISABLED の欠陥を報告しなくなります。

拡張機能

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