Введение

Вредоносное программное обеспечение

Вредоносное программное обеспечение (портоманто от «вредоносное программное обеспечение») — это любое программное обеспечение, намеренно разработанное для нарушения работы компьютера, сервера, клиента или компьютерной сети, утечки конфиденциальной информации, получения несанкционированного доступа к информации или системам, блокировки доступа к информации или незаметного вмешательства в компьютерную безопасность и конфиденциальность пользователя. Исследователи обычно классифицируют вредоносное ПО на один или несколько подтипов (например, компьютерные вирусы, черви, троянские программы, программы-вымогатели, шпионское ПО, рекламное ПО, вредоносные программы, вайперы и кейлоггеры). Согласно Отчету Symantec об угрозах интернет-безопасности (ISTR) за 2018 год, количество вариантов вредоносного ПО увеличилось до 669 947 865 в 2017 году, что вдвое превышает количество вариантов, зафиксированных в 2016 году. Киберпреступность, включающая атаки вредоносного ПО и другие преступления, совершаемые с использованием компьютеров, по прогнозам, обойдется мировой экономике в 6 триллионов долларов США в 2021 году, и растет темпами 15% в год. С 2021 года вредоносное ПО разрабатывается для атак на компьютерные системы, управляющие критической инфраструктурой, такой как сети распределения электроэнергии. Стратегии защиты от вредоносного ПО различаются в зависимости от его типа, но большинство из них можно предотвратить, установив антивирусное программное обеспечение, межсетевые экраны, своевременно устанавливая обновления, обеспечивая защиту сетей от вторжений, регулярно создавая резервные копии и изолируя зараженные системы. Вредоносное ПО может быть разработано для обхода алгоритмов обнаружения антивирусного программного обеспечения. Джон фон Нейман теоретически показал, что программа может воспроизводить себя. Это стало результатом, подтверждающим возможность в теории вычислимости. Фред Коэн экспериментировал с компьютерными вирусами, подтвердил постулат Неймана и исследовал другие свойства вредоносного ПО, такие как обнаруживаемость и самомаскировка с использованием примитивного шифрования. Его докторская диссертация 1987 года была посвящена компьютерным вирусам. Комбинация криптографических технологий как части полезной нагрузки вируса и использование ее в атакующих целях было инициировано и исследовано с середины 1990-х годов, включая первые идеи программ-вымогателей и методов обхода защиты. До широкого распространения Интернета вирусы распространялись на персональных компьютерах, заражая исполняемые программы или загрузочные секторы дискет. Вставляя копию себя в машинный код этих программ или загрузочных секторов, вирус заставлял себя запускаться при каждом запуске программы или загрузке диска. Первые компьютерные вирусы были написаны для Apple II и Macintosh, но они получили более широкое распространение с доминированием IBM PC и MS DOS. Первым вирусом IBM PC, обнаруженным в "дикой природе", был загрузочный вирус (c)Brain, созданный в 1986 году братьями Фаруком Альви в Пакистане. Распространители вредоносного ПО обманом заставляют пользователя загружать или запускать зараженное устройство или носитель. Например, вирус может заставить зараженный компьютер добавить автозапускаемый код на любую подключенную к нему USB-флешку. Любой, кто подключит эту флешку к другому компьютеру, настроенному на автозапуск с USB, также заразится и распространит инфекцию тем же способом. Старое программное обеспечение для электронной почты автоматически открывало HTML-письма, содержащие потенциально вредоносный код JavaScript. Пользователи также могут запускать замаскированные вредоносные вложения электронной почты. В Отчете Verizon Data Breach Investigations Report 2018 года, на который ссылается CSO Online, говорится, что электронная почта является основным методом распространения вредоносного ПО, на который приходится 96% всех случаев распространения вредоносного ПО в мире. Первые черви, сетевые инфекционные программы, появились не на персональных компьютерах, а на многозадачных системах Unix. Первым известным червем был червь Морриса 1988 года, который заразил системы SunOS и VAX BSD. В отличие от вируса, этот червь не внедрялся в другие программы. Вместо этого он использовал уязвимости в сетевых серверных программах и запускал себя как отдельный процесс. Такое же поведение используется и современными червями. С развитием платформы Microsoft Windows в 1990-х годах и гибкими макросами в ее приложениях стало возможным писать инфекционный код на языке макросов Microsoft Word и аналогичных программ. Эти макровирусы заражают документы и шаблоны, а не приложения (исполняемые файлы), но полагаются на тот факт, что макросы в документе Word являются формой исполняемого кода. Многие ранние инфекционные программы, включая червя Морриса, первый интернет-червь, были написаны в качестве экспериментов или шуток. Сегодня вредоносное ПО используется как хакерами "черных шляп", так и правительствами для кражи личной, финансовой или деловой информации. Сегодня любое устройство, подключаемое к USB-порту — даже лампочки, вентиляторы, колонки, игрушки или периферийные устройства, такие как цифровой микроскоп — может быть использовано для распространения вредоносного ПО. Устройства могут быть заражены во время производства или поставки, если контроль качества недостаточен. Зараженные "зомби-компьютеры" могут использоваться для рассылки спама по электронной почте, размещения запрещенных данных, таких как детская порнография, или проведения распределенных атак типа "отказ в обслуживании" в качестве формы вымогательства. Вредоносное ПО широко используется против правительственных или корпоративных веб-сайтов для сбора конфиденциальной информации или нарушения их работы в целом. Кроме того, вредоносное ПО может использоваться против отдельных лиц для получения информации, такой как персональные идентификационные номера, банковские или кредитные карты и пароли. Помимо преступного получения прибыли, вредоносное ПО может использоваться для саботажа, часто по политическим мотивам. Например, Stuxnet был разработан для нарушения работы конкретного промышленного оборудования. Были совершены политически мотивированные атаки, которые привели к сбою и отключению крупных компьютерных сетей, включая массовое удаление файлов и повреждение главной загрузочной записи, что описывается как "убийство компьютеров". Такие атаки были совершены на Sony Pictures Entertainment (25 ноября 2014 года, с использованием вредоносного ПО, известного как Shamoon или W32.Disttrack) и Saudi Aramco (август 2012 года).

