domenica 20 settembre 2026

Windows: Installare i driver NVIDIA in modo selettivo e ottimizzato con NVCleanstall

L'installazione dei driver di una scheda grafica NVIDIA è, almeno apparentemente, un'operazione piuttosto semplice: si scarica il pacchetto dal sito del produttore, si avvia il programma di installazione e si seguono le procedure guidate.

Il problema è che il pacchetto ufficiale può includere numerosi componenti e servizi che non sono necessariamente indispensabili per tutti gli utenti. Un sistema utilizzato esclusivamente per il gaming, ad esempio, può avere esigenze differenti rispetto a una workstation destinata all'elaborazione video, alla grafica 3D o all'utilizzo di applicazioni professionali.

È proprio in questo scenario che può risultare interessante NVCleanstall, un'utility progettata per consentire una maggiore granularità nella selezione dei componenti dei driver NVIDIA.

L'obiettivo non è sostituire il driver NVIDIA, bensì permettere all'utente di costruire un'installazione personalizzata, scegliendo quali componenti installare e quali invece escludere.

Il risultato può essere un'installazione più essenziale, con meno componenti e servizi non necessari per lo specifico sistema.

Al momento della stesura dell'articolo, l'ultima versione disponibile di NVCleanstall è la 1.19. Il programma può essere scaricato gratuitamente dalla pagina dedicata di TechPowerUp.


Vantaggi nell'utilizzo di NVCleanstall

Il principale vantaggio di NVCleanstall consiste nel fornire all'utente un controllo che normalmente non è altrettanto granulare nell'installazione standard.

Il programma consente infatti di:

  •  individuare automaticamente la GPU NVIDIA installata;
  •  utilizzare il driver più recente compatibile con l'hardware;
  •  selezionare manualmente una specifica versione del driver;
  •  utilizzare una versione Studio del driver, quando disponibile;
  •  utilizzare driver già presenti localmente;
  •  scegliere singolarmente i componenti da installare;
  •  effettuare, quando necessario, un'installazione pulita;
  •  disabilitare alcune funzioni accessorie;
  •  accedere a impostazioni avanzate destinate agli utenti più esperti;
  •  preparare un pacchetto di installazione personalizzato per utilizzarlo successivamente.

Questa flessibilità può essere particolarmente interessante in ambienti nei quali si desidera mantenere il sistema il più possibile essenziale oppure quando una determinata versione del driver si è dimostrata più stabile rispetto all'ultima release disponibile.


Avviare NVCleanstall

Per avviare NVCleanstall, è sufficiente eseguire un doppio clic sul file eseguibile precedentemente scaricato. Non è richiesta un'installazione preliminare del programma, poiché l'utility può essere eseguita direttamente dal relativo file eseguibile.

All'avvio, NVCleanstall analizza l'hardware grafico presente nel computer.

La schermata iniziale identifica la GPU NVIDIA installata e visualizza informazioni relative al driver attualmente presente nel sistema.

Nell'interfaccia vengono inoltre indicate alcune caratteristiche del driver e della piattaforma, tra cui il tipo di driver, l'architettura a 64 bit e la destinazione desktop o notebook. Viene inoltre indicato se è installata una versione Studio del driver.

Schermata iniziale di NVCleanstall con rilevamento della GPU
FIG 1 - Schermata iniziale di NVCleanstall con rilevamento della GPU

Questa prima schermata rappresenta quindi il punto di partenza della procedura e permette di verificare immediatamente che il programma abbia identificato correttamente la scheda grafica.


Scegliere il driver NVIDIA

Una delle caratteristiche più interessanti di NVCleanstall è la possibilità di decidere da dove recuperare il driver.

1. Install best driver for my hardware

Quando il computer è connesso a Internet, l'opzione dedicata all'installazione del driver migliore per l'hardware individua la versione ufficiale più recente compatibile con la GPU. L'opzione Install best driver for my hardware, selezionata di default, consente di installare il miglior driver per il proprio hardware (FIG 1).

2.  Manually select a driver version

L'utente può tuttavia scegliere manualmente una versione specifica.

Questa possibilità è tutt'altro che marginale. In caso di problemi introdotti da un aggiornamento recente, poter installare una versione precedente e già verificata può essere preferibile rispetto all'utilizzo obbligatorio dell'ultima release.

La scelta manuale può inoltre essere utile quando si dispone di una versione del driver nota per funzionare correttamente con una determinata applicazione o con uno specifico gioco.

Per selezionare manualmente il driver da installare tra quelli disponibili, va selezionata l'opzione Manually select a driver version.


Selezione manuale del driver
FIG 2 - Selezione manuale del driver

Driver Game Ready e Studio

NVCleanstall consente di scegliere il ramo Studio dei driver NVIDIA.

La distinzione è particolarmente interessante per gli utenti professionali: i driver Studio sono orientati principalmente all'utilizzo con applicazioni creative e produttive, mentre i driver Game Ready sono maggiormente orientati al gaming.

Per una workstation utilizzata, ad esempio, con software di produzione multimediale, grafica o montaggio video, la disponibilità della versione Studio rappresenta quindi un'opzione da prendere in considerazione.

 

Visualizzare tutte le versioni disponibili

È presente anche un'opzione per visualizzare tutte le versioni dei driver disponibili (Show all versions).

