Добавить в корзинуПозвонить
Найти в Дзене
У Клио под юбкой

Вирус CIH: хроника первой атаки на компьютерное железо

26 апреля 1999 года, понедельник. В Бостонском колледже — разгар подготовки к выпускным экзаменам. Около полуночи в компьютерную лабораторию начинают поступать звонки. Студент за студентом сообщает одно и то же: машина включилась, но операционная система не грузится. Экран либо чёрный, либо мигает курсором. Сотрудник техподдержки позже скажет журналистам — они говорили, что их компьютер больше не знает, что он компьютер. За одну ночь десятки учащихся лишились курсовых работ. Вирус уничтожил содержимое жёстких дисков. То же самое происходило по всему миру. В Южной Корее из строя вышли правительственные учреждения, школы и банки — триста тысяч машин. Вице-министр информации и связи Ан Бёнъоп публично признал, что его ведомство проявило беспечность. В Турции вирус добрался до компьютеров военной академии в Анкаре, государственного телевидения, аэропорта в Измире. В Индии закрылись издательства и банки. В Объединённых Арабских Эмиратах пострадало министерство труда. В Китае антивирусная ко

26 апреля 1999 года, понедельник. В Бостонском колледже — разгар подготовки к выпускным экзаменам. Около полуночи в компьютерную лабораторию начинают поступать звонки. Студент за студентом сообщает одно и то же: машина включилась, но операционная система не грузится. Экран либо чёрный, либо мигает курсором. Сотрудник техподдержки позже скажет журналистам — они говорили, что их компьютер больше не знает, что он компьютер. За одну ночь десятки учащихся лишились курсовых работ. Вирус уничтожил содержимое жёстких дисков.

То же самое происходило по всему миру. В Южной Корее из строя вышли правительственные учреждения, школы и банки — триста тысяч машин. Вице-министр информации и связи Ан Бёнъоп публично признал, что его ведомство проявило беспечность. В Турции вирус добрался до компьютеров военной академии в Анкаре, государственного телевидения, аэропорта в Измире. В Индии закрылись издательства и банки. В Объединённых Арабских Эмиратах пострадало министерство труда. В Китае антивирусная компания Ruixin перестала справляться со звонками: все телефоны были заняты с предыдущего дня. В Бангладеш глава Компьютерного общества назвал случившееся худшей компьютерной катастрофой в истории страны. К исходу 26 апреля число уничтоженных машин перевалило за полмиллиона.

Программа, вызвавшая эту катастрофу, весила меньше полутора килобайт — примерно как короткое электронное письмо.

Летом 1998 года антивирусная компания Sophos получила от клиента с Тайваня образец заражённого файла. Специалисты быстро определили, что это ранее неизвестный вирус, поражающий исполняемые файлы Windows 95 и Windows 98. В теле вируса обнаружилась текстовая строка с буквами CIH. Никакого ругательства на известных языках эти буквы не складывали, название прижилось.

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

Первый инцидент с участием его программы произошёл ещё в апреле 1998 года, когда вирус повредил данные в межвузовской компьютерной сети. Институт наложил на Чэня дисциплинарное взыскание, замечание с занесением в личное дело, но не исключил. Декан по работе со студентами Ли Чичэнь позже пояснил журналистам: Чэнь предупредил сокурсников, чтобы те не распространяли программу. Руководство сочло это смягчающим обстоятельством.

Однако предупредить всех остальных Чэнь не мог. Вирус уже покинул стены института.

Чтобы понять, почему CIH оказался таким незаметным, нужно на минуту заглянуть в устройство исполняемых файлов Windows. Формат Portable Executable, PE-файл, состоит из нескольких секций — блоков, в которых хранятся код, данные, таблицы импорта и прочая служебная информация. Каждая секция обязана начинаться с адреса, кратного определённому числу байт, обычно 512. Когда конец предыдущей секции не доходит до выровненной границы следующей, промежуток заполняется нулями. Это пустое пространство не содержит полезных данных и никак не используется при работе программы.

Чэнь придумал способ разрезать код вируса на небольшие фрагменты и распихать их по этим пустотам. Техника получила название cavity infection — внедрение в пустоты, заполнение неиспользуемых промежутков между секциями. Файл-носитель после заражения сохранял прежний размер, ни на байт больше. Антивирусы того времени часто использовали проверку размера как простой, но действенный метод обнаружения. Здесь этот метод не работал.