Червь

Червь – это автономное вредоносное программное обеспечение, которое активно распространяется по сети, заражая другие компьютеры, и способно копировать себя без заражения файлов. Из этих определений следует, что для распространения вируса необходимо, чтобы пользователь запустил зараженное программное обеспечение или операционную систему, в то время как червь распространяется самостоятельно.

Корневищные наборы

После того, как вредоносное программное обеспечение установлено в систему, крайне важно, чтобы оно оставалось незамеченным, чтобы избежать обнаружения. Программные пакеты, известные как руткиты, обеспечивают эту скрытность, модифицируя операционную систему хоста таким образом, чтобы вредоносное ПО было скрыто от пользователя. Руткиты могут скрывать вредоносный процесс из списка процессов системы или препятствовать чтению его файлов. Некоторые виды вредоносного ПО содержат процедуры для уклонения от идентификации и/или попыток удаления, а не просто для сокрытия. Ранний пример подобного поведения задокументирован в Jargon File в истории о паре программ, заразивших систему совместного использования времени Xerox CP V:

Каждая "призрачная" задача обнаруживала факт уничтожения другой и запускала новую копию недавно остановленной программы в течение нескольких миллисекунд. Единственный способ уничтожить обе "призрачные" задачи – уничтожить их одновременно (что очень сложно) или намеренно вызвать сбой в системе.

Задние двери

Бэкдор – это широкий термин, обозначающий компьютерную программу, позволяющую злоумышленнику получать постоянный несанкционированный удаленный доступ к компьютеру жертвы, часто без ее ведома. Злоумышленник обычно использует другую атаку (например, троян, червь или вирус), чтобы обойти механизмы аутентификации, как правило, через незащищенную сеть, такую как Интернет, для установки приложения-бэкдора. Бэкдор также может быть непреднамеренным следствием ошибки в легитимном программном обеспечении, которое злоумышленник использует для получения доступа к компьютеру или сети жертвы. Часто высказывалось предположение, что производители компьютеров предустанавливают бэкдоры в свои системы для оказания технической поддержки клиентам, однако это никогда не было достоверно подтверждено. В 2014 году сообщалось, что американские государственные органы перенаправляли компьютеры, приобретенные лицами, считающимися "целями", в секретные мастерские, где устанавливалось программное или аппаратное обеспечение, обеспечивающее удаленный доступ для этих органов, что считалось одной из наиболее эффективных операций по получению доступа к сетям по всему миру. Бэкдоры могут устанавливаться с помощью троянских программ, червей, имплантатов или другими способами.

Троянский конь