Si tratta di una funzione destinata soprattutto agli utenti avanzati: l'elenco può infatti comprendere numerose versioni precedenti che potrebbero non essere compatibili con l'hardware o con la versione di Windows utilizzata.

Per un'installazione ordinaria è quindi generalmente preferibile utilizzare la versione raccomandata dal programma, ricorrendo alla selezione manuale quando esiste una precisa esigenza tecnica.


3. Use driver files on disk

Un'altra possibilità consiste nell'utilizzare un driver già presente sul disco selezionando l'opzione Use driver files on disk.

Questa modalità è particolarmente utile quando si vuole lavorare offline, oppure quando il driver è stato precedentemente scaricato e si desidera riutilizzarlo.

Può essere una soluzione interessante anche durante la preparazione di una workstation o nell'ambito di procedure di deployment nelle quali il pacchetto driver deve essere mantenuto localmente e installato senza dipendere dalla disponibilità della connessione Internet.

Utilizzo di un driver presente sul disco
FIG 3 - Utilizzo di un driver presente sul disco 


4. Install NVCleanstall  on this machine

NVCleanstall può essere utilizzato come programma standalone/portable oppure installato sulla macchina.

Per un utilizzo occasionale, la modalità portatile è generalmente sufficiente.

L'installazione permanente dell'applicazione può invece avere senso quando si prevede di utilizzare frequentemente NVCleanstall per rimuovere e reinstallare differenti versioni dei driver.

Effettuare continuamente controlli e aggiornamenti dei driver non è necessariamente coerente con l'obiettivo di mantenere un'installazione minimale. Se il sistema è stabile e il driver svolge correttamente il proprio compito, non esiste sempre una ragione tecnica per sostituirlo immediatamente.

Installare NVCleanstall sul PC
FIG 4 - Installare NVCleanstall sul PC

Selezione componenti da installare

Una volta selezionata la versione del driver, premendo Next si accede alla schermata più importante di NVCleanstall: quella dedicata alla scelta dei componenti.

Selezione componenti da installare
FIG 5 - Selezione componenti da installare

La composizione dell'elenco può cambiare in funzione della versione del driver.

- Display Driver

Il Display Driver, cioè il driver grafico vero e proprio, rappresenta naturalmente il componente fondamentale.

A seconda dell'utilizzo del computer possono però essere necessari ulteriori componenti.

Un esempio è rappresentato dall'audio tramite HDMI o DisplayPort. Se il monitor o il televisore riceve anche il segnale audio dalla GPU, il relativo componente non dovrebbe essere rimosso.

Lo stesso principio vale per particolari configurazioni di streaming e acquisizione video.

- Legacy Control Panel

Questo è il tradizionale Pannello di controllo NVIDIA, accessibile facendo clic con il pulsante destro del mouse sul desktop. Funziona autonomamente, senza richiedere altri componenti.

Quando si installa NVIDIA App, questo componente è necessario per fornire il supporto ai profili dei giochi; in caso contrario, potrebbe essere visualizzato l'errore "impossibile recuperare le impostazioni".

- HD Audio via HDMI 

Il componente è necessario se si desidera utilizzare la GPU NVIDIA per trasmettere l'audio attraverso HDMI o DisplayPort, ad esempio verso un televisore o un monitor dotato di altoparlanti. Non è invece indispensabile quando l'audio viene gestito tramite una scheda audio dedicata oppure attraverso le uscite audio integrate nella scheda madre. NVIDIA documenta infatti l'utilizzo dell'uscita HDMI della GPU per veicolare contemporaneamente segnale video e audio digitale.

- Microsoft Visual C 2017 Runtimes

Alcune funzionalità opzionali del pacchetto NVIDIA richiedono la presenza di specifici componenti runtime. Nella maggior parte dei casi, questi moduli figurano già all'interno dell'ambiente Windows, poiché condivisi da numerose altre applicazioni di terze parti. Va tuttavia precisato che la loro installazione non è in alcun modo vincolante per il corretto funzionamento del driver video di base.

- PhysX

NVIDIA PhysX è una libreria software progettata per gestire le interazioni e le simulazioni fisiche tra gli oggetti all'interno dei videogame. Si tratta di una tecnologia ormai poco diffusa nei titoli recenti, poiché la maggior parte dei motori di gioco moderni integra nativamente un proprio sistema di gestione della fisica.

- USB-C Driver

Questo modulo introduce la gestione del controller per la porta USB-C (VirtualLink) presente su alcuni modelli della serie NVIDIA GeForce RTX 20 (architettura Turing). Qualora non si utilizzi una scheda di questa generazione o non si intenda sfruttare la suddetta porta per la trasmissione video o il collegamento di visori VR, il componente può essere tranquillamente escluso dal pacchetto d'installazione.

- FrameView SDK 

NVIDIA FrameView è uno strumento di benchmark e telemetria ideato per il tracciamento dei framerate, dei tempi di rendering (frame time), dell'assorbimento energetico e dell'efficienza prestazioni-per-watt. Questo modulo viene impiegato direttamente dalla NVIDIA App per rilevare i dati dei sensori di sistema e mostrare le metriche in sovrimpressione durante le sessioni di gioco. Omettendo la sua installazione, l'overlay ufficiale risulterà privo di statistiche; in tal caso, è possibile affidarsi ad alternative di terze parti ampiamente collaudate come MSI Afterburner (abbinato a RivaTuner Statistics Server).

- Virtual Audio

