Indurimento dell'ambiente e sicurezza operativa

Aggiornamenti del Sistema di Base e Verifica della Firma

Ogni engagement inizia con un sistema dimostrabilemente pulito. Scaricare Kali senza verifica crittografica è sconsiderato: gli attacchi alla supply chain contro distribuzioni per penetration testing sono obiettivi di alto valore perché garantiscono accesso immediato e privilegiato agli ambienti target.

La verifica GPG dei media di installazione è non negoziabile. Dopo aver scaricato l'ISO e la sua firma staccata:

# Importa la chiave di firma di Offensive Security
wget -q -O - https://archive.kali.org/archive-key.asc | gpg --import

# Verifica la firma dell'ISO
gpg --verify kali-linux-2024.3-installer-amd64.iso.txt.sig kali-linux-2024.3-installer-amd64.iso

# Output atteso: Good signature from "Kali Linux Repository <[email protected]>"

Post-installazione, stabilisci un'infrastruttura di aggiornamento controllata. I mirror predefiniti espongono la tua cadenza di testing e possono essere sinkholed. Costruisci un mirror privato con apt-mirror o debmirror su un segmento di rete isolato, poi configura il apt pinning per prevenire aggiornamenti accidentali che rompano la compatibilità della toolchain:

# /etc/apt/apt.conf.d/99 pinning
Package: *
Pin: release o=Kali
Pin-Priority: 1001

Package: *
Pin: origin "your-private-mirror.internal"
Pin-Priority: 1100

Esegui apt update e apt upgrade solo dopo aver creato uno snapshot del tuo ambiente di lavoro. Documenta le versioni esatte dei pacchetti in scope—la deriva delle versioni tra i membri del team produce risultati incoerenti e gap sfruttabili.

Strategie di Isolamento di Rete e Configurazioni VPN/Tunnel

La tua infrastruttura di testing deve fallire in sicurezza. Un adattatore di rete mal configurato che crea un bridge verso una LAN aziendale, o peggio, una VPC cloud di produzione, trasforma la tua assessment in un esercizio di incident response.

Livelli architetturali di isolamento:

Livello Implementazione Scopo
Fisico VLAN dedicata al testing (es. VLAN 666) Separa i domini di broadcast; previene la discovery accidentale dei servizi
Virtuale Reti host-only di VMware/VirtualBox Contiene il traffico VM-to-VM; NAT opzionale per egress controllato
Trasporto Jump box WireGuard/OpenVPN Concatena giurisdizioni multiple; frustra l'attribuzione a singolo punto
Applicazione Integrazione Whonix-Gateway Trasporta tutto il traffico via Tor; essenziale per le fasi OSINT

Configurazione di una VLAN di testing isolata su uno switch gestito:

# Esempio Cisco IOS—adattalo alla tua infrastruttura
vlan 666
 name PENTEST_ISOLATED

interface GigabitEthernet0/1
 switchport mode access
 switchport access vlan 666
 spanning-tree portfast

interface GigabitEthernet0/24
 switchport mode trunk
 switchport trunk allowed vlan add 666
 description UPLINK_TO_ROUTER

Per l'integrazione Whonix-Gateway, distribuisci la VM Whonix Gateway con due adattatori di rete: NAT per la connettività Tor, e una rete interna per la tua workstation Kali. Configura l'unico adattatore di Kali per collegarsi a questa rete interna. Tutto il traffico esce tramite Tor in modo trasparente—nessuna misconfigurazione del proxy possibile, perché il gateway Whonix impone l'isolamento a livello di rete.

Le VPN jump box dedicate servono uno scopo diverso: forniscono punti di egress stabili con reputazioni IP note, impedendo al tuo ISP residenziale di blackholare l'infrastruttura target durante fasi di brute-force o scanning. Concatenale: Kali → jump box regionale → ambiente target, con ogni hop autenticato tramite certificati distinti.

Protezione dell'Host Kali Contro la Contro-Sfruttazione

Eseguire Kali come root su bare metal è conveniente—and catastroficamente pericoloso. Ogni tool che esegui eredita privilegi completi. Un payload dannoso che fugge da un'applicazione target vulnerabile tramite una shell di exploit malformata ottiene immediatamente root sulla tua macchina di assessment, esponendo i dati del cliente, le credenziali VPN e l'accesso laterale al loro ambiente.

