Kitobni o'qish: «PRO вирусы. Версия 4.0»
© Холмогоров В., 2020, текст
© ООО «Страта», 2020
* * *
Моей жене Галине и детям – Анастасии и Даниилу
Предисловие
Историю развития человеческой цивилизации с определенной степенью достоверности можно назвать историей борьбы за ресурсы. На протяжении многих эпох люди соперничали за пищу, золото, территории, нефть. В начале XXI века основным ресурсом для человечества стала информация.
Информация пронизывает всё современное общество, проникает во все без исключения сферы нашей жизни. Информационные потоки управляют движением самолетов и поездов, обеспечивают телефонную и спутниковую связь, являются движущей силой биржевой торговли и банковской сферы. Без непрерывных процессов передачи и обработки информации не загорится электрическая лампочка в квартире, не смогут пробить товар кассовые аппараты в супермаркете, замрут бензозаправочные станции, погаснут светофоры на улицах. Информация сегодня де-факто управляет миром. Вот почему сфера информационной безопасности является сейчас одной из наиболее актуальных и важных областей IT-индустрии. Она буквально балансирует на острие прогресса, скользит на гребне волны, всегда оставаясь на её вершине – ведь технологии в наши дни развиваются стремительно. А одним из наиболее значимых (и интересных) подразделов информационной безопасности является защита устройств от компьютерных угроз.
Еще двадцать лет назад компьютерные вирусы и троянские программы заявили о себе, как реальная и очень серьезная опасность, способная принести многомиллионные убытки как отдельным коммерческим компаниям, так и экономике государств в целом. По земному шару прокатилось несколько глобальных компьютерных эпидемий, а пользователи Интернета стонали под грудами рекламного спама, непрерывно сыпавшегося в их электронные почтовые ящики. Чуть позже киберпреступники научились извлекать прибыль, шантажируя непосредственно самих владельцев персональных компьютеров: на свет появились троянцы-блокировщики, нарушавшие нормальную работу операционной системы, энкодеры, шифровавшие данные на дисках и требовавшие выкуп за их расшифровку, и, наконец, банковские троянцы, кравшие деньги непосредственно с электронных счетов ничего не подозревающей жертвы. И если потерю десятка личных фотографий из отпуска еще можно как-то пережить, то утрата бухгалтерской базы данных, реестра клиентов и контрагентов, договоров и прочей важной документации может стать для коммерческого предприятия настоящей катастрофой.
Десять лет назад были обнаружены первые троянцы для смартфонов, работавших под управлением операционной системы Google Android. Те, самые ранние экземпляры, еще не несли в себе значительной угрозы пользователям – они просто предлагали ему отправить платную СМС при установке новых приложений, и потому поначалу никто не воспринял их всерьез. Посетители многочисленных форумов в Интернете ехидно комментировали выпуск антивирусных программ для Android желанием разработчиков нагреть руки на несуществующей и якобы преувеличенной опасности.
Сегодня число известных вредоносных программ для ОС Windows исчисляется миллионами, для ОС Android – сотнями тысяч. Появились и активно распространяются вредоносные программы для так называемых «умных устройств», составляющих экосистему «интернета вещей» – телевизионных приставок, роутеров, сетевых хранилищ и дисковых накопителей, систем «умный дом», медиацентров.
В силу моей профессии ко мне часто обращаются знакомые с просьбами проконсультировать их по вопросам защиты информации и борьбы с вирусами. И я всякий раз сталкиваюсь с тем, что многие из них (даже те, кто является неплохим специалистом в других компьютерных областях) не слишком хорошо разбираются в данном предмете, не знакомы с некоторыми важными фактами, безоговорочно верят в домыслы и стереотипы, путаются в терминологии. Эта книга – попытка объединить под одной обложкой мой двадцатипятилетний опыт работы в сфере IT-технологий и девятилетний – в области информационной безопасности и защиты информации. Изложенный здесь материал не претендует на энциклопедичность и техническую глубину, однако позволит получить базовые сведения о существующих на сегодняшний день угрозах, познакомит читателя с основными связанными с ними понятиями, расскажет об истории развития антивирусной индустрии, познакомит с наиболее опасными разновидностями вредоносных программ, принципами их деструктивной деятельности, путями распространения и методиками борьбы с ними. Иными словами, эта книга – начальное пособие для всех, кто интересуется теорией и практикой информационной безопасности и антивирусной защиты.
Предполагается, что читатели настоящего издания уже владеют базовыми знаниями о принципах работы современных персональных компьютеров и операционных систем, а также основными терминами, применяемыми в сфере IT. Если в тексте книги вам встретится незнакомое понятие, его значение можно уточнить в кратком глоссарии, который я привел в конце книги. Ну, а если у вас возникнут какие-либо вопросы, не освещенные на страницах этого издания, я буду рад видеть вас на моем персональном веб-сайте: htp://holmogorov.ru или в Facebook: htps://www.facebook.com/valentin.holmogorov.
Предисловие к четвертому изданию
С момента выхода предыдущего издания этой книги многое изменилось, впрочем, в мире информационных технологий что-то непрерывно меняется. Появились новые вредоносные программы, новые методы борьбы с ними.
В четвертом издании книги «PRO Вирусы» добавились разделы, рассказывающие о принципах работы мобильных банковских троянцев для Android и вредоносных программ для iOS. Отдельная глава посвящена троянцам, заражающим «умные» устройства, относящиеся к категории интернета вещей. Сегодня это – одна из самых актуальных и насущных угроз в мире информационной безопасности. На примере известного шифровальщина Troldesh показано, как работают современные энкодеры.
Об авторе
Валентин Холмогоров – в прошлом штатный сотрудник одной из ведущих российских антивирусных компаний, где проработал более 7 лет. Автор 38 книг, посвященных компьютерным технологиям, а также более 400 публикаций в различных периодических околокомпьютерных изданиях. Работал заместителем главного редактора журнала «Магия ПК», в течение пяти лет возглавлял IT-департамент в компании, занимавшейся организацией и комплексным техническим сопровождением протокольных мероприятий как российского, так и международного значения. Известен в Интернете как блогер и публицист. В настоящее время работает редактором легендарного журнала «Хакер» (htp://xakep.ru), посвященного высоким технологиям и информационной безопасности.
Глава 1. Закоулки истории
Любое наблюдаемое в современном мире явление имеет свою предысторию, в той или иной степени обусловливающую его возникновение. И если сам момент появления первых вредоносных компьютерных программ установлен с более или менее высокой степенью достоверности, то по поводу идеи, подтолкнувшей вирусописателей к мысли о создании такого рода опасных приложений, до сих пор ведутся ожесточенные споры.
Первые ласточки
Общепринятое мнение гласит, что теоретические основы, послужившие фундаментом для разработки самореплицирующихся (то есть автоматически воспроизводящихся) компьютерных программ заложил еще в начале 50-х годов XX века американский математик венгерского происхождения Джон фон Нейман. В 1951 году фон Нейман на основе собственного цикла лекций создал научный труд под названием «Теория самовоспроизводящихся автоматов» (книга была опубликована уже после смерти автора, в 1966 году, издательством университета Иллинойса), в котором описал принципиальную возможность разработки так называемых клеточных автоматических устройств, способных к самовоспроизведению подобно клеткам живого организма. Именно этот принцип распространения и по сей день используют современные компьютерные вирусы и черви.
По поводу этимологии самого названия «вирус» применительно к самореплицирующимся компьютерным программам также ведутся ожесточенные споры. Считается, что впервые этот термин именно в таком контексте употребил американский астрофизик и писатель-фантаст Грегори Бенфорд в своем рассказе «Человек в шрамах», опубликованном в журнале Venture в мае 1970 года. А уже в 1975 году американский писатель-фантаст Джон Браннер выпустил роман «Оседлавший взрывную волну», в основу которого лег сюжет о появлении самораспространяющейся вредоносной программы. Книга рассказывала о компьютеризированном обществе, которым управляло с помощью глобальной электронной сети правительство диктаторов и тиранов. Программист, решивший спасти мир от диктатуры, написал программу, которую автор романа назвал «червем»; эта программа копировала себя с одного компьютера на другой, разрушая хранившуюся в них информацию. Чтобы остановить «червя», правительство вынуждено было отключить сеть, лишившись таким образом власти. Роман быстро стал бестселлером, поистине культовой книгой в только зарождавшейся тогда среде компьютерных хакеров.
Однако одновременно с развитием теории программисты-энтузиасты проводили и первые практические опыты. Так, в 1971 году работавший в вычислительной лаборатории компании «Bolt, Beranek and Newman» американский программист Боб Томас занимался исследованием возможностей созданной им же самим подсистемы RSEXEC, позволявшей осуществлять удаленный запуск программ в операционной системе Tenex. Экспериментируя с системами передачи данных между различными вычислительными машинами, Томас написал программу, которую назвал «Ползуном» (Te Creeper). «Ползун» самостоятельно копировал себя с одного компьютера на другой, перемещаясь таким образом по сети, и выводил на экран каждого терминала забавное сообщение: «Я – Ползун… Если сможешь, поймай меня!» (I’m the Creeper… Catch me if you can!). Эта небольшая программа не размножалась, а просто «ползала» с одного сетевого узла на другой: когда на удаленном компьютере запускалась новая копия Creeper, исходный экземпляр уничтожался. Фактически этот случай можно назвать первым в истории документально подтвержденным фактом успешной разработки автономно распространяющейся компьютерной программы, которую, впрочем, все же нельзя назвать полноценным «компьютерным вирусом», поскольку она не несла в себе никакого вредоносного функционала. К слову, история гласит, что, когда другому специалисту Bolt, Beranek and Newman, Рэю Томлинсону, надоело бороться с бесконечно отвлекающими его от работы «Ползунами», он написал другую программу, получившую наименование Reaper («Жнец»). Reaper в точности так же самостоятельно перемещался по сети, но с совершенно иной целью: программа вылавливала и безжалостно уничтожала всех «Ползунов», которые попадались ей на пути. Эта незамысловатая «игра в догонялки» продолжалась какое-то время, пока программисты лаборатории окончательно не утратили к ней интерес.
В 1974 году появилась первая в истории программа, которую по ряду формальных признаков можно назвать вредоносной, однако имен ее создателей история, увы, не сохранила. Нехитрое приложение с названием Te Rabbit («Кролик») полностью соответствовало своему наименованию: ее предназначение вполне можно описать известной библейской формулой «плодитесь и размножайтесь». Программа автоматически создавала множество своих копий и увлеченно занималась этим до тех пор, пока не забивала всю доступную свободную память компьютера, что неизбежно вызывало его отказ. Именно это приложение стало своего рода основоположником целого семейства вредоносных программ, объединенных общей категорией: «логические бомбы».
А еще через год случился инцидент, вошедший в историю как первый случай самопроизвольного распространения программы, вышедшей из-под контроля своего создателя. Речь идет об игре Te Animal, созданной программистом Джоном Уокером для компьютера UNIVAC 1108. Суть игры состояла в следующем: пользователь загадывал некое животное, а программа задавала ему наводящие вопросы, на которые он должен был отвечать «да» или «нет». Компьютер таким образом пытался угадать, что задумал человек. Однако код игры содержал досадную ошибку: при попытке пользователя добавить в базу приложения дополнительные вопросы, новая версия игры записывалась поверх старой, и кроме того с использованием специальной утилиты игра автоматически создавала свою копию в каждой директории, к которой пользователь имел доступ. Поскольку компьютеры UNIVAC были многопользовательскими, программа быстро проникала на другие компьютеры, использующие общие магнитные ленты в качестве носителя информации. Остановить бесконтрольное распространение игры Te Animal (быстро получившей народное название Pervading Animal, «Всепроникающее животное») смогло только обновление операционной системы, в котором был изменен формат состояния файловых таблиц, используемый приложением для самокопирования.
Следующий аналогичный случай не заставил себя долго ждать. В 1980 году двое сотрудников компании Xerox, которая в те времена выпускала очень популярные персональные компьютеры Alto, имеющие возможность объединения в локальные сети, решили создать программу, которую, по аналогии с упоминавшимся в романе Браннера детищем программиста-бунтаря, назвали «Червем». Собственно, «Червь» Джона Хаппа и Джона Шока должен был нести положительную миссию: по замыслу разработчиков, перемещаясь между подключенными к сети компьютерами, «Червь» был призван проверять операционную систему на наличие уязвимостей и по возможности устранять их, загружая с удаленного сервера соответствующие обновления. Однако на практике все получилось совсем не так, как задумали разработчики. Запустив вечером экспериментальную версию «Червя», Хапп и Шок отправились домой. Когда утром программисты вернулись на работу, они увидели, что все компьютеры, установленные в многоэтажном здании исследовательского центра Xerox, расположенного в калифорнийском городке Пало-Альто, благополучно зависли. В исходном коде «Червя» была допущена незначительная ошибка, благодаря которой программа начала бесконтрольно распространяться между различными узлами сети и блокировать их работу. Перезагрузка машин не помогала: часть входящих в сеть компьютеров была установлена в закрытых комнатах, к которым Хапп и Шок не имели доступа, и как только на перезагружаемой машине запускалась операционная система, «Червь» тут же копировал себя в ее память с другого компьютера, после чего система мгновенно выходила из строя. Отключив одну из машин от локальной сети, программисты вынуждены были экстренно создать другую программу, которая уничтожила бы взбесившегося «Червя». На полную ликвидацию последствий их совместного творчества ушло несколько дней.
Как бы то ни было, все эти случаи можно считать всего лишь прелюдией, своего рода подготовительным этапом перед целой эпохой, ознаменовавшейся появлением и распространением настоящих вредоносных программ и компьютерных вирусов.
Эпоха вирусов
Что бы ни говорили о безопасности и защищенности данной системной платформы многочисленные поклонники компьютерной техники производства небезызвестной «яблочной» компании из города Купертино, первым в истории компьютерным вирусом, обнаруженным в «живой природе» (то есть за пределами компьютерной системы или вычислительной лаборатории, где он был написан), стала вредоносная программа Elk Cloner для персональных компьютеров Apple II. Произошло это в 1981 году.
Собственно, выбор создателя Elk Cloner, 15-летнего школьника Ричарда Скренты, пал на компьютер производства Apple не случайно – на заре 80-х именно эти относительно недорогие и весьма «продвинутые» персоналки пользовались чрезвычайно высокой популярностью в США, занимая значительную долю розничного рынка. Скрента относился к категории молодых людей, которых сейчас принято называть жаргонным термином «гики» – он был не просто пользователем Apple II, а «продвинутым компьютерным гением», любившим покопаться в архитектуре операционной системы и «внутренностях» прикладных программ. Одноклассники часто брали у Ричарда дискеты с играми, которых у него имелось множество, однако он быстро заработал себе репутацию проказника и шутника, поскольку постоянно модифицировал одалживаемые друзьям программы, чтобы они время от времени выводили на экран компьютера различные забавные, а порой и неприличные или оскорбительные фразы. В конечном итоге приятели и вовсе перестали просить программы у Скренты, предпочитая заимствовать игры из более надежных источников. Именно тогда Ричард задумался о том, как он смог бы модифицировать программы дистанционно, физически не прикасаясь к дискете. Итогом его размышлений и стал вирус Elk Cloner.
Вирус распространялся вместе с компьютерной игрой, при каждом 50-м запуске которой отображал на экране стишок следующего содержания:
It will get on all your disks
It will infltrate your chips
Yes, it’s Cloner!
It will stick to you like glue
It will modify RM too
Send in the Cloner!
Он влезет на все ваши диски,
Он проникнет в ваши чипы,
Да, это Cloner!
Он прилипнет к вам, словно клей,
Модифицирует оперативную память,
Представляем Cloner!
Если компьютер загружал операционную систему Apple DOS 3.3 с инфицированной дискеты, Elk Cloner копировался в оперативную память, после чего дожидался, пока пользователь вставит в дисковод «чистую» системную дискету, и заражал ее, обеспечивая этим собственное распространение. Поскольку компьютеры под управлением Apple DOS 3.3 были чрезвычайно популярны в Северной Америке, Elk Cloner быстро сделался самым настоящим стихийным бедствием – вирус распространился настолько широко, что компания Apple вынуждена была даже выпустить специальную утилиту для его уничтожения, которая к тому же предотвращала повторное заражение системных дискет. Ну, а сам Ричард Скрента навсегда вписал свое имя в историю развития компьютерных технологий и информационной безопасности. Закончив Северо-Западный университет (Чикаго, Иллинойс), Скрента поработал программистом в таких известных компаниях, как Sun Microsystems, Netscape, America On-Line (AOL), а позже создал собственную фирму в Кремниевой долине, занимающуюся разработкой оригинального поискового движка, известного сейчас под наименованием Blekko.
В том же 1981 году было зафиксировано распространение самореплицирующейся программы под названием Virus 1,2,3 – и тоже в операционной системе Apple DOS 3.3 для компьютеров Apple II. Ну, а уже в 1986 году разразилась первая эпидемия среди IBM-совместимых компьютеров, массово заражавшихся вирусом-буткитом Brain.
Авторами этого творения стали 19-летний пакистанский программист Басит Фаруд Алви и его родной брат Амджат. Сами братья утверждали, что вирус был написан ими для защиты от нелицензионного копирования разработанного ими же медицинского программного обеспечения и предназначался только для компьютерных пиратов. После своего запуска Brain подменял собственной копией загрузочную запись на дискетах, отформатированных в файловой системе FAT (File Allocation Table), используемой, в частности, операционной системой MS-DOS. Оригинальная загрузочная запись перемещалась в другой сектор диска, помечавшийся как «плохой» (bad), а в качестве метки тома устанавливалось значение «©Brain». За год своего существования вирус заразил множество компьютеров во всем мире, в первую очередь на территории США и Великобритании.
Следующий, 1987 год, стал поистине урожайным на появление новых вредоносных программ. Так, в течение последующих двенадцати месяцев были выявлены вирусы, известные под именами Vienna, Stoned, Ping Pong, Cascade. Наиболее масштабное распространение получила вредоносная программа Jerusalem, обнаруженная в Иерусалиме в октябре 1987 года и инфицировавшая компьютеры под управлением MS-DOS по всему миру.
Jerusalem был резидентным вирусом, использовавшим около 2 Кбайт оперативной памяти компьютера и заражавшим все запускающиеся в системе исполняемые файлы за исключением основного компонента ядра MS-DOS – файла command.com. Вирус обладал несколькими вредоносными функциями: благодаря возможности перехватывать используемые DOS системные прерывания, он мог значительно замедлять работу зараженной машины, спонтанно отключать рабочие станции от сети и препятствовать нормальному выводу документов на печать. Однако главная его опасность заключалась в том, что каждую пятницу, выпадавшую на 13-е число (кроме 1987 года), вирус уничтожал исполняемые файлы всех без исключения запускающихся на инфицированном компьютере программ, что, естественно, нарушало нормальную работу персоналок.
Примерно с этого момента различные инциденты, связанные с массовым распространением компьютерных вирусов и других вредоносных приложений, уже перестали кого-либо удивлять, и многочисленные журналисты, специализирующиеся на освещении событий в области «высоких технологий», попросту не обращали на них чересчур пристального внимания. За исключением одного случая, наделавшего по-настоящему много шума.
Роберт Моррис, старший сын Боба Морриса, одного из ведущих экспертов отдела Агентства Национальной Безопасности США по расследованию компьютерных преступлений, рос тихим и скромным мальчиком. Его единственной страстью были компьютеры. Уже в четырнадцатилетнем возрасте он переписал популярную у подростков компьютерную игру Te Four Corners, добавив в нее множество новых функциональных возможностей. В 16 лет он стал настоящим экспертом по системе безопасности UNIX, обнаружив в «классическом» берклиевском коде этой платформы множество ошибок, которые не замедлил исправить. Однако он и сам не брезговал пользоваться обнаруженными «дырами» в защите, время от времени подключаясь к удаленным электронным сетям в поисках интересующей его информации. Это увлечение привело к тому, что вскоре в компьютерном журнале Smitsonian появился материал, в котором Роберта называли одним из наиболее известных молодых хакеров в Америке. Именно Роберт Моррис является автором и разработчиком одной из наиболее известных реализаций протокола передачи данных UUCP – Unix-To-Unix CoPy. Обучаясь на четвертом курсе Гарвардского университета, Роберт уже читал лекции в Национальном Агенстве Безопасности США и исследовательских лабораториях военно-морского флота по безопасности операционной системы UNIX.
Полученные Робертом в ходе его самостоятельных разработок и изучения уже существующего опыта других программистов знания требовали практического применения. В качестве эксперимента Роберт решил написать программу, которая, используя обнаруженные им недоработки в созданном для UNIX протоколе FTP и программе sendmail, могла бы самостоятельно распространяться между объединенными в сеть компьютерами, но при этом умела бы эффективно «прятаться» в операционной системе и самостоятельно размножаться. Иными словами, «Червь» Морриса должен был объединять в себе все достоинства предыдущих попыток создания аналогичных программ. Поскольку эта разработка была всего лишь научным экспериментом, тестом на безопасность объединенных в сеть компьютерных систем, Роберт заложил в код «Червя» алгоритмы, сдерживающие его распространение. Никаких модулей, разрушающих файловую систему атакованных компьютеров, также задумано не было.
2 ноября 1988 года в 18.30 Роберт Моррис подключился к компьютерам лаборатории искусственного интеллекта MIT и запустил свою программу на исполнение. Когда спустя полчаса он снова попытался подключиться к сети, чтобы проверить ход эксперимента, удаленный компьютер не ответил: благодаря закравшейся в исходный код ошибке «Червь» начал бесконтрольно размножаться, блокируя нормальную работу вычислительных систем, и вскоре вырвался из локальной сети MIT на просторы ARPANET’a – глобальной компьютерной сети, являвшейся на тот момент предшественницей современного Интернета.
Программа Морриса-младшего стала настоящим бедствием для США: в течение нескольких дней функционирование ARPANET было парализовано практически полностью. По различным подсчетам, эпидемия поразила порядка 6000 компьютеров – около 10 % всех работавших тогда в сети вычислительных машин, нанесенный «Червем» ущерб оценивался от скромной цифры в 150 000 до значительной суммы в 75 млн долларов США. Вскоре к делу подключилось ФБР, однако расследование длилось недолго: Моррис сам признался в содеянном, а пресса раздула скандал до неимоверного масштаба, прежде всего благодаря профессии его отца – ведущего эксперта АНБ США по борьбе с компьютерной преступностью.
Судебное дело Роберта Морриса было одним из первых дел по обвинению в совершении компьютерного преступления в США, до этого по данной статье под суд попал лишь известный во всем мире хакер Кевин Митник. Морриса признали виновным и приговорили к выплате штрафа в размере 10 000 долларов и 400 часам исправительных работ. Однако слава Роберта Морриса, получившего широкую известность благодаря созданному им «Червю», до сих пор не дает покоя сотням и тысячам вирусописателей на разных континентах. С тех пор многим амбициозным молодым людям, разбирающимся в программировании, рано или поздно приходит в голову идея попробовать свои силы в создании программы, которая, распространяясь по Сети, могла бы дестабилизировать работу удаленных компьютеров. Именно их стремление к дешевой славе принесло пользователям множество бессонных ночей, проведенных за восстановлением разрушенных систем.
Bepul matn qismi tugad.