Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Утром 26 апреля 1999 года, ровно 23 года назад, многих пользователей персональных компьютеров под управлением Windows 9х/МЕ поджидал неприятный сюрприз: данные на жестких дисках их персоналок оказались уничтожены, а в отдельных случаях машина отказывалась работать из-за повреждения BIOS. Эта неприятность стала следствием заражения компьютеров резидентным вирусом CIH, более известным под именами «Чернобыль» и Spacefiller. Устройству этого коварного вируса и истории его создания посвящена сегодняшняя заметка.
Автором вируса, от которого пострадало по разным подсчетам от полумиллиона до нескольких десятков миллионов компьютеров по всему миру (а в те времена это было очень внушительное число), был студент университета Датун (Tatung) в Тайване Чэнь Инхао (Chen Yínghao), причем Чэнь — это фамилия, которая согласно китайской традиции следует перед именем. Чень утверждал, что создал вирус с единственной целью — доказать полную неэффективность существовавших на тот момент антивирусных программ. Первыми жертвами CIH стали компьютеры университета, в котором учился создатель вируса, затем инфицированные программы попали в местные конференции Usenet, а уже оттуда вредонос распространился за пределы Тайваня. В июле 1998 года вирус заразил один из серверов компании Ritual Entertainment, с которого раздавалась бета-версия шутера SiN: все загруженные пользователями копии игры оказались инфицированы. В марте 1999 года компания IBM отгрузила клиентам несколько тысяч зараженных CIH компьютеров, примерно в то же время вирус проник на ряд американских игровых серверов, откуда начал свое победное шествие по компьютерам США, Европы, Великобритании и Австралии.
После того как его детище стало бесконтрольно распространяться в интернете, Чень и его однокурсник Вэн Ши-Хао написали и опубликовали в свободном доступе утилиту, распознававшую и уничтожавшую вирус. Но было уже поздно: CIH быстро расползся по всему миру и по различным оценкам нанес совокупный ущерб порядка 1 миллиарда долларов США.
Большинство существовавших на тот момент файловых вирусов дописывало свой код в конец исполняемых файлов, тем самым увеличивая их размер. Это упрощало детектирование зараженных программ антивирусами. CIH, объем которого составлял всего лишь 1 Кбайт, действовал иначе: загрузившись в память, он отслеживал запуск EXE-файлов в Windows 9x, после чего помещал полезную нагрузку в неиспользуемые секции существующего кода — в результате размер исполняемого файла не менялся. Именно из-за этой своей особенности вирус получил наименование «Spacefiller» — «заполнитель пробелов».
Наличие такого «свободного пространства» обусловлено тем, что размер секций исполняемого файла выравнивался до определенного размера, указанного в PE-заголовке. CIH искал в файле такие секции: если позволял их размер, он записывал свое тело в пустое пространство целиком, если нет, дробил его на блоки и сохранял их в разных секциях с указанием, где искать «продолжение». Затем вирус искал неиспользуемые участки в PE-заголовке файла размером не менее 184 байт: при обнаружении такого блока он сохранял туда свою стартовую процедуру и менял точку входа. После запуска инфицированного приложения в Windows 9X управление передавалось этой стартовой процедуре: она выделяла память с использованием процедуры PageAllocate, искала разбросанные по секциям блоки кода вируса, последовательно дописывала их в конец стартовой процедуры и запускала полученное приложение, после чего управление возвращалось исходной программе-носителю. Оказавшись в памяти, вирус перехватывал связанные с открытием файлов вызовы операционной системы. Если в Windows 9X происходило обращение к исполняемому файлу, CIH заражал его. В некоторых случаях данная операция приводила к повисанию операционной системы, но чаще оставалась незамеченной пользователем. До поры до времени.
Заложенный в CIH вредоносный функционал впервые сработал 26 апреля 1999 года, в 13-ю годовщину аварии на Чернобыльской АЭС, из-за чего вирус и получил свое самое известное название — «Чернобыль». На самом же деле совпадение оказалось случайным: разработчик заложил дату срабатывания вируса ровно через год после выпуска в «дикую природу» его первой версии — Чень впервые запустил CIH на университетских компьютерах 26 апреля 1998 года. В этот день вирус принялся стирать данные на всех жестких дисках зараженной машины, при этом он использовал непосредственный доступ к диску, что позволило обойти стандартную защиту от записи данных в загрузочные сектора. CIH заполнял нулями первые 1024 Кбайт диска, уничтожая загрузочный сектор и таблицу разделов, после чего переходил к следующей атаке. Если настройки BIOS Setup допускали запись во FlashBIOS, на некоторых типах материнских план CIH стирал содержимое Flash-памяти, «окирпичивая» компьютер. Оживить машину можно было заменой или перепрошивкой микросхемы BIOS, данные в ряде случаев также можно было спасти, заменив MBR и загрузочный сектор стандартными копиями, а первую копию таблицы FAT (если ее размер превышал 1 Гбайт) восстановив из второй копии, до которой CIH «не дотягивался».
Оценив масштаб содеянного, Чэнь Инхао принес публичные извинения пострадавшим пользователям. Ему могло бы грозить строгое наказание, но в конечном итоге в полицию Тайваня не поступило ни одного заявления от жертв «чернобыльского вируса», так что его разработчик отделался лишь легким испугом. Сейчас 46-летний Чэнь Инхао успешно работает в компании Gigabyte Technology Co., Ltd. — тайваньской корпорации по производству материнских плат, видеокарт и другой компьютерной техники. О своем вирусописательском прошлом он предпочитает не вспоминать.