Organisations should get their antivirus products security tested before deployment because the technology across the board dangerously elevates attack surfaces, COSEINC researcher Joxean Koret says.
COSEINC is a Singapore security outfit that has run a critical eye about 17 major antivirus engines and products and found 14 dangerous local and remotely-exploitable vulnerabilities.
More ReadingYou stupid BRICK! PCs running Avast AV can't handle Windows fixesHackers' Paradise: The rise of soft options and the demise of hard choicesZero-day hits Symantec endpoint productsLads from Lagos turn from 419 scams to basic malware slingingSeagate chances ARM with NAS boxes for the SOHO crowd
Koret's analysis also suggests that antivirus companies fail by requiring overly extensive privileges, not signing product updates and delivering those over insecure HTTP, running excessive old code and not conducting proper source code reviews and fuzzing.
The hall of shame included Avira, BitDefender, ESET and Panda and included various multiple remote and local vulnerabilities both subsequently patched and remaining as zero-day.
While the core antivirus engines were mostly built with the defensive measure Address Space Layout Randomisation in place, many other functions were not including the user interfaces and libraries. Some major products had disabled data execution prevention.
AV engines were often built in C which led to vulnerabilities like buffer and integer overflows, installed operating system drivers that provided for local privilege escalation and supported a laundry list of file formats resulting in bugs within the respective parsers.
The more capable an antivirus engine, the more avenues it presents for malicious actors to break into networks. For this reason, antivirus with additional capabilities should be isolated from the rest of the corporate network.
"If your application runs with the highest privileges, installs kernel drivers, a packet filter and tries to handle anything your computer may do ... your attack surface dramatically increased," Koret said in a presentation at Syscan 360. (Slides here).
"AV engines make your computer more vulnerable with a varying degree of performance penalty [and] is as vulnerable to zero day attacks as the applications it tries to protect from. [It] can even lower the operating system exploiting mitigations.
"Some AV companies don't give a f**k about security in their products."
The excessive privileges used in antivirus was a boon for attackers because exploiting the software often provided root or system level access, he said.
Villains could take advantage of the failure to both sign updates and deliver it using HTTPS to launch man-in-the-middle attacks against antivirus users "completely owning [their] machine".
"Exploiting AV engines is not different to exploiting other client-side applications. They don't have or offer any special self-protection. They rely on the operating system features (ASLR/DEP) and nothing else and sometimes they even disable such features."
Some antivirus products were more responsive than others to Koret's disclosures, including Avast which ran a bug bounty and paid out an undisclosed sum for the bugs. The largest vendors weren't notified as they should be already dedicating their sizable resources to vulnerability research.
Koret recommends antivirus companies run dangerous code within an emulator or virtual machine which would make pwnage more difficult.
"Why is it harder to exploit browsers than security products?" ®