
Sigh... The crowd of ignoramuses who drool reading ElReg's stupid articles is again demonstrating its collective ignorance. OK, lecture time.
Nick Ryan: I am not sure what you mean exactly. What you're saying is very true - using non-viruses to test an AV program is utter idiocy but, alas, some AV testers do that too. :-( I see no evidence that this is what c't has done, though. If you are objecting to my comment, then I fail to see where the objection is - please bother to explain your thoughts in a more literate manner. I never said that they shouldn't be using viruses to test AV products. In fact, I didn't even say that they shouldn't be using viruses unknown to the AV products they are testing - a fact, which many of the half-wits here clearly missed. What I said is that it is unethical to *create* viruses (no matter for what reason but especially for the purposes of an AV test).
Joskyn Jones: Your supposition is false. My comment covers only self-replicating malware, i.e., viruses.
Gerrit Tijhof: It's quite trivial, really, and the respectable testers do it regularly. Simply, they use viruses that have appeared *after* the AV products they are testing have been released. They don't create these viruses, of course - that would be unethical. They simply use older products - usually 6 months old. Given that 5000+ new malware programs appear every month, there is plenty of test material without the need to create any new one. By conducting such tests regularly, one can eliminate flukes (e.g., under-performance because of an one-off bug in a particular old version of the AV product). Google for Andreas Marx - he is one of those who have performed such tests.
steve: Get a clue. The testers had no way of knowing what exactly the heuristics are looking for, in order to "simulate" it. Besides, the different AV products use different heuristics. Using non-viruses ("simulated" viruses) to test AV products is *wrong* - but this isn't what c't did.
Geoff Mackenzie: If your comment is a joke, it's a good one. :-) If it's a genuine misunderstanding, "c't" is the name of a German computer magazine.
Michael H.F. Wilkinson: There is a much simpler test - is the program you created capable of self-replication, or not - and was this property implemented intentionally? If yes, then your act is unethical, regardless of your intentions. First of all, there is *NOTHING* that can be performed with the help of self-replicating code that cannot be performed without (although that might be at the cost of increased efforts from your part). NOTHING. Second, a virus replicates. It *will* get out. Third, you have to submit the non-detected samples to the companies making the products that didn't detect them - so that the products can be improved or your test is meaningless. But you have no way of ensuring that the products will really "improve" if they start detecting the viruses created by you. Their heuristics might stay the same and they might add just virus-specific detection of them. So, you end up creating work for the AV companies without any benefit for the user. Worse, the "benefit" is not just zero - it's negative. Who do you think will have to pay for the increased workload of the AV companies? That's right - the users. So, virus creation always ends up costing the users money and is unethical.
Anonymous Coward: Get a grip. All industries are staffed exclusively by "capitalistic crooks". That's the definition of "industry" - capitalism. Or does your food and clothing come from charities? Or maybe you truly believe that "Product X" washes whiter than "Product Y"? The AV industry is no different. We, the anti-virus producers, have to eat - just like everybody else. For that, we have to sell the products we make. If you don't like it - don't buy them. Most people find that they like it even less when their computer gets infected due to the lack of protection - but maybe you're different.
Keith T: If user education was ever going to work, don't you think that it would have worked by now?! For every user you manage to educate, a hundred others appear. As for your "how to test" question, your supposition, despite being sarcastic, is not far from the truth. You just have to reverse it - instead of asking the virus writers for their next Spring creations (that would be stimulating virus creation - which is also unethical), wait till the next Spring to test the AV programs of today. Or test with today's viruses the AV programs released this summer. Simple, really - one would have thought that even somebody with a room-temperature IQ would be able to figure it out.
Stefan Paetow: It doesn't "mirror" anything. You don't have the slightest clue how heuristics work, do you? There are two main approaches. First approach (and the one I personally prefer) is "follow the definition". By definition, a computer virus is a program that replicates itself. So, examine the piece of code you're scanning and attempt to determine whether it contains instructions that copy it elsewhere. (Of course, it could simply be an installer - in which case your heuristic is causing a false positive - but that's why it's a heuristic and not a strict algorithm.) How does c't's approach "test" these? They don't know exactly what properties the author of the AV program is looking for in order to determine that the code is copying itself. If they create programs that have these properties, the "test" will say "this AV product is great" while in reality it might miss the majority of viruses created by the virus writers. If they create programs that don't have these properties, the "test" will say "this AV product sucks" even if it actually manages to detect the vast majority (albeit not all) of the viruses produced by the virus authors. Ergo, the "test" results are meaningless.
The second way to implement heuristics is to examine a "bloodline" of malware - i.e., many different but closely related variants of a virus family. The AV producer then determines what seems to remain relatively constant in this family and what seems to change a lot and implements detection of the constant thing. In a way, the AV producer is trying to read the mind of the virus writer and to guess how his future viruses will look like. But this approach is useless for the kind of viruses that are specifically created for test purposes - because there is no "bloodline" to examine. So, the "test" is again meaningless - many AV products that succeed very well to detect unknown viruses might fail it.
Graham Wood: It's me, the genuine article. Google me and you'll see that I'm a rather outspoken opponent of virus creation for WHATEVER purposes. Look up my papers "The Pros and Cons of Macro Virus Upconversion" and "Solving the VBA Upconversion Problem" to see to what lengths I am prepared to go, in order to avoid even trivial virus creation while still protecting the users.
And, yes, you're missing the obvious - there is a third, much better approach; see above.
Oh, and reverse-engineering OF VIRUSES is *not* illegal anywhere. In fact, even reverse-engineering of commercial products is explicitly allowed for specific purposes even in the countries that have laws against reverse-engineering.
Only a person who has no clue how AV programs work can call such "tests" a "sensible approach". It doesn't test *anything*. It's results are *meaningless*. They give absolutely no reliable information whether the tested AV programs are really good or bad.