PhpStorm è uno degli ambienti di sviluppo integrato (IDE) più utilizzati per la programmazione PHP, la gestione dei progetti web e l'interazione con database, framework e strumenti di sviluppo. Proprio perché viene impiegato quotidianamente per lavorare su codice sorgente, repository, server remoti e servizi esterni, la sua sicurezza deve essere considerata parte integrante della protezione dell'infrastruttura IT aziendale. Un problema di sicurezza che coinvolge l'IDE, infatti, non riguarda soltanto il software installato sul computer dello sviluppatore, ma può avere conseguenze anche sulle credenziali, sulle connessioni e sui sistemi raggiungibili dalla postazione.
Un recente episodio ha coinvolto diversi prodotti JetBrains, tra cui PhpStorm, a causa della compromissione delle chiavi private di alcuni certificati intermedi appartenenti all'autorità di certificazione eMudhra. Il problema ha evidenziato una criticità nella gestione dei certificati digitali considerati attendibili dagli strumenti di sviluppo. Un attaccante in grado di intercettare il traffico di rete avrebbe potuto sfruttare i certificati compromessi per impersonare siti web e servizi contattati dalle applicazioni JetBrains, creando le condizioni per attacchi di tipo Man-in-the-Middle. Per affrontare il problema, JetBrains ha distribuito aggiornamenti correttivi e indicazioni specifiche per verificare le installazioni interessate.
Cosa è successo e perché il problema riguarda PhpStorm
Per comprendere l'impatto dell'incidente è necessario considerare il funzionamento della validazione TLS. Quando PhpStorm stabilisce una connessione HTTPS verso un servizio esterno, verifica il certificato presentato dal server attraverso una catena di certificazione che deve terminare in un'autorità considerata attendibile. Questa verifica serve a garantire che il server contattato sia effettivamente quello previsto e che la comunicazione non venga intercettata da soggetti non autorizzati.
Il problema riguarda alcuni certificati intermedi e le relative chiavi private compromesse. Se un certificato appartenente alla catena di fiducia viene considerato ancora valido da un'applicazione, un attaccante che riesca a intercettare il traffico può tentare di presentare certificati contraffatti per impersonare servizi legittimi. In questo scenario, il rischio non è limitato alla navigazione web, ma può interessare anche le comunicazioni effettuate dall'IDE verso repository, servizi remoti e altri endpoint utilizzati durante lo sviluppo.
Un aspetto tecnico importante è che PhpStorm utilizza il proprio ambiente Java Runtime, denominato JetBrains Runtime (JBR), con un archivio di certificati attendibili distinto da quello del sistema operativo. Di conseguenza, installare gli aggiornamenti di Windows o macOS non è sufficiente per correggere il problema. Anche il browser integrato nell'IDE, basato su JCEF, e il servizio in background jetbrainsd dispongono di componenti di gestione dei certificati che richiedono verifiche specifiche. Aggiornare soltanto il runtime principale non garantisce automaticamente la correzione di tutte le componenti coinvolte.
Aggiornare PhpStorm alla versione corretta
La prima operazione da effettuare è verificare la versione installata e confrontarla con quelle indicate nelle comunicazioni di sicurezza del produttore. Per PhpStorm sono stati distribuiti aggiornamenti correttivi nei diversi rami di versione, tra cui 2026.2.4, 2026.1.5.1, 2025.3.6.2 e 2025.2.6.3. È consigliabile installare la versione correttiva più recente disponibile per il proprio ramo, verificando sempre la compatibilità con i progetti e i plugin utilizzati.
La verifica può essere effettuata direttamente dall'IDE attraverso il menu Help, selezionando Check for Updates. Dopo aver scaricato e installato l'aggiornamento è necessario riavviare PhpStorm, in modo che vengano caricati i nuovi componenti e il runtime corretto. Se il software viene gestito attraverso JetBrains Toolbox, bisogna aggiornare anche Toolbox App, verificando che sia installata una versione compatibile con le correzioni distribuite.
Non bisogna considerare sufficiente la presenza di un aggiornamento apparentemente completato. In un ambiente aziendale è opportuno registrare la versione installata, la data dell'intervento e l'esito della verifica, soprattutto quando PhpStorm viene utilizzato su più postazioni. Le installazioni presenti su workstation, macchine virtuali e host utilizzati per lo sviluppo remoto devono essere controllate separatamente. Anche l'IDE installato sull'host remoto deve essere aggiornato, non soltanto il client utilizzato per collegarsi.
Verificare il JetBrains Runtime e i certificati attendibili
Dopo l'aggiornamento è possibile effettuare un controllo tecnico dell'archivio dei certificati utilizzato dal runtime integrato. Su Windows, aprendo il Prompt dei comandi, si può eseguire il programma keytool.exe presente nella cartella JBR dell'installazione di PhpStorm:
"
Il comando visualizza l'elenco dei certificati presenti nel trust store del runtime. Per individuare eventuali riferimenti ai certificati coinvolti nell'incidente, è possibile utilizzare un filtro:
"
Nelle build corrette del runtime, il filtro non dovrebbe restituire corrispondenze. È importante eseguire il controllo sul runtime effettivamente utilizzato dall'IDE, perché verificare soltanto l'archivio dei certificati di Windows non permette di accertare che PhpStorm sia protetto. Inoltre, il controllo con keytool riguarda il trust store del runtime e non verifica automaticamente il browser integrato, il servizio jetbrainsd o eventuali trust store personalizzati.
Un'ulteriore verifica riguarda proprio jetbrainsd, il servizio in background utilizzato dagli strumenti JetBrains. La sua versione deve essere controllata attraverso il comando dedicato. Su Windows è possibile utilizzare PowerShell:
& "$env:LOCALAPPDATA\JetBrains\Daemon\bundles\current\jetbrainsd\bin\jetbrainsd.exe" --version
Se viene rilevata una versione precedente a quella corretta, è necessario avviare una versione aggiornata dell'IDE o di Toolbox App, così da consentire l'installazione del servizio aggiornato, oppure seguire la procedura manuale prevista dal produttore. Questo passaggio è importante perché l'aggiornamento di JBR, da solo, non corregge necessariamente il trust store incorporato in jetbrainsd.
Cosa fare se non è possibile aggiornare immediatamente
In alcuni ambienti aziendali l'aggiornamento di PhpStorm non può essere eseguito subito, ad esempio per vincoli di compatibilità, dipendenze da plugin specifici o procedure interne di validazione. In questi casi non è opportuno continuare a utilizzare il software senza aver valutato il rischio. È necessario applicare le misure temporanee previste dal produttore e pianificare l'aggiornamento definitivo nel minor tempo possibile.
La modifica del trust store richiede particolare attenzione: bisogna lavorare su una copia dell'archivio originale, rimuovere gli alias indicati nelle istruzioni tecniche e configurare il runtime affinché utilizzi il nuovo percorso attraverso le opzioni della Java Virtual Machine. Una configurazione errata può lasciare l'IDE esposto senza generare un errore evidente. Per questo motivo, la procedura dovrebbe essere eseguita da personale tecnico qualificato, verificando il percorso effettivamente caricato e mantenendo una copia di sicurezza della configurazione originale.
Un'altra misura temporanea consiste nel disabilitare il browser incorporato JCEF attraverso la chiave ide.browser.jcef.enabled nel Registry interno dell'IDE. La modifica può essere effettuata aprendo Search Everywhere, cercando l'azione Registry e disattivando la chiave indicata, per poi riavviare PhpStorm. Questa soluzione comporta però alcune limitazioni funzionali: possono smettere di funzionare le anteprime Markdown e HTML, la visualizzazione dei notebook Jupyter e alcune funzionalità dei plugin che dipendono dal browser integrato. La disattivazione deve quindi essere considerata una misura temporanea, da rimuovere quando tutte le componenti sono state aggiornate e verificate.
Controllare plugin, repository e credenziali utilizzate nello sviluppo
Quando viene individuato un problema di sicurezza in un ambiente di sviluppo, l'intervento non dovrebbe limitarsi all'aggiornamento dell'applicazione principale. PhpStorm interagisce con numerosi componenti esterni, tra cui plugin, repository Git, interpreti PHP, database, server di test e ambienti di produzione. È quindi opportuno verificare che anche questi elementi siano aggiornati e che utilizzino canali di distribuzione attendibili.
I plugin devono essere controllati attraverso la sezione Settings, Plugins, verificando la provenienza, la versione e la disponibilità di aggiornamenti. È preferibile utilizzare repository ufficiali o aziendali verificati, evitando pacchetti installati manualmente da fonti sconosciute. Anche le credenziali memorizzate nell'IDE meritano una revisione, soprattutto se la postazione viene utilizzata per accedere a repository privati, database aziendali o server remoti tramite SSH e SFTP.
Se esistono elementi concreti che fanno sospettare un'intercettazione delle comunicazioni o una compromissione della postazione, è necessario attivare una procedura di Incident Response. Questo significa analizzare i log disponibili, verificare le connessioni effettuate durante il periodo di esposizione, controllare eventuali anomalie negli accessi ai repository e valutare la rotazione delle credenziali potenzialmente coinvolte. La sostituzione delle password o dei token deve essere guidata dai risultati dell'analisi e dall'effettiva esposizione dei segreti. In presenza di indicatori di compromissione, la postazione deve essere isolata secondo le procedure aziendali e sottoposta a verifica prima di tornare operativa.
È inoltre importante ricordare che gli strumenti di sviluppo possono utilizzare runtime e archivi di certificati differenti. I Project JDK e strumenti come Node.js, Python o Go possono avere trust store indipendenti da quello di PhpStorm. Aggiornare l'IDE non significa quindi aver corretto automaticamente tutte le applicazioni e le dipendenze presenti sulla macchina.
Come prevenire problemi simili nelle aziende
L'episodio evidenzia quanto sia importante includere gli ambienti di sviluppo nella gestione della sicurezza informatica aziendale. Gli IDE non dovrebbero essere considerati semplici applicazioni installate sulle workstation, perché spesso dispongono di accessi privilegiati a codice sorgente, repository, database e infrastrutture remote. Una compromissione della postazione di uno sviluppatore può quindi rappresentare un punto di ingresso verso sistemi più ampi.
Le aziende dovrebbero adottare un processo di Vulnerability Management che comprenda l'inventario delle versioni installate, il controllo periodico degli avvisi di sicurezza dei produttori e la distribuzione tempestiva delle patch. È opportuno centralizzare le informazioni sulle postazioni, registrare le versioni degli IDE e dei relativi componenti, verificare la presenza di plugin non autorizzati e limitare i privilegi amministrativi. Anche l'utilizzo di credenziali separate per gli ambienti di sviluppo e produzione riduce l'impatto di un'eventuale compromissione.
Un ulteriore livello di protezione deriva dalla segmentazione della rete e dalla limitazione delle connessioni in uscita verso servizi non necessari. Gli ambienti di sviluppo dovrebbero poter raggiungere soltanto le risorse richieste dalle attività operative, evitando che una postazione compromessa possa comunicare liberamente con qualsiasi sistema aziendale. La gestione centralizzata dei log e il monitoraggio degli accessi ai repository permettono inoltre di individuare comportamenti anomali e intervenire con maggiore tempestività.
La sicurezza di PhpStorm e degli altri strumenti di sviluppo deve quindi essere inserita nelle procedure ordinarie di manutenzione IT, con verifiche documentate e controlli successivi all'installazione degli aggiornamenti. L'episodio dei certificati digitali dimostra che anche componenti apparentemente secondari, come un trust store interno o un servizio in background, possono influire sulla sicurezza delle comunicazioni.
ALLIT supporta le aziende nella gestione e nella protezione delle infrastrutture informatiche, nella valutazione delle vulnerabilità, nell'aggiornamento dei sistemi e nella definizione di procedure di sicurezza. Un approccio strutturato consente di ridurre i rischi legati agli strumenti di sviluppo e di proteggere dati, applicazioni e servizi aziendali.

