Some people in the security industry may be baffled by a video presented by Richard Steinnon with Amrit Williams, Martin McKeay and Mike Murray.
The discussion is going along predictably and with some good points (like whitelisting isn’t practical), but at the 17:45 minute mark, the odd statement is made the heuristics and behavioral detections don’t work.
This statement directly contradicts fact.
Many of the leading AV engines are, in fact, relying heavily on generic detections and heuristics (some that come to mind include Sophos, Avira, Symantec, and one of the great users of heuristics, ESET). Go ahead and grab a piece of malware, submit it to Virustotal, and see how many detections are things like “trojan.gen”, “delphi.gen”, “troj.heur.downloader”, or “trojan.packed.gen” . These are generic or heuristic detections. And there’s a lot of them.
As far as I’m concerned, just about the only thing an AV company can do these days is to lean heavily on heuristics or behavioral detections. When you’re processing over 30,000 pieces of malware daily, there’s not much choice.
We’re certainly pushing in that direction. As an example, some preliminary test results of our upcoming MX-V virtualization technology (which is almost purely behavioral) are showing detections of almost a quarter of our entire malware repository. That’s pretty powerful, and this is a behavioral system. There are no signficant issues with false positives, either.
Similarly lambasted in the video is Host Intrusion Prevention (HIPS). Well, it’s not very relevant in a 64–bit world, but in a 32–bit world, one thing HIPS can do is block an attempt by an application to write to a place in memory where it’s not supposed to (a buffer overflow). Seems like a good idea to me. Or IDS, which relies on rules that are the writer’s best approximation of a means to detect a certain type of network event.
As my good friend Randy Abrams over at ESET said:
A battle for the industry is that customers want names for the things that are detected. It isn’t feasible anymore to maintain names for all of the threats. The entire industry has been forced to adopt heuristic approaches that preclude naming each threat…In many cases heuristics are being called signatures. Generic signatures are a type of heuristic and are used with reasonably good success. When the storm worm was at its peak it was being dynamically repackaged every 5 minutes. Generic signatures were able to protect against these threats without the need for a unique signature for each variant.
I invite the curious to spend some time in an AV lab. Fair warning, however: As in legislation and sausages, you might not want to watch the process.
Alex Eckelberry
(I may get called on this by someone, so I might as well get it out of the way: My statements partially depend upon the definition of signature, heuristic and behavior detections. Generic detection, which has typically been a detection for a family, has in practice broadened to include practically any detection that matches various attributes or file types (like blacklisting a packer). But to some, a heuristic must have at least two qualifying flags to qualify. To me, it’s simple: if you’re doing an exact match of a file hash, a string, etc., it’s a signature. You can tell a customer exactly what the file is, and you have certainty when removing it from a system. However, if you’re guessing based on entry points, file types, attributes, etc., it’s a heuristic. And if you’re detecting based on behavior, well, it’s behavioral.)