Компьютерные вирусы

Материал из Posmotre.li
Перейти к: навигация, поиск

Ваш компьютер ведёт себя как-то не так? В папке в углу рабочего стола завелись неприличные картинки? Из системника запахло гарью? В мониторе образовались аккуратные сквозные отверстия? Виноваты компьютерные вирусы, а что ещё может быть?

Создание и применение компьютерных вирусов — особая форма компьютерной магии, используемая хакерами для получения желаемых разрушений/эффектов. Используя вирус, хакер может сделать то, чего компьютер делать не должен физически: взорвать, получить удалённое управление даже при отсутствии каких-либо подключений, проводных или беспроводных и т. д. Как они это делают? Оноижевирусы, и этим всё сказано. Откуда вирусы берутся? Некоторые из них создают гениальные хакеры, бормоча под нос заклинания на неведомом мёртвом языке. Уже написанный вирус способен заразить любой компьютер любой архитектуры под любой ОС, даже инопланетный: для этого хакеру не нужно ничего знать об атакуемой системе, достаточно обладать высоким IQ и опытом взлома Пентагона в 13 лет. Более того, для этого не обязательно даже запускать на системе заражённый файл: некоторые вирусы могут заражать компьютер через бумажные фотографии, а то и вовсе передаваться воздушно-капельным путём от стоящего рядом заражённого компьютера. А ещё, иногда вирусы самостоятельно зарождаются в компьютерных сетях. Применяя вирус, хакер часто не знает ни о его происхождении, ни о принципе работы — просто выпускает зверушку из клетки и она сама делает своё чёрное дело.

В примерах к этой статье — невероятные, абсурдные, неграмотные или просто забавные примеры упоминания компьютерных вирусов.

История[править]

Хотя идея самораспространяющихся программ возникла ещё на заре компьютерной эры, до середины 80-х вирусы если и существовали, то в единичных экземплярах. Слишком у них были ограниченные возможности для распространения: на мейнфреймах и суперкомпьютерах никто не стал бы запускать что попало, а у персоналки была волшебная кнопка «Reset», по нажатии которой очищалась вся память без остатка. Ну или если не было — достаточно было его выключить и включить.

Но всё изменилось с появлением IBM PC/XT — первого массового персонального компьютера с жёстким диском в базовой комплектации. Теперь всегда можно прописаться в автозагрузку, или тупо внутрь какого-нибудь компонента системы и стартовать при включении компьютера, попутно расселяясь на вставляемые в него дискеты. Следом подтянулись электронная почта и интернет — можно мгновенно преодолевать огромные расстояния и заражать всё больше и больше компьютеров. Плюс всё снижающийся порог вхождения приводил ко всё снижающейся (в среднем по больнице) компетенции пользователей, которые с радостью запускали сомнительные файлики, которые им присылали по почте.

Дальше возникла вирусная паника: люди стали так бояться вирусов, что стали на их действие сваливать любую непонятную активность в компьютере. В 1995 году Билл Гейтс уверял всех, что в Шиндовс95 вирусов не будет, но что-то пошло не так — через пару лет прогремел знаменитый чернобыльский вирус, который окирпичил немало компьютеров по всему миру. А оно и понятно: защиты системных файлов в 95 винде считай не было никакой, защита памяти тоже хромала на обе ноги — половина программ тех лет имела уязвимость типа «переполнение буфера», когда любой безобидный файлик мог внезапно оказаться зловредом. А уж о знаменитом автозапуске флешек на WinXP, в результате которого каждая флешка в 2000—2010-х годах обязательно содержала какой-нибудь вирус, я думаю знают даже самые юные читатели.

https://geektimes.ru/post/291955/ вирус для заражения компьютеров записанный в …ДНК! (заражает устройства для расшифровки ДНК через эксплойт)

Немного теории[править]

