<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI Emoji";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.Stylwiadomocie-mail17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="PL" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Recently, bad people try to send ransomware in ACE archive with .rar extension. Inside is .jse file.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Unfortunately, amavisd-new is passing this undetected (does not recognize ACE archive and can’t unpack it).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Extracting mime components from a string<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Issued a new file name: p001<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Issued a new file name: p002<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Issued a new pseudo part: p003<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) p003 1 Content-Type: multipart/mixed<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Charging 1551 bytes to remaining quota 25461000 (out of 25461000, (0%)) - by mime_decode<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) p001 1/1 Content-Type: text/plain, base64, size: 1551, SHA1 digest: 0ee8569abe1472ea4ddc0f5d2fd62cc13cbbe995<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) reparenting p001 from p000 to p003<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Charging 34500 bytes to remaining quota 25459449 (out of 25461000, (0%)) - by mime_decode<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) p002 1/2 Content-Type: application/octet-stream, base64, size: 34500, SHA1 digest: 3168e9d25b548b4b73fa62b188921648c73593c7, name: Kwit_Skan.rar<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) reparenting p002 from p000 to p003<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) get_deadline mime_decode - deadline in 480.0 s, set to 288.000 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) prolong_timer mime_decode: timer 288, was 288, deadline in 480.0 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) get_deadline mime_decode-1 - deadline in 480.0 s, set to 288.000 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) prolong_timer mime_decode-1: timer 288, was 288, deadline in 480.0 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) inspect_dsn: parts: multipart/mixed, text/plain, application/octet-stream<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) inspect_dsn: not a bounce<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) get_deadline dsn_parse - deadline in 480.0 s, set to 288.000 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) prolong_timer dsn_parse: timer 288, was 288, deadline in 480.0 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) decode_parts: level=1, #parts=3 : p001, p002, p003<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) running file(1) on 2 files, arglist size 23<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) run_command: [2353] /usr/bin/file p001 p002 </dev/null 2>&1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2353]: (02239-01) open_on_specific_fd: target fd0 closing, to become < /dev/null<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2353]: (02239-01) open_on_specific_fd: target fd1 closing, to become (65) &=19<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2353]: (02239-01) open_on_specific_fd: target fd1 dup2 from fd19 (65) &=19<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2353]: (02239-01) open_on_specific_fd: source fd19 closed<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2353]: (02239-01) open_on_specific_fd: target fd2 closing, to become (65) &1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2353]: (02239-01) open_on_specific_fd: target fd2 dup2 from fd1 (65) &1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) result line from file(1): p001: UTF-8 Unicode text, with CRLF line terminators\n<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup_re("UTF-8 Unicode text, with CRLF line terminators") matches key "(?^i:^UTF.* Unicode text\\b)", result="txt"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [map_full_type_to_short_type] => true,  "UTF-8 Unicode text, with CRLF line terminators" matches, result="txt", matching_key="(?^i:^UTF.* Unicode text\\b)"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) File-type of p001: UTF-8 Unicode text, with CRLF line terminators; (txt)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) result line from file(1): p002: ACE archive data version 20, from Win/32, version 20 to extract, with recovery record, solid\n<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup_re("ACE archive data version 20, from Win/32, version 20 to extract, with recovery record, solid") matches key "(?^:^)", result="dat"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [map_full_type_to_short_type] => true,  "ACE archive data version 20, from Win/32, version 20 to extract, with recovery record, solid" matches, result="dat", matching_key="(?^:^)"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) File-type of p002: ACE archive data version 20, from Win/32, version 20 to extract, with recovery record, solid; (dat)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) decompose_part: p001 - atomic<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) decompose_part: p002 - atomic<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) get_deadline parts_decode - deadline in 479.9 s, set to 288.000 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) prolong_timer parts_decode: timer 288, was 288, deadline in 479.9 s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [bypass_header_checks] => undef, "xxx@xxx" does not match<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) check_header: 0, OK<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [bypass_header_checks] => undef, "xxx@xxx" does not match<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Checking for banned types and filenames<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup: (scalar) matches, result="DEFAULT"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [banned_filename], 1 matches for "xxx@xxx", results: "(constant:DEFAULT)"=>"DEFAULT"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) collect banned table[0]: xxx@xxx, tables: DEFAULT=>Amavis::Lookup::RE=ARRAY(0x2764760)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) starting banned checks - traversing message structure tree<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) check_for_banned (p003,p001) multipart/mixed | text/plain,.txt<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) doing banned check for xxx@xxx on multipart/mixed | text/plain,.txt<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup_re(["multipart/mixed","text/plain",".txt"]), no matches<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [check_bann:xxx@xxx] => undef, ["multipart/mixed","text/plain",".txt"] does not match<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [banned_namepath_re] => undef, "P=p003\tL=1\tM=multipart/mixed\nP=p001\tL=1/1\tM=text/plain\tT=txt" does not match<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) p.path xxx@xxx: "P=p003,L=1,M=multipart/mixed | P=p001,L=1/1,M=text/plain,T=txt"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) check_for_banned (p003,p002) multipart/mixed | application/octet-stream,.dat,Kwit_Skan.rar<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) doing banned check for xxx@xxx on multipart/mixed | application/octet-stream,.dat,Kwit_Skan.rar<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup_re(["multipart/mixed","application/octet-stream",".dat","Kwit_Skan.rar"]), no matches<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [check_bann:xxx@xxx] => undef, ["multipart/mixed","application/octet-stream",".dat","Kwit_Skan.rar"] does not match<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [banned_namepath_re] => undef, "P=p003\tL=1\tM=multipart/mixed\nP=p002\tL=1/2\tM=application/octet-stream\tT=dat\tN=Kwit_Skan.rar" does not match<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) p.path xxx@xxx: "P=p003,L=1,M=multipart/mixed | P=p002,L=1/2,M=application/octet-stream,T=dat,N=Kwit_Skan.rar"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) banned check: any=0, all=N (1)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup_re("MAIL") matches key "(?^:^MAIL$)", result="1"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) lookup [keep_decoded_original] => true,  "MAIL" matches, result="1", matching_key="(?^:^MAIL$)"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Issued a new file name: p004<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) presenting full original message to scanners as /var/spool/amavisd/tmp/amavis-20180420T094955-02239-79PbWM9A/parts/p004<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) Calling virus scanners, 3 files to scan in /var/spool/amavisd/tmp/amavis-20180420T094955-02239-79PbWM9A/parts<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Apr 20 09:49:55 mx01 amavis[2239]: (02239-01) invoking av-scanner ClamAV-clamd<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">(…)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">file Kwit_Skan.rar<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Kwit_Skan.rar: ACE archive data version 20, from Win/32, version 20 to extract, with recovery record, solid<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I try to block it:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">$banned_filename_re = new_RE(<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">### BLOCKED ANYWHERE<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># qr'^UNDECIPHERABLE$',  # is or contains any undecipherable components<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  qr'^\.(exe-ms|dll)$',                   # banned file(1) types, rudimentary<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  qr'^\.jse$',<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  qr'^\.pif$',<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  qr'^\.ace$',<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  qr'^ACE archive data version.*$',<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL">But amavisd-new still passes this ransomware archives</span><span lang="EN-US" style="font-family:"Segoe UI Emoji",sans-serif;color:#1F497D;mso-fareast-language:PL">☹</span><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL">Can you help me with banning ACE archive by filetype or add support for ACE archives to amavisd (eg. by using unace)?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL">I’m using amavisd-new-2.11.0-3.el7.noarch on CentOS Linux release 7.4.1708<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL">--
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:PL">Marcin<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>