Gerarchia di mitigazione:

  • Virtualizzazione prima di tutto: Esegui tool non affidabili all'interno di snapshot effimeri. I "Linked Clones" di VMware o KVM con virt-symlink consentono il ripristino a stati noti-puliti in meno di un minuto.

  • Controlli di accesso obbligatori: Abilita i profili AppArmor o SELinux per tool ad alto rischio come Burp Suite o runner di exploit custom. Kali distribuisce AppArmor in modalità complain; impostalo in enforce:

aa-enforce /etc/apparmor.d/usr.bin.wireshark
aa-genprof /path/to/untrusted/exploit.bin
  • Hardening del kernel: Applica configurazioni sysctl che riducono la superficie di attacco:
# /etc/sysctl.d/99-kali-hardening.conf
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
kernel.yama.ptrace_scope = 2
fs.protected_symlinks = 1
fs.protected_hardlinks = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
  • Crittografia del filesystem: La crittografia LUKS full-disk è baseline. Considera inoltre di crittografare la tua /home e /opt/engagements con passphrase distinte, smontate di default.

Gestione delle Credenziali e Protezione delle API Key

Le credenziali di assessment sono rischio concentrato. Una singola API key cloud trapelata può provisionare risorse a nome del tuo cliente, generando responsabilità irrecuperabili.

Architettura di storage stratificata:

Sensibilità Tool Ciclo di vita
Password interattive pass (Password Store) Cifrate GPG, versionate git, offline
Account di servizio, credenziali database HashiCorp Vault Lease dinamici con revoca automatica
API key cloud, chiavi private TLS PKCS#11 HSM o YubiKey Hardware-backed, non esportabili

Configurazione pratica di pass per l'isolamento dell'engagement:

# Inizializza con una sottochiave GPG per engagement
export PASSWORD_STORE_DIR=~/engagements/acme-corp-2024/.password-store
pass init "ACME Assessment Key <[email protected]>"

# Inserisci e recupera
pass insert cloud/aws-assessment-key
pass cloud/aws-assessment-key | xclip -selection clipboard  # si cancella automaticamente in 45s via timer

Per HashiCorp Vault, configura il response wrapping: il token unsealed non viene mai esposto alla cronologia della shell o alle variabili di ambiente. Richiedi il wrapping token dal tuo team lead, unwrap localmente con vincoli di utilizzo singolo, e lascia che l'audit log integrato di Vault registri ogni accesso.

Anti-pattern critico: Non committare mai file .env, stato Terraform o file di progetto Burp in repository senza git-crypt o equivalente. Hook pre-commit con truffleHog o git-secrets intercettano gli incidenti prima del push.

Workflow di Logging e Preservazione delle Evidenze

I tuoi risultati devono essere difendibili. Una macchina tester compromessa sminuisce ogni conclusione; log incompleti ti espongono ad accuse di malpractice.

La cattura automatica dei pacchetti con rotazione tcpdump preserva le evidenze di rete senza riempire i dischi:

# /etc/systemd/system/assessment-capture.service
[Unit]
Description=Rotating packet capture for assessment interface

[Service]
Type=simple
ExecStart=/bin/bash -c '\
  mkdir -p /var/log/assessments/$(date +%Y%m%d) && \
  tcpdump -i eth1 -G 3600 -W 24 -w /var/log/assessments/$(date +%Y%m%d)/capture-%H.pcap \
  -Z nobody -n "not port 22 and not host your.vpn.gateway"'
Restart=always

[Install]
WantedBy=multi-user.target

Questo cattura file per ora, ruotando ogni 24 ore con -W 24. Il filtro esclude la tua gestione SSH e il tunnel VPN—cattura quelli separatamente con regole di retention distinte.

Integrità delle evidenze: Calcola gli hash SHA-256 immediatamente al completamento della cattura, appendili a un log firmato, e replicare su media write-once o nell'evidence locker del cliente. Per procedimenti legali, mantieni un documento di chain of custody timestampato con OpenTimestamps o un'autorità di timestamping fidata.

Tensione operativa: Il logging completo è in conflitto con la sicurezza operativa. Le catture dei pacchetti contengono le tue stesse credenziali in transito se sono coinvolti TLS inspection o protocolli in plaintext. Segmenta: catture raw per i deliverable del cliente, riassunti sanificati per la tua knowledge base interna, e rigorosi schedule di cancellazione per qualsiasi cosa contenente dati di attribuzione del tester.

Il bilanciamento tra convenienza e sicurezza non è una configurazione one-time. Richiede una negoziazione continua: ogni invocazione di tool, ogni recupero di credenziale, ogni collegamento di rete è un punto decisionale dove la pigrizia si compone in responsabilità.