ThinkPink Studio Logo
ThinkPink Studio
BlogShopAcademy
REVERSEENGINEERING
WINDOWSINTERNALS
CYBERSECURITY
SICUREZZAINFORMATICA
DEBITOTECNICO
ROT
RPCSS
SVILUPPOSOFTWARE
VULNERABILITÀ
THINKPINKSTUDIO

ROT in Pace: Anatomia di un Debito Tecnico Nascosto in Windows che Sta per Costarti un Botto

TP

ThinkPink Studio

7 maggio 2026

ROT in Pace: Anatomia di un Debito Tecnico Nascosto in Windows che Sta per Costarti un Botto

Quel bug non è nel tuo codice. È peggio.

C'è un problema che non riesci a risolvere. Da giorni. Il cliente chiama, il team brancola nel buio e la deadline si avvicina come una ghigliottina. Si fa debug fino a notte fonda, si tira giù qualche santo, ma niente. Il problema, vedi, non è nella tua API scintillante. Non è nel tuo codice. È sepolto in un angolo buio e ammuffito di Windows, un accrocchio indocumentato che sta per far saltare il banco. A Rosignano Solvay come a Kampala, abbiamo visto questa scena troppe volte. È il costo, salatissimo, di costruire la propria casa su fondamenta che non si conoscono.

La nostra discesa agli inferi dentro rpcss.dll e la sua Running Object Table (ROT) è iniziata così. Con un'anomalia inspiegabile. Pensavamo, illusi, che una struttura così centrale fosse documentata come si deve. Sbagliato. Armati di Ghidra, bestemmie e caffeina, abbiamo scoperchiato un vaso di Pandora. E la lezione è brutale: le architetture indocumentate sono il covo perfetto per le vulnerabilità che manderanno a gambe all'aria il tuo software.

Mettere le Mani nella ROT: Autopsia del Servizio RPC

La Running Object Table è, in teoria, l'elenco del telefono degli oggetti COM attivi su Windows. Un registro globale che permette ai processi di trovarsi e parlarsi. Semplice, no? No. Caricata rpcss.dll in Ghidra, applicati i simboli di debug (grazie Microsoft, almeno per questo), il quadro che emerge è tutto fuorché banale. La ROT non è una lista della spesa. È una hash table con 251 bucket. Un dettaglio da nerd? Certo, finché la tua applicazione non collassa sotto carico perché non avevi idea di questa architettura.

Ma il bello arriva adesso. Scavando tra le classi come CScmRotEntry, salta fuori un metodo: CScmRotEntry::GetProcessID. Ogni singola registrazione nella ROT si porta dietro il PID del processo che l'ha creata. Un'informazione che non troverai in nessuna documentazione ufficiale. Non è una svista. È un buco nero. Significa che i tuoi strumenti di monitoring e i tuoi specialisti di sicurezza stanno guardando un film a cui manca il protagonista. Non sai chi sta registrando cosa. Un invito a nozze per chi vuole fare danni senza essere visto.

Integrità e Segreti: le Gerarchie di Potere della ROT

Il colpo di grazia, però, è il meccanismo di controllo degli accessi. Qui si smette di scherzare. Troviamo controlli di "fiducia" (cRotEntryIsTrusted), di accessibilità e, soprattutto, una gerarchia basata sui Livelli di Integrità (CToken::IsTokenILLower). Tradotto dal nerdese: se due processi registrano lo stesso oggetto, vince quello col livello di integrità più alto. Un processo che gira in una sandbox, con integrità bassa, non può fregare un processo con integrità media. Fine della storia. Anzi, c'è di più. Le registrazioni fatte da un AppContainer vengono direttamente cestinate per i client esterni. Il codice parla chiaro, c'è persino la stringa di log: "Disregarding ROT entry registered by AppContainer".

Questo non è un dettaglio, è una diga. I Livelli di Integrità sono un meccanismo di sicurezza obbligatorio, potente e quasi sempre ignorato. Impediscono al codice "inferiore" di mettere le mani sul codice "superiore". Senza capire come la ROT ci gioca, stai programmando alla cieca, esponendo l'azienda a costi nascosti e a vulnerabilità che definire "gravi" è un eufemismo.

