AI Hacking
Tài nguyên bảo mật AI

Phát triển AI an toàn

Complete developer guide to building secure AI applications - from input validation to deployment

Updated: August 2026

Các nguyên tắc bảo mật

1. Bảo vệ theo chiều sâu

Implement multiple layers of security controls. No single control should be relied upon exclusively.

2. Đặc quyền tối thiểu

Cấp các quyền cần thiết tối thiểu cho người dùng, API và các thành phần AI.

3. Fail Secure

Khi xảy ra lỗi, hãy mặc định ở trạng thái bảo mật thay vì trạng thái cho phép.

4. Zero Trust

Never trust, always verify. Validate at every boundary, including internal systems.

Xác thực đầu vào

All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.

Lớp xác thực đầu vào

```python
import re
from typing import Optional, List

class InputValidator:
    # Known injection patterns
    INJECTION_PATTERNS = [
        r"ignore\s+(previous|prior|all)\s+(instructions|rules)",
        r"(forget|disregard)\s+(your|all)\s+(instructions|rules)",
        r"you\s+are\s+(now|still)\s+(dan|do\s+anything)",
        r"system\s+prompt:",
        r"{{.*}}",
        r"\[INST\]|\[/INST\]|<\|end\|>",
    ]
    
    # Encoding patterns
    ENCODING_PATTERNS = [
        r"base64:",  # Base64 prefix
        r"\\x[0-9a-fA-F]{2}",  # Hex encoding
        r"%[0-9a-fA-F]{2}",  # URL encoding
    ]
    
    def validate(self, user_input: str) -> dict:
        """Validate user input for potential attacks."""
        issues = []
        
        # Length check
        if len(user_input) > 10000:
            issues.append("Input exceeds maximum length")
        
        # Check for injection patterns
        for pattern in self.INJECTION_PATTERNS:
            if re.search(pattern, user_input, re.IGNORECASE):
                issues.append(f"Suspicious pattern detected: {pattern}")
        
        # Check for encoding attempts
        for pattern in self.ENCODED_PATTERNS:
            if re.search(pattern, user_input):
                issues.append(f"Encoded content detected")
        
        # Check for high entropy (possible encoding)
        unique_chars = len(set(user_input))
        if len(user_input) > 50 and unique_chars / len(user_input) < 0.3:
            issues.append("High entropy detected - possible encoding")
        
        return {
            "valid": len(issues) == 0,
            "issues": issues,
            "sanitized": self._sanitize(user_input)
        }
    
    def _sanitize(self, user_input: str) -> str:
        """Basic sanitization."""
        # Remove control characters
        sanitized = re.sub(r'[\x00-\x1F\x7F]', '', user_input)
        return sanitized.strip()
```

Danh sách kiểm tra xác thực

  • Xác thực tại ranh giới ứng dụng
  • Kiểm tra độ dài đầu vào
  • So khớp mẫu để tiêm
  • Phát hiện các nỗ lực mã hóa
  • Xác thực loại
  • Vệ sinh trước khi xử lý
  • Lỗi xác thực nhật ký
  • Giới hạn tỷ lệ

Xử lý đầu ra

LLM outputs must be validated and sanitized before being presented to users or passed to other systems.

Lọc nội dung

  • Kiểm tra khả năng hiển thị dữ liệu nhạy cảm
  • Xác minh không có lời nhắc hệ thống nào bị rò rỉ
  • Xác thực định dạng đầu ra
  • Kiểm tra nội dung được chèn

Phát hiện PII

  • Quét thông tin cá nhân
  • Che giấu hoặc che giấu dữ liệu nhạy cảm
  • Ghi nhật ký các lần hiển thị PII
  • Thông báo cho người dùng khi được phát hiện

Xác thực định dạng

  • Xác thực kết quả đầu ra JSON
  • Kiểm tra cấu trúc dự kiến
  • Xác minh các giá trị được phép
  • Sạch hóa HTML nếu có

Ví dụ về trình xử lý đầu ra

```python
import re
import json

class OutputHandler:
    PII_PATTERNS = {
        "ssn": r"\b\d{3}-\d{2}-\d{4}\b",
        "email": r"\b[\w.-]+@[\w.-]+\.\w+\b",
        "phone": r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b",
    }
    
    def process_output(self, raw_output: str) -> dict:
        """Process and validate LLM output."""
        result = {
            "original": raw_output,
            "cleaned": raw_output,
            "warnings": [],
            "blocked": False
        }
        
        # Check for system prompt leakage
        if "system prompt" in raw_output.lower():
            result["warnings"].append("System prompt reference detected")
        
        # Scan for PII
        for pii_type, pattern in self.PII_PATTERNS.items():
            matches = re.findall(pattern, raw_output)
            if matches:
                result["warnings"].append(f"{pii_type} detected in output")
                # Optionally mask
                result["cleaned"] = re.sub(pattern, "[REDACTED]", result["cleaned"])
        
        return result
```

Bảo mật API