Вирус — лишь одна из категорий ПО, которое всё вместе называется вредоносные программы, или просто зловреды (malware). Любой зловред — всего лишь программа, которая сама может копироваться как в пределах вашей системы, так и на другие компьютеры без вашего на то согласия.

Зловреды делят по механизмам распространения:

  • Эксплойт (exploit) — программа или набор данных (ну или набор данных, исполняющийся как программа), эксплуатирующий уязвимость (баг или недокументированную возможность) в другом ПО.
    • Долгое время наиболее популярным способом заражения была атака «переполнение буфера», когда сформированный определённым образом файл вылезал за пределы отведённой ему области и мог внедриться напрямую в исполнимый код открывшей его программы. Частный случай — переполнение стекового буфера (не путать с переполнением стека!), когда подменяется не сам код программы, а адрес возврата.
    • Нюк (nuke) — дестабилизация другого компьютера по сети. Сейчас это дикость, но в 90-е было.
  • Троянский конь (Trojan horse) — вредоносная программа, которую пользователь устанавливает самостоятельно. Различаются по принципам мимикрии, например:
    • Прикидывающийся безвредным файлом в такой-то программе — например, Проводник Windows и часть почтового софта по умолчанию не показывает расширений файлов, и работает file.txt.exe. ICQ некоторое время можно было обмануть через file.txt   .exe.
      • В последнее время замечены вирусы, распространяющиеся в формате .msi — даже если пользователь понимает, что скачал вирус и пытается удалить файл, он запросто может выбрать пункт «Удалить» из допустимых действий с .msi-файлами вместо пункта «Удалить» проводника. А эта команда вместо удаления файла запускает его — бинго! Бонус в том, что взгляд человека рефлекторно движется по меню сверху вниз, а пункт «Удалить» из меню .msi находится почти в самом начале.
    • Автозапускающийся — распространяется через автозагрузку сменных дисков. Появились с Windows 9x, которая на приставочный манер решила запускать диски, как только их вставляют в дисковод (для дискет момент вставки отследить невозможно) — и для компакт-дисков это нормально, а вот для флэшек рассадник вирусов.
    • Лжеантивирус (rogue antivirus) — зловред, маскирующийся под антивирус.
  • Вирус (virus) — распространяется в пределах компьютера, заражая файлы и носители. Это был первый вид зловредов, получивший широкую известность, поэтому незнающие люди теперь называют вирусами всё подряд, вплоть до программ-шутеечек, например заставляющих отскакивать курсор мыши от края экрана.
    • Файловый вирус — распространяется в исполняемых файлах.
    • Загрузочный вирус — распространяется в загрузочных секторах.
    • Макровирус — распространяется в макросах — небольших программках, предназначенных для различных мелких побочных действий, типа присвоения номера бланка при каждой печати, проверки на правильность заполнения и т. д. Макросы есть в том числе пакете Microsoft Office, а значит документы Word, Excel и т. д. вовсе не безобидны, как может показаться некоторым.
    • Заражающий модули систем программирования — если вирус попадёт на комп к разработчику, весь софт, который он пишет, будет заражён. Прогу заражает ещё до того, как её подпишут — потому есть шанс пройти незамеченным. Редкий зверь. Нашумел вирус, распространявшийся через Delphi; был заражён даже QIP. В 2015 году была серьёзная атака на App Store вирусом XCodeGhost, заражено 2,5 тыс. программ и 128 млн телефонов, Apple замяла инцидент и он всплыл в тяжбе Apple/Epic (2021).
  • Червь (worm) — распространяется по сети.
    • Червь, работающий через эксплойт — например, Sasser (через ошибку в модуле LSASS.EXE), SQL Slammer (через ошибку в MS SQL Server).
    • Червь, работающий через социальную инженерию — методы распространения близки к троянцам. Например, Love Letter (прикидывается признанием в любви).
  • Логическая бомба — в принципе не пытается распространиться, её задача — нанести урон системе, в которую она попадает. Например, если почтовый клиент пользователя настроен автоматически распаковывать архивы, используя папку для временных файлов на системном диске, можно прислать ему файл, запакованный с очень высоким процентом сжатия (большой файл, состоящий целиком из одинаковых символов, можно сжать в тысячи раз) — забившийся на 100 % системный диск с нефиговой вероятностью завалит операционку. Всевозможные эксплойты, которые не пытаются перехватить контроль, а просто ломают систему — сюда же (например, немного подправленный заголовок письма, сводящий с ума почтовый сервер, или слишком длинный жетон авторизации, от которого падает сервер контроля доступа). Иногда используется как предварительный этап в хакерской атаке, иногда просто из хулиганских побуждений. Сильно потеряли позиции с развитием облачных сервисов и микросервисной архитектуры: уронить один модуль недостаточно из-за распараллеливания, к тому же упавший модуль через несколько секунд заметит, снесёт и заменит новой копией система управления.

