I don't think it should be keyword-dependent. If someone wants to take this into his deck, he should be prepared to have it used against him as well and just as easily. Limiting it to Common cards seems reasonable, however. Also, I would hope that it would be just as likely to discard another of itself rather than focusing first on hand positions that haven't already been affected.
I know that this isn't implementable, but it would be neat if hand positions could become "immune" after being infected once, preventing any further Virus discards to that specific position. (If such a limitation wanted to be added, an "immunity" could perhaps be conveyed by already having Virus on hand. "No effect if opponent has Virus in hand.")