Gli zoccoli forniscono un modo in cui due processi potrebbero comunicare tra loro.
Ora questa comunicazione potrebbe essere una macchina per la comunicazione della macchina o all'interno di un sistema.
Solitamente, i socket vengono utilizzati per le comunicazioni da processo a processo attraverso la rete poiché vi sono altri modi in cui i processi possono comunicare sulla stessa macchina (ad esempio, memoria condivisa).
Si noti che "proteggere un socket" è un termine generico e non solo sull'utilizzo di SSL.
In generale, la riservatezza è una parte importante della sicurezza della tua applicazione che puoi ottenere usando SSL.
Tuttavia, c'è più sicurezza rispetto alla semplice riservatezza, specialmente per codice non gestito come C ++.
Parte di "sicurezza in esecuzione sul programma" consiste nel filtrare i dati che passano indietro e in quarta sui socket.
Dal punto di vista della sicurezza, quando il tuo programma è composto da più componenti (es. server e client), è sempre consigliabile proteggere / filtrare / disinfettare qualsiasi input in entrata e uscita in uscita tra quei componenti anche se tali dati non sono venendo direttamente dall'utente (nell'ultima perdita di Vault7 c'è stato un exploit che ha sfruttato lo scambio di dati non protetti / filtrati tra switch Cisco che consentiva il DOS o non autorizzati accesso)
Nel caso che stai descrivendo, ci sono molti scenari in cui le cose potrebbero essere sbagliate a causa di un socket non protetto locale.
Ad esempio, se quel socket era in esecuzione con privilegi elevati, potrebbe essere sfruttato dagli hacker per eseguire " escalation di privilegi "dopo aver ottenuto l'accesso sulla macchina.
Il fatto che il socket non sia esposto alla rete, significa che il socket e i dati non sono vulnerabili agli attacchi "remoti" (attacchi che potrebbero essere condotti sulla rete) ma è ancora possibile per loro essere abusato tramite attacchi locali (exploit locali e payload dannosi) e durante il processo di post-exploitation.