…и по вредоносной нагрузке:

  • Безвредный — если нагрузки как таковой нет. Только размножается. Правда, неудачная попытка размножиться может привести к тому, что заражённый файл перестанет работать.
  • Бот (bot) — делает то, что прикажет центр, обычно не во вред заражённому. Сеть компьютеров, заражённых ботом, называется ботнет.
  • Загрузчик (downloader) — загружает из интернета другого зловреда.
  • Распаковщик, дроппер (dropper) — содержит другую вредоносную программу и, получив управление, распаковывает её.
  • Руткит (rootkit) — получает права на те функции системы, на которые прав прикладной программе иметь не положено.
  • Вымогатель (ransomware) — шифрует данные и просит заплатить, чтобы расшифровали.
  • Бэкдор (backdoor) — даёт доступ к компьютеру посторонним.
  • Шпионская программа (spyware) — посылает постороннему данные, которые знать не нужно.
    • Кейлогер (keylogger) — посылает набранное на клавиатуре.
  • Майнер (miner) — генерирует «монеты» криптовалюты.
  • Специальная вредоносная нагрузка под определённую цель — например, Stuxnet писался для саботажа ядерной программы Ирана.
  • …и другие.

Зловредами не являются, но часто распознаются антивирусами:

  • Тестовая последовательность (например, EICAR-Test-File) — специальная безвредная строка, на которую антивирус обязан реагировать как на вирус. Служит для проверки сетевых антивирусов.
  • Хакерская программа (hack tool) — взломщики программ и компьютеров, за которые в некоторых юрисдикциях могут посадить.
  • Потенциально нежелательная программа (potentially unwanted application, PUA) — программа или библиотека, сама по себе вполне законная, однако ассоциирующаяся со зловредами. Обнаружение такой в необычных местах — повод насторожиться. К таким относятся открытые библиотеки перехвата клавиатуры, торрент-клиенты, программные маршрутизаторы, майнеры…
  • Косвенные признаки зловредов — антивирус не видит в программе зловреда, однако видит нечто, что встречается чаще у зловредов, чем у настоящих программ (это называется эвристический анализ), и по формулам теории вероятностей вызывает или не вызывает тревогу. Программы с действующей электронной подписью подобным образом обычно не проверяют.
    • Импорт подозрительных функций — программа может делать то, чем обычная прикладная не занимается.
    • Самомодифицирующийся код — раньше часто использовался для увеличения быстродействия и получения более компактной программы. В современных системах выигрыша в быстродействии не даёт и даже наоборот — каждая модификация требует полного сброса кэша инструкций. А вот вирус должен уметь самомодифицироваться обязательно, иначе обнаружить и обезвредить его будет слишком легко.
    • Обфускация — в код добавляются незначащие инструкции, чтобы программу было сложнее исследовать.
    • Упаковщик — в современных реалиях, когда библиотеки и файлы данных намного превышают по размеру EXE-файл, упаковка программы бессмысленна и даже вредна (неупакованный EXE’шник может стать продолжением файла подкачки). А для зловреда упаковка — дополнительный способ не попасться антивирусу.
    • Утёкшие сертификаты — программа подписана сертификатом, для которого известно, что его скрытый ключ утёк к посторонним.

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