При запуске заражённого файла вирус собирал свои фрагменты в памяти в единое целое. Дальше начиналась более агрессивная часть.

CIH модифицировал таблицу дескрипторов прерываний — Interrupt Descriptor Table, через которую процессор узнаёт, какую программу вызвать при наступлении прерывания. Подменив один из обработчиков, вирус получал доступ на уровне ring 0, то есть уровне ядра операционной системы. Из этого привилегированного положения он перехватывал вызовы файловой системы: каждое открытие, сохранение или запуск исполняемого файла проходило через его код. Если файл ещё не был заражён и в нём хватало пустот, CIH вписывал свои фрагменты. Один запуск заражённой программы — и через несколько минут вирус сидел в десятках, а то и сотнях файлов на машине.

Работал этот механизм только на Windows 95, Windows 98 и Windows ME. В Windows NT, вышедшей за пять лет до описываемых событий, корпорация Microsoft внедрила более строгую модель защиты памяти: пользовательские приложения не могли трогать таблицу прерываний. Поэтому серверы, рабочие станции на NT и более поздние версии Windows были CIH-устойчивы.

Большую часть времени CIH вёл себя тихо. Никаких признаков заражения: компьютер не тормозил, файлы не портились, программы запускались как обычно. Вирус никак не проявлял себя до наступления заданной даты.

В коде вируса была зашита проверка системных часов. В варианте CIH 1.2 и 1.3 разрушающая функция срабатывала строго 26 апреля. В варианте 1.4 — 26-го числа каждого месяца. Двадцать шестое апреля — дата, в 1986 году ставшая днём аварии на Чернобыльской АЭС. Совпадение случайное: Чэнь не привязывался к чернобыльской годовщине. Но журналисты привязку нашли мгновенно, и вирус обрёл народное прозвище, которое затмило официальное название.

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

Вторая часть была радикальнее. Вирус пытался записать мусор в микросхему Flash BIOS на материнской плате. Программа Basic Input/Output System, или сокращённо BIOS, вшитая в чип на материнской плате, выполняется в первые мгновения после нажатия кнопки питания. Она тестирует оборудование, находит загрузочное устройство и передаёт управление операционной системе. Если BIOS испорчен, компьютер не проходит даже начальную стадию включения: вентиляторы крутятся, экран тёмен, никакой реакции.

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

Вирус затирал BIOS не полностью, а только критический участок, тот самый, с которого процессор начинал исполнение кода после включения. Этого хватало. Компьютер переставал подавать признаки жизни. Единственным способом восстановления была замена чипа или всей материнской платы.

Правда, получалось это не всегда. Успех атаки на BIOS зависел от комбинации материнской платы и чипсета. Чаще всего страдали машины на чипсете Intel 430TX, одном из самых распространённых в то время. Сотрудники Sophos, исследовавшие вирус, оценили, что в Великобритании примерно три четверти компьютеров были невосприимчивы к BIOS-атаке. Но и оставшейся четверти хватило.

Летом и осенью 1998 года CIH разошёлся по миру. Основным транспортом служило пиратское программное обеспечение на компакт-дисках — в Азии, Восточной Европе и на Ближнем Востоке это был главный канал распространения софта. Пиратская сборка с вирусом попадала к пользователю, пользователь запускал программы, вирус расселялся по жёсткому диску и ждал апреля.

Но история была бы слишком простой, если бы заражение ограничивалось пиратскими копиями.

В июле 1998 года британский игровой онлайн-сервис Wireplay, принадлежавший British Telecom, выпустил обновление клиентского программного обеспечения. Обновление содержало CIH. Оно провисело на серверах Wireplay двадцать семь часов, прежде чем ошибку заметили и устранили. В том же месяце сайт MPlayer.com, третий по величине интернет-игровой сервис в мире с аудиторией около восьмисот тысяч пользователей, также временно разместил заражённое обновление.

Компания Yamaha выпустила обновление прошивки для своего привода CD-R400. В прошивке сидел CIH.

