Kuna tarkvarasse implementeeritakse omavolilise süsteemiressursside kasutamise vastu erinevaid turvaelemente, peavad viirused levimiseks ära kasutama programmides leiduvaid vigu. Vigased tarkvara arendusstrateegiad suurendavad tavaliselt ka nende ärakasutamise tõenäosust pahavara poolt.