Где встречается[править]

Фольклор[править]

Литература[править]

  • Дэн Браун, «Цифровая крепость» — Суперкомпьютер АНБ с большим трудом расшифровал некое послание, которое оказалось… компьютерным вирусом, который тут же вывел из строя обозначенный суперкомпьютер АНБ.

Кино[править]

  • Терминатор 3 — некий вирус оказался настолько крут, что даже проник в специально созданную против него антивирусную систему «Скайнет», с чего и началось восстание машин.
  • Крепкий орешек 4 — здесь вирус способен взрывать заражённый компьютер.
    • Правда, взрывается компьютер благодаря заложенной в блок С4. Зачем, в таком случае, нужен вирус — непонятно.
      • Почему же непонятно — для того, чтобы программно привести в действие детонатор (например, подключив схему управления к разъёму динамика на материнке через фильтр какой-либо частоты). Правда вопрос, зачем был нужен вирус, остаётся открытым: почему недостаточно было простейшего батника? Не говоря о том, зачем это нужно было делать, физически находясь в нескольких десятках метров, вместо установки простого и надёжного радиоуправляемого детонатора?
        • Если присмотреться внимательно, система довольно-таки продуманная: вирус всего лишь ставит заряд на боевой взвод, после этого создаёт помехи в работе компьютера, а взрывает заряд сам пользователь нажатием кнопки на клавиатуре — это гарантирует, что в момент взрыва пользователь будет находиться рядом с компьютером, а не в другой комнате у холодильника с пивом. Можно было, конечно, применить и радиодетонатор, но для этого нужен пост наблюдения с обзором рабочего места хакера, чтобы определить, в какой момент можно взрывать, чтобы не упустить, а это не всегда возможно — у одного из хакеров кабинет был вообще в подвале без окон.
      • Заложенная в блок С4 — плохая реализация принципа «безопасность через уничтожение скомпрометированных устройств». Обломки жёсткого диска останутся намагниченными, есть шанс, что кто-нибудь сумеет собрать пазл и прочитать хотя бы часть, и по закону подлости это обязательно будет как раз часть с секретами. В реальной жизни существовали жёсткие диски, умеющие при поступлении соответствующей инструкции заливать внутреннее пространство кислотой, растворявшей ферромагнитное покрытие. После этого прочесть такой диск действительно было невозможно. Дополнительно «минировались» на всякий случай микросхемы памяти (технологию восстановления данных с них с тех пор не изобрели, но мало ли что может случиться). А остальной системник — да пусть хоть по винтику разберут, никакой информации в нём уже не осталось.
  • День независимости — вирусы, написанные за пару дней, отрубают защитные поля всех кораблей инопланетян, будучи залиты фиг знает куда на их главном корабле
    • По поводу того, что вирус каким-то образом работает на инопланетной операционной системе — в расширенной версии был обоснуй, что якобы у инопланетян позаимствовали код для MacOS. Немножко логики в сюжетный ход добавляет, но всех вопросов не снимает.
  • Превосходство — аналогично, но теперь от мощи компьютерного вируса не может устоять ИИ!
  • «Вирус» — люди считают инопланетную энергетическую форму жизни компьютерным вирусом, она их — многоклеточным аналогом биологического вируса.
  • «Взломать блогеров» — вирус не только берет компьютеры и гаджеты персонажей под контроль, но даже засасывает их на рабочий стол главной героини и угрожает отформатировать.

