Quale danno può causare questo errore nell'implementazione di base32?

3

C'è un bug nell'implementazione Base32 in Apache Commons Codecs:

Example, there is no byte array value that can be encoded into the string "C5CYMIHWQUUZMKUGZHGEOSJSQDE4L===", but the existing Base32 implementation would not reject it but decode it into an arbitrary value which if re-encoded again using the same implementation would result in the string "C5CYMIHWQUUZMKUGZHGEOSJSQDE4K===".

Instead of blindly decoding the invalid string, the Base32 codec should reject it (eg by throwing IlleglArgumentException) to avoid security exploitation (such as tunneling additional information via seemingly valid base 32 strings).

Quello che non capisco è come un utente malintenzionato può utilizzare questo bug per eseguire il tunneling di ulteriori informazioni. L'utente malintenzionato invia una stringa base32 non valida e ottiene una stringa base32 leggermente diversa. Che danno può causare?

    
posta Prvaak 30.09.2015 - 15:45
fonte

1 risposta

2

"such as tunneling additional information via seemingly valid base 32 strings"

Questa è la preoccupazione per la sicurezza espressa da chi ha segnalato questo bug. Viene spesso chiamato canale nascosto . I canali nascosti sono modi per estrarre informazioni da una zona di sicurezza senza essere rilevati.

In generale, i canali nascosti sono raramente un problema perché:

  1. Possono essere sfruttati in situazioni in cui l'attaccante si trova già all'interno della zona di sicurezza, a quel punto la maggior parte della sicurezza è già andata in malora.

  2. Tenere traccia di tutte le possibilità di canali nascosti è un compito senza fine. La maggior parte dei protocolli di comunicazione consente alcune varianti che possono essere trasformate in canali nascosti. Il bug nel decodificatore Base32 è solo un altro modo, ma sarebbe eccessivamente ottimistico credere che questo sia l'unico.

risposta data 30.09.2015 - 16:08
fonte

Leggi altre domande sui tag