The articles below are an interesting read but I don't fully agree that whitelisting is the only way to go.
There is also containment and deletion through sandboxing / virtualization / snapshots.
Some industry analysts are proclaiming the traditional antivirus method for detecting and eradicating viruses, trojans, spyware and other baneful code by matching it against a signature to be ?dead."
The traditional signature-based method to detect viruses and other malware is increasingly seen as an insufficient defense given the rapid pace at which attackers are churning out virus and spyware variants. All of which raises the question: What?s next?