Quali formati di file sono noti per essere non sicuri?

14

Recentemente ho scoperto che i pdf possono contenere virus, e dall'impressione ho ottenuto il suo più di un errore di overflow del buffer (ho sentito che potrebbe visitare gli URL automaticamente ma la persona sembrava insicura)

Quali sono alcuni formati di cui dovrei essere cauto fino a quando tutto è stato corretto?

Ricordo che a un certo punto c'era qualcosa in un progetto vb6 che eseguiva codice sul caricamento del progetto (senza esecuzione). Era pericoloso.

    
posta Rory Alsop 24.10.2011 - 12:54
fonte

3 risposte

23

Alcuni formati possono essere definiti intrinsecamente insicuri a causa della loro complessità e della loro storia di utilizzo come vettori di attacco. Mi vengono in mente i file Adobe PDF e MS Office. Qualsiasi tipo di eseguibile binario è certamente problematico a meno che non venga implementato il sandboxing.

Ma in generale dipende dall'applicazione utilizzata per aprire il file, non dal file stesso. Anche formati semplici che non possono incorporare codice eseguibile possono essere analizzati da un'applicazione in modo errato, causando bug e potenziali vulnerabilità. Allo stesso modo, l'applicazione sandboxing potrebbe contenere bug che consentono al codice eseguibile di estrapolare i suoi privilegi, quindi considererei i file eseguibili sandbox pericolosi quanto i formati di file complessi.

Potrebbe essere possibile avere formati di file relativamente sicuri usando un formato di dati che può essere controllato automaticamente, usando un parser generato automaticamente che non ha bisogno di alcuna informazione sul tipo di file eccetto la grammatica usata. Penso che il formato ASN.1 sia un candidato per questo. Ma questo tipo di tecnologia è usato quasi da nessuna parte.

    
risposta data 24.10.2011 - 13:20
fonte
17

In teoria, qualsiasi formato che richiede un'elaborazione complicata o che consente l'incorporamento di altri formati (in particolare Flash) può essere pericoloso. Tuttavia, i problemi più rilevanti al momento sono:

  • Qualsiasi file di Microsoft Office (non tanto a causa delle vulnerabilità di Office ma perché questi file possono incorporare Flash e sfruttare le sue vulnerabilità)
  • file PDF
  • Ovviamente, tutti i file che possono essere eseguiti da soli (file eseguibili e batch di tutti i tipi). I file "batch" su Windows non sono solo *.bat file ma anche file JavaScript *.js , file di script di Visual Basic *.vbs , file di Windows Script *.wsf e PowerShell con le sue varie estensioni di file.
  • Archivia i file (principalmente ZIP o RAR) perché sono comunemente usati per comprimere i tipi di file menzionati sopra e per filtrare i filtri precedenti.
risposta data 24.10.2011 - 13:22
fonte
7

Il problema PDF è probabilmente un riferimento a un vecchio problema per cui i plug-in PDF preinstallati eseguivano automaticamente JavaScript specificato nel frammento URL.

Non esiste un elenco completo di formati di file pericolosi. Non solo è questa lista nera, ma ignora anche i poliglotti :

The term is sometimes applied to programs that are valid in more than one language, but do not strictly perform the same function in each.

Ad esempio, è possibile costruire un GIF che è anche JavaScript e un pagina HTML che è anche un JPEG . Qualsiasi formato di file sicuro ma per il quale è possibile scrivere un poliglotta con un altro linguaggio non sicuro, è potenzialmente pericoloso.

When a server sends a file, it also sends that file’s MIME type in a Content-Type header. All is well when the Content-Type the server asserts is consistent with the expected context in which that content gets used. What happens when the server does not send a Content-Type? What happens when a file with one Content-Type is sent when a different type is expected?

Sadness happens.

Some browsers consider the content-type the server asserts to be authoritative and if the content fails to parse as that type, the content is not rendered. Others ignore the server asserted type and try to guess (sniff the content) for its type. This sniffing can take the form of heuristics like the suffix of the file name in the URL that specifies it, the “magic” first couple of bytes of the content, or simply trying to parse the file with different parsers until one fits. The type of parser tried is sometimes constrained by the particular tag (fr’instance content expected by an img tag would only attempt to be parsed according to native image formats supported by the browser.). The problem is further exacerbated by plugins like Java and Flash and by different types of caches and “file save” feature in browsers which may or may not remember what content-type was asserted by the server.

Inoltre, qualsiasi formato di file binario può potenzialmente escalationare i privilegi spuntando buffer overflow nel codice che lo decodifica.

Se stai provando a pubblicare contenuti da fonti non attendibili, devi eseguire il proxy e normalizzarlo.

    
risposta data 24.10.2011 - 15:32
fonte

Leggi altre domande sui tag