Questo pacchetto integra le funzionalità necessarie alla registrazione dei flussi audio tramite ShadowPlay, lo strumento nativo NVIDIA dedicato al riassunto e alla cattura delle sessioni di gioco. L'installazione di questo componente è consigliata esclusivamente a chi intende avvalersi dell'utility integrata per registrare o trasmettere i propri contenuti; in caso contrario, se ci si affida a software di terze parti (come OBS Studio), può essere tranquillamente deselezionata. 

- Telemetry

Il servizio di telemetria si occupa di trasmettere a NVIDIA i dati diagnostici e di utilizzo raccolti sul sistema, con lo scopo dichiarato di affinare prodotti e servizi. In base a quanto dichiarato dall'azienda, le informazioni rilevate comprendono il profilo hardware e software della macchina, i titoli eseguiti (inclusi parametri grafici, frequenza d'uso e metriche prestazionali), l'impiego delle varie funzionalità del driver e l'area geografica di appartenenza. Disabilitare questo modulo con NVCleanstall rappresenta uno dei principali vantaggi per chi desidera tutelare la propria privacy ed eliminare processi in background non essenziali.

- NV Platform Controllers

Questo modulo introduce le routine di gestione energetica specifiche per i sistemi notebook, abilitando tecnologie fondamentali come il Dynamic Boost e la gestione dinamica del TDP (Thermal Design Power). La sua presenza è indispensabile per garantire il corretto funzionamento e il raggiungimento delle massime prestazioni su tutte le GPU laptop della serie GeForce RTX 30 e successive. In sua assenza, la scheda grafica opererà in una modalità conservativa a basso consumo. Al contrario, se si sta configurando un pacchetto driver destinato a un PC desktop, il modulo Platform Controllers può essere interamente omesso.

- NVIDIA DLISR

Il modulo NVIDIA NGX DLISR (Deep Learning Image Super Resolution) è un componente basato su reti neurali ideato per l'upscaling delle immagini, in grado di incrementare la risoluzione di 2, 4 o 8 volte generandone i pixel mancanti tramite inferenza IA. Pur trattandosi di una tecnologia interessante, la sua effettiva utilità pratica all'interno del pacchetto driver ordinario rimane piuttosto ambigua e poco documentata: per la stragrande maggioranza degli utenti, la sua esclusione tramite NVCleanstall non comporta alcun impatto negativo sulle prestazioni di gioco o sull'uso quotidiano.

- NVIDIA APP

NVIDIA App rappresenta il nuovo centro di controllo unificato sviluppato dall'azienda per sostituire lo storico GeForce Experience. Tra le novità principali spicca l'eliminazione dell'obbligo di login utente e l'integrazione, in un'unica interfaccia, sia delle regolazioni avanzate del classico Pannello di Controllo (come la gestione dei monitor), sia dei moduli accessori di GeForce Experience (tra cui la registrazione video tramite ShadowPlay e l'ottimizzazione automatica dei profili di gioco).

Richiede:

NV Container, Telemetry, NV Backend, NVIDIA App MessageBus, ShadowPlay, Legacy Control Panel e FrameView SDK.

- NV Container

NV Container funge da infrastruttura di servizio a beneficio di altri moduli secondari e non essenziali del pacchetto NVIDIA. Tra i suoi compiti vi è, ad esempio, la messa a disposizione delle funzionalità di rete indispensabili per la trasmissione della telemetria e l'invio automatizzato dei report sui crash di sistema. Trattandosi di un'impalcatura di supporto, la sua presenza diventa superflua se si sceglie di non installare software accessori come NVIDIA App, GeForce Experience o i servizi di telemetria

- ShadowPlay

NVIDIA ShadowPlay è l'utility integrata progettata per registrare, condividere in rete e trasmettere in streaming le sessioni di gioco, affiancata dalla nota funzionalità Instant Replay per la cattura retroattiva degli ultimi minuti di partita. Rispetto a software di terze parti, garantisce un impatto minimo sulle prestazioni e sull'uso della CPU, sfruttando una pipeline di cattura e codifica ad accelerazione hardware ottimizzata direttamente sul chip della GPU.

Richiede:

GeForce Experience, NVIDIA App, Virtual Audio e Process Monitor.

- NV Backend

Questo pacchetto include il modulo di rilevamento automatico dei giochi (Game Detection) impiegato dalla suite NVIDIA. La sua funzione principale è la scansione del sistema per aggiungere i titoli installati alla libreria utente, associando a ciascuno di essi le icone ufficiali, i metadati e i profili di ottimizzazione grafica consigliati.

Richiede:

GeForce Experience o la nuova NVIDIA App; in caso di installazione 'barebone' (solo driver video), può essere tranquillamente escluso.

- NVIDIA App MessageBus

NVIDIA App MessageBus funge da sistema di messaggistica e IPC (Inter-Process Communication) per consentire a NVIDIA App di scambiare dati in tempo reale con il backend del driver. Questo bus di comunicazione permette ai vari processi dell'interfaccia di inviare comandi e ricevere lo stato dell'hardware. 

Richiede:

NVIDIA App

Qualora si decida di non installare NVIDIA App, questo componente diventa del tutto superfluo e può essere omesso dall'installazione.


Installation Tweaks

Dopo la selezione dei componenti, NVCleanstall permette di personalizzare ulteriormente l'installazione.

