Manuale d'uso di PersonalSOC
Qui si spiega come usare l'app che raccoglie, in sola lettura e con un solo pulsante, i log e lo stato delle difese di questo dispositivo in un rapporto comprensibile a colpo d'occhio. Prima si descrivono le operazioni a schermo, mentre la riga di comando è raccolta in un capitolo successivo.
1. Che cos'è PersonalSOC
PersonalSOC è un'app che raccoglie i log e lo stato delle difese di questo dispositivo e li riassume in risultati e rapporto. È pensata perché una persona senza personale di sicurezza dedicato possa vedere, con prove alla mano, che cosa accade sul proprio dispositivo e decidere cosa fare dopo.
È in sola lettura, quindi non modifica le impostazioni, non cancella file e non blocca il traffico. L'analisi dei log è fatta da analizzatori a procedura fissa che non usano né un LLM né la rete. L'integrazione LLM è facoltativa e all'inizio è disattivata.
Cosa non fa
- È uno strumento per il solo dispositivo su cui gira. Non c'è alcuna funzione per vedere più dispositivi insieme.
- Non innalza mai i propri privilegi. Un log leggibile solo da root viene mostrato come «non leggibile» e sudo non viene usato.
- «Nessun rilevamento» non è una prova di sicurezza. Anche il rischio complessivo è solo una stima da 0 a 100, non una probabilità.
- Legge solo un insieme fisso di fonti. Dalla schermata non si possono indicare file o comandi da leggere.
2. Installazione e avvio
PersonalSOC è un'app separata da RoamSwitch. Ha una propria icona ed è distribuita insieme a RoamSwitch. Nei menu di RoamSwitch non c'è un accesso: la si apre come app a sé.
| Ambiente | Installazione e apertura |
|---|---|
| Mac | Il DMG di RoamSwitch contiene PersonalSOC.app. Spostala nella cartella Applicazioni e apri «PersonalSOC». Richiede macOS 12 o successivo. |
| Linux (edizione client) | È inclusa nei pacchetti deb, rpm, tarball e AUR di RoamSwitch. Apri «PersonalSOC» dall'elenco delle app, oppure esegui personalsoc-app in un terminale. La finestra richiede WebKitGTK 4.1, che deb e rpm installano automaticamente. Su Arch (AUR), installa webkit2gtk-4.1 come dipendenza facoltativa. |
| Linux Server Edition | È incluso solo il comando. Esegui personalsoc in un terminale (l'app con finestra personalsoc-app non è inclusa). Per la gestione dell'edizione server, consulta il Manuale operativo (Linux Server). |
3. Prima verifica dello stato
Legge le fonti fisse solo quando premi «Controlla lo stato». Le fonti che non vuoi far leggere puoi disattivarle nelle impostazioni.
Procedura
- Apri l'app e premi «Impostazioni» in alto a destra.
- Sotto compaiono le fonti lette su questo sistema operativo. Togli la spunta a quelle che non vuoi far leggere.
- Premi «Salva», poi «← Indietro» per tornare alla schermata iniziale.
- Premi «Verifica lo stato». Compare una barra di avanzamento e, al termine, le schede dei risultati.
Al termine compaiono i conteggi, ad esempio «Verifica completata. 3 rilevamento/i / 2 IOC». Le schede sono spiegate nel capitolo successivo.
| Ambiente | Cosa viene letto |
|---|---|
| Mac | Il log unificato di macOS (sudo e sshd delle ultime 24 ore) e le impostazioni MCP (Claude Code, Claude Desktop, opencode, Cursor). Legge anche i log di accesso dei server web (l'Apache incluso in macOS e nginx e httpd di Homebrew). Leggere il registro di ciò che Gatekeeper ha rifiutato richiede circa 10 secondi, quindi all'inizio è disattivato. |
| Linux | Il log di autenticazione (sshd), auditd, i log di accesso web (nginx / apache, compresi i log separati per host virtuale), i log delle query DNS (dnsmasq / named) e le impostazioni MCP. |
| Entrambi | Se RoamSwitch è installato, anche il suo MCP in sola lettura. Si può disattivare con la casella «Ottenere lo storico dei rilevamenti e la diagnostica della configurazione dal MCP di RoamSwitch (sola lettura)». |
4. Come leggere i risultati
| Scheda | Cosa si vede |
|---|---|
| Dashboard | Grafici mostrano l'indicatore del rischio complessivo (stima), i conteggi per gravità, le occorrenze per categoria, l'andamento nel tempo e i conteggi MITRE ATT&CK. |
| Rapporto | Un rapporto Markdown con le fonti, i risultati per categoria e gli IOC. «Copia Markdown» lo copia per intero e «Mostra il sorgente Markdown» passa al testo grezzo. |
| Rilevamenti | Puoi scorrere i rilevamenti uno per uno, ciascuno con gravità, affidabilità, numero ATT&CK, conteggio e numeri di riga dei log che lo supportano. |
| Fonti | L'elenco di ciò che è stato verificato. Lo stato è «Letto», «Non presente», «Non leggibile (permesso)», «Non riuscito» o «Disattivato»; le fonti non leggibili o non riuscite non sono state verificate. |
| IOC | L'elenco di IP, domini, URL e hash trovati nei log. Appaiono in forma neutralizzata, come 198[.]51[.]100[.]7, perché nulla venga aperto per errore. |
| Riepilogo di input per un LLM | Questa scheda compare solo quando l'integrazione LLM è disattivata. È un riepilogo da dare a mano a un LLM e non contiene righe di log grezze. Usa «Copia». |
5. Impostazioni ed esecuzione periodica
«Impostazioni», in alto a destra nella schermata iniziale, è diviso in schede per funzione. Dopo una modifica premi «Salva», poi «← Indietro» per tornare all'inizio.
Lingua di visualizzazione Oltre a «Automatico (segui il sistema)», puoi scegliere giapponese, inglese, tedesco, spagnolo, francese, italiano, coreano, portoghese (Portogallo), cinese semplificato o cinese tradizionale, ciascuno mostrato con il proprio nome.
Esecuzione periodica (facoltativa)
Spunta «Verifica automatica a intervalli regolari» e salva: su Mac viene registrato come agente utente launchd, su Linux come timer utente systemd. L'intervallo si sceglie fra 7 livelli da 15 minuti a 24 ore e all'inizio è di 1 ora.
Viene eseguito solo personalsoc scan --notify, senza root. Notifica solo quando c'è un rilevamento assente l'ultima volta e il messaggio contiene solo conteggi (su Linux serve notify-send). Puoi anche disattivare la notifica con «Notifica solo se c'è un rilevamento assente l'ultima volta».
Deseleziona la casella e salva: la registrazione viene rimossa.
6. Integrazione LLM (facoltativa)
L'integrazione LLM è facoltativa e all'inizio è disattivata. Una volta attivata, dopo la verifica dello stato il comando del LLM scelto compie un'indagine aggiuntiva e scrive un rapporto come auditor. I comandi utilizzabili sono opencode, claude, codex e agy.
Procedura
- Spunta «Attiva l'integrazione LLM».
- Scegli il «LLM da usare». Uno indicato come «(non installato)» non ha il comando su questo dispositivo.
- Se serve, cambia il modello e il timeout (secondi). Se lasci vuoto il modello, viene usato il predefinito di quel LLM.
- Premi «Salva», torna all'inizio e premi «Verifica lo stato». Dopo la verifica parte subito l'indagine del LLM.
Cosa arriva al LLM
- Vengono passati il contenuto dei rilevamenti, le righe di log che fanno da prova, le stringhe restituite da MCP e le note sulle fonti. Sono passati perché la situazione venga indagata con precisione.
- Prima di passarli, i segreti come chiavi, token e password vengono mascherati e i caratteri invisibili rimossi.
- PersonalSOC non dà al LLM né una shell né file. Il LLM si limita a richiedere ciò che vuole indagare e PersonalSOC esegue gli strumenti in sola lettura che consente e restituisce i risultati. Ci sono al massimo 6 round di indagine.
- L'output del LLM non è considerato affidabile e nel rapporto è trattato come una citazione. Un LLM può leggere un rilevamento come più grave di quanto sia, quindi verifica sempre la conclusione nei «Risultati».
Sulla limitazione degli strumenti
- Nella colonna «Stato» della tabella nelle Impostazioni,
opencodeeclaudemostrano «Strumenti bloccati». claude viene avviato con strumenti integrati, server MCP e skill disattivati e senza caricare le tue impostazioni. opencode viene avviato con tutti i permessi negati. codexeagynon si possono disattivare in questo modo, quindi mostrano «Strumenti non bloccabili».
7. Usare la riga di comando
Il comando è personalsoc. Su Linux si trova in /usr/bin/personalsoc, su Mac dentro PersonalSOC.app/Contents/MacOS/.
| Comando | Cosa fa |
|---|---|
personalsoc scan | Controlla automaticamente i log di questo computer e RoamSwitch (MCP) e mostra i rilevamenti in un elenco. Per i log che solo root può leggere (autenticazione, server web, auditd), eseguilo con sudo. |
personalsoc scan --report | Mostra il rapporto Markdown (senza LLM). |
personalsoc scan --llm <name> | Mostra il rapporto che il LLM ha scritto come auditor dopo aver indagato con strumenti in sola lettura. name è opencode, claude, codex, agy e così via. |
personalsoc scan --notify | Notifica solo se c'è un rilevamento assente l'ultima volta. È la forma richiamata dall'esecuzione periodica. |
personalsoc <type> <file> | Analizza un file indicato. type è sshd, auditd, web, dns, unified, mcp, inject o ioc. Se indichi - come file, legge lo standard input, e si possono aggiungere anche --report, --brief e --llm. |
--lang <lang> | Si può aggiungere a qualsiasi comando e imposta la lingua di visualizzazione, con priorità sull'impostazione. I codici sono ja, en, de, es, fr, it, ko, pt-PT, zh-Hans e zh-Hant. |
--llm è già l'atto esplicito di passare il contenuto al LLM, quindi funziona anche se «Attiva l'integrazione LLM» è disattivato nelle Impostazioni. Non viene richiesta nemmeno la conferma per i LLM i cui strumenti non si possono bloccare, quindi usa codex o agy sapendo che durante l'indagine i file possono essere letti e inviati.8. Dove vengono salvati i dati e aggiornamenti
Cosa viene salvato
| Elemento | Posizione |
|---|---|
| Impostazioni | ~/.config/personalsoc/settings.json (salvato con permessi di lettura e scrittura riservati solo a te) |
| Registro dei rilevamenti precedenti (per decidere le notifiche) | ~/.local/state/personalsoc/last.json (solo hash che fanno da impronta dei rilevamenti; non si conserva testo dei log) |
| Registrazione dell'esecuzione periodica | Su Mac, ~/Library/LaunchAgents/dev.personalsoc.scan.plist (l'output va in ~/Library/Logs/personalsoc-scan.log). Su Linux, personalsoc-scan.timer e personalsoc-scan.service in ~/.config/systemd/user/. |
PersonalSOC non salva in file i rapporti né i log raccolti. Per conservarli usa «Copia Markdown» a schermo o l'output della riga di comando. Per aggiungere un LLM, modifica a mano profiles nel file delle impostazioni; non si può cambiare dalla schermata.
Aggiornamenti
Su Mac si aggiorna da «Aggiornamenti» nelle Impostazioni. L'app si collega a lafine.net solo quando premi «Verifica aggiornamenti» e riceve le informazioni sull'ultima versione (un JSON pubblico). Non viene inviato nulla su questo dispositivo né sui suoi log. Se esiste una versione più recente, premi «Scarica e installa». La firma del file scaricato viene verificata con la chiave pubblica incorporata nell'app e, se fallisce, non viene installato nulla. Al termine l'app si riavvia.
Su Mac, aggiornare RoamSwitch stesso non aggiorna PersonalSOC. Su Linux non c'è una funzione di aggiornamento e PersonalSOC è incluso negli aggiornamenti dei pacchetti RoamSwitch.
9. Se qualcosa non va
| Sintomo | Causa e rimedio |
|---|---|
| Una fonte mostra «Non leggibile (permesso)» | I log di autenticazione, del server web e di auditd non sono leggibili senza i diritti di amministratore. PersonalSOC non alza i propri privilegi; eseguilo quindi con sudo. È diverso da «nessun rilevamento»: quel log non è stato controllato. |
| Non si riesce a salvare l'esecuzione periodica | Se il Mac indica che l'app è in esecuzione da una posizione temporanea in quarantena, sposta PersonalSOC.app nella cartella Applicazioni, riaprila e salva di nuovo. Se indica che il comando personalsoc non è stato trovato, personalsoc deve trovarsi nello stesso posto dell'app stessa. |
| L'indagine con claude fallisce con «Not logged in» | PersonalSOC avvia claude senza caricare le tue impostazioni (come env e apiKeyHelper in ~/.claude/settings.json). Le configurazioni che si autenticano tramite quelle impostazioni, ad esempio con proxy, Bedrock o Vertex, falliscono. Se aggiungi a mano "llm_user_settings": ["claude"] al file delle impostazioni, claude viene avviato con le tue impostazioni caricate. Strumenti e MCP restano disattivati. |