Punti chiave
- Conosci le tue fonti di log: Windows registra l’attività RDP nei log di sicurezza, nei log operativi TerminalServices-LocalSessionManager e nei log operativi TerminalServices-RemoteConnectionManager.
- Utilizza gli ID evento corretti: 1149 (connessione di rete), 4624/4625 (accesso riuscito/fallito), 21–25, 39 e 40 (ciclo di vita della sessione) e 4778/4779 (riconnessione/disconnessione).
- Esportazioni di script con Get-WinEvent: Utilizza il comando “Get-WinEvent” di PowerShell con l’opzione “-FilterHashtable” per estrarre ed esportare in formato CSV gli eventi RDP dai log di sicurezza, LSM e RCM.
- Crea cronologie delle sessioni mettendo in relazione gli eventi: Abbina l’evento 1149 all’evento 4624 (con una tolleranza di ±1 minuto) per associare una connessione a un utente autenticato e a un indirizzo IP di origine.
- Integra i log del server con gli artefatti lato client: La chiave di registro “HKCUSoftwareMicrosoftTerminal Server ClientDefault” registra le destinazioni RDP contattate di recente quando si utilizza mstsc.exe.
- Conservazione e centralizzazione dei log: Aumenta la dimensione del log di sicurezza oltre il valore predefinito, archivia i log prima del rollover e utilizza Windows Event Forwarding o un sistema SIEM per centralizzare i dati RDP.
Il protocollo RDP (Remote Desktop Protocol) lascia tracce nei log di Windows. La sfida consiste nel distinguere le sessioni interattive remote dagli accessi tramite console e nel ricomporre gli eventi in un’unica narrazione. Questo articolo fornirà gli ID degli eventi, i filtri e un semplice modello di correlazione, oltre a risorse lato client e consigli pratici tratti dall’analisi forense sul campo e dalle guide amministrative.
Quali file di log di Windows registrano l’attività RDP?
Sono rilevanti tre canali dedicati agli eventi:
- Il log di sicurezza (eventi di autenticazione 4624, 4625, 4634, 4647, 4778, 4779),
- il log “TerminalServices-LocalSessionManager/Operational” (eventi relativi al ciclo di vita della sessione 21–25, 39, 40) e
- il log “TerminalServices-RemoteConnectionManager/Operational” (evento di connessione pre-autenticazione 1149).
Ogni canale rileva una fase diversa di una connessione RDP — contatto di rete, autenticazione e gestione della sessione attiva — e per ottenere una cronologia completa dei controlli è necessario disporre di tutti e tre.
Verifica della cronologia delle connessioni dal desktop e creazione di una linea temporale
Per verificare la cronologia delle connessioni dei computer desktop e creare una linea temporale è necessario mappare le fonti degli eventi, estrarre la cronologia, correlare gli eventi in sessioni, rilevare gli errori, aggiungere artefatti, centralizzare e conservare i dati, nonché analizzare i risultati.
📌 Prerequisiti:
- Un amministratore locale o figura equivalente sui sistemi di destinazione
- PowerShell: Accesso remoto o accesso diretto a Visualizza eventi
- Un sistema centrale o SIEM per archiviare i file esportati ed eseguire i log
- Inoltro opzionale degli eventi di Windows per evitare lacune dovute al rollover dei log
Fase 1: Mappare le fonti degli eventi
📌 Caso d’uso: Devi identificare quali canali di eventi di Windows registrano gli eventi di autenticazione e quali forniscono il contesto della sessione RDP e della connessione ai fini dell’analisi.
- Premi la combinazione di tasti Win + R, digita “eventvwr.msc” e premi Invio.
- Segui il percorso:
- Log di sicurezza delle applicazioni e dei servizi > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational TerminalServices-RemoteConnectionManager > Operational
- Esamina gli ID degli eventi chiave in base al contesto:
- Autenticazione (log di sicurezza): 4624, 4625, 4634, 4647
- Connessione RDP (prima dell’accesso): 1149
- Attività delle sessioni RDP (dopo l’accesso): 21, 22, 23, 24, 25), 39, 40
- Riconnessione/disconnessione RDP (log di sicurezza): 4778, 4779
Nota: Gli ID evento 39 e 40 consentono di distinguere un utente che si è disconnesso formalmente (Start > Disconnetti) da uno che ha semplicemente chiuso la finestra RDP. Gli ID evento 4778 e 4779 del log di sicurezza registrano lo stesso ciclo di ricollegamento/disconnessione e includono l’indirizzo IP del client, cosa che li rende utili per l’attribuzione dell’origine.
Tabella riassuntiva di tutti gli ID evento
| ID evento | Log | Descrizione | Stato |
| 1149 | RCM/Operativo | Connessione di rete stabilita (pre-autenticazione) | Connessione |
| 4624 | Sicurezza | Accesso riuscito (filtro LogonType 10, 7, 3) | Autenticazione |
| 4625 | Sicurezza | Tentativo di accesso non riuscito | Autenticazione |
| 4778 | Sicurezza | La sessione si è ricollegata a Window Station | Riconnessione |
| 4779 | Sicurezza | Sessione disconnessa da Window Station | Disconnessione |
| 21 | LSM/Operativo | Accesso alla sessione riuscito | Sessione |
| 22 | LSM/Operativo | Notifica di avvio di Shell | Sessione |
| 23 | LSM/Operativo | Disconnessione dalla sessione avvenuta con successo | Disconnessione |
| 24 | LSM/Operativo | La sessione è stata disconnessa | Disconnessione |
| 25 | LSM/Operativo | La riconnessione alla sessione è andata a buon fine | Riconnessione |
| 39 | LSM/Operativo | Sessione disconnessa dall’utente/amministratore (formale) | Disconnessione |
| 40 | LSM/Operativo | Sessione disconnessa con codice motivo | Disconnessione |
| 4634 | Sicurezza | Sessione disconnessa | Disconnessione |
| 4647 | Sicurezza | Disconnessione avviata dall’utente | Disconnessione |
Fase 2: Recuperare la cronologia con PowerShell
📌 Caso d’uso: Esportare gli eventi RDP rilevanti da più canali a scopo di analisi o archiviazione.
Nota: Utilizza Get-WinEvent per tutte le query relative al log eventi. Il vecchio cmdlet Get-EventLog si basa su un’API Win32 obsoleta, restituisce risultati imprecisi in alcuni casi ed è stato completamente rimosso da PowerShell 7. Tutti gli script riportati in questo articolo utilizzano Get-WinEvent in questo modo.
- Premi il tasto Win, digita “PowerShell”, quindi clicca su “Esegui come amministratore”.
- Copia e incolla il seguente script nella finestra di comando prima di premere Invio:
# Log di sicurezza (operazioni riuscite e non riuscite)
|
- Successivamente, utilizza il seguente script:
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" |
|
Fase 3: Correlare in sessioni
📌 Caso d’uso: Creare cronologie delle sessioni mettendo in relazione gli accessi degli utenti, gli indirizzi IP e la durata delle sessioni.
- Abbina l’evento 1149 (RCM) con l’evento 4624 (LogonType 10):
- Effettua la correlazione in base al nome utente e al timestamp con una tolleranza di ± 1 minuto.
Nota: Filtra anche per LogonType 7 (riconnessione a una sessione esistente) e LogonType 3 (RDP a livello di rete in determinate configurazioni). Se applichi un filtro esclusivamente sul LogonType 10, rischi di perdere gli eventi di riconnessione.
- Effettua la correlazione in base al nome utente e al timestamp con una tolleranza di ± 1 minuto.
- Abbina LSM 22 (avvio della shell) per confermare una sessione attiva.
- Utilizza LSM 23 o 24 per determinare la fine della sessione.
- Calcola la durata della sessione utilizzando i timestamp.
Fase 4: Rilevare errori e anomalie
📌 Caso d’uso: Rilevare i tentativi di attacchi di brute force, di “credential spray” o di uso improprio degli account.
- Apri Visualizzatore eventi > Log di Windows > Sicurezza.
- A destra, clicca su Filtra log corrente…
- Nel campo “ID evento”, digita “4625”, quindi clicca su OK.
- Clicca due volte su un evento qualsiasi per aprirlo. Nella scheda “Generale” o “Dettagli”, cerca quanto segue:
- TargetUserName (la persona di destinazione)
- Indirizzo IP (da dove proviene)
- Stato/Sottostato (motivo dell’errore)
Fase 5: Aggiungere artefatti
📌 Caso d’uso: Eseguire la correlazione dalla workstation dell’operatore in caso di mancanza dei log lato server.
- Premi Win + R, digita “regedit” e quindi premi Invio.
- Naviga in questa posizione:
- HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
- Sulla destra vedrai voci come MRU0, MRU1 e MRU2, che includono nomi di server o indirizzi IP. Annota gli obiettivi che ti interessano.
Nota: Le chiavi di registro HKCU\Software\Microsoft\Terminal Server Client\Default vengono popolate dallo strumento integrato “Connessione Remote Desktop” (mstsc.exe), che continua a essere supportato per le connessioni RDP dirette peer-to-peer. Se la tua organizzazione utilizza Windows App (la soluzione di Microsoft che sostituisce la vecchia app Remote Desktop Store e il client MSI, necessaria per le connessioni ad Azure Virtual Desktop, Windows 365 e Microsoft Dev Box), queste chiavi di registro potrebbero non essere presenti. In tal caso, controlla gli artefatti specifici delle app di Windows o i log di sessione nel portale di Azure o in Intune. Se la connessione RDP non è stata avviata da questa workstation o se è stato utilizzato uno strumento di accesso remoto di terze parti, questi elementi potrebbero non essere presenti, indipendentemente dal client utilizzato.
Successivamente, segui questi passaggi:
- Apri Esplora file.
- Nella barra degli indirizzi, incolla questo:
- %AppData%\Microsoft\Windows\Recent\AutomaticDestinations\
- Ordina per data di modifica.
- Cerca i file di grandi dimensioni o quelli più recenti. Questi dati possono essere analizzati con strumenti forensi, ma già la loro presenza e i timestamp sono di per sé indicativi.
A questo punto, segui questi passaggi:
- In Esplora file, vai a questo percorso:
- C:\Users\<username>\Documents\
- Nella casella di ricerca in alto a destra, digita quanto segue:
- *.rdp
- Prendi nota dei nomi dei file e delle relative date di modifica
Nota: i file .rdp sono elementi opzionali presenti sul lato client e sono disponibili solo se un utente ha salvato manualmente un file di connessione RDP. La loro assenza non esclude l’utilizzo dell’RDP.
Fase 6: Centralizzare e conservare
📌 Caso d’uso: Garantire una visibilità continua e prevenire la perdita dei log.
- Premi Win + R, digita “eventvwr.msc” e quindi premi Invio.
- Vai su Log di Windows > Sicurezza.
- Clicca con il pulsante destro del mouse su Sicurezza e seleziona Proprietà.
- Imposta una dimensione massima del log più grande.
- Selezionare “Sovrascrivi eventi” se necessario oppure “Archivia il log quando è pieno”, quindi clicca su OK.
Nota: Non esiste una dimensione specifica consigliata per il log di sicurezza. Un approccio comune consiste nel scegliere la dimensione del log in base al volume previsto di eventi e al periodo di conservazione desiderato.
Per salvarne una copia, segui questi passaggi:
- In Visualizzatore eventi, clicca con il pulsante destro del mouse su Sicurezza > Salva tutti gli eventi con nome…
- Seleziona un percorso, per esempio C:\Logs\Security_<date>.evtx.
- Fai la stessa cosa per i seguenti:
- TerminalServices-LocalSessionManager / Operational
- TerminalServices-RemoteConnectionManager / Operational
Fase 7: Risultati operativi
📌 Caso d’uso: Trasformare i dati in azioni concrete e garantire l’integrità dei controlli.
- Apri ticket in caso di errori ripetuti, nuovi indirizzi IP di origine o copertura dei log mancante.
- Allega la cronologia alle descrizioni degli incidenti e alle revisioni trimestrali del servizio.
- Esamina mensilmente le registrazioni delle sessioni e le eccezioni relative all’accesso.
Best practice per la verifica e la conservazione della cronologia delle connessioni a Remote Desktop
La tabella che segue riassume le best practice da seguire quando controlli la cronologia delle connessioni a Remote Desktop:
| Pratica | Scopo | Valore ottenuto |
| Attenzione alla sicurezza, all’LSM e all’RCM | Copertura più ampia | Triage più rapido e sicuro |
| Filtrare per LogonType 10 e ID | Classificazione corretta | Netta distinzione tra RDP e console |
| Aggiungere eventi di pre-autenticazione e autenticazione | Attribuzione della fonte | Mappatura accurata degli utenti e degli indirizzi IP |
| Normalizzare in CSV e JSON | Prove | Audit periodici e QBR |
| Inoltrare e conservare i log | Affidabilità | Linee temporali disponibili all’occorrenza |
NinjaOne ti aiuta a controllare la cronologia delle connessioni a Remote Desktop
Con NinjaOne puoi distribuire script di raccolta e monitoraggio in base al ruolo dei dispositivi, raccogliere e analizzare centralmente i dati dei log eventi, allegare i risultati rilevanti alla documentazione IT e configurare avvisi in grado di generare ticket in caso di condizioni significative (come picchi di guasti o attività insolite). Alcune configurazioni specifiche di Windows, come l’inoltro degli eventi, devono essere abilitate a livello di sistema operativo.
Assicurati che la cronologia RDP sia chiara
Filtri precisi e uno schema di correlazione semplice garantiscono che la cronologia RDP sia di facile consultazione. Combina gli eventi server con gli artefatti client e pianifica le esportazioni per monitorare chi si è connesso, quando e da dove; in questo modo gli artefatti saranno pronti per eventuali audit e indagini.
Argomenti correlati:
- Che cos’è il protocollo RDP (Remote Desktop Protocol)?
- Abilitare o disabilitare il Remote Desktop Protocol (RDP) sulle workstation utilizzando PowerShell
- Come configurare gli utenti Remote Destkop in Windows
- Come monitorare le sessioni RDP inattese utilizzando i log eventi e PowerShell
- Best practice per la sicurezza dell’accesso a Remote Desktop negli ambienti delle PMI