Installation Tweaks
FIG 6 - Installation Tweaks



Tra le opzioni disponibili troviamo diverse funzioni particolarmente interessanti.

- Disable Installer Telemetry & Advertising

Questa impostazione interviene sul processo di installazione.

La sua attivazione impedisce la raccolta e l'invio a NVIDIA di determinate informazioni hardware durante il setup e consente inoltre di evitare contenuti promozionali visualizzati durante l'installazione.

È importante sottolineare che l'opzione riguarda il processo di installazione e non costituisce, da sola, una disattivazione generale di ogni forma di telemetria presente nel driver successivamente installato.

- Unattended Express Installation

L'opzione Unattended Express Installation consente di eseguire l'installazione senza richiedere ulteriori interventi da parte dell'utente.

È una funzione interessante soprattutto quando NVCleanstall viene utilizzato nell'ambito di procedure ripetitive o automatizzate.

- Perform a Clean Installation

Tra le opzioni disponibili troviamo Perform a Clean Installation.

La funzione elimina i residui delle precedenti installazioni dei driver NVIDIA prima di procedere con la nuova installazione.

Questa funzione è particolarmente interessante quando si sta risolvendo un problema legato ai driver oppure quando si desidera partire da una configurazione il più possibile pulita.

Va tuttavia considerato che utenti esperti possono utilizzare strumenti specifici come Display Driver Uninstaller (DDU) per eseguire una procedura di pulizia separata. NVCleanstall offre quindi un approccio integrato, ma non necessariamente sostituisce ogni procedura specialistica di manutenzione.

- Add Hardware Support

Add Hardware Support è una funzione rivolta principalmente agli utenti avanzati.

Il suo scopo è consentire interventi sulla compatibilità hardware del pacchetto driver.

Non è un'opzione che dovrebbe essere modificata senza una precisa esigenza: per una normale installazione è consigliabile mantenere le impostazioni predefinite.

- Enable DLSS Indicator

Abilita l'indicatore relativo a DLSS nelle funzionalità che lo supportano.

La funzione non è indispensabile per il normale funzionamento del driver e può quindi essere lasciata disabilitata se non necessaria.

Disable Multiplane Overlay (MPO)

Disabilita il meccanismo Windows/NVIDIA Multiplane Overlay. Si tratta di un'impostazione opzionale che può essere utilizzata in presenza di specifici problemi di stuttering o flickering.

È però un'impostazione da utilizzare con cautela in quanto la sua disattivazione potrebbe introdurre stuttering o latenza.

In altre parole, non deve essere considerata una generica "ottimizzazione delle prestazioni", ma piuttosto uno strumento di troubleshooting.

- Disable Ansel

NVCleanstall consente anche di disabilitare NVIDIA Ansel, la tecnologia che permette di realizzare catture fotografiche avanzate all'interno dei videogiochi.

Per chi non utilizza questa funzione, la sua rimozione può contribuire a rendere l'installazione più essenziale.

Sui driver moderni l'impatto prestazionale di Ansel è comunque trascurabile; la disattivazione ha quindi maggiore senso per chi non utilizza la funzione o per configurazioni hardware più datate.

- Show Expert Tweaks

Attivando Show Expert Tweaks vengono visualizzate ulteriori impostazioni avanzate.

Show Expert Tweaks
FIG 7 - Show Expert Tweaks


Questa sezione rappresenta probabilmente la parte più delicata dell'intera procedura.

Le opzioni disponibili possono intervenire su componenti e comportamenti del driver a un livello più basso e, pertanto, non dovrebbero essere modificate semplicemente alla ricerca di qualche punto percentuale di prestazioni.

Su GPU NVIDIA recenti, comprese le generazioni RTX più moderne, molte di queste impostazioni possono avere un impatto minimo o nullo sulle prestazioni reali.

1. Disable Driver Telemetry

Una delle impostazioni più interessanti è Disable Driver Telemetry.

La funzione, indicata come sperimentale, tenta di rimuovere dal driver alcuni meccanismi di tracking, come informazioni relative all'utilizzo dell'hardware o alla segnalazione degli arresti anomali.

Il beneficio principale è quindi legato alla riduzione delle comunicazioni in background e alla privacy.

È però fondamentale comprendere le implicazioni tecniche.

Il driver viene modificato e deve essere nuovamente ricostruito e firmato digitalmente. Questo può creare problemi con alcuni software, inclusi sistemi anti-cheat. Ad esempio ci possono essere problemi con Easy Anti-Cheat e applicazioni come Faceit.

Per questo motivo l'opzione dovrebbe essere considerata esclusivamente da utenti consapevoli delle conseguenze.


2. Disable NVIDIA Container

L'opzione Disable NVIDIA Container deve essere utilizzata con particolare prudenza.

La sua disattivazione può impedire il funzionamento del pannello di controllo NVIDIA e può inoltre provocare problemi con alcune applicazioni o giochi che utilizzano modalità borderless.

Non si tratta quindi di una semplice ottimizzazione da applicare indiscriminatamente.


3. NVIDIA HD Audio Device Sleep Timer

Questa impostazione riguarda il comportamento del dispositivo audio HD NVIDIA.

La modifica del comportamento dello sleep timer può essere utile in presenza di problemi nei quali il dispositivo non viene correttamente riattivato.

Anche in questo caso è preferibile utilizzare l'opzione come strumento di troubleshooting piuttosto che come ottimizzazione generica.


