I siti web e i server spesso vengono violati quando è presente una vulnerabilità nel codice lato server. La perforatura UDP o TCP mette tale rischio sugli utenti dell'applicazione quando le connessioni diventano peer-to-peer?
Prendiamo ad esempio la pratica chiaramente vulnerabile dell'esecuzione di un input non criticato. Ovviamente questa pratica non dovrebbe essere eseguita in base alla progettazione, ma questo genere di cose accade troppo spesso per errore. In una configurazione tradizionale, se user_a
interagisce con user_b
avremo prima user_a
invia input al server, il server elaborerebbe i dati e quindi invierà qualcosa a user_b
. Con la perforatura, otteniamo un peer-to-peer tra i due utenti e quindi user_a
invia i dati a user_b
e user_b
lo elabora per se stesso. Se fosse presente una vulnerabilità nel modo in cui l'input è stato elaborato dal server (in questo caso eseguendolo senza disinfettare), la vulnerabilità potrebbe altrettanto facilmente essere presente sul lato client, consentendo a user_a
di iniettare e eseguire direttamente il codice su user_b's
macchina.
Se dovessi trovare una grave vulnerabilità in un'applicazione di perforazione (Skype e altri servizi VoIP, alcuni giochi in tempo reale multiplayer, ecc.), c'è qualcosa che impedisce a un hacker malintenzionato di avere una backdoor diretta nel sistema di qualsiasi utente loro interagiscono? In caso contrario, i programmi peer to peer sono inutilmente rischiosi? C'è un modo tutto per mitigare questo rischio per le persone che creano queste applicazioni? E le persone che usano queste applicazioni? Programmi come Skype lasciano gli utenti a livelli eccessivi di rischio (più che tipici)?