Come posso evitare di attaccare i payload del codice a barre?

2

Recentemente mi sono imbattuto in uno strumento che può iniettare payload in un codice a barre . Come posso evitare questo tipo di attacchi?

Scenario di attacco :

  • L'utente malintenzionato stampa codici a barre vulnerabili / invia codici a barre vulnerabili a me
  • Esamino il codice a barre vulnerabile e il carico utile attacca il mio sistema
  • L'utente malintenzionato ha accesso

Possibili scenari di prevenzione :

  • Non eseguire la scansione dei codici a barre, ma non è facile in termini di punti vendita o aree di archiviazione aziendali (dove la scansione dei codici a barre è importante)

Oltre a quanto sopra, eventuali soluzioni preventive possibili per prevenire questo tipo di attacchi?

    
posta BlueBerry - Vignesh4303 23.06.2016 - 14:18
fonte

3 risposte

8

Dopo aver esaminato il codice, non sono sicuro che si supponga di sfruttare o attaccare qualsiasi cosa. Sembra che il suo unico scopo sia quello di codificare un carico utile usando i codici a barre. Sarebbe un buon modo per importare codice in un sistema usando un lettore di codici a barre quando tutte le altre rotte potrebbero essere bloccate. Dopo aver individuato una vulnerabilità in un sistema, puoi "caricare" un carico utile utilizzando uno di questi codici a barre.

In quanto tale, non c'è nulla contro cui difendersi. Sta facendo sì che lo scanner di codici a barre faccia esattamente ciò che dovrebbe fare: convertire un codice a barre in testo.

    
risposta data 23.06.2016 - 14:44
fonte
7

Questo è molto simile ad attacchi come SQLi, e la riparazione è la stessa.

  • Ovunque tu permetta la scansione di un codice a barre come input, validalo nello scanner e consenti solo l'input che corrisponde ai requisiti.

Se ti aspetti un campo di 20 cifre, ammetti solo 20 cifre e togli le strisce dopo 20. Se ti aspetti 8 caratteri alfanumerici, limitati a questo.

Di solito questo problema era un problema, ma anche all'inizio degli anni '90 abbiamo risolto questo problema. (Prima facevo molti test per scanner da Telxon, Symbol ecc. E questo era prima che SQLi fosse stato veramente affrontato. Dovevamo risolverlo per vari casi d'uso compresi i codici terminali 5250 e 3270) - rimuovendoli prima che colpiscano il sistema sono progettati per sfruttare completamente il problema.

    
risposta data 23.06.2016 - 14:36
fonte
2

I codici a barre possono essere sfruttati perché la maggior parte dei codici a barre contiene non solo caratteri numerici e alfanumerici, ma anche caratteri ASCII completi (inclusi quelli speciali) a seconda del protocollo utilizzato.

Gli scanner di codici a barre sono essenzialmente emulatori di tastiera e se supportano protocolli come Code128 (che supporta caratteri di controllo ASCII), un utente malintenzionato potrebbe creare un codice a barre che quando viene letto apre un prompt della shell sul computer di destinazione a cui vengono inviati i comandi.

Oppure, i comandi Ctrl + possono essere inviati tramite codice ASCII e possono essere utilizzati per attivare i tasti di scelta rapida, che si registrano con il prefisso Ctrl +. Coloro che a loro volta lanciano dialoghi comuni come OpenFile, SaveFile, ecc. Un utente malintenzionato potrebbe utilizzare tali tasti di scelta rapida per sfogliare il file system del computer, avviare un browser o eseguire programmi di destinazione.

Quindi, se vuoi proteggerti da questo tipo di attacco, fai leggere ai lettori solo caratteri standard ed escludi che tutti gli speciali ASCII vengano elaborati / interpretati. Molti scanner supportano più protocolli, quindi selezionarne solo uno numerico e alfanumerico risolverà questo problema.

    
risposta data 23.06.2016 - 14:46
fonte

Leggi altre domande sui tag