Xác thực

  • Sử dụng quản lý khóa API mạnh mẽ
  • Triển khai OAuth 2.0 nếu có thể
  • Xác thực mã thông báo JWT
  • Xoay vòng khóa API

Ủy quyền

  • Kiểm soát truy cập dựa trên vai trò (RBAC)
  • phạm vi khóa API
  • Giới hạn tốc độ cho mỗi người dùng
  • Cách ly đối tượng thuê

Giới hạn tỷ lệ

  • Giới hạn dựa trên mã thông báo
  • Giới hạn dựa trên yêu cầu
  • Kiểm soát chi phí
  • Điều tiết theo cấp độ

Danh sách kiểm tra bảo mật API

  • Chỉ sử dụng HTTPS
  • Giới hạn tốc độ triển khai
  • Xác thực tất cả thông tin đầu vào
  • Sạch hóa tất cả đầu ra
  • Sử dụng khóa API, không được nhúng
  • Ký yêu cầu triển khai
  • Truy cập API nhật ký
  • Triển khai CORS đúng cách

Xác thực & Ủy quyền

Xác thực người dùng

  • Chính sách mật khẩu mạnh
  • Hỗ trợ MFA
  • Quản lý phiên
  • Hết hạn mã thông báo

Xác thực API

  • Quản lý khóa API
  • Phạm vi OAuth
  • Xác thực JWT
  • Xoay khóa

Ủy quyền

  • Triển khai RBAC
  • Kiểm tra quyền
  • Quyền truy cập cấp tài nguyên
  • Ghi nhật ký kiểm tra

Bảo mật dữ liệu

Phân loại dữ liệu

  • Xác định dữ liệu nhạy cảm
  • Phân loại theo độ nhạy
  • Áp dụng các biện pháp kiểm soát theo danh mục
  • Kiểm tra thường xuyên

Mã hóa

  • TLS đang được truyền tải
  • AES ở chế độ nghỉ
  • Quản lý khóa
  • Xoay khóa

Xử lý PII

  • Phát hiện
  • Tối thiểu hóa
  • Quản lý sự đồng ý
  • Quyền xóa

Ghi nhật ký & Giám sát

Những gì cần ghi lại

Sự kiện bảo mật

  • Các nỗ lực xác thực
  • Lỗi cấp phép
  • Vượt quá giới hạn tỷ lệ
  • Các mẫu đáng ngờ

Sự kiện cụ thể AI

  • Các nỗ lực chèn nhanh
  • Truy cập nhanh chóng vào hệ thống
  • Yêu cầu công cụ
  • Truy cập dữ liệu thông qua AI

Sự kiện vận hành

  • Cuộc gọi API
  • Lỗi và ngoại lệ
  • Số liệu hiệu suất
  • Theo dõi chi phí

Giám sát các phương pháp hay nhất

  • Cảnh báo theo thời gian thực về các sự kiện bảo mật
  • Trang tổng quan về số liệu bảo mật
  • Tự động phát hiện sự bất thường
  • Tích hợp với SIEM
  • Xem xét nhật ký thường xuyên
  • Chính sách lưu giữ

Các lỗ hổng phổ biến

1. IDOR trong Tính năng AI

Tham chiếu đối tượng trực tiếp không an toàn khi AI truy cập tài nguyên

Ví dụ

User asks AI to "read file X" and AI has access without proper authorization checks.

2. SSRF thông qua LLM

Giả mạo yêu cầu phía máy chủ thông qua lệnh gọi công cụ AI

Ví dụ

Nhắc nhở AI đưa ra yêu cầu đối với các dịch vụ nội bộ.

3. Bỏ qua xác thực

Xác thực yếu hoặc thiếu cho các điểm cuối AI

Ví dụ

Các điểm cuối API AI mà không có kiểm tra xác thực thích hợp.

4. Tiếp xúc với Vector DB

Cơ sở dữ liệu vectơ không được bảo vệ với các phần nhúng nhạy cảm

Ví dụ

DB vector có thể truy cập công khai với dữ liệu nhạy cảm được nhúng.

Tuân thủ

GDPR (EU)

  • Cơ sở hợp pháp để xử lý
  • Giảm thiểu dữ liệu
  • Quyền truy cập/xóa
  • Khả năng di chuyển dữ liệu

CCPA (California)

  • Quyền được biết
  • Quyền xóa
  • Quyền chọn không tham gia
  • Không phân biệt đối xử

AI-Specific

  • Các yêu cầu của Đạo luật AI của EU
  • Đánh giá rủi ro AI
  • Nghĩa vụ minh bạch
  • Giám sát của con người
AH
AI Hacking Team

The AI Hacking team researches and documents AI/LLM security vulnerabilities, red teaming techniques, and defensive strategies. Our guides are based on real-world pentesting experience and continuous monitoring of the AI security landscape.

Stay Ahead of AI Security

Get the latest AI/LLM security research, OWASP updates, and new vulnerabilities delivered straight to your inbox.