Троянский конь маскируется под обычную, безвредную программу или утилиту, чтобы убедить жертву установить его. Обычно троянский конь содержит скрытую деструктивную функцию, которая активируется при запуске приложения. Этот термин происходит от древнегреческой легенды о троянском коне, использованном для скрытного вторжения в город Трою. Троянские кони чаще всего распространяются посредством социальной инженерии, например, когда пользователя обманом заставляют открыть вложение электронной почты, замаскированное под безобидный файл (например, обычную форму для заполнения), или с помощью автоматической загрузки. Хотя полезная нагрузка троянского коня может быть любой, многие современные варианты функционируют как бэкдор, связываясь с управляющим сервером (отправляя отчеты), который затем может получить несанкционированный доступ к зараженному компьютеру, потенциально устанавливая дополнительное программное обеспечение, такое как кейлоггер для кражи конфиденциальной информации, программное обеспечение для криптомайнинга или рекламное ПО для получения дохода оператором трояна. Хотя троянские кони и бэкдоры сложно обнаружить самостоятельно, компьютер может работать медленнее, выделять больше тепла или издавать повышенный шум вентилятора из-за высокой загрузки процессора или сети, что может произойти при установке программного обеспечения для криптомайнинга. Программы для криптомайнинга могут ограничивать использование ресурсов и/или работать только в периоды простоя, чтобы избежать обнаружения. В отличие от компьютерных вирусов и червей, троянские кони обычно не пытаются внедряться в другие файлы или распространяться самостоятельно. Весной 2017 года пользователи Mac подверглись атаке новой версии трояна Proton Remote Access (RAT), разработанного для извлечения данных паролей из различных источников, таких как данные автозаполнения браузера, хранилище ключей Mac OS и менеджеры паролей.

Капельницы

Дропперы — это подтип троянов, единственной целью которых является доставка вредоносного ПО на зараженную систему, с намерением обойти обнаружение за счет скрытности и небольшого размера полезной нагрузки. Важно не путать дроппер с загрузчиком или стагером. Загрузчик или стагер лишь загружает расширение вредоносного ПО (например, набор вредоносных функций посредством инъекции динамически подключаемой библиотеки) в память. Цель состоит в том, чтобы сохранить начальный этап небольшим и незаметным. Дроппер же просто скачивает дополнительное вредоносное ПО на систему.

Рансамвер

Программы-вымогатели блокируют доступ пользователя к его файлам до тех пор, пока не будет выплачен выкуп. Существуют две разновидности программ-вымогателей: крипто-вымогатели и локер-вымогатели. Локер-вымогатель просто блокирует компьютерную систему, не шифруя её содержимое, в то время как крипто-вымогатель блокирует систему и шифрует её содержимое. Например, программы, такие как CryptoLocker, надёжно шифруют файлы и расшифровывают их только после оплаты значительной суммы денег. Некоторые вредоносные программы используются для получения прибыли посредством клик-фрода, создавая видимость того, что пользователь компьютера перешёл по рекламной ссылке на сайте, что приводит к выплате средств рекламодателем. По оценкам на 2012 год, около 60–70% всех активных вредоносных программ использовали ту или иную форму клик-фрода, а 22% всех кликов по рекламе были мошенническими. Экраны блокировки, или "ящики" блокировки экрана, представляют собой тип "киберполицейского" вымогателя, который блокирует экраны устройств Windows или Android, выдвигая ложные обвинения в распространении незаконного контента и пытаясь запугать жертв, чтобы те заплатили. Jisut и SLocker оказывают большее влияние на устройства Android, чем другие экраны блокировки, при этом на Jisut приходится почти 60% всех обнаружений программ-вымогателей для Android. Программы-вымогатели, основанные на шифровании, как следует из названия, – это тип программ-вымогателей, который шифрует все файлы на заражённом компьютере. Эти типы вредоносных программ затем отображают всплывающее окно, информирующее пользователя о том, что его файлы зашифрованы и для их восстановления необходимо заплатить (обычно в биткоинах). Примерами программ-вымогателей, основанных на шифровании, являются CryptoLocker и WannaCry.

Серое

Грейве́р (grayware) — любое нежелательное приложение или файл, способный ухудшить производительность компьютеров и потенциально представляющий угрозу безопасности, но для которого недостаточно оснований или данных для классификации как вредоносного ПО.

Потенциально нежелательная программа (PUP)

Потенциально нежелательные программы (ПНП) – это приложения, которые считаются нежелательными, несмотря на то, что пользователи часто загружают их намеренно. К ПНП относятся шпионское ПО, рекламное ПО и мошеннические программы-наборщики. Многие средства защиты классифицируют несанкционированные генераторы ключей как ПНП, хотя они часто содержат полноценное вредоносное ПО, помимо заявленной функции. Фактически, Kammerstetter et al. (2012)

Шпионские программы

Программы, предназначенные для мониторинга веб-браузинга пользователей, отображения нежелательной рекламы или перенаправления доходов от партнерского маркетинга, называются шпионскими программами. Программы-шпионы не распространяются, как вирусы; вместо этого они обычно устанавливаются путем эксплуатации уязвимостей в системе безопасности. Они также могут быть скрыты и поставляться в комплекте с несвязанным установленным пользователем программным обеспечением. Руткит Sony BMG был предназначен для предотвращения несанкционированного копирования, но также собирал информацию о музыкальных предпочтениях пользователей и непреднамеренно создавал дополнительные уязвимости безопасности. Статический анализ предполагает изучение программного кода потенциально вредоносной программы и создание её сигнатуры. Эта информация затем используется антивирусной программой для сравнения с просканированными файлами. Поскольку этот подход неэффективен для вредоносного ПО, которое еще не изучено, антивирусное программное обеспечение может использовать динамический анализ для мониторинга работы программы на компьютере и блокировать её при обнаружении неожиданной активности. Цель любого вредоносного ПО – скрыть себя от обнаружения пользователями или антивирусным программным обеспечением, (2) запутывая методы обнаружения автоматизированных инструментов. Это позволяет вредоносному ПО избегать обнаружения технологиями, такими как антивирусное ПО на основе сигнатур, путем изменения сервера, используемого вредоносным ПО; (3) уклонение по времени, когда вредоносное ПО запускается в определенное время или после определенных действий пользователя, выполняясь в периоды повышенной уязвимости, например, во время загрузки системы, и оставаясь неактивным в остальное время; (4) обфускация внутренних данных, чтобы автоматизированные инструменты не могли обнаружить вредоносное ПО; (v) методы сокрытия информации, в частности стеганомальвер (stegomalware); и (5) безфайловое вредоносное ПО, которое выполняется в памяти, а не использует файлы, и использует существующие системные инструменты для осуществления вредоносных действий. Использование существующих исполняемых файлов для осуществления вредоносных действий известно как LotL, или Living off the Land. Это уменьшает количество доступных для анализа криминалистических артефактов. В последнее время подобные атаки стали более частыми: в 2017 году их количество увеличилось на 432%, а в 2018 году они составляли 35% от общего числа атак. Такие атаки нелегко осуществить, но они становятся все более распространенными благодаря использованию эксплойт-китов.

Уязвимое программное обеспечение

Уязвимость – это слабость, недостаток или программная ошибка в приложении, компьютере, операционной системе или компьютерной сети, которая используется вредоносным ПО для обхода средств защиты или получения необходимых для работы привилегий. Например, TestDisk версии 6.4 и более ранние содержали уязвимость, позволявшую злоумышленникам внедрять код в Windows. Вредоносное ПО может использовать недостатки безопасности (ошибки или уязвимости) в операционной системе, приложениях (таких как браузеры, например, устаревшие версии Microsoft Internet Explorer, поддерживаемые Windows XP), или в уязвимых версиях плагинов для браузеров, таких как Adobe Flash Player, Adobe Acrobat или Reader, или Java SE. Например, распространенным методом является эксплуатация уязвимости переполнения буфера, когда программное обеспечение, предназначенное для хранения данных в определенной области памяти, не предотвращает передачу данных, превышающих размер буфера. Вредоносное ПО может передавать данные, переполняющие буфер, с последующим вредоносным исполняемым кодом или данными; при обращении к этой полезной нагрузке выполняется код, определяемый злоумышленником, а не легитимным программным обеспечением. Вредоносное ПО может использовать недавно обнаруженные уязвимости до того, как разработчики успеют выпустить соответствующее исправление. Распространенным уязвимостям присваиваются идентификаторы CVE и они регистрируются в Национальной базе данных уязвимостей США. Secunia PSI – это пример программного обеспечения, бесплатного для личного использования, которое проверяет компьютер на наличие устаревшего и уязвимого ПО и пытается его обновить. Другие методы включают использование брандмауэров и систем предотвращения вторжений для мониторинга необычных сетевых шаблонов в локальной компьютерной сети.

Чрезмерные привилегии

