Операционные системы и программы могут быть заражены вирусами, если они могут запускать программы, которые не являются их составляющими. Это условие подходит для всех популярных операционных систем, большинство офисных приложений, редакторы изображений и другие программные комплексы, которые имеют внутренние исполняемые скрипты и языки.
Троянские программы, компьютерные вирусы, черви существуют для всех популярных операционных систем и приложений. Но для большого количества программ и операционных систем их не существует. Как объяснить избирательность вредоносных программ?
Для разработки вредоносных программ для конкретных операционных программ и приложений должно быть выполнено три основных условия:
1). Популярность
Программа или операционная система должна иметь широкое распространение среди пользователей.
2). Документация
На программы и операционные среды должно быть много полной и разнообразной документации.
3). Беззащитность
Система должна обладать незащищённостью или иметь известные уязвимости в безопасности.
Соблюдение всех трёх условий является достаточным для появления вредоносных программ.
Значительная популярность программной среды является для злоумышленников поводом для действия. Это условие будет играть существенную роль в быстром распространении вредоносного кода. Чем большее распространение имеет программа или операционная система, тем больше написано для неё вирусов, троянов и червей. Самой распространённой операционной системой является Windows. Подавляющее большинство вредоносных программ написано именно под эту операционную систему. Другие менее популярные операционные системы тоже имеют написанные под себя вирусы и трояны, но их массовость примерно равна доле, которую занимают сами операционные системы.
Документация необходима вирусописателям для написания вредоносной программы под конкретную среду. Если нет никакой технической документации, то как писать исполняемые программы. Без документации существование вирусов и троянов становиться невозможным.
Уязвимости (дыры в системе), которые существуют в программной среде, позволяют злоумышленнику проникнуть через неё для захвата контроля. Система не может быть защищённой, если у неё существуют известные уязвимости, которые не закрыты разработчиками.
Защищённость, это архитектура, которая не позволяет получить значительный доступ к файлам на диске и опасным сервисам. Самыми защищёнными до недавнего времени были операционные системы старых мобильных телефонов (не смартфонов и без Java приложений). Но в них нет возможности установки других программ. Многофункциональных и при этом защищённых приложений и операционных систем нет.
Поэтому, вирусы, трояны и черви, можно рассматривать как своеобразную плату за удобство использования и многофункциональность операционных систем и программных приложений.