Blocca pacchetti / sequenze specifiche di pacchetti per rimuovere la "caratteristica" disturbante del client

0

Recentemente, una delle mie applicazioni client-server ha iniziato a disturbarmi con alcune "notifiche" molto fastidiose. In sostanza, ciò che accade è che il server remoto invia alcuni pacchetti al mio client, che li traduce in un messaggio che viene visualizzato nella sua interfaccia. Il fatto è che queste notifiche veramente mi infastidiscono.

Poiché queste notifiche non sono di vitale importanza per il client, ho iniziato ad analizzare i miei flussi TCP provenienti dal server remoto. Ho notato uno schema evidente: ogni volta che vengono visualizzate le notifiche, vengono inviati 4 pacchetti specifici. Ad esempio:

Flags [P.],  seq 60:297,                 ack 1,          win 257,    options [nop,  nop,    TS val 108022880 ecr 914609],    length 237
Flags [.],                               ack 6,          win 257,    options [nop,  nop,    TS val 108022891 ecr 915061],    length 0
Flags [P.],  seq 297:534,                ack 6,          win 257,    options [nop,  nop,    TS val 108022891 ecr 915061],    length 237
Flags [.],                               ack 11,         win 257,    options [nop,  nop,    TS val 108022904 ecr 915090],    length 0

Ho osservato la comunicazione TCP per un po 'e lasciato apparire diverse notifiche. Ecco cosa ho notato:

  • Il server invia sempre pacchetti 4 quando richiede al client di "notificarmi".
  • Questi pacchetti sono sempre organizzati nello stesso ordine: 237 byte, 0 byte, 237 byte, 0 byte.
  • Il resto della comunicazione tra il server e il client non segue alcun modello (tranne quando faccio ripetutamente le stesse richieste al client, ovviamente).

Da quando sono riuscito a identificare un pattern, ora mi piacerebbe che il mio computer lo rilevasse quando si verifica, e blocca i pacchetti prima che raggiungono il client.

Ho provato a usare la dimensione come parametro di blocco usando:

iptables -I INPUT -p tcp -s [server-IP] -m length --length 237 -j DROP

Sfortunatamente, posso vedere i pacchetti lunghi 237 byte che raggiungono il client ... C'è un modo in cui potrei essere abbastanza specifico con iptables , al fine di bloccare questa particolare sequenza, senza interrompere l'intera comunicazione stream?

Modifica: l'opzione Non mostrare notifiche disturbanti non esiste nel client, sarebbe troppo facile, no? Queste notifiche sono molto simili agli annunci.

    
posta John WH Smith 13.06.2014 - 23:25
fonte

1 risposta

2

No. Se si eliminano i pacchetti dal centro di una connessione, il server invierà nuovamente tali pacchetti fino al loro esito positivo. Se non riescono per un tempo sufficientemente lungo, il server supporrà che l'intera connessione non sia riuscita e chiuderà la connessione.

Il motivo per cui la regola IPTables non corrisponde è che IPTables corrisponde all'intera lunghezza del pacchetto, mentre i 237 byte corrispondono alla lunghezza dei dati nel pacchetto TCP. La lunghezza del pacchetto completo è più lunga di almeno 20 byte (potrebbe essere più, a seconda delle opzioni TCP).

È possibile eseguire il proxy della connessione e rimuovere effettivamente il messaggio a livello di applicazione, ma ciò dipenderebbe dal protocollo in uso.

    
risposta data 13.06.2014 - 23:40
fonte

Leggi altre domande sui tag