IPC, il Campo Minato Dove Esplodono i Costi

La ROT è una forma di Inter-Process Communication (IPC). E l'IPC è, da sempre, un campo di battaglia. Se gestita male, la comunicazione tra processi genera casini: race condition, deadlock, dati a ramengo. Ma soprattutto, è il parco giochi preferito dei malware per aggirare le difese e fare escalation di privilegi. Le analisi del 2026 lo confermano: le vulnerabilità nei meccanismi di IPC, specialmente in RPC, sono un vettore d'attacco primario.

Il "costo nascosto" di questa ignoranza è un pugno in due tempi:

  1. Vulnerabilità che ti sfondano la porta: La storia è piena di falle in rpcss.dll (tipo CVE-2019-1089) che hanno permesso a chiunque di diventare amministratore del sistema. Il punto delle API indocumentate è proprio questo: i cattivi le studiano per trovare modi creativi di bypassare gli antivirus e manipolare il sistema. È un gioco sporco in cui chi si fida della documentazione ufficiale parte già perdente.
  2. Debito tecnico che non sai di avere: Costruire software su fondamenta di cui ignori l'esistenza è da pazzi. È come costruire un grattacielo senza le planimetrie del terreno. I problemi di stabilità e performance sono solo l'inizio. Quando poi spunta il bug, partono settimane di debugging che costano più dello sviluppo iniziale. La specializzazione estrema della cybersecurity ha creato team di fenomeni che sanno tutto del loro orticello, ma non hanno la minima idea di come funziona la terra sottostante.

La Via di ThinkPink: Non Usare le API, Sventrale

Da noi, tra la precisione della Maremma e la resilienza di Kampala, le cose le facciamo diversamente. Un software "fatto bene" non è quello che passa i test. È quello costruito sapendo esattamente su cosa poggia. I nostri non si limitano a usare le API. Le aprono in due, le smontano, le capiscono a un livello che a confronto la documentazione ufficiale sembra un libro per bambini.

A Kampala, questo approccio è la norma per garantire robustezza e tempi di risposta disumani. È una mentalità da cacciatore di minacce, non da assemblatore di codice. Cosa significa questo per la PMI italiana che vuole scalare? Che puoi avere una sicurezza da multinazionale senza esserlo. Non serve a niente implementare le "best practice" se poi non sai cosa succede tre livelli sotto. I costi nascosti dell'ignorare il reverse engineering sono reali: downtime, figure di merda colossali e multe per non conformità. L'1% delle aziende che investirà nel capire le fondamenta a basso livello prospererà. Le altre resteranno a mettere pezze.

Siamo nel 2026. Cloud, AI, specializzazione spinta. Tutto bellissimo. Ma più si sale di livello, più diventa fondamentale sapere cosa c'è sotto. Le aziende che non investiranno in questa conoscenza profonda passeranno il loro tempo a reagire a problemi che non potevano prevedere, perché erano scritti in un linguaggio che non capivano. L'esperienza ci urla nelle orecchie che il reverse engineering non è più roba da smanettoni per rispondere a un incidente. È un pilastro per una sicurezza che anticipa i problemi, non che li rincorre. È un investimento sulla sopravvivenza del tuo business.

Smetti di Sperare, Inizia a Capire

La scoperta della struttura interna della ROT — l'hash table, il PID nascosto, la gerarchia basata sull'integrità — è la prova. I rischi più grandi si annidano dove non guardi, nelle zone d'ombra del software. In un mondo dove le minacce sono sempre più figlie di una conoscenza profonda dei sistemi, fare reverse engineering non è un'opzione. È una necessità.

La superficialità è un lusso che non puoi più permetterti. In ThinkPink Studio non ti consegniamo solo codice. Ti consegniamo la consapevolezza di sapere su cosa stai davvero costruendo il tuo futuro.

Torna al blog

Ultimo aggiornamento: