Технологии

Вредоносные программы: как защитить себя

Раньше детей учили мыть руки перед едой и не доверять незнакомцам, сейчас — не скачивать сомнительные программы из интернета и не открывать спам. Цифровая гигиена в современном мире даже важнее запертой на ночь двери. Для совершения киберпреступления не нужно проникать в дом, достаточно — в смартфон. Naked Science расследует, что такое malware и как от него уберечься.

Зарождение угрозы: история компьютерных вирусов

Кроме гриппа или коронавируса, есть еще один тип вирусов, волнующий человечество: они живут в наших компьютерах. Как и биологические аналоги, компьютерные вирусы множат себя и распространяются, «заражая» объект влияния. Их воздействие может быть незначительным и раздражающим (предположим, немного подвисает компьютер или украли доступ к почтовому ящику), а может — совершенно разрушительным. Одно дело — вывести из строя частное устройство пользователя, другое — ядерную программу страны. На бытовом уровне вообще все вредоносное программное обеспечение часто называют вирусами, но с профессиональной точки зрения непосредственно вирусы — лишь малая часть современных вредоносных программ. Тем не менее именно с них началась история кибератак.

Теоретические основы для построения компьютерных вирусов были заложены еще в 40-50-х годах XX века, когда Джон фон Нейман (John von Neumann) написал работу по самовоспроизводящимся автоматам, а С. Пенроуз (L. S. Penrose) и Ф. Ж. Шталь (F. G. Stahl) описали модели структур, способных к размножению, мутациям и захвату. Их модели почти сразу реализовали в виде программного кода, который в современном понимании, правда, еще не был вредоносным. В 1950-х сотрудники Bell Labs воплотили в жизнь основную идею фон Неймана, создав игру под названием Core Wars. В ней программисты выпускали в общую область памяти «бойцов», запускали их одновременно и соревновались за контроль над компьютером.

Самые ранние задокументированные вирусы появились в начале 1970-х. Первым из них часто называют Creeper Worm — экспериментальную самовоспроизводящуюся программу, написанную Бобом Томасом (Bob Thomas) из BBN Technologies. Creeper получал доступ в сеть ARPANET (предшественник интернета) и копировал себя в удаленные системы, где показывал сообщение: «Я крипер, поймай меня, если сможешь!» Позднее Рэй Томлинсон (Ray Tomlinson) написал в ответ программу REAPER, которая тоже перемещалась по Сети и, обнаруживая CREEPER, «ловила» его, прекращая выполнение. Томлинсон тем самым разработал прообраз того, что потом назовут антивирусом.

В 1983 году Фред Коэн (Fred Cohen) ввел в научный оборот привычный нам термин «компьютерный вирус». Он определил его так: «Программа, которая может заражать другие программы, модифицируя их, чтобы включать в них, возможно, развитую версию себя». В том же году в Университете Южной Калифорнии (США) предложили проект по созданию самораспространяющейся программы. Формально именно способность к саморепродукции — главное свойство вирусов.

Распространение компьютерных атак началось примерно с 1970-х, когда произошли инциденты с компаниями National CSS, AT&T и Los Alamos National Laboratory. В случае с AT&T взломщик, например, изменил внутренние часы, отвечавшие за выставление тарифов, так что пользователи этой сети получали ночные скидки даже в дневное время. Появились первые антивирусные средства — NOD, McAfee. Безопасностью данных тогда особенно не занимались, механизмы защиты использовали самые поверхностные, поскольку и атаки были, с технической точки зрения, не слишком продвинутыми.

Вредоносные программы часто распространялись полностью в автономном режиме через дискеты, переносимые с компьютера на компьютер руками человека. К середине 1970-х все уже понимали, что при проектировании компьютерных систем стоит обращать особое внимание и на обеспечение безопасности.

Это шестнадцатеричный дамп загрузочного сектора дискеты (A:), содержащий первый в истории ПК-вирус — Brain. Программа: PC Tools Deluxe 4.22, файловый менеджер и низкоуровневый редактор / © Avinash Meetoo, Wikimedia

В 1983 году вышел фильм «Военные игры», где программа-мошенник захватывала ядерные ракетные системы. Общество восприняло подобную угрозу достаточно нервно. Палата представителей США вынуждена была провести специальные слушания по поводу взломов компьютеров. Кен Томпсон (Ken Thompson) в лекции на Премию Тьюринга впервые описал сценарий заражения системы с помощью программы, которую назвал «троянским конем». После все большего числа атак на правительственные и корпоративные компьютеры американский конгресс в 1986 году принял Закон о компьютерном мошенничестве и злоупотреблениях — взлом компьютерных систем начал считаться преступлением.

По мере развития компьютерных сетей авторы вредоносных программ постоянно совершенствовали свой код и пользовались преимуществами повсеместного распространения интернета. С 2000 по 2010 год число вредоносных программ значительно выросло как по количеству, так и по скорости их распространения. В 2016-м вирус Locky заразил несколько миллионов компьютеров в Европе со средней скоростью больше пять тысяч устройств в час. В 2018 году Thanatos стала первой программой-вымогателем, которая начала принимать платежи в биткойнах. На сегодня, по данным Anti-Phishing Workgroup, вредоносное ПО заражает как минимум треть компьютеров в мире. Cybersecurity Ventures сообщает, что к 2021-му убытки от киберпреступлений, в том числе вредоносных программ, составили шесть триллионов долларов в год.

Это сообщение вируса MacMag — Universal Peace — на экране ПК Macintosh, 1988 год / © Mike Evangelist, Wikimedia

Вредоносное ПО: что это такое и как работает

Вредоносное ПО (malware) — собирательный термин, к которому, помимо компьютерных вирусов, относят все угрозы, связанные с программным обеспечением: трояны, черви, ботнеты, программы-вымогатели и так далее. Прежде всего под вредоносным ПО обычно понимают три самых распространенных типа угроз: компьютерные вирусы (computer viruses), сетевые черви (network worms) и троянские кони (трояны, Trojan horses).

Вот как характеризует malware Евгений Жуковский, доцент Института кибербезопасности и защиты информации СПбПУ, кандидат технических наук: «С технической точки зрения вредоносное программное обеспечение по своим функциональным возможностям может ничем не отличаться от легитимного. Вредоносным делает ту или иную программу прежде всего злой умысел ее использования. Злоумышленники активно пользуются в атаках легитимными программами, реализуя их в скрытом от пользователя виде, контролируют систему жертвы.

Среди различных типов вредоносных программ наиболее распространены трояны, которые мимикрируют под легитимные приложения, имея в составе вредоносный функционал. Существенную угрозу представляют также сетевые черви программный код, осуществляющий самостоятельное распространение с одной системы на другую: например, эксплуатируя уязвимости (ошибки безопасности) в сетевых службах компьютера. Периодическое появление в публичном доступе средств эксплуатации к критическим уязвимостям часто приводит к эпидемиям заражения сетевыми червями. Нашумевший пример эпидемия шифровальщика WannaCry. Основная опасность подобных атак в том, что атакующие, создав самораспространяющиеся по Сети программы, могут дальше не контролировать их распространение. Это может приводить к катастрофическим последствиям к выводу из строя критических инфраструктур, например, объектов атомной промышленности или социальной сферы».

Наиболее громкими и частыми инцидентами последнего времени можно назвать атаки на крупные компании, реализованные путем компрометации цепочек поставок (supply chain). При такой тактике для проникновения в целевую компанию взламываются сторонние ресурсы, которыми пользуется фирма, и через них приобретается доступ к цели. В сентябре 2018 года банковские данные 380 тысяч пользователей авиакомпании British Airways, включая адреса, номера кредитных карт и коды безопасности к ним, попали в руки хакеров как раз через supply chain attack. Злоумышленники внедрили сценарии, предназначенные для кражи данных, в форму, используемую клиентами на сайте для ввода информации о себе.

Почти каждый месяц мы читаем в СМИ об утечках данных пользователей: 25 миллионов клиентов СДЭК, 31 миллион пользователей «Гемотеста», карта с номерами телефонов и заказами на «Яндекс.Еде». Вопросам безопасности многие компании и правда уделяют недостаточно внимания. Но даже если исключить проблему небрежности по отношению к инфобезе, утечки и взломы будут происходить всегда, пока присутствует человеческий фактор: он сам по себе способствует возможности компрометации той или иной системы.

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

Курьер доставки «Яндекса», Тюмень / © RG72, Wikimedia

Правила цифровой гигиены

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

  • Не нужно устанавливать программы из источников, которым он не склонен доверять;
  • Следует быть внимательным и не вестись на фишинг — так называют мошенническую рассылку, которая имитирует письма от банков, например;
  • Не открывайте подозрительные вложения;
  • По возможности обновляйте программное обеспечение и устанавливайте исправления безопасности;
  • Используйте принцип минимальных привилегий. У каждого пользователя (как и у каждой программы) должен быть доступ только к тем разрешениям, которые необходимы для выполнения базовой работы;
  • Отдавайте предпочтение обезличенным логинам и паролям. Если в качестве логина в разных социальных сетях используется имя и фамилия, это позволит злоумышленникам связать между собой разные аккаунты одного человека;
  • Там, где можно использовать многофакторную аутентификацию, лучше ею не пренебрегать. Суть этого метода в том, что для входа в систему следует не только ввести пароль, но и применить второй способ аутентификации — например, через письмо по электронной почте или через код, присланный на телефон. Вторым фактором часто выступают биометрические данные — отпечатки пальцев либо сетчатка глаза;
  • Не храните в виртуальных облачных системах сканы и копии документов;
  • Сохраняйте приватность в соцсетях. Не выкладывайте фотографии вида из окна своего дома, постарайтесь, чтобы на фотографиях не был виден адрес. Кроме того, лучше вовсе отключить геотеги на фотографиях;
  • Аккуратно пользуйтесь общественным Wi-Fi;
  • Отслеживайте список программ в автозагрузке, отключайте неиспользуемые программы.

Давайте все же подчеркнем, что полностью защититься нельзя: любая защита может быть взломана, поэтому нужно соблюдать баланс удобства и безопасности. Необходимо учитывать прежде всего наиболее критические угрозы — кражу банковских и учетных данных. В их хранении следует проявлять максимальную аккуратность.

© Ed Hardie, Unsplash

Выявление вредоносного ПО

Зараженный компьютер проявляет некоторые специфические «симптомы» вредоносного проникновения. По ним вполне можно определить угрозу. Трояны-майнеры, например, повышают вычислительную нагрузку тех процессов, которые раньше не потребляли ресурсов. Компьютер при них работает медленнее, программы открываются с явной задержкой. Появление новых программ на компьютере или запуск неизвестных процессов тоже сигнализирует об угрозе. Выявить более сложное ПО, не обладая технической квалификацией, проблематично. Чтобы заразить систему, атакующему достаточно подменить либо добавить собственную DLL-библиотеку в системе у функционирующей программы, рассчитывая, что пользователь вряд ли будет проверять все исполняемые файлы всех процессов.

Евгений Жуковский в связи с этим подчеркивает: «Атакующие могут использовать множество различных векторов атаки для проникновения в вашу систему. В первую очередь под угрозой те программы, которые непосредственно взаимодействуют с интернетом, — например, веб-браузеры и почтовые клиенты. К этой же категории критического ПО можно отнести офисные приложения, поскольку их часто используют при открытии недоверенных почтовых вложений и они могут быть скомпрометированы путем эксплуатации уязвимостей в программах. Поэтому важно своевременно обновлять программное обеспечение.

Если говорить о веб-браузерах, то есть несколько распространенных векторов атаки. Для начала: в браузерах, как и в любом ПО, бывают уязвимости, и атакующий может их использовать и получить доступ к вашим данным и системе, когда вы зайдете на сайт злоумышленника или перейдете по его ссылке. Но это не самый распространенный сценарий на данный момент, так как браузеры обычно автоматически обновляются, а ранее неизвестные уязвимости в последних версиях браузеров на вес золота среди атакующих: их вряд ли будут использовать в массовых атаках, потому что это слишком сложно и дорого для рядовой кражи данных. Более частый вариант использование социальной инженерии, то есть слабостей и нерационального поведения пользователей. Например, злоумышленнику нужно заставить жертву скачать и запустить исполняемый файл либо офисный документ с макросами. Поэтому всегда стоит внимательно относиться к тому, какие файлы вы открываете и насколько доверяете их отправителю.

Также атакующие зачастую используют уязвимости веб-сайтов. Пример распространенного типа веб-уязвимостей межсайтовый скриптинг (Cross-Site Scripting, XSS). Эта уязвимость заключается в том, что злоумышленник может выполнить свой javascript-код в контексте браузера жертвы. Вредоносный код может попытаться похитить критическую информацию пользователя, прочитав cookies из браузера либо отобразив фишинговую форму, чтобы выманить данные с помощью социальной инженерии. Вредоносный код в этом случае может быть либо внедрен в код страницы уязвимого сайта, либо присутствовать в URL-ссылке, по которой перейдет жертва. Поэтому будьте аккуратны, переходя по ссылкам, полученным из недоверенных источников».

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

В этом случае прибегают к эвристическому анализу: он основан не на сигнатурах конкретных экземпляров ВПО, а на более широких правилах опасного поведения, которое свидетельствует о вредоносном назначении программы.

Результат действия вируса Amoeba.DOS.Virus / © danooct1, Wikimedia

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

В целом человечество знает, как работают вредоносные программы, как их обнаружить и как с ними бороться, но все же часто им проигрывает. В 2010 году Stuxnet, 500-килобайтный компьютерный червь, заразил программное обеспечение как минимум 14 промышленных объектов в Иране, в числе которых был завод по обогащению урана. Ядерная программа страны оказалась отброшена на десятилетия назад: иранцы избавились от тысячи центрифуг для обогащения уранового топлива, пораженных Stuxnet.

В марте 2016-го неизвестные хакеры передали 30 тысяч электронных писем, отправленных Хиллари Клинтон и другими представителями Демократической партии США, сайту WikiLeaks. Клинтон в итоге проиграла президентские выборы. Эффект вредоносного ПО не всегда столь масштабен, но оно меняет нашу реальность. Если в 1994 году новый вирус появлялся каждый час, то в 2015-м появлялось больше 300 тысяч вредоносных образцов в день — уже не только вирусов.

Комментарии

  • Особенно актуален такой "выбор редакции" сейчас, когда практически все западное ПО стало нелицензионным. Вот только в этой длинной и умной статье пиратский софт обойден стороной. А ведь чего проще "подменить dll" при лечении программ "от жадности". Пользователь сам отключает защиту и дает админские права лишь бы нужная ему софтинка заработала.