Телесериалы[править]

  • «В поле зрения» — опять-таки компьютерные вирусы уничтожают ИИ. Теперь сразу двух.
  • «Kamen Rider Ex-Aid» — компьютерный вирус, самозародившийся (!) в результате «Проблемы 2000-го года», годы спустя стал заражать обычных людей, превратившись в вирус обычный.
  • «Псифактор: Хроники паранормальных явлений» — компьютерный вирус делает системы уязвимыми к «проблеме 2000», заражает людей через сканер сетчатки и вызывает разрушение структур головного мозга, а в конце этим вирусом становится гениальный программист, полагавший, что зависимость от компьютеров и интернета кончится для человечества плохо, и поэтому надеявшийся, что «проблема 2000» вернет всех в реальный мир.
  • «Кости»: вирус был нанесен на кости жертвы в виде чего-то похожего на qr-код и когда их просканировали 3D-сканером, компьютер загорелся. Ах, да, хакер написал этот вирус, вообще не имея никакого компьютера, по решению суда ему было запрещено иметь сложную технику!
    • Типичная логическая бомба, для создания которой нужны нефиговые знания о том, как работает сканирующий их компьютер. Если этот гениальный хакер заранее разобрался в работе сканера и его софта (на уровне, превосходящем его автора), провернуть что-то подобное мог бы и без сложной техники. Использовать в программе для специального, явно связанного со спецслужбами компьютера библиотеку, разработанную одной из этих спецслужб — допустимо. То, что в этой библиотеке заложена скрытая функциональность, позволяющая пометить информацию, как совсекретную, при попытке сканирования которой компьютер лочится до прихода любопытных ребят с вопросом «а с чего это вы сканируете секретные данные?» — возможно. Возгорание компьютера — конечно, голливудская магия. То, что о таком коде знает даже очень крутой хакер — крайне маловероятно, но кто знает, не привлекали ли его когда-нибудь для работы на госбезопасность, или не узнал ли он о подобном по каким-то другим каналам. Запомнить такой код — нужна очень хорошая память, но не за пределами разумного. Превратить нужную последовательность символов в QR-код с помощью блокнота и авторучки — вообще как нефиг делать.

Мультсериалы[править]

  • «Повторная загрузка»: тёмный властелин Мегабайт и компьютерная ведьма Гексадецимал (а также плод их слияния Гигабайт) — разумные компьютерные вирусы. Там же: лиловокожая девушка-вирус Деймон.
  • Team galaxy: компьютерный вирус, похожий на монстра с колючей головой. Время от времени эта зараза устраивает героям восстание машин. На самом деле — взбунтовавшееся супероружие.
  • Человек паук (1994) «А сейчас мы ведем вирус…» «лицо превратилось в преступника и говорит: „Все данные стерты вирусом под кодом домовой, домовой“» — Ой, я такой проказник
  • «Невероятные приключения Джонни Квеста»: Доктор Джеремайя Серд внедрил в «Квест Уорлд» некий спящий вирус, который проявился в виде идеальных виртуальных двойников Джонни и Джесси в программе «МегаКвест».

Комиксы[править]

  • А. Зарецкий, А. Труханов, М. Зарецкая «Энциклопедия профессора Фортрана» (1991 г.) В статье про компьютерные вирусы. После того, как Воробей заразил компьютер, в нем завелся монстрик со шваброй. Правда, если учесть год написания и целевую аудиторию, то пример вполне неплохой. Т. е. обычные советские/российские школьники должны были узнать, что существуют вредоносные программы.
  • «Вирус» — китайское научно-исследовательское судно приняло из космоса двоичный код, который оказался агрессивным искусственным интеллектом, заразившим компьютерные системы судна и разобравшим экипаж на запчасти. Слоган комикса: «Не бойтесь подцепить этот вирус! Он сам вас подцепит!».

Аниме, манга, ранобэ[править]

  • NGE — один из Ангелов внедрился в компьютерную систему NERVE в виде компьютерного вируса и едва не уничтожил все.

Видеоигры[править]

  • Tron 2.0 — вирус здесь представляйся как какое-то зомбиподобное заражение, с которым сражаются доблестные программы безопасности. К сожалению, Джетс тоже иногда принимают за вирус. Да и сам вирус оказывается неправильно оцифрованным агентом злобной корпорации fCon.