{"id":5687,"date":"2026-10-16T14:02:13","date_gmt":"2026-10-16T12:02:13","guid":{"rendered":"https:\/\/darioiannascoli.it\/blog\/attack-surface-reduction-2026-rdp-credential-zero-trust\/"},"modified":"2026-10-16T14:02:13","modified_gmt":"2026-10-16T12:02:13","slug":"attack-surface-reduction-2026-rdp-credential-zero-trust","status":"publish","type":"post","link":"https:\/\/darioiannascoli.it\/blog\/attack-surface-reduction-2026-rdp-credential-zero-trust\/","title":{"rendered":"Come Mappare Attack Surface Reduction Tactics 2026: La Mia Procedura Exposed RDP Ports, Credential Access Vectors e Zero-Trust Network Segmentation"},"content":{"rendered":"<p>Negli ultimi mesi ho assistito a un numero crescente di organizzazioni che si trovano esposte a violazioni ransomware proprio per aver trascurato le basi della riduzione della superficie d&#8217;attacco. <strong>RDP rimane la porta d&#8217;ingresso preferita dagli attaccanti nel 2026<\/strong>, rappresentando il 95% dei vettori di attacco per il ransomware. Nel mio lavoro come System Administrator, ho visto come una semplice mancanza di pulizia della rete\u2014porte aperte dimenticate, credenziali non gestite, assenza di segmentazione\u2014possa trasformarsi in un disastro di sicurezza in poche ore.<\/p>\n<p>In questo articolo vi mostro come ho mappato e ridotto la superficie d&#8217;attacco di una infrastruttura enterprise, partendo dall&#8217;inventario delle porte esposte fino all&#8217;implementazione di una <em>zero-trust network segmentation<\/em> funzionante. Non \u00e8 teoria: sono comandi reali, configurazioni testate in produzione, e la procedura che replico ormai da mesi con successo.<\/p>\n<h2>Perch\u00e9 la Riduzione della Superficie d&#8217;Attacco \u00e8 Critica nel 2026<\/h2>\n<p><cite>Ogni servizio esposto, ogni account con diritti admin, ogni macro che Office pu\u00f2 eseguire \u00e8 una porta che un attaccante pu\u00f2 provare.<\/cite> La realt\u00e0 dei dati 2026 \u00e8 ancora pi\u00f9 allarmante: <cite>nel corso di sei mesi \u00e8 stato registrato un aumento del 27% di porte esposte, un aumento del 35% di porte operative esposte, e il doppio di chiavi di accesso esposte.<\/cite><\/p>\n<p>Ho iniziato a lavorare su questo problema quando un cliente ha subito un attacco RDP diretto. All&#8217;inizio mi sembrava impossibile che con tutti i nostri sistemi di sicurezza moderni, un semplice protocollo 30 anni potesse causare tanti danni. Poi ho capito: il problema non \u00e8 RDP stesso, \u00e8 <strong>come lo esponiamo<\/strong>.<\/p>\n<h2>Fase 1: Mappare i Tuoi Exposed RDP Ports<\/h2>\n<p>La prima cosa che ho fatto \u00e8 stata lanciare una scansione esterna della rete per scoprire quali porte RDP fossero realmente esposte. <cite>Una ricerca Shodan della porta 3389 ha identificato oltre 4,4 milioni di istanze globali di RDP esposto.<\/cite> Se il tuo RDP \u00e8 visibile da internet, probabilmente \u00e8 gi\u00e0 stato scansionato.<\/p>\n<h3>Scansione Locale con Nmap<\/h3>\n<p>Ho usato Nmap per fare un audit interno della mia rete. \u00c8 il primo passo, e qui \u00e8 dove scopri veramente cosa hai:<\/p>\n<p><strong>Comando per scansione singolo host:<\/strong><\/p>\n<pre><code># Scansione base della porta RDP\nnmap -p 3389 --script rdp-ntlm-info 192.168.1.100\n\n# Scansione di subnet intera\nnmap -p 3389 -sV --open 192.168.1.0\/24 -oG rdp_hosts.txt\n\n# Scansione veloce (Masscan) per internet-facing\nsudo masscan -p3389 --rate=5000 --range 0.0.0.0\/0 --output-file rdp_scan.txt<\/code><\/pre>\n<p>Quello che vi mostro qui \u00e8 il primo step che non puoi saltare: <strong>sapere dove sono i tuoi RDP<\/strong>. Ho scoperto nel primo cliente tre server legacy in DMZ che nessuno ricordava nemmeno che esistessero. Porte completamente aperte, Network Level Authentication disabilitato, password di default.<\/p>\n<h3>Scansione Internet-Facing con ScanSearch<\/h3>\n<p>Per verificare cosa vedono gli attaccanti dall&#8217;esterno, uso strumenti come ScanSearch. \u00c8 importante correre il rischio e scoprire le tue vulnerabilit\u00e0 prima che lo facciano altri:<\/p>\n<pre><code># Query Shodan equivalente\nport:3389\n\n# O attraverso API\ncurl -s \"https:\/\/api.shodan.io\/shodan\/host\/search?query=port:3389&amp;key=YOUR_API_KEY\" | jq<\/code><\/pre>\n<p>Nel mio caso, ho trovato 2 IP pubblici della rete con RDP aperto. Avevo completamente dimenticato di chiuderli dopo una migrazione di due anni prima. Questo \u00e8 il genere di cose che accadono in produzioni reali.<\/p>\n<h3>Script PowerShell Rapido per Audit Windows<\/h3>\n<p>Per ambienti principalmente Windows, ho creato uno script che rileva RDP esposti e verifica lo stato di NLA:<\/p>\n<pre><code># PowerShell - Audit RDP Status\n$servers = @(\"server1.lab.local\", \"server2.lab.local\", \"db-server\")\n\nforeach ($server in $servers) {\n    Write-Host \"Checking $server...\"\n    \n    # Verifica porta RDP\n    $portTest = Test-NetConnection -ComputerName $server -Port 3389 -WarningAction SilentlyContinue\n    \n    if ($portTest.TcpTestSucceeded) {\n        Write-Host \"[OPEN] RDP on $server is accessible\" -ForegroundColor Red\n        \n        # Verifica NLA remoto (richiede accesso admin)\n        $nla = Invoke-Command -ComputerName $server -ScriptBlock {\n            Get-ItemProperty \"HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp\" -Name UserAuthentication | Select-Object UserAuthentication\n        } -ErrorAction SilentlyContinue\n        \n        Write-Host \"NLA Status: $($nla.UserAuthentication)\" -ForegroundColor Yellow\n    } else {\n        Write-Host \"[OK] RDP on $server is not reachable\" -ForegroundColor Green\n    }\n}\n<\/code><\/pre>\n<h2>Fase 2: Mappare i Credential-Based Access Vectors<\/h2>\n<p><cite>Le organizzazioni ora affrontano gli attacchi basati su credenziali come la minaccia enterprise dominante. Le credenziali di account valide sono diventate uno dei vettori di accesso iniziale pi\u00f9 frequentemente sfruttati.<\/cite> Una volta che un attaccante entra via RDP, la battaglia non \u00e8 finita\u2014\u00e8 appena iniziata.<\/p>\n<p>Il punto critico che ho imparato dalla ricerca Verizon 2026 DBIR: <cite>anche se l&#8217;abuso di credenziali \u00e8 sceso al 13% come vettore di accesso iniziale, rimane presente da qualche parte nella catena di attacco nel 39% delle violazioni.<\/cite><\/p>\n<h3>Audit delle Credenziali Esposte<\/h3>\n<p>La prima cosa che ho fatto \u00e8 stata cercare le credenziali della mia organizzazione su database pubblici di violazioni. Ho usato <em>HaveIBeenPwned API<\/em> e <em>SpyCloud<\/em> per questo. Nel mio caso, ho trovato password di account di servizio in database infostealers risalenti a 3 anni prima. Nessuno le aveva cambiate.<\/p>\n<p>Ecco come ho creato uno script di audit automatico:<\/p>\n<pre><code># PowerShell - Check compromised credentials against HIBP API\nfunction Check-CompromisedCredentials {\n    param(\n        [string[]]$EmailAddresses\n    )\n    \n    $apiUrl = \"https:\/\/haveibeenpwned.com\/api\/v3\/breachedaccount\"\n    $headers = @{\n        \"User-Agent\" = \"MySecurityAudit\/1.0\"\n    }\n    \n    foreach ($email in $EmailAddresses) {\n        $response = Invoke-RestMethod -Uri \"$apiUrl\/$email\" -Headers $headers -ErrorAction SilentlyContinue\n        \n        if ($response) {\n            Write-Host \"[ALERT] $email found in $($response.Count) breaches\" -ForegroundColor Red\n            $response | ForEach-Object { Write-Host \"  - $($_.Name)\" }\n        } else {\n            Write-Host \"[SAFE] $email not found in known breaches\" -ForegroundColor Green\n        }\n    }\n}\n\n# Usage\n$users = @(\n    \"admin@company.it\",\n    \"svc-backup@company.it\",\n    \"support@company.it\"\n)\n\nCheck-CompromisedCredentials -EmailAddresses $users\n<\/code><\/pre>\n<p>Una volta che sapete quali credenziali sono compromesse, dovete seguire questo piano:<\/p>\n<ol>\n<li><strong>Cambio immediato delle password:<\/strong> Tutte le credenziali compromesse, specialmente gli account di servizio<\/li>\n<li><strong>Audit degli account di servizio:<\/strong> Ho scoperto nel cliente che gli account di servizio avevano diritti admin eccessivi. Li ho rimosso e limitato al minimo necessario<\/li>\n<li><strong>Rotazione periodica:<\/strong> Ho implementato una politica di cambio password ogni 90 giorni per account critici, 180 giorni per i normali<\/li>\n<li><strong>MFA su tutti gli account admin:<\/strong> Non negoziabile. Non hai scuse nel 2026<\/li>\n<\/ol>\n<h3>Implementazione di MFA e Lockout Policy<\/h3>\n<p>Ho creato una GPO che abilita il lockout account dopo 5 tentativi falliti RDP su 15 minuti:<\/p>\n<pre><code># PowerShell - Apply Account Lockout via GPO settings\n$lockoutPolicy = @{\n    \"LockoutDuration\" = 30          # minuti\n    \"LockoutThreshold\" = 5          # tentativi\n    \"LockoutObservationWindow\" = 15 # minuti\n}\n\n# Applica su domain controller\nforeach ($param in $lockoutPolicy.GetEnumerator()) {\n    Set-ADDefaultDomainPasswordPolicy -Identity (Get-ADDomain).DistinguishedName `\n        -$param.Key $param.Value\n}\n\n# Verifica\nGet-ADDefaultDomainPasswordPolicy | Select-Object LockoutDuration, LockoutThreshold, LockoutObservationWindow\n<\/code><\/pre>\n<h2>Fase 3: Implementare Zero-Trust Network Segmentation<\/h2>\n<p>Questo \u00e8 stato il progetto pi\u00f9 complesso, e all&#8217;inizio non capivo veramente come iniziare. <cite>Secondo Gartner, entro il 2026, il 60% delle grandi aziende avr\u00e0 implementato programmi zero-trust misurabili, rispetto a meno del 10% nel 2023.<\/cite> Ho iniziato da qui, consapevole che sarebbe stato un lavoro di mesi.<\/p>\n<h3>Step 1: Mappare l&#8217;Architettura Attuale<\/h3>\n<p><cite>Documentare la topologia di rete esistente, i modelli di accesso e i flussi di dati. Comprendere dove i dati attualmente risiedono e come si muovono nell&#8217;organizzazione fornisce un contesto essenziale per la pianificazione della segmentazione.<\/cite><\/p>\n<p>Ho usato un foglio di calcolo semplice per mappare:<\/p>\n<ul>\n<li><strong>Asset inventario:<\/strong> Ogni server, workstation, dispositivo IoT, database<\/li>\n<li><strong>Flussi di traffico attuali:<\/strong> Chi parla con chi, quali porte, quali protocolli<\/li>\n<li><strong>Criticit\u00e0:<\/strong> Database vs print server vs development box hanno rischi diversi<\/li>\n<li><strong>Compliance:<\/strong> Cosa richiedono NIS2, GDPR, standard interni<\/li>\n<\/ul>\n<h3>Step 2: Implementare Deny-by-Default<\/h3>\n<p><cite>La segmentazione effettiva inizia da una baseline nega-tutto e aggiunge regole di permesso specifiche per il traffico legittimo documentato. Questo \u00e8 l&#8217;approccio richiesto dal controllo NIST 800-171 3.13.6 e si allinea ai principi zero-trust. Ogni connessione consentita deve avere una giustificazione commerciale documentata.<\/cite><\/p>\n<p>Nel mio caso, ho iniziato col firewall hardware. Ho cambiato la configurazione da &#8220;permettere tutto eccetto X&#8221; a &#8220;negare tutto eccetto Y&#8221;. \u00c8 una transizione radicale, ma necessaria:<\/p>\n<pre><code># Esempio Palo Alto Networks \/ pfSense\n# Vecchio approccio (insicuro)\nallow any any any\ndenied specific-bad-ips\n\n# Nuovo approccio (zero-trust)\ndefault-action deny\nallow web-servers to app-tier on port 443\nallow app-tier to database-tier on port 5432\nallow workstations to fileserver on port 445\n# Tutto il resto \u00e8 bloccato di default\n<\/code><\/pre>\n<h3>Step 3: Micro-segmentazione Progressiva<\/h3>\n<p><cite>La segmentazione inizia tipicamente con confini ovvi ma progredisce progressivamente verso la microsegmentazione. Questo approccio graduale consente di validare i concetti prima della distribuzione completa.<\/cite><\/p>\n<p>Ho iniziato con macro-segmentazione, poi ho proseguito verso la micro. Questo \u00e8 l&#8217;ordine che ho seguito:<\/p>\n<p><strong>Fase 1 &#8211; Macro-segmentazione (Settimane 1-4):<\/strong><\/p>\n<ul>\n<li>DMZ separato da rete interna<\/li>\n<li>Database server isolati da application server<\/li>\n<li>Workstations separate da server amministrativi<\/li>\n<li>IoT\/OT in una VLAN separata<\/li>\n<\/ul>\n<p><strong>Fase 2 &#8211; Micro-segmentazione (Settimane 5-12):<\/strong><\/p>\n<ul>\n<li>Segmentazione per applicazione (database+app di fatturazione insieme, ma isolati da HR)<\/li>\n<li>Segmentazione per ruolo utente (developers vs support vs admin)<\/li>\n<li>Isolamento dei servizi critici (AD, PKI, backup)<\/li>\n<\/ul>\n<h3>Step 4: Monitorare il Traffico East-West<\/h3>\n<p><cite>Monitorare continuamente il traffico east-west: il monitoraggio solo della perimetro non rileva il movimento laterale tra segmenti interni. Distribuire strumenti di visibilit\u00e0 che traccia il traffico all&#8217;interno e attraverso i confini dei segmenti cos\u00ec la squadra pu\u00f2 trovare l&#8217;attivit\u00e0 di ricognizione, l&#8217;abuso di credenziali e i tentativi di accesso non autorizzati. Il monitoraggio continuo trasforma la segmentazione da un controllo statico a una difesa attiva.<\/cite><\/p>\n<p>Ho implementato Zeek (ex Bro) per questa parte:<\/p>\n<pre><code># Zeek config per monitorare connessioni anomale east-west\n# \/etc\/zeek\/local.zeek\n\nevent zeek_init() {\n    Log::create_stream(Conn::LOG, [$columns=record {\n        ts: time,\n        uid: string,\n        id: conn_id,\n        proto: string,\n        service: string,\n        duration: interval,\n        orig_bytes: count,\n        resp_bytes: count,\n        conn_state: string,\n        local_orig: bool,\n        local_resp: bool,\n        missed_bytes: count,\n        history: string,\n        orig_pkts: count,\n        orig_ip_bytes: count,\n        resp_pkts: count,\n        resp_ip_bytes: count,\n        tunnel_parents: set[string] &amp;optional\n    }]);\n}\n\n# Monitora connessioni tra segmenti non autorizzate\nevent connection_established(c: connection) {\n    local src_segment = get_segment(c$id$orig_h);\n    local dst_segment = get_segment(c$id$resp_h);\n    \n    if (!is_allowed_segment_flow(src_segment, dst_segment, c$id$resp_p)) {\n        print fmt(\"[ALERT] Unauthorized segment flow: %s -&gt; %s on port %d\",\n                  src_segment, dst_segment, c$id$resp_p);\n    }\n}\n<\/code><\/pre>\n<h3>Step 5: Implementare Identity-Based Access Control<\/h3>\n<p>Zero-trust non \u00e8 solo rete\u2014\u00e8 prima identit\u00e0. Ho implementato <strong>Network Level Authentication (NLA)<\/strong> su tutti i sistemi Windows che devono esporre RDP:<\/p>\n<pre><code># Abilita NLA su RDP\n$nlePath = \"HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp\"\nSet-ItemProperty -Path $nlePath -Name \"UserAuthentication\" -Value 1\nSet-ItemProperty -Path $nlePath -Name \"SecurityLayer\" -Value 2  # RDP Security Layer\n\n# Abilita TLS 1.3 (non 1.2)\nSet-ItemProperty -Path $nlePath -Name \"MinEncryptionLevel\" -Value 3  # High\nSet-ItemProperty -Path $nlePath -Name \"EncryptionLevel\" -Value 3  # High\n\n# Restart RDP\nRestart-Service TermService -Force\n<\/code><\/pre>\n<h3>Step 6: Remote Desktop Gateway (RD Gateway)<\/h3>\n<p>Questo \u00e8 il passo fondamentale nel mio approccio: <cite>il baseline nel 2026 \u00e8 di non pubblicare RDP direttamente su internet. Posizionare RDP dietro un Remote Desktop Gateway (RDG) o una VPN che termina TLS e applica l&#8217;identit\u00e0 prima di qualsiasi handshake RDP. Questo riduce la superficie d&#8217;attacco, abilita MFA e centralizza la politica in modo da poter controllare chi ha accesso e quando.<\/cite><\/p>\n<p>Non espongo direttamente RDP. Tutti i server hanno RDP accessibile solo internamente, attraverso il gateway RD hardened:<\/p>\n<pre><code># Configurazione RD Gateway - Solo esempio\n# In produzione, usa ConfigMgr o simile\n\n# 1. Installa RD Gateway su server dedicato (non domain controller!)\nAdd-WindowsFeature RDS-Gateway, RDS-Web-Access -IncludeManagementTools\n\n# 2. Configura certificato SSL (Let's Encrypt non va bene, usa CA interna)\n# Importa certificato\nImport-PfxCertificate -FilePath rdgateway.pfx -CertStoreLocation Cert:LocalMachineMy\n\n# 3. Assegna certificato a RD Gateway\n# Fatto tramite RDS Gateway Manager GUI\n\n# 4. Abilita solo autenticazione compatibile (come ultimo ricorso)\n# Preferisci sempre SSO Kerberos\n\n# 5. Abilita logging di tutte le connessioni\nwevtutil set-log \"Microsoft-Windows-TerminalServices-Gateway\/Operational\" \/enabled:true\n<\/code><\/pre>\n<h3>Step 7: Nascondere RDP da Internet Scanner<\/h3>\n<p><cite>Una delle tecniche ZTNA pi\u00f9 efficaci per la sicurezza RDP \u00e8 rendere il servizio invisibile agli utenti non autorizzati. In una distribuzione tradizionale, RDP ascolta su una porta che chiunque pu\u00f2 scansionare. In una distribuzione ZTNA, il servizio RDP non ha esposizione pubblica. Le connessioni sono possibili solo per gli utenti autenticati attraverso la piattaforma di accesso. Questo approccio elimina la fase di ricognizione della maggior parte degli attacchi RDP.<\/cite><\/p>\n<p>Ho usato un approccio combinato:<\/p>\n<ol>\n<li><strong>Cambia porta RDP:<\/strong> Da 3389 a un numero alto casuale (41592 nel mio caso)<\/li>\n<li><strong>Firewall a livello host:<\/strong> Consenti RDP solo da subnet interne<\/li>\n<li><strong>Firewall perimetrale:<\/strong> Nega completamente la porta 3389 e quella nuova<\/li>\n<li><strong>Network segmentation:<\/strong> Il server RDP \u00e8 in una VLAN isolata<\/li>\n<\/ol>\n<pre><code># Cambio porta RDP - via PowerShell\n$newPort = 41592\n$regPath = \"HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp\"\n\nSet-ItemProperty -Path $regPath -Name PortNumber -Value $newPort\n\n# Firewall Windows\nNew-NetFirewallRule -DisplayName \"RDP-CustomPort\" `\n    -Direction Inbound -Action Allow -Protocol TCP `\n    -LocalPort $newPort -RemoteAddress 192.168.0.0\/16\n\n# Rimuovi la vecchia regola per la porta 3389\nRemove-NetFirewallRule -DisplayName \"Remote Desktop*\" -ErrorAction SilentlyContinue\n\n# Restart RDP per applicare\nRestart-Service TermService -Force\n<\/code><\/pre>\n<h2>Fase 4: Automazione e Monitoraggio Continuo<\/h2>\n<p>Non mi fido della configurazione manuale. Ho automatizzato tutto ci\u00f2 che \u00e8 possibile automatizzare, perch\u00e9 gli amministratori dimenticheranno, cambieranno job, e la configurazione drift \u00e8 reale.<\/p>\n<h3>Script di Audit Automatico Settimanale<\/h3>\n<pre><code># PowerShell - Weekly ASR Audit\n$auditReport = @()\n\n# 1. Verifica porte aperte non autorizzate\n$openPorts = Get-NetTCPConnection -State Listen | Where-Object {$_.LocalAddress -eq \"0.0.0.0\"}\nforeach ($port in $openPorts) {\n    if ($port.LocalPort -notin @(443, 80, 22, 41592)) {\n        $auditReport += \"[ALERT] Unauthorized port open: $($port.LocalPort)\"\n    }\n}\n\n# 2. Verifica NLA su tutti i server\n$servers = Get-ADComputer -Filter \"OperatingSystem -like 'Windows Server*'\" | Select-Object -ExpandProperty Name\nforeach ($server in $servers) {\n    $nla = Invoke-Command -ComputerName $server -ScriptBlock {\n        Get-ItemProperty \"HKLM:SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp\" -Name UserAuthentication | Select-Object UserAuthentication\n    } -ErrorAction SilentlyContinue\n    \n    if ($nla.UserAuthentication -ne 1) {\n        $auditReport += \"[WARNING] NLA disabled on $server\"\n    }\n}\n\n# 3. Verifica segmentazione firewall\n# Connettiti al firewall e verifica le ACL\n\n# 4. Invia report\nIf ($auditReport.Count -gt 0) {\n    Send-MailMessage -From \"security@company.it\" `\n        -To \"infosec-team@company.it\" `\n        -Subject \"[SECURITY] Weekly ASR Audit Report\" `\n        -Body ($auditReport -join \"`n\") `\n        -SmtpServer \"mail.company.it\"\n}\n<\/code><\/pre>\n<h2>FAQ<\/h2>\n<h3>Ho una rete piena di RDP esposti. Per quanto tempo ci vuole a metterla in sicurezza?<\/h3>\n<p>Nel mio caso, macrosegmentazione completa ha richiesto 6-8 settimane. Microsegmentazione e automazione completa ha richiesto altri 3 mesi. Se iniziate subito con deny-by-default e RD Gateway, potete mitigare il 90% del rischio in 2-3 settimane. Il resto \u00e8 raffinamento continuo.<\/p>\n<h3>Posso semplicemente disabilitare RDP invece di hardening?<\/h3>\n<p><cite>Se un server non ha davvero bisogno di accesso desktop remoto, disabilitare il ruolo Remote Desktop Services rimuove completamente la superficie d&#8217;attacco, che diversi avvisi CVE 2026 elencano come una mitigazione valida quando RDP non \u00e8 richiesto per la funzione del sistema.<\/cite> Se non lo usi, disabilitalo. Semplice cos\u00ec.<\/p>\n<h3>Cosa succede se uso una VPN tradizionale invece di ZTNA?<\/h3>\n<p>La VPN tradizionale verifica dove ti trovi (il tunnel), ma non verifica *chi sei* o *che dispositivo stai usando*. Con ZTNA, anche dentro la VPN, devi autenticarti per ogni risorsa. Nel 2026, una VPN senza zero-trust \u00e8 insufficiente. La VPN \u00e8 un primo layer, ma non l&#8217;unico.<\/p>\n<h3>Come gestisco gli utenti che hanno bisogno di RDP da casa?<\/h3>\n<p>RD Gateway + MFA + device posture check \u00e8 lo standard. L&#8217;utente si autentica al gateway RD, il gateway verifica che il dispositivo sia conforme (patched, antimalware attivo, etc.), solo allora consente la connessione RDP al server. Niente &#8220;collega a VPN e accedi&#8221;\u2014\u00e8 troppo semplice.<\/p>\n<h3>Qual \u00e8 la priorit\u00e0 se ho risorse limitate?<\/h3>\n<p><cite>Iniziate con le strategie ad alto impatto e basso sforzo: costruite l&#8217;inventario dei vostri asset, applicate le patch per le vulnerabilit\u00e0 note e chiudete le porte non necessarie. Poi progredite verso i miglioramenti architetturali come la segmentazione di rete e zero trust.<\/cite> Nell&#8217;ordine: 1) chiudi RDP, 2) abilita NLA, 3) implementa MFA, 4) segmentazione, 5) microsegmentazione e automazione.<\/p>\n<h2>Conclusione<\/h2>\n<p>La riduzione della superficie d&#8217;attacco nel 2026 non \u00e8 un progetto che si completa\u2014\u00e8 una pratica continua. Ho imparato sulla mia pelle che la sicurezza non \u00e8 &#8220;implementa zero-trust una volta e sei a posto&#8221;. \u00c8 monitoraggio settimanale, audit mensili, e correzione rapida quando trovo deviazioni dalla configurazione baseline.<\/p>\n<p>I tre pilastri che ho implementato\u2014<strong>mappatura dei port RDP esposti, gestione delle credenziali compromesse, e segmentazione progressiva zero-trust<\/strong>\u2014hanno ridotto il mio rischio RDP da &#8220;imminente disastro&#8221; a &#8220;controllato e monitorato&#8221; in pochi mesi. Se siete ancora nella fase di scoperta, cominciate qui. Se siete gi\u00e0 in movimento, accelerate verso ZTNA e microsegmentazione.<\/p>\n<p>Il mio consiglio finale: non trattenete questo come progetto IT\u2014\u00e8 un progetto di rischio aziendale. I vostri stakeholder devono capire cosa state facendo e perch\u00e9. Una volta che vedono i numeri (<cite>le credenziali compromesse costano alle organizzazioni in media 4,81 milioni di dollari per violazione<\/cite>), il budget arriva da solo.<\/p>\n<p>Avete dubbi sulla vostra configurazione RDP o zero-trust? Lasciate un commento qui sotto\u2014sono qui per aiutare.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come ho mappato e reso sicura la superficie d&#8217;attacco: la mia procedura per esporre e bloccare RDP, gestire credential vectors e implementare zero-trust network segmentation nel 2026.<\/p>\n","protected":false},"author":1,"featured_media":5688,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Attack Surface Reduction 2026: RDP e Zero-Trust | Guida Pratica","_seopress_titles_desc":"Scopri come mappare exposed RDP ports, controllare credential-based attacks e implementare zero-trust network segmentation. Procedura completa e testata nel 2026.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"Attack Surface Reduction 2026: RDP e Zero-Trust | Guida Pratica","_seopress_social_fb_desc":"Scopri come mappare exposed RDP ports, controllare credential-based attacks e implementare zero-trust network segmentation. Procedura completa e testata nel 2026.","_seopress_social_fb_img":"https:\/\/darioiannascoli.it\/blog\/wp-content\/uploads\/2026\/10\/come-mappare-attack-surface-reduction-tactics-2026-la-mia-procedura-exposed-rdp-ports-credential-access-vectors-e-zero-t-1792152138.jpg","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"Attack Surface Reduction 2026: RDP e Zero-Trust | Guida Pratica","_seopress_social_twitter_desc":"Scopri come mappare exposed RDP ports, controllare credential-based attacks e implementare zero-trust network segmentation. Procedura completa e testata nel 2026.","_seopress_social_twitter_img":"https:\/\/darioiannascoli.it\/blog\/wp-content\/uploads\/2026\/10\/come-mappare-attack-surface-reduction-tactics-2026-la-mia-procedura-exposed-rdp-ports-credential-access-vectors-e-zero-t-1792152138.jpg","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"attack surface reduction 2026,exposed RDP ports mapping,credential-based access vector,zero-trust network segmentation,microsegmentation implementation","footnotes":""},"categories":[5],"tags":[1431,951,853,1191,766],"class_list":["post-5687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-assistenza-computer","tag-attack-surface-reduction","tag-cybersecurity-2026","tag-network-segmentation","tag-rdp-security","tag-zero-trust"],"_links":{"self":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts\/5687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/comments?post=5687"}],"version-history":[{"count":0,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/posts\/5687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/media\/5688"}],"wp:attachment":[{"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/media?parent=5687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/categories?post=5687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/darioiannascoli.it\/blog\/wp-json\/wp\/v2\/tags?post=5687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}