Легенды вирусостроения: В тисках шифратора

    cyfers
    Лето 1994 года запомнилось многим. Чем оно запомнилось? Ответ не сложен, хотя прошло больше 15 лет, эти три строки у некоторых из читателей могут вызвать неприятные ощущения «под ложечкой»:

    Dis is one half.
    Press any key to continue…

    Did you leave the room?


    Если вам не довелось видеть этого в живую, то позвольте описать ощущения, возникающие у лицезреющих эти строки: недоумение (примерно 1 минуту), банальный страх (~2 минуты), лихорадочный поток мыслей (что это? что делать? — в среднем 5-10 минут), гнев (что за х…?) и снова лихорадочный поток мыслей и действий (где же эта гребаная дискета с Web’ом?), вот примерно те пограничные эмоциональные ощущения, которые чувствовали владельцы зараженных машин.

    Если вы еще не догадались, то речь идет о вирусе, который большинство помнят как — OneHalf, хотя он также известен и под другими именами — Slovak Bomber, Explosion-II, Freelove.

    Впервые вирус был обнаружен в мае 1994 года в США и Европе, но было уже поздно и вирус уже широко распространился по всему миру. Распространялся OneHalf в основном через съемные носители (тогда это были в основном дискеты). Он является чрезвычайно примечательным по своим свойствам даже сейчас, а в то время это было новое слово в ремесле вирмастеров, если можно так выразиться конечно.

    Во-первых, OneHalf — полиморф (не первый и далеко последний, но современные вирусы без полиморфизма просто не выживают, для несведущих полиморфным считается такой вирус, каждая новая копия которого может ни в одном байте не совпадать с предыдущей), во-вторых, вирус был файлово-загрузочным (заражал MBR и boot-сектора дискет, а также COM и EXE файлы), в-третьих, тело вируса было зашифровано, в-четвертых, до создания нормальных средств противодействия, OneHalf гарантировано разрушал данные, ну и пожалуй последнее, стелс-функциональность, встроенная в вирус, позволяла оставаться ему невидимым для системы.

    А теперь разберем некоторые детали



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

    Зараженный файл (приращение длины 3544 байт):
    • Таблица размещения «пятен» кода расшифровщика
    • «Пятна», в которых содержится расшифровщик тела вируса
    • Тело зараженного файла
    • Зашифрованное тело вируса


    Механизм заражения файлов



    Эпидемия передавалась дискетно-ручным способом. При обращении зараженной системы к дискете для записи OneHalf перехватывал его и проверял размер, имя (не трогал файлы с именами SCAN, CLEAN, FINDVIRU, GUARD, NOD, VSAFE, MSAV, CHKDSK, AIDS, ADINF, WEB) и зараженность файла. Если размер, имя не соответствовали алгоритму или файл уже был заражен, то заражение не производилось. Если же файл был чист и соответствовал требованиям вируса, то производилось его заражение.

    В файле создавались 10 пустых мест («пятен») для записи расшифровщика, при этом вирь создавал их в случайном порядке, при единственном условии — не менее 10 байт между ближайшими «пятнами». Маршрутная таблица размещения «пятен» кода расшифровщика размещалась в начале файла, в ней также хранился случайный ключ с помощью которого зашифровывалось тело вируса, которое находилось в конце заражаемого файла. В случае если по каким-то причинам запись не удавалась «пятна» уничтожались и файл оставался чистым, иначе зараженный файл записывался на дискету, ожидая свою следующую жертву.

    Механизм заражения компьютера



    При пользовании зараженной дискетой (загрузки с нее или запуске зараженного файла), вирус при помощи собственного обработчика прерывания Int12h оценивал размеры свободной оперативной памяти и наличие в ней своей копии — прерывание Int21h.

    Если вируса в памяти не было и ее больше 4 [кБ], он искал признаки заражения MBR, если таковых не находилось он заражал MBR. Для этого он на место оригинального MBR записывал свой обработчик загрузки тела вируса, затем записывал 7 секторов кода своего тела в 7 секторов от конца нулевой дорожки диска в скрытых секторах, а после всего этого оригинальный MBR в восьмой сектор от конца нулевой дорожки диска. После записи своего тела на диск или при обнаружении уже зараженного MBR, OneHalf проверял память и при отсутствии своей копии переписывал ее с диска в память.

    После того, как вирус оказывался загружен в оперативу, руль системы был у него в руках. Дальше злодей считывал из MBR нижнюю границу зашифрованной дорожки и если она не дошла до 7 дорожки от начала, то вирь шифровал две дорожки вверх от нижней границы уже зашифрованных, при этом использовался случайный ключ, содержащийся в MBR. Если шифрование прошло удачно, в MBR записывалось новое значение нижней границы зашифрованных дорожек. (для работы он использовал свои обработчики прерываний Int01h, Int12h, Int1Ch, Int13h, Int21h, Int24h). Если же нижняя граница дошла до 7 дорожки, шифрование не производилось во избежание повреждения системных областей диска.

    Затем OneHalf анализировал три параметра: зашифрованость половины диска, кратность системной даты четырем и четность счетчика заражений (содержался в теле самого вируса); при положительной проверке на дисплей выводилось сообщение:

    Dis is one half.
    Press any key to continue…


    а зловред ожидал нажатия той самой клавиши «Any».

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

    При работе пользователь ничего не замечал, поскольку OneHalf, сидящий в памяти перехватывал обращения к уже зашифрованным дорожкам и расшифровывал их на лету без всяких тормозов, скрывал уменьшение размера оперативки и приращение длины зараженных файлов для всех программ кроме CHKDSK и Norton Commander, но это ничего не давало, поскольку при попытке трассировки вируса в памяти он 100%-но вешал систему циклом без выхода с помощью своего обработчика прерываний Int01h.

    В зависимости от модификации OneHalf варьировались размеры приращений зараженных файлов, 3544, 3577 или 3518 байта, — в связи с чем в антивирусных базах версии так и назывались OneHalf.3544, OneHalf.3577 и OneHalf.3518.

    Также в разных версиях OneHalf при зашифровке половины диска на дисплей выдавались разные сообщения:

    Dis is one half.
    Press any key to continue …

    Dis is TWO HALF.
    Fucks any key to Goping…

    HET — фu3uke u ucTopuu B pacnucaHuu uy7!

    Disk is Tpu half.
    (Bepx, Hu3 u Pe6po)

    Dis is 3 HALF !.
    Fucks any key to LoHing…

    A cup of Beer ?.
    See you later…


    Борьба



    Почему произошла эта эпидемия? Мне думается, что дело было так. Вирус появился на свет где-то зимой 1994 года, ближе к весне произошло массовое распространение, продолжавшееся еще несколько месяцев незаметно для пользователей и разработчиков антивирусов. Первые известия о роковых строках на экранах дисплеев появились только в мае-июне, так как для полной шифровки винчестера емкостью 0.5 [ГБ], необходимо было перезагрузить компьютер около 500 раз, что при нормальной эксплуатации ПК занимало несколько месяцев. Поэтому OneHalf и был упущен, а эпидемия разошлась, чуть не став пандемией.

    Что немаловажно, так это то, что для избавления от вируса недостаточно было простой перезаписи MBR, которая привела бы только к утере ключа к шифрованным данным, а вследствие этого и к потере данных. Для гарантированного избавления необходима была тонкая работа антивирусных утилит, как по обезвреживанию, так и по расшифровке данных.

    Распространение вируса и его модификаций происходило еще несколько лет, но не такими взрывными темпами, даже сейчас он еще бродит по старым дискетам и раритетным компам.
    OneHalf

    P.S.



    Какие я могу здесь подвести итоги? В общем не так уж и давно я осознал тот факт, что в школе и в универе нам не зря ставили «жбаны» (двойки :) если палили, что мы не проверяли только что вставленные в привод дискеты на вирусы, ох не зря…

    → OneHalf на сайте f-secure
    → OneHalf на securelist
    → OneHalf на viruslist
    → О OneHalf на страницах «Компьютер-информ»
    Эссе Евгения Касперского о вирусе OneHalf [ENG]
    Поделиться публикацией

    Комментарии 63

      +14
      Как и обещал, следующая статья готова!!!
        0
        На этот раз про чуму? :-)
          +7
          Ждем описания про Чернобыля. В далеком 97 году он мне биос переписал. Эх, ностальгия ;)
          А сейчас autorun.inf, тьфу.
            0
            А не в 99ом случаем?
            Шумихи тогда было вокруг CIH — кажется даже по телеку показывали сюжеты про этот вирус.
              0
              Извиняюсь и правда 99-ый год. Сколько воды утекло… Fido, BBS :)
          +1
          Отличная статья, времена вспомнились, аж засосало под ложечкой :)
            0
            Красота.
              0
              как насчет win95.cih?
                0
                Это уже позже было. А вот OneHalf, Оксана и Чернобыль это да… %)
                  0
                  меня эти вирусы обошли стороной, но поиск по гуглу утверждает, что винчих и чернобыть есть одно и то же.
                    0
                    Разве? Странно, мне почему-то запомнилась именно эта тройка. Хотя может быть я спутал с BackFormat-ом.
                    0
                    Это на самом деле так. CIH и Чернобыль одно и тоже.
                0
                Отлично!

                Надеюсь, пройдетесь по каждой вехе в этой борьбе ;)
                +5
                >> HET — фu3uke u ucTopuu B pacnucaHuu uy7!

                Неужто баумановцы засветились?! :)
                  –1
                  Да, сразу бросилось в глаза)
                  Видимо, и в МГТУ была собственная версия вируса
                    +4
                    Вероятно просто был заменен текст в исходнике виря.
                    –1
                    БАУМАНЦЫ!
                    Но никак не бауманОВЦЫ
                    +2
                    Фраза:
                    HET — фu3uke u ucTopuu B pacnucaHuu uy7!

                    мне как бы намекает, что дело тут не обошлось без кафедры ИУ-7 МВТУ им. Баумана.
                    • НЛО прилетело и опубликовало эту надпись здесь
                        +9
                        На 286 Линукс не запускался.
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Я написал в прошедшем времени. Линукс писался с учётом защищённого режими (или как он правильно называется, забыл) для 386. На 286 его портировали уже потом.
                        • НЛО прилетело и опубликовало эту надпись здесь
                            +5
                            Вспомнился анекдот:

                            Встречаются два хакера. Один говорит:
                            — А я знаю что надо сделать чтоб OSR2 ваабще не глючила!
                            Второй:
                            — Что?
                            — Да всего один байт поменять!
                            — Какой?
                            — Да, в названии OSR2 третий байт надо поменять на "/"!
                          +2
                          Да уж, помню как этот засранец зашифровал данные на моем 286 компьютере(( Расшифровка данных у антивируса заняла около 7 часов( И это на винте размером в 40 мегабайт!
                            +7
                            Эх, знали бы они в 94-ом, что в расписании ещё и валеология с культурологией появятся :-D
                              +1
                              Еще социология и политология =)
                                +1
                                Прочитал статью с ci.ru

                                Оказывается ещё в 94-ом Сидоренков донимал студентов нашей кафедры! :-))))
                                  +1
                                  да, наслышан о нем
                                  «ну что ты, кисонька моя, я и сам дурак, главное, чтобы умной была»
                                +5
                                Эх, знали бы они в 94-ом, что в расписании ещё и валеология с культурологией появятся :-D

                                PS: статья отличная!
                                  +2
                                  > так как для полной шифровки винчестера емкостью 0.5 [ГБ]
                                  речь идет о 94 годе. В те времена диски были намного меньше.

                                  Чуть ранее (где-то в 93 году) у меня было 2 диска по 21 МБ (доставшиеся при апргрейде с 286 на 386) и я точно знал количество файлов на каждом из них. Изменение этого числа наводило меня на мысли «этожжжжж неспроста!»
                                    0
                                    OneHalf встречался в «дикой» природе примерно до 2001 года, я с ним в универе познакомился впервые.
                                      0
                                      не удивлюсь, если он до сих пор дремлет на какой-нибудь дискетке, дожидаясь своего часа.
                                      другой вопрос, что его сигнатуры наверняка уже есть во многих АВ-базах
                                        –1
                                        Он полиморфный, по сигнатурам не детектится.
                                          0
                                          а что, АВ, способных детектить полиморфов, уже не осталось?
                                            0
                                            Я к тому, что для детектирования полиморфных вирусов в те времена (может и сейчас тоже) использовались другие методы, а не поиск по сигнатурам.
                                              0
                                              хорошо, признаю, что неправильно выразил свою мысль.
                                    +2
                                    onehalf у меня лежит в личном сборнике вирусов, один из любимых =)
                                      0
                                      Спасибо за интересные статьи! Продолжение будет?=)
                                        0
                                        Раз уж я взялся за эту тему, то еще несколько статей обязательно напишу.
                                          0
                                          Жду с нетерпением=)
                                        +3
                                        Вы забыли упомянуть, что первый антивирус, убивающий OneHalf (aidstest?), забывал расшифровать диск. В результате чего данные были гарантированно утеряны.
                                          –3
                                          Не гарантировано. Можно было заразиться ещё раз, и данные становились снова доступны :)

                                          У меня получалось так, что я убивал вирус аидстестом, после чего данные становились недоступны. Видимо, аидстест убивал только из памяти, потому что после перезагрузки опять дис из ванхалф, и опять всё доступно. В итоге притащил дрвеб и всё полечил.
                                            +4
                                            Крд шифрации был рандомным, так что при следующем заражении даные нельзя уже было расшифровать.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                0
                                                Эээх, да… были времена.
                                                  +1
                                                  Помню мой ужас… Еще страху добавило, то что он в справочнике Веба был помечен, как «крайне опасный». Слава Богу, к тому моменту, что я схватил его, Веб уже умел его лечить и расшифровывать диск.
                                                0
                                                Может быть, я за давностью лет реально не помню уже. Помню только, что аидстест вируса убивал, после чего диск переставал читаться, но после перезагрузки дис из ван халф опять, и данные становились доступны :)
                                              0
                                              Не хотелось очернять AV-компании, к тому же я упомянул об опасности простой перезаписи MBR, потому что в основном так и боролись с onehalf'ом сначала.
                                                +1
                                                aidstest не умел лечить полиморфные вирусы.
                                                +1
                                                «Лицезреющие эти строки» в большинстве своём жали эни кей и работали дальше :)
                                                  0
                                                  Помню всю систему перебирал по файлу удаляя заражённые. Они примерно одинаково выглядели, можно было отличить от незаражённых файлов. Думал я так от вируса избавлюсь.
                                                    0
                                                    Помню его — пришел с зараженной дискетой с игрой pacman в 1996м
                                                      +2
                                                      И все-таки раньше трава была зеленее, девушки красивее и пиво вкуснее.

                                                      Статья супер! Давайте-ка еще ;).
                                                        +1
                                                        Да, да, и вирусы серьезнее )
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            0
                                                            Маленькое замечание:

                                                            DrWeb тогда только только появился, а в основном использовался Aidstest.

                                                            Даже помню диалог:
                                                            — А у меня есть DrWeb, который лечит 34 вируса.
                                                            — А мой — 48!
                                                            — Дай переписать!!!

                                                            Ну как-то так, точные цифры уже не помню, все таки 15 лет прошло, но порядок такой. =)

                                                            Как раз тот самый дрвеб о 48 вирях и ловил ванхальф.

                                                            P.S. Эх, где бы найти самую самую первую версию
                                                              0
                                                              Спасибо автору за ссылку на Компьютер-информ. С удовольствием почитал сайт, который не менялся с 96го.
                                                              Даж на слезу пробивает. И самое интересное, что страницы без css, тегами вроде [HR WIDTH=«100%»][B][FONT COLOR="#FF0000"][FONT SIZE=+3]OneHalf [/FONT][/FONT][/B] и расширениями .htm в заголовке не смотрятся убого!
                                                                +1
                                                                Эх блин. Для меня ваше описание работы вируса — это как Deep Purple в 7 классе — нихрена не понятно, но очень круто!
                                                                А я ведь тоже помню его. Только по тем временам мне компьютер Очень Умные Дядечки лечили, а наблюдал. Сейчас-то наоборот обычно — я ремонтирую, а за мной наблюдают. И ведь наверное, считают меня Очень Умным
                                                                Спасибо, отличная статья!
                                                                  0
                                                                  Очень лестный комментарий для меня (даже не думал, что можно сравниться по крутости с Deep Purple :)
                                                                  0
                                                                  Да, славный был вирусец. Мы даже с другом долго думали как его портировать на Спектрум :-D

                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                  Самое читаемое