4. Enable Message Signaled Interrupts (MSI)

Una delle impostazioni tecniche più interessanti è Enable Message Signaled Interrupts.

L'opzione abilita la modalità MSI (Message Signaled Interrupts), associata a possibili miglioramenti nella reattività e nella latenza.

Una volta attivata, NVCleanstall può permettere di intervenire anche sulla politica e sulla priorità degli interrupt.

Sulle GPU RTX 40 e successive questa configurazione può essere già attiva nei driver più recenti.

Come per molte impostazioni avanzate, i risultati possono variare in funzione della piattaforma hardware e software.

 

5. Disable HDCP

HDCP (High-bandwidth Digital Content Protection) è un meccanismo utilizzato per la protezione dei contenuti digitali.

NVCleanstall permette di disabilitarlo, ma l'opzione deve essere valutata in relazione all'utilizzo del sistema.

Su hardware meno recente o di fascia bassa la modifica potrebbe produrre un miglioramento marginale, inoltre è sconsigliato disabilitare HDCP quando vengono utilizzati dispositivi come visori VR.

La regola è quindi semplice: se non esiste una specifica esigenza, è preferibile mantenere HDCP attivo.


6. Apply NVENC Video Encoding Session Limit Patch

Un'altra funzione disponibile negli strumenti avanzati è Apply NVENC Video Encoding Session Limit Patch.

L'opzione interviene sui limiti relativi alle sessioni di codifica NVENC delle GPU NVIDIA consumer.

Questa modifica non è necessaria con i driver più recenti.

Anche in questo caso, quindi, si tratta di una funzione da considerare in presenza di una precisa necessità e non di un'impostazione da attivare automaticamente.


7. Start External Application

NVCleanstall permette infine di specificare un'applicazione o uno script esterno da eseguire automaticamente prima o dopo l'installazione del driver.

Questa funzione può avere un certo interesse in ambienti amministrativi o in procedure automatizzate.

Un amministratore potrebbe, per esempio, integrare l'installazione del driver all'interno di una procedura più ampia di manutenzione.

Per l'utente comune si tratta invece di una funzione generalmente non necessaria. 


Finished

Terminata la configurazione, premendo Next, NVCleanstall presenta quattro possibilità:

  • Install
  • Show in Folder
  • Copy Folder
  • Build Package


Finished
FIG 8 - Finished

- Install

È l'opzione più semplice.

NVCleanstall procede immediatamente con l'installazione del driver utilizzando le impostazioni precedentemente selezionate.

Per la maggior parte degli utenti è la scelta più appropriata.


- Show in Folder

Apre Esplora file nella directory temporanea utilizzata da NVCleanstall e permette di visualizzare i file e le modifiche preparate dal programma.

È una funzione principalmente destinata agli utenti avanzati che desiderano analizzare ciò che viene prodotto prima dell'installazione.


- Copy Folder

Consente di copiare il driver preparato in una cartella scelta dall'utente.

Può essere utile per creare una copia locale del pacchetto personalizzato, effettuare attività di manutenzione o utilizzare successivamente i file su un altro sistema compatibile.


- Build Package

Questa funzione crea un vero e proprio pacchetto di installazione personalizzato da utilizzare successivamente.

È particolarmente interessante quando la stessa configurazione deve essere replicata più volte.

Per un singolo PC, invece, generalmente Install è sufficiente.


Conclusioni

Selezionando Install, NVCleanstall procede con l'installazione del driver utilizzando esclusivamente i componenti selezionati.

Al termine viene visualizzato il messaggio che conferma la corretta installazione.
Installazione completata
FIG 9 - Installazione completata



Nel caso in cui sia stata attivata la modalità MSI, potrebbe essere necessario riavviare il sistema affinché la configurazione venga applicata correttamente.


NVCleanstall non deve essere considerato semplicemente come un programma per "alleggerire" i driver NVIDIA.

Il suo valore principale risiede nella possibilità di controllare con precisione cosa viene installato, scegliendo la versione del driver, i componenti e, per gli utenti avanzati, alcune caratteristiche del comportamento del driver stesso.

Questa possibilità può essere particolarmente utile in diversi scenari:

  • workstation professionali;
  • PC gaming nei quali è necessario mantenere una versione specifica del driver;
  • sistemi nei quali lo spazio e i componenti installati devono essere ridotti al minimo;
  • procedure di deployment;
  • sistemi offline;
  • troubleshooting di problemi relativi ai driver;
  • computer nei quali un aggiornamento recente ha introdotto incompatibilità.

La caratteristica più importante di NVCleanstall è tuttavia anche il suo principale limite: maggiore controllo significa maggiore responsabilità.

Rimuovere componenti senza conoscerne le dipendenze può compromettere il funzionamento di alcune applicazioni. Ancora più delicata è la sezione degli Expert Tweaks, dove alcune modifiche possono alterare il comportamento del driver, introdurre incompatibilità oppure richiedere la ricostruzione e la nuova firma digitale del pacchetto.

Per questo motivo, la strategia migliore consiste nel mantenere un approccio conservativo: rimuovere esclusivamente ciò che non viene utilizzato e modificare le impostazioni avanzate soltanto quando esiste una precisa ragione tecnica.

