È sicuro accettare un caricamento di file senza alcuna estensione di file?

3

Attualmente lavora su un sito Web che consente agli utenti di caricare file di dati per l'elaborazione automatizzata. Ai fini della sicurezza e della guida degli utenti, abbiamo implementato una whitelist di estensione sia lato client che lato server per accettare solo suffissi di dati comuni come .txt e .csv e così via.

Abbiamo ora scoperto che alcuni file di dati che vengono inviati non hanno alcuna estensione di file.

Questi file non vengono eseguiti dai processi dopo il caricamento: vengono analizzati per i modelli di testo. Quindi avere file non verificati sul server non rappresenta, in teoria, un grande rischio per la sicurezza. I dati in elaborazione, tuttavia, sono dati personali coperti dalla legge sulla protezione dei dati, quindi una violazione sarebbe catastrofica.

È sicuro consentire agli utenti di caricare file senza estensioni è questa istanza? E, come domanda più ampia, è sempre buona pratica consentire a un sito di consentire questi file?

    
posta Matt Thrower 05.01.2018 - 16:08
fonte

3 risposte

1

L'estensione stessa non dovrebbe avere importanza. Sarebbe bene capire invece il tipo MIME per sapere del contenuto.

In termini di rischi per la sicurezza in termini di caricamento di file, consulta anche il link

    
risposta data 05.01.2018 - 16:53
fonte
1

Dovresti eseguire controlli lato server per assicurarti che il contenuto che ricevi sia quello che ti aspetti. Probabilmente vorrai rivedere il contenuto dei file per assicurarti che sia limitato ai requisiti aziendali specifici. ad es., se questo è per caricare un CSV dei compleanni, non dovrebbero esserci tag <script> nel file.

In genere non vuoi che le persone memorizzino cose casuali sui tuoi server a meno che tu non sia DropBox o un servizio simile. In questo caso dovresti prendere precauzioni speciali come la memorizzazione dei file su un server nel proprio sottodominio e limitare l'esecuzione e il download da remoto, la scansione A / V, ecc.

These files are not executed by the processes after upload: they are parsed for text patterns. So having unverified files up on the server does not - theoretically - present a big security risk. The data being processed, however, is personal data covered by data protection law, so a breach would be catastrophic.

Se consenti ai file arbitrari di essere caricati sul tuo server ci sono alcuni rischi:

  • Se si tratta di uno script e il server non è configurato correttamente, potrebbe consentire l'esecuzione del file caricato sul lato server. Ad es., stai usando apache e caricano un file PHP, ma hai qualcosa come DefaultType application/x-httpd-php o ForceType application/x-httpd-php nella tua configurazione.
  • Gli attacchi di inclusione di file locali sono possibili se puoi ottenere un altro script o servizio per chiamare questo file.
  • Se si tratta di un file JS, possono caricare un file sul server e chiamarlo da remoto nei loro attacchi XSS.
  • Se è uno script endpoint (bash, PowerShell), potrebbe essere indirizzato da un altro script per essere scaricato da wget , curl , ecc e quindi eseguito
risposta data 05.01.2018 - 17:40
fonte
0

L'aggiunta dell'estensione non risolverà il potenziale problema di vulnerabilità del parser dei file, l'utente può rinominare un file non valido con csv / txt con pochi problemi.

Dovresti annotare tutti i potenziali rischi e chiuderli per es.

  • Controlla il tipo di file, dovrebbero esserci moduli per gestire questo
  • Utilizzare gli strumenti per cercare potenziali parole chiave di immissione nel CSV prima di eseguire l'analisi
  • Consulta il foglio Cheat di prevenzione dell'iniezione SQL .
risposta data 05.01.2018 - 16:54
fonte

Leggi altre domande sui tag