Why Antivirus Companies Like Mine Failed to Catch Flame and Stuxnet
A
couple of days ago, I received an e-mail from Iran. It was sent by an
analyst from the Iranian Computer Emergency Response Team, and it was
informing me about a piece of malware their team had found infecting a
variety of Iranian computers. This turned out to be Flame: the malware
that has now been front-page news worldwide.
When we
went digging through our archive for related samples of malware, we were
surprised to find that we already had samples of Flame, dating back to
2010 and 2011, that we were unaware we possessed. They had come through
automated reporting mechanisms, but had never been flagged by the system
as something we should examine closely. Researchers at other antivirus
firms have found evidence that they received samples of the malware even
earlier than this, indicating that the malware was older than 2010.
What
this means is that all of us had missed detecting this malware for two
years, or more. That’s a spectacular failure for our company, and for
the antivirus industry in general.
It wasn’t the first
time this has happened, either. Stuxnet went undetected for more than a
year after it was unleashed in the wild, and was only discovered after
an antivirus firm in Belarus was called in to look at machines in Iran
that were having problems. When researchers dug back through their
archives for anything similar to Stuxnet, they found that a zero-day
exploit that was used in Stuxnet had been used before with another piece
of malware, but had never been noticed at the time. A related malware
called DuQu also went undetected by antivirus firms for over a year.
Stuxnet,
Duqu and Flame are not normal, everyday malware, of course. All three
of them were most likely developed by a Western intelligence agency as
part of covert operations that weren’t meant to be discovered. The fact
that the malware evaded detection proves how well the attackers did
their job. In the case of Stuxnet and DuQu, they used digitally signed
components to make their malware appear to be trustworthy applications.
And instead of trying to protect their code with custom packers and
obfuscation engines — which might have drawn suspicion to them — they
hid in plain sight. In the case of Flame, the attackers used SQLite,
SSH, SSL and LUA libraries that made the code look more like a business
database system than a piece of malware.
Someone might
argue that it’s good we failed to find these pieces of code. Most of the
infections occurred in politically turbulent areas of the world, in
countries like Iran, Syria and Sudan. It’s not known exactly what Flame
was used for, but it’s possible that if we had detected and blocked it
earlier, we might have indirectly helped oppressive regimes in these
countries thwart the efforts of foreign intelligence agencies to monitor
them.
But that’s not the point. We want to detect
malware, regardless of its source or purpose. Politics don’t even enter
the discussion, nor should they. Any malware, even targeted, can get out
of hand and cause “collateral damage” to machines that aren’t the
intended victim. Stuxnet, for example, spread around the world via its
USB worm functionality and infected more than 100,000 computers while
seeking out its real target, computers operating the Natanz uranium
enrichment facility in Iran. In short, it’s our job as an industry to
protect computers against malware. That’s it.
Yet we failed to do that with Stuxnet and DuQu and Flame. This makes our customers nervous.
The
truth is, consumer-grade antivirus products can’t protect against
targeted malware created by well-resourced nation-states with bulging
budgets. They can protect you against run-of-the-mill malware: banking
trojans, keystroke loggers and e-mail worms. But targeted attacks like
these go to great lengths to avoid antivirus products on purpose. And
the zero-day exploits used in these attacks are unknown to antivirus
companies by definition. As far as we can tell, before releasing their
malicious codes to attack victims, the attackers tested them against all
of the relevant antivirus products on the market to make sure that the
malware wouldn’t be detected. They have unlimited time to perfect their
attacks. It’s not a fair war between the attackers and the defenders
when the attackers have access to our weapons.
Antivirus
systems need to strike a balance between detecting all possible attacks
without causing any false alarms. And while we try to improve on this
all the time, there will never be a solution that is 100 percent
perfect. The best available protection against serious targeted attacks
requires a layered defense, with network intrusion detection systems,
whitelisting against known malware and active monitoring of inbound and
outbound traffic of an organization’s network.
This
story does not end with Flame. It’s highly likely there are other
similar attacks already underway that we haven’t detected yet. Put
simply, attacks like these work.
Flame was a failure
for the antivirus industry. We really should have been able to do
better. But we didn’t. We were out of our league, in our own game.
more @ http://www.wired.com/threatlevel/2012/06/internet-security-fail/
Wednesday, October 3, 2012
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment