Hakowanie AI
Zasoby bezpieczeństwa AI

Bezpieczny rozwój sztucznej inteligencji

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

Updated: August 2026

Zasady bezpieczeństwa

1. Głęboka obrona

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

2. Najmniejsze uprawnienia

Przyznaj minimalne niezbędne uprawnienia użytkownikom, interfejsom API i komponentom AI.

3. Fail Secure

W przypadku wystąpienia błędów domyślnie wybieraj stany bezpieczne, a nie zezwalające.

4. Zero zaufania

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

Weryfikacja danych wejściowych

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

Klasa walidacji danych wejściowych

```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()
```

Lista kontrolna walidacji

  • Weryfikacja na granicy aplikacji
  • Sprawdź długość danych wejściowych
  • Dopasowanie wzorca do wstrzykiwania
  • Wykrywanie prób kodowania
  • Weryfikacja typu
  • Oczyść przed przetwarzaniem
  • Rejestruj błędy weryfikacji
  • Ograniczanie szybkości

Obsługa danych wyjściowych

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

Filtrowanie treści

  • Sprawdź, czy wrażliwe dane są narażone
  • Sprawdź, czy nie wyciekły żadne monity systemowe
  • Sprawdź format wyjściowy
  • Sprawdź, czy nie wstrzyknięto treści

Wykrywanie informacji osobistych

  • Skanowanie w poszukiwaniu danych osobowych
  • Maskuj lub redaguj wrażliwe dane
  • Zaloguj próby ujawnienia danych osobowych
  • Powiadomienie użytkownika w przypadku wykrycia

Weryfikacja formatu

  • Weryfikacja wyników JSON
  • Sprawdź oczekiwaną strukturę
  • Weryfikacja dozwolonych wartości
  • Oczyść HTML, jeśli ma to zastosowanie

Przykład procedury obsługi danych wyjściowych

```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
```

Bezpieczeństwo API

Uwierzytelnianie

  • Użyj silnego zarządzania kluczami API
  • Wdroż OAuth 2.0 tam, gdzie to możliwe
  • Weryfikacja tokenu JWT
  • Rotacja kluczy API

Autoryzacja

  • Kontrola dostępu oparta na rolach (RBAC)
  • Zakres kluczy API
  • Limity stawek na użytkownika
  • Izolacja dzierżawy

Ograniczenie szybkości

  • Limity oparte na tokenach
  • Limity oparte na żądaniach
  • Kontrola kosztów
  • Warstwowe ograniczanie przepustowości

Lista kontrolna bezpieczeństwa API

  • Używaj tylko protokołu HTTPS
  • Wdrożenie ograniczania szybkości
  • Weryfikacja wszystkich danych wejściowych
  • Wyczyść wszystkie dane wyjściowe
  • Użyj kluczy API, a nie wbudowanych
  • Wdrażaj podpisywanie żądań
  • Log API dostępu
  • Prawidłowe wdrożenie CORS

Uwierzytelnianie i autoryzacja

Uwierzytelnianie użytkownika

  • Silne zasady dotyczące haseł
  • Wsparcie MFA
  • Zarządzanie sesjami
  • Wygaśnięcie tokena

Uwierzytelnianie API

  • Zarządzanie kluczami API
  • Zakresy OAuth
  • Weryfikacja JWT
  • Rotacja kluczy

Autoryzacja

  • Wdrożenie RBAC
  • Kontrola uprawnień
  • Dostęp na poziomie zasobów
  • Rejestrowanie audytu

Bezpieczeństwo danych

Klasyfikacja danych

  • Identyfikacja wrażliwych danych
  • Kategoryzacja według wrażliwości
  • Zastosuj kontrolę według kategorii
  • Regularne audyty

Szyfrowanie

  • TLS w tranzycie
  • AES w stanie spoczynku
  • Zarządzanie kluczami
  • Rotacja kluczy

Obsługa danych osobowych

  • Wykrywanie
  • Minimalizacja
  • Zarządzanie zgodami
  • Prawo do usunięcia

Logowanie i monitorowanie

Co rejestrować

Zdarzenia związane z bezpieczeństwem

  • Próby uwierzytelnienia
  • Błędy autoryzacji
  • Przekroczono limit szybkości
  • Podejrzane wzorce

Zdarzenia specyficzne dla AI

  • Szybkie próby wstrzyknięcia
  • Dostęp natychmiastowy do systemu
  • Wywołania narzędzi
  • Dostęp do danych przez sztuczną inteligencję

Zdarzenia operacyjne

  • Wywołania API
  • Błędy i wyjątki
  • Metryki wydajności
  • Śledzenie kosztów

Monitorowanie najlepszych praktyk

  • Alerty w czasie rzeczywistym o zdarzeniach związanych z bezpieczeństwem
  • Panel wskaźników bezpieczeństwa
  • Automatyczne wykrywanie anomalii
  • Integracja z SIEM
  • Regularny przegląd dzienników
  • Zasady przechowywania

Typowe luki w zabezpieczeniach

1. IDOR w funkcjach AI

Niebezpieczne bezpośrednie odniesienie do obiektu, gdy sztuczna inteligencja uzyskuje dostęp do zasobów

Przykład

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

2. SSRF przez LLM

Fałszowanie żądań po stronie serwera Wywołania narzędzi AI

Przykład

Podpowiadaj oszukać sztuczną inteligencję, aby wysyłała żądania do usług wewnętrznych.

3. Pominięcie uwierzytelniania

Słabe lub brakujące uwierzytelnianie dla punktów końcowych AI

Przykład

Punkty końcowe interfejsu API AI bez odpowiednich kontroli uwierzytelniania.

4. Ekspozycja Vector DB

Niechroniona baza danych wektorów z wrażliwymi osadzaniami

Przykład

Publicznie dostępna baza danych wektorowych z wbudowanymi wrażliwymi danymi dane.

Zgodność

GDPR (EU)

  • Podstawa prawna przetwarzania
  • Minimalizacja danych
  • Prawo dostępu/usuwania
  • Przenośność danych

CCPA (California)

  • Prawo do wiedzy
  • Prawo do usunięcia
  • Prawo do rezygnacji
  • Zakaz dyskryminacji

Specyficzne dla AI

  • Wymagania ustawy UE o sztucznej inteligencji
  • Oceny ryzyka AI
  • Obowiązki w zakresie przejrzystości
  • Nadzór ludzki
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.