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

Материал из Posmotreli
Перейти к навигации Перейти к поиску

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

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

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

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

Первый компьютерный вирус был написан в самом начале семидесятых (вместе с первым же антивирусом). Но в последующие полтора десятилетия такие программы оставались экзотикой: к терминалам мэйнфреймов и мини случайных людей не пускали. Появление первых персоналок тоже не сильно изменило ситуацию: объём памяти у них исчислялся единицами (в лучшем случае десятками) килобайт, «операционные система» была намертво зашита в ПЗУ, а программы распространялись на ленточках (и хорошо если магнитных, а не бумажных перфолентах) — для цифровой микрофлоры просто не было питательной среды.

Всё изменилось в восьмидесятые: объём памяти на домашних машинах стал измеряться сотнями килобайт (а потом и целыми мегабайтами!), дисководы и жёсткие диски вытеснили магнитофоны, появились доступные простому смертному высокоскоростные (по тогдашним меркам) модемы. Плюс всё снижающийся порог вхождения приводил ко всё снижающейся (в среднем по больнице) компетенции пользователей, которые с радостью запускали сомнительные файлики, скачанные с BBS. В сочетании с массовым распространением IBM PC и MS-DOS это привело к тому, что написанный в Пакистане вирус мог безнаказанно резвиться в США.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Core War — игра, написанная по мотивам того самой пары вирус/антивирус из начала семидесятых (см. раздел «История»). Пишем самореплицирующиеся программы, которые воюют между собой в памяти виртуальное машины.
  • XBillзлобный хакер Билл написал вирус «Winglows», замаскированный под популярную ОС, который способен превратить в тостер любой компьютер. Играем за системного администратора, который с этим вирусом борется.
  • Tron 2.0 — вирус здесь представляется как какое-то зомбиподобное заражение, с которым сражаются доблестные программы безопасности. К сожалению, Джетс тоже иногда принимают за вирус. Да и сам вирус оказывается неправильно оцифрованным агентом злобной корпорации fCon.

Настольные игры[править]

  • Warhammer 40,000 — агенты храма Ванус мастаки в этом вопросе.
  • Cyberpunk 2020 — в первую очередь приходит на ум «Датакрэш» Бартмосса полностью обваливший местный Интернет.

Примечания[править]

  1. CIH Spacefiller, инициалы автора Ченя Инхао и метод сокрытия (заполнение пробелов в файлах вместо добавления данных с конца — при этом видимый размер файла не меняется). Дата активации, 26 апреля, совпала с датой Чернобыльской катастрофы случайно — он был написан в тот день в 1998 году с задумкой на активацию ровно на год позже. Третья итерация вируса активировалась уже 26-го числа любого месяца, а четвёртая — второго августа. Хотя эффект вполне подходит такому громкому прозвищу — он загаживал BIOS, и тогда возможность его перезаписать была хорошо если у каждого тысячного пользователя.
  2. Справедливости ради — «файлами смерти» иногда называют файлы с содержимым, намертво завешивающим программу его обработки, написанную, как правило, рукожопатыми программистами, не умеющими в исключения, или использующую библиотеки, написанные программистами с аналогичным расположением рук. В случае, когда файлы принимаются и обрабатываются автоматически, может быть остановлен весь процесс до тех пор, пока кто-нибудь не спохватится.
  3. Кстати, именно поэтому «ферромагнетики не любят ударов». У диска с читающей головкой в безопасном положении предел силы удара для повреждения ЕМНИП на порядок-два выше, чем с ней в рабочем. Хотя всё равно хуже, чем у кристаллов, они же флеш-память.