In definitiva, NVCleanstall non promette miracoli in termini di frame rate o prestazioni. Il suo vantaggio reale è un altro: trasformare l'installazione del driver NVIDIA da una procedura prevalentemente automatica in un processo configurabile e sotto il controllo dell'amministratore o dell'utente esperto.





domenica 16 novembre 2025

Git: Passare ad un branch esistente

Per passare a un branch esistente si utilizza il comando tradizionale:
git checkout <branch>
Ad esempio, per spostarsi sul branch Test:
git checkout Test

L’operazione sposta il puntatore HEAD affinché punti al branch Test attivo: da quel momento, eventuali commit modificheranno il branch Test.

git checkout
FIG 1 - git checkout



Effetti del cambio di branch

  • HEAD punta al branch attivo
    Dopo git checkout test, HEAD non punta direttamente a un commit ma al riferimento simbolico del branch Test (es. HEAD -> Test). Il commit successivo aggiornerà il puntatore Test al nuovo commit.
  • Modifiche alla working directory
    Al cambio di branch Git aggiorna i file nella working directory per riflettere lo snapshot dell’ultimo commit del branch di destinazione. Se le variazioni locali impediscono un passaggio netto (ad es. file modificati che verrebbero sovrascritti), Git impedisce lo switch e segnala il conflitto.
  • Creazione di nuovi commit sul branch attivo
    Dopo il checkout, un commit (ad esempio git commit -a -m 'Modifica readme
    ') avanzerà esclusivamente il puntatore del branch attivo, lasciando gli altri branch invariati. Di conseguenza, è possibile creare storie divergenti in modo isolato su differenti branch (FIG 2).

Commit su Branch Test
FIG 2 - Commit su Branch Test

Esempio di flusso operativo

Creazione branch (senza switch):
git branch Test


Switch al branch Test:
git checkout Test

Modifica e commit su Test:
vim readme.txt
git commit -a -m "Modifica readme"



Commit su nuovo branch
FIG 3 - Commit su nuovo branch

Ritorno a master:
git checkout master
Cambio Branch. HEAD su master
FIG 4 - Cambio Branch. HEAD su master

Questo riporta HEAD su master e ripristina i file alla versione indicata da master.


Divergenza della cronologia e visualizzazione

Quando si effettua lavoro parallelo su due branch differenti (ad esempio Test e master), la cronologia si diverge; successivamente le due linee potranno essere unite tramite merge o rebase. Per ispezionare la storia completa e visualizzare i punti di divergenza è utile il comando:

git log --oneline --decorate --graph --all

git log
FIG 5 - git log

Note operative e avvisi importanti

git log non mostra sempre tutti i branch: per default git log visualizza la storia a partire dal commit riferito dal branch attualmente selezionato. Per vedere la storia di un branch specifico usare git log <branch>; per mostrare tutti i branch usare --all.

Cambiare branch modifica i file sul disco: switching ripristina la working directory allo snapshot dell’ultimo commit del branch scelto. Se Git non è in grado di effettuare queste modifiche senza perdita di dati locali, il comando verrà rifiutato.

Comportamento con modifiche non committate:

  • Se si hanno modifiche locali non committate che non confliggono con i contenuti del branch di destinazione, Git generalmente permette lo switch mantenendo le modifiche.
  • Se ci sono conflitti, Git bloccherà lo switch: in tal caso è necessario committare, stashare (git stash) o ripristinare (git restore) le modifiche prima di procedere.
Operazione atomica di creare+switch: è possibile creare un nuovo branch e passare a esso con un solo comando: 
git checkout -b <newbranch>
oppure, nelle versioni moderne di Git (≥ 2.23), usando git switch:
git switch -c <newbranch>


git switch (comandi raccomandati nelle versioni moderne)

A partire da Git 2.23 è consigliato usare git switch per le operazioni di cambio branch (più leggibile e focalizzato rispetto al multitool git checkout):

  • Passare a un branch esistente:
    git switch Test
  • Creare un nuovo branch e passare a esso:
    git switch -c new-branch
    oppure
    git switch --create new-branch
  • Tornare al branch precedentemente attivo:
    git switch -

git switch separa chiaramente le semantiche di “cambio branch” da quelle di “ripristino file” che git checkout tradizionalmente confliggeva.


Best practice

  • Non lavorare su main/master direttamente — usare feature branch (feature/…), bugfix branch (bugfix/…) o hotfix branch (hotfix/…) per isolare il lavoro.
  • Eseguire commit atomici e frequenti: commit logici e piccoli rendono il merge e il debug più semplici.
  • Sincronizzare spesso con il remoto (git fetch + git merge/rebase) prima di iniziare un lavoro esteso, per ridurre la probabilità di conflitti.
  • Usare git switch quando possibile per migliorare chiarezza e sicurezza delle operazioni.
  • Usare git stash per mettere temporaneamente da parte modifiche non ancora pronte se è necessario effettuare uno switch immediato.
  • Visualizzare la storia con grafo (git log --oneline --decorate --graph --all) per avere un quadro completo delle divergenze e dei punti di merge.


Sintesi rapida dei comandi

OperazioneComando
Creare un branch senza switchgit branch Test
Creare e switchare (una riga)git checkout -b Test / git switch -c Test
Switchare su branch esistentegit checkout Test / git switch Test
Tornare all'ultimo branchgit checkout - / git switch -
Visualizzare grafo completogit log --oneline --decorate --graph --all
Mettere da parte modifiche non committategit stash push -m "work-in-progress"
Ripristinare stashgit stash pop




domenica 2 novembre 2025

Cybersecurity: HikvisionExploiter, tool open source utilizzato per attaccare telecamere IP Hikvision

I dispositivi Internet of Things (IoT), in particolare le telecamere IP di sorveglianza, rappresentano un elemento critico nelle architetture di rete moderne. La loro crescente diffusione ha parallelamente aumentato la superficie di attacco esposta, rendendo la sicurezza del firmware e la corretta configurazione imperative. Il presente articolo si concentra sull'analisi di un toolkit di penetration testing noto come "HikvisionExploiter" progettato per identificare e sfruttare in modo automatizzato le vulnerabilità note nelle telecamere IP Hikvision.

ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni contenute in questo articolo sono fornite esclusivamente a scopo didattico, informativo e di ricerca sulla sicurezza e vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.


Architettura e Funzionalità del Toolkit di Analisi

Questo strumento di sicurezza, sviluppato in Python, è concepito per automatizzare le verifiche di sicurezza sulle telecamere di rete Hikvision, concentrandosi in particolare sugli endpoint non autenticati presenti in versioni firmware specifiche, come la Versione 3.1.3.150324, e sfruttando la ben nota vulnerabilità CVE-2021-36260.

La sua potenza risiede nella capacità di eseguire una serie di test complessi in modo sequenziale e multithreaded, offrendo ai security tester una visione rapida delle vulnerabilità dei dispositivi esposti.


Fasi di Esecuzione e Analisi

Il toolkit supporta la scansione di massa, leggendo elenchi di indirizzi IP e porte (da un file targets.txt). L'approccio multithread velocizza l'identificazione dei dispositivi potenzialmente vulnerabili.

Il processo di testing si articola in diverse fasi sequenziali e automatizzate:
  1. Verifica dell'Accesso Non Autenticato (Snapshot): In una fase iniziale, viene verificata la possibilità di accedere al feed video o alle snapshot in tempo reale senza autenticazione, indicando una potenziale violazione della privacy e un accesso improprio. Tale condizione può essere dovuta ad un grave errore di configurazione o una falla nel controllo degli accessi.
  2. Recupero e Decrittografia dei file di configurazione: Successivamente, lo strumento tenta di scaricare i file di configurazione del dispositivo. Se l'accesso ha successo, utilizza algoritmi noti come AES e XOR per decifrare questi file (utilizzando librerie come pycrypto). Dai dati decrittografati, spesso in formato XML, vengono estratti dettagli critici, quali:
    -
     Credenziali utente (nomi utente e password hashing o in chiaro).
    Livelli di autorizzazione degli account.
    - Informazioni di rete e configurazione del dispositivo.
  3. Sfruttamento della Vulnerabilità Critica RCE (Remote Command Execution): Esegue un test mirato per confermare lo sfruttamento della CVE-2021-36260, provando l'esecuzione di comandi da remoto sul sistema operativo embedded della telecamera.


Prerequisiti e Configurazione dell'Ambiente di Test

Per eseguire correttamente la suite di test, sono necessari i seguenti requisiti tecnici:
  1. Ambiente Python: È richiesto Python 3.6 o superiore.
  2. Librerie Essenziali: L'installazione delle dipendenze è fondamentale. Queste sono generalmente specificate in un file requirements.txt e includono librerie come requests e pycrypto (per la gestione della decrittografia).
  3. FFmpeg (Opzionale): Sebbene non necessario per lo scanning di base, FFmpeg è richiesto per funzionalità avanzate, come l'ipotetica conversione automatica delle snapshot in un formato video continuo.


Analisi Dettagliata della Vulnerabilità CVE-2021-36260

La falla CVE-2021-36260 è un esempio lampante di quanto sia cruciale la validazione degli input nei sistemi esposti.

Meccanismo di Sfruttamento
Questa vulnerabilità è classificata come un difetto di command injection e risiede nell'inadeguata validazione dei dati forniti dall'utente in endpoint specifici del web server integrato della telecamera, come ad esempio /SDK/webLanguage. Un attacker non autenticato può manipolare i parametri di input per iniettare comandi del sistema operativo all'interno delle chiamate di sistema eseguite dalla telecamera.
  • Impatto: L'esecuzione di codice con privilegi elevati (spesso root o admin) consente all'attaccante di assumere il controllo totale del dispositivo.
  • Rilevanza: Questa falla ha interessato numerosi modelli (in particolare delle serie DS-2CD e DS-2DF) con firmware obsoleti. La sua gravità è testimoniata dall'inclusione nel catalogo KEV (Known Exploited Vulnerabilities) della CISA, indicando che è stata attivamente sfruttata in attacchi nel mondo reale.

Shell Interattiva per Pen-Testing
Una delle funzionalità avanzate del toolkit è la possibilità di stabilire una shell interattiva sul dispositivo vulnerabile (sfruttando la RCE). Ciò permette al penetration tester di eseguire comandi in tempo reale, facilitando la post-exploitation e l'analisi dettagliata del sistema operativo embedded della telecamera.


Installazione

Per l’installazione di HikvisionExploiter , una volta installato l’ambiente Python, si procede con la clonazione  del repository e l'installazione delle dipendenze:

git clone https://github.com/HexBuddy/HikvisionExploiter.git

cd HikvisionExploiter

pip3 install -r requirements.txt

Installazione di HikvisionExploiter
FIG 1 - Installazione di HikvisionExploiter


Preparazione dell'Elenco dei Target

La prima fase richiede la creazione di un file semplice (plain text), come targets.txt, contenente l'elenco dei dispositivi da testare. Il formato standardizzato richiesto è IP:PORTA, ad esempio:

192.168.1.10:80

10.10.10.20:81

Questa preparazione garantisce che lo scanner operi solo sui sistemi per i quali è stata ottenuta una previa autorizzazione esplicita al testing.


Esecuzione dello Scanner Principale

L'esecuzione del modulo di controllo (checker.py) avvia la sequenza di test automatizzata:

python3 checker.py

checker.py
FIG 2 - checker.py

Questo processo non si limita a verificare la connettività, ma esegue attivamente i check sopra descritti: verifica l'accesso alle snapshot, tenta il download e la decrittografia della configurazione e, crucialmente, testa la presenza della vulnerabilità RCE (CVE-2021-36260). I risultati completi di ogni test sono meticolosamente archiviati in directory con timestamp (logs/IP_PORT_TIMESTAMP/) per la successiva analisi forense e di reportistica.


Come visibile in FIG 3, checker.py rileva se il dispositivo è vulnerabile e, oltre alle informazioni sul dispositivo (modello, serial number, versione firmware, ecc), viene rilevata anche la password di amministratore in chiaro.

Dispositivo vulnerabile
FIG 3 - Dispositivo vulnerabile

I risultati dei test vengono riportati all'interno della directory logs. All'interno delle directory presenti in logs, troviamo il file di configurazione del dispositivo e uno snapshot che ci mostra cosa sta inquadrando la telecamera.

Logs folder
FIG 4 - Logs folder

Conoscendo la password di amministratore è possibile tentare l'accesso tramite Web al dispositivo.
Interfaccia web
FIG 5 - Interfaccia web


Shell Interattiva e Post-Exploitation 

Nel contesto di una valutazione di sicurezza completa, la possibilità di stabilire un accesso shell interattivo sul dispositivo vulnerabile è inestimabile. Questo non è un fine, ma un mezzo per comprendere l'entità del compromesso.
L'uso di uno script di shell dedicato (shell.sh) consente di inviare comandi in tempo reale:
chmod +x shell.sh && ./shell.sh 192.168.1.10:80

Se il device è vulnerabile, il tester entra in una modalità interattiva, che simula l'ambiente operativo della telecamera (es. Linux kernel 3.0.8). Questo permette di mappare i file system, verificare l'esistenza di malware e stabilire l'impatto massimo che l'esecuzione di codice remoto comporta.

Shell, modalità interattiva
FIG 6 - Shell, modalità interattiva


Tecniche di Identificazione Passiva dei Target

Per i professionisti che devono identificare i propri asset esposti a livello globale (asset discovery), il toolkit fa riferimento a tecniche di discovery basate su motori di ricerca specializzati, come Shodan. L'uso di dork specifici (query avanzate) come: 3.1.3.150324 permette di localizzare pubblicamente le telecamere che espongono la web interface con la versione di firmware nota per essere vulnerabile. Questo è anche il metodo utilizzato dagli attacker per trovare dispositivi vulnerabili.

Shodan
FIG 7 - Shodan

Il toolkit include un template compatibile con lo scanner di vulnerabilità Nuclei (nuclei-template.yaml). Ciò consente ai team di sicurezza di integrare i check specifici per questa vulnerabilità all'interno dei loro workflow automatizzati di scansione periodica:
nuclei -t nuclei-template.yaml -list targets.txt
Questo approccio ibrido (scanner dedicato + scanner generalista) massimizza la copertura dei test rilevando: feed di snapshot aperti, download di configurazione esposti e leak di informazioni utente tramite risposte XML.



Strategie di Mitigazione e Difesa

La comprensione di questi strumenti è fondamentale per implementare una difesa robusta. Le seguenti azioni rappresentano i pilastri per mitigare il rischio di sfruttamento:
  1. Aggiornamento del Firmware: La contromisura più critica è garantire che il firmware delle telecamere sia sempre aggiornato all'ultima versione fornita dal produttore. Tali aggiornamenti contengono le patch di sicurezza per vulnerabilità come la CVE-2021-36260.
  2. Segmentazione di Rete: Le telecamere IP dovrebbero essere isolate in una VLAN dedicata (ad esempio, una rete IoT o di sorveglianza) e separate dalla rete aziendale principale. L'accesso dall'esterno dovrebbe essere limitato tramite ACL (Access Control Lists) o Firewall che permettano solo il traffico strettamente necessario.
  3. Disabilitazione di Servizi Non Necessari: Disabilitare tutti i servizi di rete e gli endpoint che non sono essenziali per il funzionamento della telecamera riduce la superficie di attacco.
  4. Monitoraggio e Hardening: Utilizzare strumenti di monitoraggio del traffico di rete (IDS/IPS) per rilevare pattern di attacco noti e tentativi di sfruttamento. Inoltre, implementare una politica di password robuste e cambiare le credenziali di default.
  5. Utilizzo di Dorking/Scanner di Sicurezza: I tester possono utilizzare strumenti come Shodan o template come quelli di Nuclei (come menzionato nello strumento analizzato) per identificare proattivamente i propri dispositivi esposti con firmware obsoleto, replicando l'approccio degli attacker.