Skip to content

安全与治理

安全是系统设计,不是后处理

OpenAI 安全实践指南建议把安全措施前置到系统设计:

  • Moderation
  • 对抗测试(red-teaming)
  • 人在回路(HITL)
  • 输入约束与输出限制

OWASP LLM Top 10 v1.1 进一步提供了威胁分类(如 Prompt Injection、Insecure Output Handling 等),适合直接映射到你的安全测试用例。

组织级治理框架

  • NIST AI RMF 1.0:提供风险管理总框架(Govern/Map/Measure/Manage)
  • NIST GenAI Profile(2024-07-26 发布):补齐生成式 AI 特有风险

建议做法:把团队内部控制点映射到 NIST 控制项,形成统一审计语言。

法规与合规时间点(EU 例)

根据欧盟官方页面(截至 2026-03-03 可见信息):

  • AI Act 生效:2024-08-01
  • 首批条款适用:2025-02-02
  • GPAI 与治理义务适用:2025-08-02
  • 多数高风险规则适用:2026-08-02
  • 部分嵌入式高风险系统延后到:2027-08-02

如果你的产品覆盖欧盟用户,必须把这些时间点纳入发布与合同节奏。

最小安全基线

  • 上线前:完成对抗测试与滥用场景测试
  • 上线中:监控异常输入模式与拒绝率
  • 上线后:保留审计日志与可追溯证据
  • 高风险场景:强制人工复核

安全检测示例

输入过滤

python
import re
from typing import List, Tuple

class InputFilter:
    """输入安全过滤器"""

    # 常见注入模式
    INJECTION_PATTERNS = [
        r"ignore (all )?previous instructions",
        r"forget (all )?previous (context|instructions)",
        r"you are now (a |an )?\w+",
        r"disregard (all )?(previous |above )?(rules|instructions)",
        r"print (your |the )?(system|initial|hidden) (prompt|instructions)",
        r"repeat (your |the )?(system|initial|hidden) (prompt|instructions)",
    ]

    def __init__(self, patterns: List[str] = None):
        self.patterns = patterns or self.INJECTION_PATTERNS

    def check(self, input: str) -> Tuple[bool, str]:
        """检查输入是否包含注入模式"""
        input_lower = input.lower()
        for pattern in self.patterns:
            if re.search(pattern, input_lower, re.IGNORECASE):
                return False, f"检测到潜在注入模式: {pattern}"
        return True, None

    def sanitize(self, input: str) -> str:
        """清理输入"""
        # 移除危险字符,保留语义
        return input.strip()

输出校验

python
class OutputValidator:
    """输出安全校验器"""

    SENSITIVE_PATTERNS = [
        r"api[_-]?key",
        r"password",
        r"secret",
        r"token",
        r"credential",
    ]

    def __init__(self, sensitive_patterns: List[str] = None):
        self.patterns = sensitive_patterns or self.SENSITIVE_PATTERNS

    def check(self, output: str) -> Tuple[bool, List[str]]:
        """检查输出是否包含敏感信息"""
        violations = []
        for pattern in self.patterns:
            matches = re.findall(pattern, output, re.IGNORECASE)
            if matches:
                violations.extend(matches)

        is_safe = len(violations) == 0
        return is_safe, violations

    def redact(self, output: str) -> str:
        """脱敏敏感信息"""
        redacted = output
        for pattern in self.patterns:
            redacted = re.sub(
                f"({pattern})\\s*[:=]\\s*\\S+",
                r"\1: [REDACTED]",
                redacted,
                flags=re.IGNORECASE
            )
        return redacted

审计日志

python
import json
from datetime import datetime
from dataclasses import dataclass, asdict

@dataclass
class AuditLog:
    """审计日志记录"""
    timestamp: str
    request_id: str
    user_id: str
    input_hash: str          # 不存储原文,仅存哈希
    model: str
    tokens_in: int
    tokens_out: int
    duration_ms: int
    passed_safety_check: bool
    error_type: str | None

    def to_json(self) -> str:
        return json.dumps(asdict(self), ensure_ascii=False)

def create_audit_log(
    request_id: str,
    user_id: str,
    input: str,
    model: str,
    tokens_in: int,
    tokens_out: int,
    duration_ms: int,
    passed_safety: bool,
    error_type: str = None
) -> AuditLog:
    import hashlib
    input_hash = hashlib.sha256(input.encode()).hexdigest()[:16]

    return AuditLog(
        timestamp=datetime.utcnow().isoformat(),
        request_id=request_id,
        user_id=user_id,
        input_hash=input_hash,
        model=model,
        tokens_in=tokens_in,
        tokens_out=tokens_out,
        duration_ms=duration_ms,
        passed_safety_check=passed_safety,
        error_type=error_type
    )

角色动作卡

开发者

  • 在网关层实现输入过滤、注入检测、输出校验。
  • 为高风险调用建立审计链路,支持问题追踪。
  • 演练事故响应流程,验证降级和封禁策略有效性。

产品经理

  • 定义高风险任务白名单与黑名单。
  • 设定“必须人工复核”的业务场景。
  • 对齐法务、合规、客服的话术与升级路径。

开发者与产品经理交接件

  • 风险分级清单与对应处理策略。
  • 安全测试报告与修复状态。
  • 合规时间线对产品发布计划的影响说明。

参考来源