В марте 1999 года корпорация IBM отгрузила несколько тысяч персональных компьютеров серии Aptiva — модели 240, 301, 520 и 580, изготовленных в период с 5 по 17 марта. На каждом из них был предустановлен вирус. До даты активации оставался месяц.

Летом 1999 года, уже после апрельской атаки, на хакерской конференции DEF CON 7 в Лас-Вегасе раздавали копии программы Back Orifice 2000, инструмента для удалённого администрирования. Копии содержали CIH. Вирус продолжал распространяться даже после того, как о нём написали все мировые СМИ.

Когда 26 апреля 1999 года сработала разрушающая функция, мир уже знал имя автора. Институт Татунг подтвердил личность Чэнь Инхао изданиям The New York Times и CBS News. Журналисты выяснили, что Чэнь, окончив институт летом 1998-го, ушёл на обязательную двухлетнюю военную службу в тайваньской армии — призыв на Тайване в ту пору был всеобщим. Полиция наведалась в казарму допросить рядового Чэня.

Чэнь не отпирался. Более того, ещё до допроса он разместил в интернете открытое письмо с извинениями перед жителями Китая, чьи компьютеры пострадали. Однокурсники советовали ему молчать, но Чэнь рассудил, что эксперты всё равно вычислят автора. Оказался прав.

Допрос допросом, но тайваньское законодательство конца 1990-х годов не предусматривало уголовной ответственности за создание компьютерных вирусов. Чтобы возбудить дело, требовалось заявление от потерпевшего. В 1999 году потерпевших на Тайване не нашлось — либо никто не подал иска, либо местный ущерб был сочтён недостаточным для суда. Чэнь вернулся к службе.

Ситуация изменилась через год. В апреле 2000-го очередной вариант CIH снова сработал, и на этот раз пострадал тайваньский студент, чей компьютер был уничтожен. Студент написал заявление в полицию. 20 сентября 2000 года Чэня задержали. К тому моменту он уже демобилизовался и работал программистом в небольшой тайваньской софтверной компании Wahoo International Enterprise Co. Агентство Reuters передавало, что компания специально разыскала Чэня и наняла — её руководителей впечатлили навыки Чэня.

Задержание продлилось недолго. Юристы изучили дело и пришли к выводу, что состав преступления по-прежнему отсутствует: написание программы произошло в 1998 году, когда Чэнь был студентом, а действовавшее законодательство не имело обратной силы. Уголовное дело так и не было возбуждено.

Инцидент не прошёл бесследно для тайваньского права. Парламент Тайваня принял поправки к законам о компьютерных преступлениях, закрыв лазейку, которой воспользовался Чэнь. В будущем у авторов вредоносного ПО больше не было шанса уйти от ответственности со ссылкой на отсутствие состава.

Сам Чэнь Инхао продолжил карьеру. После Wahoo он перешёл в крупного тайваньского производителя материнских плат и видеокарт Gigabyte Technology. По состоянию на 2020-е годы он продолжал работать в этой компании. Человек, чей вирус уничтожал материнские платы, стал разрабатывать материнские платы.

CIH вошёл в историю как первый массовый вирус, способный физически уничтожить компьютерное оборудование. До него вредоносные программы портили данные, крали пароли, выводили из строя операционную систему, но после переустановки системы и восстановления данных компьютер продолжал работать. Машина, получившая удар CIH в BIOS, переставала быть компьютером.

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

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

Инцидент с IBM Aptiva, заражёнными прямо на заводе, показал, что вредоносный код может прийти к пользователю не через интернет и не через пиратский диск, а прямо в коробке с новым компьютером от известного бренда. Спустя годы индустрия столкнётся с этой проблемой в гораздо большем масштабе, но в 1999-м она прозвучала впервые.

К 2026 году исполнилось двадцать восемь лет с момента обнаружения CIH. Вирус больше не представляет угрозы: операционные системы, которые он заражал, вымерли. Осталась история о тысяче байт кода, написанных студентом в общежитии, — кода, который обнажил архитектурные уязвимости целого поколения персональных компьютеров и заставил индустрию пересобрать защиту на уровне железа. Остался и сам автор: инженер Gigabyte Чэнь Инхао, чьи инициалы вписаны в учебники по компьютерной безопасности.