Пользователям и программам может быть предоставлено больше привилегий, чем им необходимо, и вредоносное ПО может этим воспользоваться. Например, из 940 проанализированных приложений для Android, треть из них запрашивала больше прав, чем требовалось для их работы. Приложения, ориентированные на платформу Android, могут быть основным источником заражения вредоносным ПО, но одним из решений является использование стороннего программного обеспечения для выявления приложений, которым назначены избыточные привилегии. Некоторые системы позволяют всем пользователям изменять свои внутренние структуры, и таких пользователей сегодня считают обладателями избыточных привилегий. Это было стандартной практикой для ранних микрокомпьютеров и домашних компьютерных систем, где не проводилось различий между администратором (или root-пользователем) и обычным пользователем. В некоторых системах пользователи, не являющиеся администраторами, намеренно обладают избыточными привилегиями, поскольку им разрешено изменять внутренние структуры системы. В некоторых средах пользователи получают избыточные привилегии из-за неправильной выдачи им прав администратора или эквивалентного статуса. Это происходит потому, что пользователи часто запрашивают больше привилегий, чем им нужно, и в итоге им назначаются ненужные права. Некоторые системы позволяют коду, выполняемому пользователем, получать доступ ко всем правам этого пользователя, что называется кодом с избыточными привилегиями. Это также было стандартной практикой для ранних микрокомпьютеров и домашних компьютерных систем. Вредоносное ПО, работающее как код с избыточными привилегиями, может использовать эти права для компрометации системы. Почти все современные популярные операционные системы, а также многие скриптовые приложения предоставляют коду слишком много привилегий, обычно в том смысле, что при запуске кода пользователем, система предоставляет этому коду все права этого пользователя.

Слабые пароли

Атака с использованием учетных данных происходит, когда взламывается учетная запись пользователя с административными правами, и эта учетная запись используется для предоставления вредоносным программам необходимых привилегий. Как правило, атака удается из-за использования самого слабого уровня защиты учетной записи, которым обычно является короткий пароль, который можно подобрать с помощью словаря или перебором. Использование надежных паролей и включение двухфакторной аутентификации позволяют снизить этот риск. При включенной двухфакторной аутентификации, даже если злоумышленнику удастся подобрать пароль, он не сможет использовать учетную запись без токена, находящегося у законного владельца этой учетной записи.

Использование одной операционной системы

Однородность может быть уязвимостью. Например, если все компьютеры в сети работают под одной и той же операционной системой, то, получив доступ к одному, злоумышленник может скомпрометировать их все. В частности, Microsoft Windows и Mac OS X занимают настолько большую долю рынка, что эксплуатация уязвимости, ориентированной на любую из этих операционных систем, может привести к компрометации большого числа систем. По оценкам, примерно 83% случаев заражения вредоносным ПО в период с января по март 2020 года произошло через системы, работающие под управлением Windows 10. Этот риск можно снизить, сегментируя сети на различные подсети и настраивая межсетевые экраны для блокировки трафика между ними.

Защита в реальном времени

Специфический компонент антивирусного программного обеспечения, обычно называемый сканером в режиме реального времени или сканером при доступе, глубоко интегрируется в ядро операционной системы и функционирует аналогично тому, как некоторые вредоносные программы пытаются работать, но с ведома и разрешения пользователя для защиты системы. Каждый раз, когда операционная система обращается к файлу, сканер проверяет его на наличие вредоносного кода. Как правило, при обнаружении зараженного файла его выполнение блокируется, а файл помещается в карантин для предотвращения дальнейшего ущерба и предотвращения необратимых повреждений системы. Большинство антивирусов позволяют пользователям отключать эту функцию. Это может существенно повлиять на производительность операционной системы, хотя степень влияния зависит от объема виртуальной памяти, используемой сканером.

Песочница

Поскольку многие компоненты вредоносного ПО устанавливаются в результате уязвимостей браузера или ошибок пользователя, использование программного обеспечения безопасности (часть из которого является антивирусным, хотя многое и нет) для создания "песочницы" для браузеров (фактически изолируя браузер от компьютера и, следовательно, от любых изменений, вызванных вредоносным ПО) также может быть эффективным способом ограничить наносимый ущерб. BitWhisper, GSMem и Fansmitter – это четыре техники, представленные исследователями, которые позволяют похищать данные с изолированных компьютеров, используя электромагнитные, тепловые и акустические излучения.

Исследования

Используя библиометрический анализ, исследование тенденций в области изучения вредоносного ПО в период с 2005 по 2015 год, с учетом таких критериев, как журналы с высоким импакт-фактором, наиболее цитируемые статьи, направления исследований, продуктивность, частота ключевых слов, организации и авторы, выявило ежегодный темп роста в 34,1%. Северная Америка лидировала по объему исследований, за ней следовали Азия и Европа. Китай и Индия были определены как развивающиеся участники.