User Tools

Site Tools


doc:appunti:linux:sa:procmail_sanitizer_clamav

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:procmail_sanitizer_clamav [2020/07/22 11:50] – [Sanitizer] niccolodoc:appunti:linux:sa:procmail_sanitizer_clamav [2022/04/11 18:13] (current) – [Content-Type ed estensioni per Sanitizer] niccolo
Line 161: Line 161:
 ==== Content-Type ed estensioni per Sanitizer ==== ==== Content-Type ed estensioni per Sanitizer ====
  
-Nella whitelist #2 vengono indicate delle estensioni per cui l'allegato passa intalterato, cioè non viene //neutralizzato// cambiandogli nome.+Nella **file_list_2** vengono indicate delle estensioni per cui l'allegato passa intalterato, cioè non viene //neutralizzato// cambiandogli nome. In realtà Sanitizer applica la whitelist sia che corrisponda l'**estensione** del file, sia che corrisponda il **Content-Type**. 
 + 
 +Non è del tutto chiaro come avere la corrispondenza tra i due, ad esempio (empiricamente) si è determinato che il Content-Type **application/octet-stream** corrisponde all'estensione **bin**. 
 + 
 +Il riconoscimento del tipo di file viene fatto dalla funzione **check_file_type** del modulo **Anomy::Sanitizer::FileTypes**. 
 + 
 +Un problema comune con Sanitizer sono le parti del messaggio con MIME type **text/html**: se il contenuto non è un HTML ben formato, esse subiscono il **defang**, cioè il il MIME type viene modificato in **application/DEFANGED** (la stringa DEFANGED può essere personalizzata configurando l'opzione **msg_defanged**). Questo di solito impedisce la corretta visualizzazione //inline// di quella parte del messaggio nel client di posta. 
 + 
 +Nel sorgente Perl del modulo **FileTypes** si vede che la classificazione di una parte come oggetto di tipo HTML richiede la presenza di una espressione regolare nella parte stessa (la verifica riguarda solo i primi 512 bytes): 
 + 
 +<code perl> 
 +my $HTML = { 
 +    id         => "html", 
 +    risk       => $low, 
 +    name       => "HTML text file", 
 +    extensions => [ "html", "htm", "shtml" ], 
 +    mime_types => [ 'text/html' ], 
 +    magic      => [ ], 
 +    regexp     => '<html|<body|<p>|<b>|<i>|<br>|</a>', 
 +}; 
 +</code> 
 + 
 +È possibile personalizzare il modulo **FileTypes** definito in **/usr/share/perl5/Anomy/Sanitizer/FileTypes.pm** facendone una copia in **/etc/perl/Anomy/Sanitizer/FileTypes.pm**. Rimuovendo l'elemento **regexp** dal dictionary, Sanitizer riconoscerà una parte HTML considerando solo l'estensione o il MIME type, senza analizzare il contenuto.
  
-In realtà Sanitizer applica la whitelist sia che corrisponda l'**estensione** del file, sia che corrisponda il **Content-Type**. Non è chiaro come avere la corrispondenza tra i due tipi, ad esempio (empiricamente) si è determinato che il **Content-Type application/octet-stream** corrisponde all'estensione **bin**. 
 ===== Cosa succede se clamd è fermo ===== ===== Cosa succede se clamd è fermo =====
  
doc/appunti/linux/sa/procmail_sanitizer_clamav.1595411408.txt.gz · Last modified: 2020/07/22 11:50 by niccolo