DMA[2006-1031a] - 'Intego VirusBarrier X4 definition bypass exploit' Author: Kevin Finisterre Vendor(s): http://www.intego.com Product: 'Intego VirusBarrier X4 <= VirusBarrierX47070.dmg' References: http://www.digitalmunition.com/DMA[2006-1031a].txt Description: Intego VirusBarrier X4 is the simple, fast and non-intrusive antivirus security solution for Macintosh computers, by Intego, the leading publisher of personal security software for Macintosh. It offers thorough protection against viruses of all types, coming from infected files or applications, whether on CD-ROMs, DVDs or other removable media, or on files downloaded over the Internet or other types of networks. Intego VirusBarrier X4 protects your computer from viruses by constantly examining all the files that your computer opens and writes, as well as watching for suspicious activity that may be the sign of viruses acting on applications or other files. With Intego VirusBarrier X4 on your computer, you can rest assured that your Macintosh has the best protection available against viruses of all kinds. Although VirusBarrier does a pretty good job of halting malicous activity the product currently suffers from a flaw related to the amount of alerts that it can process simultaneously. If an attacker is able to trigger multiple alerts in succession within a very short amount of time he or she may be able cause VirusBarrier to completely ignore positive matches against virus definitions. The consequences of ignored matches may include full system compromise or further spreading of malware. As an example we will show how VirusBarrier normally stops a local root exploit with behavior similar to 'OSX.ExploitMachex.A', then we will demonstrate how the VirusBarrier protection can be bypassed by using a simple flood of Eicar Test files. Any typical attempt to access or execute a file or program that is a match for a VirusBarrier definition results in an alert on the user interface. There is a sweet lookin insulin bottle on the screen that slowly empties as the virus nears eradication. 'excploit' is infected by 'OSX.ExploitMachex.A' What would you like to do ('Ignore' || 'Repair')? Selecting 'Ignore' allows the malicious code to execute as if no AntiVirus program existed at all. virusbarrier-users-ibook:/tmp virusbarrieruser$ ./excploit uid=0(root) gid=0(wheel) groups=0(wheel), 81(appserveradm), 79(appserverusr), 80(admin) On the other hand if you chose 'Repair' the process is terminated dead in its tracks and the file is nulled out: virusbarrier-users-ibook:/tmp virusbarrieruser$ ./excploit -bash: ./excploit: Operation not permitted virusbarrier-users-ibook:/tmp virusbarrieruser$ ls -al excploit -rwxr-xr-x 1 virusbar wheel 0 Oct 31 02:02 excploit The above output demonstrates how Virusbarrier is supposed to work. Under normal circumstances this would be adequate to stop a malicious attack. If however an attacker floods the file system with dummy virus files at a quick rate the VirusBarrier software will promptly stop responding after presenting the user with a few audible and visual alerts. After about 40 some odd infected files in a row the system will become confused and in some cases VirusBarrier may stop responding completely. (Intego confirmed a limit of 20 files) When under attack the user may see dozens of messages on the screen. With our example code the messages are similar to the following: '0.92815455662033' is infected by 'EICAR Test' What would you like to do ? >>From the attackers standpoint the exploitation is fairly quick and simple. Our example uses a local root exploit however this tactic could easily be applied to any existing malware technique that Intego VirusBarrier protects against. Code could in theory be run as a precurser to an InqTana attack as a means to bypass the Intego protection. The existing signatures for InqTana A B C and D would then be completely useless and an E variant would be born. virusbarrier-users-ibook:~ virusbarrieruser$ cd ~/Desktop/pwntego virusbarrier-users-ibook:~/Desktop/pwntego virusbarrieruser$ ls Pwntego.pl Pwntego.sh README.txt pwntego.uu rand-eicar.pl virusbarrier-users-ibook:~/Desktop/pwntego virusbarrieruser$ ./Pwntego.pl rm: /tmp/objc_sharing_ppc_92: Permission denied ;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P ;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p ;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p;p;P;p;p Injecting pwnacillin shot ;p;P;p;p;p;P;p;p;p;P;p;puid=0(root) gid=0(wheel) groups=0(wheel), 81(appserveradm), 79(appserverusr), 80(admin) rm: /tmp/objc_sharing_ppc_92: Permission denied In the above example 'OSX.ExploitMachex.A' is being executed on a machine that is actively protected by VirusBarrier. In a matter of seconds the Intego engine is flooded and the attacker has the ability to completely ignore any Intego virus and malware definitions. One fun side effect of this attack is that the user must manually ignore a number of alerts. The users is either forced to Wait for each alert to timeout on its own after several seconds or respond individually to each one. This attack has a fairly obvious signature in syslog if the attacker is making use of the example code provided in this text. Obviousyly using random viruses and better random locations and names is a possible vactor for a crafty attacker. virusbarrier-users-ibook:/var/log root# tail -n 30 /var/log/vbmgvx.log Tue Oct 31 02:01:59 2006 - File infected: /private/tmp/excploit by OSX.ExploitMachex.A Tue Oct 31 02:03:35 2006 - File infected: /private/tmp/0.928154556620033 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.61298609695314 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.162308515588851 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.0414842034961147 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.170612903152691 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.663680631042556 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.989461917736666 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.141391639438556 by EICAR Test Tue Oct 31 02:03:36 2006 - File infected: /private/tmp/0.767640548831881 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.33160483146003 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.905278172650473 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.694262116056965 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.659224330986948 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.0702005096982283 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.708270066600888 by EICAR Test Tue Oct 31 02:03:37 2006 - File infected: /private/tmp/0.59629Vixen08698 by EICAR Test Tue Oct 31 02:03:38 2006 - File infected: /private/tmp/0.56121Nixen47099 by EICAR Test Tue Oct 31 02:03:38 2006 - File infected: /private/tmp/0.56036Rocks!6377 by EICAR Test Tue Oct 31 02:03:38 2006 - File infected: /private/tmp/0.184830066600818 by EICAR Test Tue Oct 31 02:03:38 2006 - File infected: /private/tmp/0.783363853189261 by EICAR Test With the current fixes in place once VirusBarrier gets 19 alerts, the next malware is simply quarantined until the administrator can repair them. In our example, the additional processes get a permission error when they are executed. Of course since everyone knows there is no malware for Macintosh this scenario would quite simply never be encountered..... *smirk* The Intego staff was more than helpful and willing to address this issue in a timely fashion. After communications were established this problem was addressed, and fixes were out the door to customers in a matter of 2 days. How about that for turn around time! Workaround: Please update to the latest version of Intego Virus Barrier and the latest Vdefs. http://www.intego.com/services/updates.asp?product=VirusBarrier Intego has fixed this bug in the 2006/11/01 Vdef files.