Что такое компьютерный вирус? Странный вопрос, скажете вы – это вредоносная программа. Она ничего хорошего не делает, и если компьютер заражен, неприятности неизбежны.
Да, сейчас – именно так. А вот на заре вирусописания вирусы делались, чтоб посмеяться, а не вредить. Помнится, был такой вирус, который ровно в полночь начинал выдвигать и задвигать лоток привода CR-ROM. А знаменитый вирус, который внезапно показывал во весь экран страшную морду зомби и заливал экран кровью?
Первый массовый вред от вируса случился, когда в свет выпустили зловреда Win9x.CIH, который называли еще «Чернобыль». Вирус повреждал или уничтожал данные на жестких дисках зараженного компьютера, у части компьютеров он также стирал содержимое микросхемы BIOS. По современным данным, в то время (1998 год) от вируса пострадало не менее полумиллиона компьютеров.
Начиная с «Чернобыля», зловредность зловредов стала расти. Компьютерные злоумышленники изобретали все новые способы использования вредоносного кода, и все новые способы его распространения. Удаление данных стало детской игрушкой по сравнению с тем, что данные начали зашифровывать, а за расшифровку – требовать денег. Различные модификации вирусов в настоящее время уже не используются для банального «напугать пользователя» — сейчас из них извлекается масса корысти. Это и майнинг криптовалют, и распределенные вычисления (когда Ваш компьютер используется для каких-то сложных расчетов, которые производит большой массив зараженных компьютеров – например, взлом пароля), и шпионаж (многочисленные трояны и бэкдоры), и т.п. И, конечно, шифрование.
Против вирусов борется огромное количество антивирусного и антишпионского ПО, наиболее известное: Kaspersky Antivirus, Dr Web, NOD, F-Secure и т.п. Однако, как показывает практика, антивирусы очень часто не успевают за развитием вирусов, и «пропускают» голы с их стороны. Поэтому, как бы банально это ни звучало, но самый надежный метод не попадать под вредоносное воздействие вирусов – не заражаться.
До недавнего времени вирусописатели прятали свои творения в информации пользователя – в виде файлов или закладок в файловых системах. Такие вирусы так или иначе, но можно удалить – начиная от очистки памяти и стирания вируса с диска, и заканчивая самыми радикальными способами – форматирование раздела или тотальное стирание диска. Однако желание «утрамбовать» вирус так, чтобы его невозможно было удалить в принципе, всегда витало в воздухе, которым дышат злоумышленники.
Современные компьютерные устройства работают под управлением сложных микропрограмм, написанных обычно на языках высокого уровня (С, С++, Delphi и т.п.); раньше, на заре компьютерных технологий, ввиду сильно ограниченного размера микросхем памяти, микропрограмма писалась на ассемблере, что сильно экономило место. Сейчас экономить микросхемный объем уже не нужно, и микропрограммы пишут, что называется, с удобством и размахом.
Однако у написанных на языках высокого уровня программ есть один недостаток: их код довольно громоздок, что приводит к тому, что в нем часто возникают ошибки и находятся уязвимости. Теоретически эти уязвимости могут быть использованы злоумышленниками для заражения микропрограммы устройства. И это, увы, уже реальность.
Сообщество Equation не так давно разработало вирус, способный перепрограммировать прошивку жесткого диска так, что вирус становится практически неубиваем – вы можете убрать его с помощью антивируса из памяти вашей операционной системы, но на следующем старте он снова запишет себя в память вашей машины из прошивки накопителя. Вирус прописывается в микропрограмму диска, и при каждом старте устройства проверяет свое наличие в памяти, и, если его там нет – просто «кладет» себя в память и начинает (или продолжает) работать. Такой вирус опасен тем, что убрать его может только высококлассный специалист со специальным оборудованием, дающим доступ в системную область диска; второй вариант избавиться от зловреда – выбросить диск и купить новый.
Насколько реально заразиться таким вирусом, который «поселяется» в прошивке жесткого диска? Для оценки такой вероятности нужно определить основные пути, которыми зловред может попасть в прошивку. Итак:
1) Заражение с обновлением прошивки. Для многих дисков на сайтах производителя доступны файлы обновлений, скачав которые, пользователь сам обновляет прошивку своего устройства. Заражение через прошивку возможно двумя способами: первый – заразить сам файл прошивки, что, как нам представляется, весьма и весьма непросто, так как сайты производителей жестких дисков пишут и поддерживают тоже не дураки. Поэтому наиболее вероятен второй вариант – вирус ждет, пока вы начнете прошивку, и когда вы начали ее – перехватывает управление или внедряет какие-то свои функции, и происходит заражение.
Метод заражения, бесспорно, хорош, но маловероятен, так как для реализации первой возможности требуется взломать сайт производителя (а он очень хорошо защищен и его взлом или крайне маловероятен, или слишком дорогостоящ), а для осуществления второй возможности требуется ждать, причем пользователь может и не захотеть обновлять прошивку своего диска – то есть ожидание может оказаться напрасным, а сам тип заражения – слишком низкоэффективным, что ни одного уважающего себя хакера не устроит.
2) Заражение специальным модулем. Для того, чтобы активировать ту или иную возможность, скрытую в микропрограмме жесткого диска, требуется активация технологического режима. Это делается специальной командой, после чего пользователю становится доступным набор инструкций, позволяющих сделать с жестким диском практически все, что угодно: от изменения каких-то свойств устройства до полной перезаписи или даже стирания служебной информации диска. Эти команды сейчас уже не секрет (их легко можно экстрагировать даже из заводских файлов обновления прошивки), а программистов, способных работать с физическими портами устройств, пачками готовят специализированные ВУЗы. Почему такие вирусы еще не получили массового распространения? Во-первых, набор команд для работы со служебной зоной разных накопителей различен, и вирус, таким образом, будет действовать только на ограниченный круг дисков. Во-вторых, сам код получается достаточно громоздким, а сделать его работу незаметной для средств защиты системы практически невозможно (согласитесь, даже самый примитивный антивирус немедленно заблокирует программу, которая вдруг начинает «ломиться» в жесткий диск на уровне «железа» и пытаться внести на этом уровне какие-то изменения). И в-третьих, для написания по-настоящему эффективного зловреда злоумышленнику понадобятся годы исследований, так как структура микропрограммы накопителя – тайна за семью печатями, и для ее использования ему придется «вскрывать» ее самому.
Однако именно этот способ проникновения в прошивку, не смотря на все очевидные трудности, в настоящее время получает распространение. Логично предположить, что злоумышленникам, при всей очевидности сложности заражения и дороговизны разработок, не интересны домашние компьютеры – их усилия направлены на заражение серверов для извлечения максимальной выгоды. А в серверах используется уже не такой широкий круг накопителей, как у домашних пользователей – следовательно, заразить их проще и дешевле. В частности, не так давно по сети прокатилась волна новостей о том, что группировка хакеров NSA заразила некоторые SAS-диски серверного класса производства Seagate вирусом типа Stuxnet.
Кстати, таким же способом можно заражать не только жесткие диски, но и вообще любые устройства, для которых существуют низкоуровневые протокола взаимодействия с системой. Например, заражение UEFI-BIOS так называемыми «UEFI-закладками» уже давно широкая хакерская практика. Правда, удалить такой вирус намного проще, чем вирус в прошивке жесткого диска – достаточно обновить прошивку BIOS. Проблема лишь в том, что UEFI-закладку очень сложно детектировать.
3) Заражение непосредственно на производстве. Исключить возможность такого заражения нельзя, так как внедрить своего человека на завод с целью массового заражения выпускаемых устройств, сейчас довольно легко. Скажу больше – практически наверняка такие шпионские закладки внедряются во многие типы компьютерного оборудования намеренно, но не хакерами, а спецслужбами.
4) Заражение с загрузкой системы. Наиболее «экзотический» способ, однако, достаточно вероятный в силу того, что многие пользователи в своей работе используют не оригинальные версии операционных систем, а версии взломанные. Никто и никогда не знает заранее, каким образом эти системы готовились, и что заложено в их дистрибутивах. Замечу, что именно в исталляторах операционных систем можно расположить код для проникновения в микропрограмму накопителя практически любого объема, а время установки ОС и незащищенность самого процесса (никакой антивирус во время установки не работает) дает очень высокие шансы для незаметного заражения прошивки. Поэтому использование оригинальных операционных систем – не только хорошо для вашей кармы, но и обезопасит вас от весьма вероятного использования вашего компьютера злоумышленниками для известных им одним целей.
Логично, что для управления ячейками памяти в настолько многослойных структурах (подача питания, считывание, запись) требуется подвести к каждому слою проводники и управляющие электронные компоненты. Раньше все это хозяйство напылялось на каждый слой отдельно, от этого страдали размеры чипа (до 50% его объема занимала вспомогательная электроника). Новые QLC-чипы сделаны по-другому, в них применяется технология СuA (CMOS under the Array) – вся управляющая схемотехника расположена отдельным слоем под многослойным «небоскребом» ячеек памяти. Это позволило уменьшить размер чипа минимум на 25%.
Недавно в прессе начали появляться статьи о том, что все без исключения компьютеры имеют встроенные программные закладки, аналогичные вирусам типа «троянский конь», которые устанавливаются спецслужбами с целью обеспечения тотального контроля за людьми. Оставим эти истории на совести журналистов, но отметим, что такая возможность вполне вероятна.
Чем нам грозит «вирус в прошивке»? Основная проблема – это его неубиваемость. Убрать вирус, который встроен в микропрограмму устройства, можно только в случае его полной перепрошивки, или с помощью специального оборудования, позволяющего скачать из устройства прошивку, удалить из нее все лишнее, и залить обратно. Третьего пути нет.
Станислав Корб, ©2018