AI Hacking
Risorse per la sicurezza AI

Sviluppo sicuro dell'intelligenza artificiale

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

Updated: August 2026

Principi di sicurezza

1. Difesa approfondita

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

2. Privilegio minimo

Concedi le autorizzazioni minime necessarie a utenti, API e componenti AI.

3. Fail Secure

Quando si verificano errori, imposta per impostazione predefinita stati protetti anziché permissivi.

4. Zero Trust

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

Convalida dell'input

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

Classe di convalida dell'input

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

Elenco di controllo della convalida

  • Convalida al limite dell'applicazione
  • Controlla la lunghezza dell'input
  • Pattern match per l'iniezione
  • Rileva tentativi di codifica
  • Convalida del tipo
  • Disinfettazione prima dell'elaborazione
  • Registra errori di convalida
  • Limitazione della velocità

Gestione dell'output

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

Filtro dei contenuti

  • Verifica dell'esposizione di dati sensibili
  • Verifica che non siano trapelati messaggi di sistema
  • Convalida il formato di output
  • Verifica la presenza di contenuti inseriti

Rilevamento PII

  • Scansiona informazioni personali
  • Mascherare o oscurare dati sensibili
  • Registra tentativi di esposizione PII
  • Notifica all'utente quando rilevato

Convalida del formato

  • Convalida degli output JSON
  • Controllare la struttura prevista
  • Verifica dei valori consentiti
  • Disinfettare l'HTML se applicabile

Esempio di gestore dell'output

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

Sicurezza API

Autenticazione

  • Utilizza una solida gestione delle chiavi API
  • Implementare OAuth 2.0 ove possibile
  • Convalida token JWT
  • Rotazione delle chiavi API

Autorizzazione

  • Controllo degli accessi basato sui ruoli (RBAC)
  • Ambito chiave API
  • Limiti di velocità per utente
  • Isolamento del tenant

Limitazione della velocità

  • Limiti basati su token
  • Limiti basati su richiesta
  • Controllo dei costi
  • Limitazione a più livelli

Elenco di controllo per la sicurezza API

  • Utilizza solo HTTPS
  • Implementa limitazioni della velocità
  • Convalidare tutti gli input
  • Disinfetta tutti gli output
  • Utilizza chiavi API, non integrate
  • Implementa la firma delle richieste
  • Accesso API registro
  • Implementa CORS correttamente

Autenticazione e autorizzazione

Autenticazione utente

  • Politiche di password efficaci
  • Supporto MFA
  • Gestione delle sessioni
  • Scadenza token

Autenticazione API

  • Gestione delle chiavi API
  • Ambiti OAuth
  • Convalida JWT
  • Rotazione delle chiavi

Autorizzazione

  • Implementazione RBAC
  • Controlli delle autorizzazioni
  • Accesso a livello di risorsa
  • Logging di controllo

Sicurezza dei dati

Classificazione dei dati

  • Identificare i dati sensibili
  • Categorizza in base alla sensibilità
  • Applica controlli per categoria
  • Controlli regolari

Crittografia

  • TLS in transito
  • AES at rest
  • Gestione delle chiavi
  • Rotazione delle chiavi

Gestione delle PII

  • Rilevamento
  • Minimizzazione
  • Gestione del consenso
  • Diritto all'eliminazione

Logging e monitoraggio

Che cosa registrare

Eventi di sicurezza

  • Tentativi di autenticazione
  • Errori di autorizzazione
  • Limite di velocità superato
  • Modelli sospetti

Eventi specifici dell'intelligenza artificiale

  • Tentativi di inserimento rapidi
  • Accesso rapido al sistema
  • Invocazioni di strumenti
  • Accesso ai dati tramite AI

Eventi operativi

  • Chiamate API
  • Errori ed eccezioni
  • Metriche delle prestazioni
  • Tracciamento dei costi

Best practice per il monitoraggio

  • Avvisi in tempo reale per eventi di sicurezza
  • Dashboard per metriche di sicurezza
  • Rilevamento automatico delle anomalie
  • Integrazione con SIEM
  • Revisione regolare del registro
  • Politiche di conservazione

Vulnerabilità comuni

1. IDOR nelle funzionalità AI

Riferimento diretto agli oggetti non sicuro quando l'intelligenza artificiale accede alle risorse

Esempio

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

2. SSRF tramite LLM

Falsi di richieste lato server tramite chiamate allo strumento AI

Esempio

Il prompt induce l'IA a effettuare richieste ai servizi interni.

3. Bypass dell'autenticazione

Autenticazione debole o mancante per endpoint AI

Esempio

Endpoint API AI senza controlli di autenticazione adeguati.

4. Esposizione al DB vettoriale

Database vettoriale non protetto con incorporamenti sensibili

Esempio

DB vettoriale accessibile al pubblico con dati sensibili incorporati.

Conformità

GDPR (EU)

  • Base legale per l'elaborazione
  • Minimizzazione dei dati
  • Diritto di accesso/cancellazione
  • Portabilità dei dati

CCPA (California)

  • Diritto di sapere
  • Diritto di eliminare
  • Diritto di opt-out
  • Non discriminazione

Specifico per AI

  • Requisiti della legge sull'intelligenza artificiale dell'UE
  • Valutazioni dei rischi IA
  • Obblighi di trasparenza
  • Supervisione umana
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.