A program that enters usually through a network and then replicates itself.