Rogue programs: viruses, worms and Trojan horses