Операційна система або програма можуть зазнати вірусного нападу, якщо вони мають можливість запустити програму, яка не є частиною самої системи або програми. Цій умові задовольняють усі популярні «настільні» операційні системи, багато офісних програм, графічні редактори, системи проектування та інші програмні комплекси, що мають вбудовані скриптові мови.
Комп’ютерні віруси, черв’яки, троянські програми існують для десятків операційних систем та додатків. У той же час є безліч інших операційних систем і додатків, для яких шкідливі програми поки не виявлені. Що є причиною існування шкідливих програм в одних системах та відсутності в інших?
Причиною появи шкідливих програм у конкретній операційній системі чи додатку є одночасне виконання наступних умов:
- популярність, широке поширення даної системи;
- документованість – наявність різноманітної та достатньо повної документації по системі;
- незахищеність системи або існування відомих уразливостей в її безпеці та додатках.
Кожна умова є необхідною, а виконання всіх умов одночасно є достатнім для появи різноманітних шкідливих програм.
Умова популярності
Умова популярності системи потрібна для того, щоб вона потрапила на очі хоча б одному комп’ютерному хулігану або хакеру. Якщо система існує в одиничних екземплярах, то ймовірність її зловмисного використання близька до нуля. Якщо ж виробник системи домігся її масового поширення, то очевидно, що рано чи пізно хакери та вірусописувачі спробують скористатися нею у своїх інтересах.
Напрошується природний висновок: чим популярніша операційна система або додаток, тим частіше вона буде жертвою вірусної атаки. Практика це підтверджує – розподіл кількості шкідливого програмного забезпечення для Windows, Linux та MacOS практично збігається з частками ринку, які займають ці операційні системи.
Документація
Наявність повної документації необхідне існування вірусів з природної причини: створення програм (включаючи вірусні) неможливе без технічного опису використання сервісів операційної системи та правил написання додатків. Наприклад, у звичайних мобільних телефонів кінця минулого і початку цього століття подібна інформація була закрита – ні компанії-виробники програмних продуктів, ні хакери не мали змоги розробляти програми для цих пристроїв. Телефони з підтримкою Java та «розумні» телефони мають документацію з розробки додатків — і, як наслідок, з’являються і шкідливі програми, розроблені спеціально для телефонів даних типів.
Вразливості
Уразливістю називають помилки («дірки») у програмному забезпеченні, як програмістські (помилка в коді програми, що дозволяє вірусу «пролізти в дірку» та захопити контроль над системою), так і логічні (можливість проникнення в систему легальними, іноді навіть документованими методами). Якщо в операційній системі або в її додатках існують відомі вразливості, то така система відкрита для вірусів, хоч би якою захищеною вона була.
Під захищеністю системи розуміються архітектурні рішення, які не дозволяють новому (невідомому) додатку отримати повний або досить широкий доступ до файлів на диску (включаючи інші додатки) та потенційно небезпечних сервісів системи. Подібне обмеження фактично блокує будь-яку вірусну активність, але при цьому природно накладає суттєві обмеження на можливості звичайних програм.
Приклади захищених систем
Прикладів широко відомих захищених багатофункціональних та відкритих операційних систем та програм, на жаль, немає. Частково задовольняє вимогу захищеності Java-машина, яка запускає Java-додаток у режимі «пісочниці» (суворо контролює потенційно небезпечні дії програми). І справді, «справжніх» комп’ютерних вірусів та троянських програм у вигляді Java-додатків не було досить довгий час (за винятком тестових вірусів, які були практично непрацездатні). Шкідливі програми у вигляді Java-додатків з’явилися лише тоді, коли було виявлено способи обходу вбудованої Java-машину системи безпеки.
Прикладом широко використовуваних захищених систем можуть бути операційні системи в мобільних телефонах (не в «розумних» смартфонах і без підтримки Java-програм, що завантажуються ззовні). Але в них неможливо встановити нові програми, немає документації для їхньої розробки, тобто функціонал системи серйозно обмежений, немає можливості його нарощування. Але немає і вірусів.
Іншим прикладом платформи, що закрита для вірусів, є платформа BREW. У мобільні телефони на цій платформі встановлюються лише сертифіковані програми (використовується крипто-підпис) та суворо через провайдера мобільного зв’язку. До розробки програм для BREW залучаються сторонні компанії-розробники, існує детальна документація щодо розробки. Однак для кожного додатка необхідно отримати сертифікат, що знижує швидкість розробки, ускладнює бізнес-процеси. В результаті дана система не може похвалитися великою популярністю та великою кількістю додатків у порівнянні з конкуруючими пропозиціями.
Важко уявити, що було б, якби настільні системи типу Windows чи MacOS були побудовані за тими самими принципами. Істотно б ускладнилася (або навіть просто стала б неможливою) розробка програмного забезпечення незалежними компаніями, значно збіднішав би спектр різних інтернет-послуг, швидкість роботи бізнес-процесів була б помітно нижчою. Світ був би іншим — біднішим, нуднішим і повільнішим. Таким чином, збитки від вірусних атак можна розглядати як плату за те, що ми живемо в динамічному світі, у світі інформації та високих швидкостях.
