Основы информационных технологий для неспециалистов: что происходит внутри машин — страница 15 из 26

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

Часть текста на первой веб-странице, info. cern.ch/hypertext/WWW/TheProject.html, 1990

Наиболее заметная сторона интернета – Всемирная паутина, или, как сейчас ее называют, просто Сеть. Существует тенденция смешивать понятия «интернет» и «Сеть», которые на самом деле отличаются. Как мы увидели в главе 9, интернет – это коммуникационная инфраструктура или базовая платформа, благодаря которой миллионы компьютеров по всему миру обмениваются информацией. В свою очередь, Сеть соединяет серверы, то есть ЭВМ, предоставляющие информацию, с машинами, которые запрашивают ее. С клиентами вроде вас и меня. Сеть (WWW) использует интернет, чтобы устанавливать соединение и передавать информацию, а также обеспечивает нам интерфейс для доступа к другим службам с поддержкой интернета.

Как и многие другие великие идеи, Всемирная паутина в основе своей проста. Имеют значение только четыре аспекта (если мы предполагаем, что всё базируется на повсеместной, эффективной, открытой и в основном бесплатной сети, а это важная оговорка).

Во-первых, URL (Uniform Resource Locator, унифицированный указатель ресурса), который задает имя для источника информации. Например: http://www.amazon.com.

Во-вторых, HTTP (Hypertext Transfer Protocol, протокол обмена гипертекстовой информацией), кратко упомянутый в предыдущей главе как пример протокола более высокого уровня. HTTP-клиент делает запрос на определенный URL, а сервер возвращает запрошенную информацию.

В-третьих, HTML (Hypertext Markup Language, язык гипертекстовой разметки), язык для описания формата или представления информации, отправленной сервером. Тут тоже ничего сложного, и для владения им на базовом уровне вам нужно знать совсем немного.

И наконец, браузер в виде программы (например, Chrome, Firefox, Safari или Edge), которая запускается на вашем компьютере. Она создает запрос серверу, используя URL и HTTP, извлекает HTML, отправленный сервером, и отображает его.

Всемирная паутина зародилась в 1989 году, когда англичанин Тим Бернерс-Ли – специалист по информатике, работавший в CERN, Европейском центре ядерных исследований возле Женевы, – создал систему, призванную сделать научную литературу и результаты исследований более доступными через интернет. В его проект вошли URL-адреса, HTTP и HTML, а также клиентская программа для просмотра имеющихся материалов (исключительно текстовая). По ссылке https://info.cern.ch/hypertext/ WWW/TheProject.html можно посмотреть имитацию этой первой версии веб-сайта CERN.

Та программа для просмотра использовалась с 1990 года. Лично я видел ее в действии в октябре 1992 года во время визита в Корнелл[90]. Стыдно признаться, но тогда она не впечатлила меня, и я уж точно не предполагал, что менее чем через шесть месяцев изобретение первого графического браузера изменит мир. Вот тебе и «заглянул в будущее»…

Первый браузер под названием Mosaic разработали студенты Иллинойского университета. Их проект вышел в феврале 1993 года и быстро набрал популярность, а через год стал доступен первый коммерческий браузер Netscape Navigator, которому со старта сопутствовал успех. Хотя всплеск интереса к интернету застал Microsoft врасплох, корпорация быстро опомнилась и создала конкурента – Internet Explorer (IE), который с большим отрывом вырвался вперед по популярности.

Из-за доминирования Microsoft на рынке персональных компьютеров возникли опасения, что она создала монополию в нескольких областях, и в 1998 году Министерство юстиции США подало на компанию в суд. Разбирательство касалось и IE, поскольку утверждалось, что Microsoft злоупотребила своим доминирующим положением, чтобы вытеснить Netscape из бизнеса. Корпорация проиграла тяжбу, и ей пришлось изменить некоторые из своих деловых практик.

Сегодня самый широко используемый браузер на ноутбуках, настольных компьютерах и телефонах – Chrome. За ним со значительным отрывом идут Safari и Firefox. В 2015 году Microsoft выпустила новый браузер для Windows 10 под названием Edge, который заменил IE. Первоначально он работал на собственном коде Microsoft, но с 2019 года перешел на открытый исходный код Google Chromium. Доля рынка Edge ниже, чем у Firefox, а у IE – и того меньше.

Техническая эволюция Сети управляется (или, по крайней мере, направляется) некоммерческим предприятием под названием World Wide Web Consortium, или W3C, то есть «Консорциум Всемирной паутины» (w3.org). Основатель и нынешний директор W3C – тот самый Бернерс-Ли. Он не старался заработать на своем изобретении, а великодушно предпочел сделать его бесплатным для всех, хотя многие из тех, кто поспешил примазаться к интернету и Сети, возникшими благодаря его трудам, стали очень богатыми. В 2004 году королева Елизавета II посвятила его в рыцари.

10.1. Как работает Всемирная паутина

Давайте более внимательно посмотрим на технические компоненты и механизмы Всемирной паутины. Начнем с URL-адресов и HTTR

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

Предположим, что в ссылке написано нечто вроде «домашняя страница W3C». Если вы наведете на нее курсор, то в строке состояния в нижней части окна браузера, скорее всего, появится URL-адрес, с которым связана ссылка (например, http://w3.org), и, возможно, дополнительная информация после доменного имени.

Когда вы нажимаете на ссылку, браузер открывает TCP/IP-соединение с портом 80 в домене w3.org и отправляет HTTP-запрос на информацию из остальной части URL. Если ссылка имеет вид http://w3.org/index. html, запрос предназначен для файла index.html.

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

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

Сам URL-адрес кодирует информацию. Первая часть, http – это одна из нескольких возможных записей, сообщающих, какой именно протокол использовать. HTTP – наиболее распространенный, но вам могут встретиться и другие: file для получения информации с локального компьютера (а не из интернета) и популярный сейчас https для безопасной (зашифрованной) версии HTTP, о которой мы вскоре поговорим.

После:// следует доменное имя, определяющее сервер. Далее могут стоять косая черта (/) и строка символов. Она в точности передается на сервер, и тот волен поступить с ней как пожелает. В простейшем случае, когда нет даже косой черты, сервер возвращает страницу по умолчанию – например, index.html. Если задано имя файла, то его содержимое отправляется как есть. Знак вопроса после начальной части имени файла обычно означает, что сервер должен запустить программу, название которой прописывается перед? и отправить в нее остаток текста. По сути, это один из способов обработки информации, задаваемой в формах на веб-странице. Вот, например, поиск в Bing:


https://www.bing.com/search?q=funny+cat+pictures


Для проверки напечатайте это прямо в адресной строке браузера.

Любой текст после доменного имени записывается знаками из ограниченного набора, куда не входят пробелы и большинство не буквенно-цифровых символов, поэтому их требуется кодировать. Знак плюс (+) соответствует пробелу, а другие символы задаются с помощью % и двух шестнадцатеричных цифр. Например, фрагмент URL-адреса 5%2710%22%2D6%273%22 означает 5’10"-6’3", где шестнадцатеричное число 27 – символ одинарной кавычки, шестнадцатеричное число 22 соответствует двойной кавычке, а шестнадцатеричное 2D – знаку минус («короткому тире»).

10.2. HTML

Ответ с сервера обычно приходит в формате HTML, который сочетает в себе информацию о содержимом и форматировании. HTML настолько прост, что вы без труда создадите веб-страницу в вашем любимом текстовом редакторе. (Если вы работаете в чем-то вроде Microsoft Word, то нужно сохранить веб-страницу в виде

обычного текста, а не в формате по умолчанию, а после названия указать расширение html.) Информация о форматировании предоставляется тегами — они описывают содержимое и отмечают начало и часто конец разных областей на странице.

На рисунке 10.1 показан пример HTML для минималистичной веб-страницы. На рис. 10.2 вы можете увидеть, как его отобразит браузер.


Рис. 10.1. HTML для простой веб-страницы


Рис. 10.2. Отображение HTML-кода с рис. 10.1 в браузере


Файл изображения здесь по умолчанию пересылается из того же места, что и первоначальный файл, но его можно получить и из любой точки в интернете. Если файл, указанный в теге изображения , недоступен, браузер отобразит на его месте какой-нибудь условный рисунок, обозначающий сбой. Атрибут alt= указывает, какой текст появится, если само изображение вывести невозможно. Это небольшой пример того, как создать веб-страницу, удобную для людей с расстройствами зрения или слуха95.

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

Большинство HTML-документов также содержат информацию на другом языке, называемом CSS (Cascading Style Sheets – каскадные таблицы стилей). С помощью CSS можно в одном месте определить свойства стиля – например, формат заголовков, – а затем применить их ко всем вхождениям. В частности, если нам хочется, чтобы все заголовки h2 и h3 отображались красным курсивом, зададим такую CSS:


h2, h3 { color: red; font-style: italic; }


И HTML, и CSS – языки, но не языки программирования. У них есть формальные грамматики и семантики, но нет циклов и условий, поэтому вы не сумеете записывать на них алгоритмы.

Цель этого раздела – показать вам ровно столько HTML, чтобы пролить свет на принципы работы вебстраниц. Для создания безупречных страниц, которые вы видели на коммерческих сайтах, требуется немалое мастерство, однако основы настолько просты, что всего через несколько минут обучения вам удастся изготовить собственный аналог, пусть и очень скромный. При создании большинства текстовых веб-страниц вам понадобится всего десяток тегов, и еще стольких же хватит, чтобы обеспечить практически всё, что важно для обычного пользователя. Подготовить страницы вручную легко: в текстовых редакторах имеется функция «создать HTML», а также существуют программы, специально предназначенные для разработки профессиональных веб-страниц. Такие инструменты понадобятся вам, только если вы решите серьезно заняться веб-дизайном, но в любом случае полезно разобраться, как здесь всё устроено изнутри.

В первом своем воплощении HTML обрабатывал только обычный текст для отображения браузером. Однако прошло совсем немного времени, и браузеры стали выводить изображения: простые иллюстрации в формате GIF, такие как логотипы и смайлики, и картинки в JPEG. На веб-страницах появились формы для заполнения, кнопки для нажатия и новые окна, которые либо всплывали над текущим, либо заменяли его. Вскоре добавились звуки, анимация и видеоклипы (как правило, сначала требовалось, чтобы достаточно выросли пропускная способность и вычислительная мощность, иначе их не получилось бы отображать и быстро скачивать).

Далее рассмотрим простой механизм с неочевидным названием «стандарт CGI» (Common Gateway Interface – общий шлюзовый интерфейс). Он передает информацию от клиента (вашего браузера) к серверу – например, логин и пароль, поисковый запрос или сведения о том, что вы выбрали с помощью радиокнопок и выпадающих меню. Этот метод задается тегом

в HTML. В раздел
вы можете поместить общие элементы пользовательского интерфейса: области ввода текста, кнопки, поля для флажков и так далее. Если вы добавили кнопку «Отправить», то после ее нажатия на сервер уйдут данные внутри формы, а также запрос на запуск определенной программы, использующей их.

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

10.3. Куки-файлы

Протокол HTTP не имеет состояния. Это чуть жаргонное определение означает, что HTTP-серверу не требуется ничего запоминать о клиентских запросах: он может избавиться от всех записей о каждом обмене после того, как вернет запрашиваемую страницу.

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

В 1994 году компания Netscape изобрела решение, которое назвала куки-файлами (от англ, cookie – печенье). Термин звучит своеобразно, однако он уже давно устоялся среди разработчиков. Так обозначается небольшой фрагмент информации, передаваемый между программами. Отправляя веб-страницу, сервер может прикреплять дополнительные фрагменты текста (до 4000 байт каждый), которые браузер должен сохранить. Каждый такой фрагмент называется куки-файлом. Когда браузер делает следующий запрос для этого же сервера, он отправляет обратно те же куки-файлы. По сути, сервер держит сведения о предыдущем посещении в памяти на стороне клиента. Часто сервер назначает клиенту уникальный идентификатор и включает его в куки-файлы (отслеживает). В базах данных на сервере хранятся фиксированные данные, связанные с этим номером, – например, статус логина, содержимое корзины покупок, предпочтения пользователя и т. д. Всякий раз, когда клиент в дальнейшем заходит на сайт, сервер определяет с помощью куки-файлов, что этот посетитель уже знаком ему, и настраивает или восстанавливает сведения.

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

Каждый куки-файл имеет имя, и на одном сервере после любого посещения может сохраняться несколько таких файлов. «Печеньки» – это не программа, у них нет активного содержимого. Куки-файлы совершенно пассивны – это просто строки символов, которые запасают и впоследствии отправляют обратно. На сервер возвращается только то, что ранее создавалось на нем самом. Также «печеньки» высылаются только в тот домен, где их сформировали. У них есть срок годности, по истечении которого браузер их сотрет. Нет никаких требований к тому, чтобы браузер принимал или возвращал куки-файлы.

Увидеть их на вашем компьютере довольно просто – или в самом браузере, или через другие инструменты. Например, недавнее посещение Amazon обернулось для меня полудюжиной «печенек». На рис. 10.3 они показаны через Cookie Quick Manager, расширение Firefox. Обратите внимание: похоже, Amazon обнаружил, что я использую блокировщик рекламы (adblk_yes).


Рис. 10.3. Куки-файлы с сайта Amazon


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

10.4. Активный контент на веб-страницах

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

Ранние версии Netscape Navigator позволяли запускать в браузере программы на языке Java, сравнительно новом в те времена. Его разработали для установки в среде со скромными вычислительными способностями (например, в бытовой технике), поэтому технически ничто не мешало внедрить интерпретатор Java в браузер. Тогда стало понятно, что в браузере возможно производить существенные вычисления, а значит, он теоретически способен заменить обычные программы – например, текстовый редактор, электронные таблицы и даже саму операционную систему. Эта идея настолько встревожила Microsoft, что корпорация предприняла ряд действий, пытаясь подорвать использование Java. В 1997 году компания Sun Microsystems, создатель Java, обратилась по этой причине в суд. Тяжбу урегулировали несколько лет спустя, когда Microsoft выплатила истцу более миллиарда долларов.

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

В 1995 году Netscape создала новый язык специально для использования в своем браузере – JavaScript (JS). Несмотря на такое название, выбранное из маркетинговых соображений, он никак не связан с Java (не считая того, что они оба внешне похожи на язык программирования С, как мы отметили в главе 5). Оба применяют реализацию виртуальной машины, но со значительными техническими различиями. Исходный код (ИК) Java компилируется там же, где и создается, а для интерпретации в браузер отправляется результирующий объектный код. Вы не увидите, как выглядит первоначальный ИК Java. Напротив, исходный код JS отправляется в браузер и компилируется там. Получатель может просматривать выполняемый ИК, а также изучать его, изменять и запускать.

Сегодня почти все веб-страницы включают в себя код JavaScript для создания графических эффектов и всплывающих окон (полезных или раздражающих), проверки информации в формах и так далее. Теперь язык не так активно используется для рекламных «поп-апов», поскольку во всех браузерах уже есть блокировщики, но его повсеместно задействуют для хитроумного отслеживания и мониторинга. JS стал настолько распространенным, что без него сложно что-либо делать в Сети, хотя такие расширения браузера, как NoScript и Ghostery, позволяют нам частично его контролировать. Парадоксально, но и они сами написаны на JavaScript.

В целом этот язык приносит больше пользы, чем вреда, хотя порой мое мнение склоняется в пользу второго варианта, особенно если учесть, как часто JavaScript применяют для отслеживания (о чем мы поговорим в главе 11). Обычно я полностью отключаю его с помощью NoScript, но затем приходится выборочно восстанавливать JS для тех сайтов, которые мне важны.

Также браузер обрабатывает другие языки и содержимое как с помощью своего кода, так и плагинами вроде Apple QuickTime и Adobe Flash. Как правило, это написанные третьими лицами программы, которые по необходимости динамически загружаются в ваш браузер. Если вы посетите страницу с содержимым в формате, который еще не поддерживается им, то вам, возможно, предложат «подключить плагин». Это означает, что вы скачаете новую программу, которая будет работать на вашем компьютере в тесной связи с браузером.

Что может делать плагин? Фактически всё что захочет, поэтому вы, в общем, вынуждены или доверять поставщику, или обходиться без контента. Плагин – это компилированный код, который работает как часть браузера, используя его API, и, по сути, становится его частью при запуске. Для видео и анимации широко применялся Flash, а для PDF-документов популярен Adobe Reader. Если вкратце, то ставьте плагин в тех случаях, когда вы доверяете источнику. Опасностей будет не больше, чем с обычным кодом, в котором наверняка есть ошибки и средства слежения за вами. Однако Flash имеет долгую историю серьезных уязвимостей в системе безопасности, и в настоящее время его не рекомендуется применять. HTML5 создает для браузера возможности, которые снижают его потребность в плагинах, особенно для видео и графики, но, похоже, сторонние программы еще долго будут существовать.

Как мы увидели в главе 6, браузеры подобны специализированным ОС, которые способны расширяться и обрабатывать все более разнообразный и сложный контент, «чтобы привносить новизну в просмотр веб-страниц». Хорошая новость: с помощью какой-нибудь программы, запущенной в браузере, можно сделать много всего, и взаимодействие будет быстрее, если вычисления выполняются локально. Плохая новость: теперь ваш браузер выполняет программы, которые написал кто-то посторонний, и вы наверняка не до конца понимаете их свойства. Запуская на вашем компьютере код из неизвестных источников, вы сталкиваетесь с реальными рисками. «Я всегда полагаюсь на доброту незнакомцев» – не самая разумная политика безопасности. В статье Microsoft, озаглавленной «10 непреложных законов безопасности», первый из них гласит: «Если злоумышленник способен убедить вас запустить его программу на вашем компьютере, этот компьютер уже не ваш»96. Будьте осмотрительны, разрешая JavaScript и плагины.

10.5. Активный контент в других местах

Активный контент может появляться не только на веб-страницах. Давайте взглянем на электронную почту. Когда вам приходит письмо, оно отображается программой чтения писем. Очевидно, она должна выводить текст, но вопрос в том, насколько далеко она зайдет, интерпретируя другие части контента (если таковые имеются), поскольку это серьезно влияет на конфиденциальность и безопасность.

Что насчет HTML в почтовых сообщениях? Интерпретация тегов размера и шрифта безопасна: нет никакого риска в том, что часть сообщения отобразится большими красными буквами, хотя, возможно, получателя это не обрадует. Должна ли программа чтения почты автоматически выводить изображения? Так упростится их просмотр, но возникнет вероятность получить еще больше куки-файлов, если контент поступает из других источников. Мы можем заблокировать «печеньки» почты, но ничто не помешает отправителю добавить изображение в виде прозрачного пикселя размером 1x1, в URL-адресе которого закодировано что-то о сообщении или получателе. (Эти невидимые картинки иногда называют веб-маяками, и они часто встречаются на веб-страницах.) Когда ваше средство чтения писем с поддержкой HTML запрашивает изображение, то обслуживающий его сайт узнаёт, что вы читаете данное сообщение в какой-то определенный момент. Так появляется простой способ отслеживать, когда вы проверяете почту, что потенциально раскрывает информацию о вас, которую вы предпочли бы сохранить в тайне.

Что произойдет, если почтовое сообщение содержит JavaScript? А если оно включает в себя документ Word, Excel или PowerPoint? Должно ли средство чтения писем автоматически запускать данные программы? Нужно ли «упрощать вам жизнь», чтобы это происходило по нажатию на ту или иную область в письме? И, раз уж на то пошло, стоит ли ему позволять вам кликать прямо на ссылки в сообщениях? У мошенников это излюбленный метод спровоцировать жертву на какую-нибудь глупость. Известно, что PDF-документы порой содержат JavaScript (я удивился, впервые увидев это). Должен ли внедренный в них код автоматически выполняться приложением для просмотра PDF, которое по умолчанию вызывается программой чтения почты?

Прикреплять к письму документы, электронные таблицы и презентации удобно. Это стандартная процедура работы в большинстве организаций. Но, как мы вскоре увидим, такие документы могут переносить вирусы, которые распространяются в том числе потому, что люди бездумно нажимают на вложения.

Еще хуже то, что почтовые сообщения включают исполняемые файлы, такие как файлы. ехе в Windows или их эквиваленты. Кликнув на какой-нибудь из них, мы запускаем программу, которая с большой вероятностью повредит вашу систему. Злоумышленники пускают в ход разнообразные уловки, чтобы побудить вас запускать такие программы. Однажды я получил письмо, в котором утверждалось, что оно содержит фотографию российской теннисистки Анны Курниковой, и предлагалось щелкнуть на него. Имя файла выглядело как kournikova. jpg.vbs, но расширение. vbs не показывалось (неудачная особенность Windows), иначе сразу стало бы ясно, что это не картинка, а программа на Visual Basic. К счастью, я использовал устаревшую почтовую программу в системе Unix (только текстовую, без опции нажатия на изображение), поэтому я сохранил «фотографию» в файл для дальнейшего изучения.

10.6. Вирусы, черви и троянские кони

Та «фотография Анны Курниковой» оказалась вирусом.

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

Потенциал таких программ известен уже давно. Первым примером, на который обратили внимание вечерние новости, стал «интернет-червь», запущенный Робертом Т. Моррисом в ноябре 1988 года, задолго до начала так называемой современной эпохи интернета. Он использовал два разных механизма, чтобы копировать себя между системами. Червь полагался на ошибки широко распространенных программ, а также выполнял «словарные атаки», то есть перебирал широко используемые слова, чтобы найти верный пароль и залогиниться.

Моррис, аспирант по направлению информатики в Корнелле, не имел дурных намерений: он хотел провести эксперимент по измерению величины интернета. К сожалению, из-за ошибки программирования червь распространялся гораздо быстрее, чем ожидал Роберт. В результате многие машины заражались по несколько раз, не справлялись с объемом трафика, и их приходилось отключать от интернета. В соответствии с новым на тот момент законом, Актом о компьютерном мошенничестве и злоупотреблении[91], Морриса признали виновным в уголовном преступлении. Его приговорили к штрафу и общественным работам.

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

Когда в 1991 году в программах Microsoft Office, особенно Word, появился Visual Basic, вирусам стало намного легче распространяться. В большинство версий Word включен интерпретатор VB, и документы текстового редактора (файлы. doc) могут, среди прочего, содержать программы VB, а также файлы Excel и PowerPoint. Нет ничего сложного в том, чтобы написать программу на Visual Basic, которая будет брать на себя контроль при открытии документа, а поскольку VB обеспечивает доступ ко всей ОС Windows, то ваш код сможет делать всё что угодно. Обычная последовательность действий для вируса выглядит так: если его еще нет на компьютере, он устанавливает себя локально, а затем принимает меры, чтобы расползтись в другие системы. Вот один популярный способ распространения: когда открывается зараженный документ, вирус получает доступ к списку контактов текущей жертвы и отправляет на каждый адрес электронной почты свою копию в каком-либо безобидном или привлекательном сообщении. (Именно этот метод использовал «вирус Анны Курниковой».) Если получатель открывает документ, вирус устанавливается в новую систему и процесс повторяется.

В середине-конце 1990-х годов существовало много таких VB-вирусов. Поскольку в то время Word, согласно настройкам по умолчанию, бездумно запускал программы Visual Basic, не запрашивая разрешения, вредоносные файлы быстро распространялись. Крупным корпорациям приходилось отключать все свои компьютеры и чистить каждый из них, чтобы избавиться от заражения. Вирусы VB существуют до сих пор, но их воздействие значительно уменьшилось, когда в Word и подобных ему программах просто изменили стандартные настройки. Кроме того, большинство почтовых систем теперь удаляют программы Visual Basic и другой подозрительный контент из входящих писем до того, как они попадут к пользователю.

VB-вирусы настолько просты в создании, что их могут написать даже неопытные программисты – «хакеры-дилетанты»[92]. А вот создать рабочий вирус или червя так, чтобы не попасться самому, уже сложнее. В конце 2010 года в ряде компьютеров для управления технологическими процессами обнаружили хитроумного червя под названием Stuxnet. Его главной целью стало иранское оборудование для обогащения урана. Действовал он исподтишка: вызывал колебания скорости вращения в двигателях центрифуг, что приводило к повреждению или даже разрушению, и причем выглядело это почти как обычный износ. Одновременно вирус сообщал системе мониторинга, что все в порядке, поэтому проблему не замечали. Никто не взял на себя ответственность за действия Stuxnet, хотя широко распространено мнение, что в его разработке для кибервойны участвовали Израиль и США97.

Троянский конь (в данном контексте часто сокращается до «троян») – это программа, которая выдает себя за нечто практичное или неопасное, но на самом деле может нанести ущерб. Жертву побуждают скачать или установить троян, потому что он выглядит как полезное приложение. Вот типичный пример: вам предлагают выполнить анализ безопасности системы, но на самом деле инсталлируют вредоносное ПО.

Большинство троянских коней приходит по электронной почте. Сообщение на рис. 10.4 (слегка отредактированное) содержит вложение Word, которое, если неосторожно открыть его в Windows, устанавливает вредоносную программу, известную как Dridex. Разумеется, от такой атаки я уберегся без труда, потому что не знал отправителя и никогда не слышал об этой компании, а в адресе ничто не указывало, что этот человек там работает. Впрочем, даже если бы я проявил беспечность, мне бы ничего не угрожало, потому что я использую текстовую почтовую программу в Linux, тогда как подобный метод нацелен на пользователей Windows. (С тех пор я получил по меньшей мере два десятка вариантов этого сообщения, все разной степени правдоподобности.)


Рис. 10.4. Попытка запустить троянского коня[93]


Как я упомянул, на первых порах вирусы распространялись на дискетах. Их современный эквивалент – USB-накопители. Возможно, вы считаете, что флешки – это пассивные устройства, поскольку у них есть только память. Однако некоторые системы, в частности Windows, предоставляют службу «автозапуска», которая автоматически запускает программу с диска при подключении CD, DVD или флеш-накопителя. Если эта функция включена, то вредоносное ПО может заработать и причинить вред, а вы не увидите предупреждений и не сможете вмешаться. Такой способ заражения нередок для корпоративных систем, хотя во многих компаниях действует строгая политика, запрещающая подключать USB-нако-пители к их компьютерам. Иногда совершенно новые диски поставлялись с уже записанными на них вирусами, что относится к «атакам через цепочку поставок». Еще более простой вариант – подбросить флешку с логотипом компании на ее парковку. Если на диске будет храниться файл с интригующим названием вроде «ЗарплатыНачальства. xls», автозапуск может даже не понадобиться.

10.7. Веб-безопасность

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

10.7.1. Атаки на клиентов

Атаки на вас — это мелкие неудобства вроде спама и отслеживания, а также более серьезные неприятности, особенно в том случае, если будет раскрыта конфиденциальная информация (например, номера кредитной карты и банковского счета или ваши пароли), вследствие чего кому-то удастся выдать себя за вас.

В следующей главе мы подробно обсудим, как вашу активность в Сети отслеживают с помощью «печенек» и других механизмов, якобы ради того, чтобы предоставлять вам более релевантную (а значит, менее раздражающую) рекламу. Размах мониторинга можно уменьшить, запретив сторонние куки-файлы (с тех веб-сайтов, куда вы не заходили), а также применив расширения браузера, которые отключают трекеры, JavaScript и так далее. Держать оборону сложно, так как многие сайты становится неудобно просматривать, если вы полностью отгородились щитами: приходится их временно опускать, а затем не забывать снова поднимать, однако я думаю, что оно того стоит. Разработчики браузеров упрощают блокировку некоторых куки-файлов и других трекеров, но вам, возможно, придется изменить настройки по умолчанию. Также это не отменяет полезность внешних блокировщиков.

Спам – нежелательные письма, в которых предлагаются схемы обогащения, советы по торговле акциями, увеличение определенных частей тела, особые медицинские средства и множество других ненужных товаров и услуг. Его объемы так возросли, что ставят под угрозу само использование электронной почты. Обычно я получаю от 50 до 100 «мусорных» сообщений в день – куда больше, чем настоящих. Спам настолько распространен, потому что его отправка практически бесплатна. Если ответит даже крошечная часть из миллионов получателей, этого хватит, чтобы выйти в плюс.

Спам-фильтры пытаются отделить зерна от плевел, анализируя текст на наличие известных шаблонов («Вкусный напиток избавит от лишнего жира» – обещание из недавней партии мусорных писем), маловероятных имен, вычурных вариантов написания (\/l/-\ GR/-\) или любимых адресов спамеров. Обычно используется комбинация критериев, поскольку одного недостаточно. Фильтрация спама – один из основных способов использовать машинное обучение на практике. Его алгоритмам предлагается тренировочный набор писем, отмеченных как «спам» или «не спам». Затем они классифицируют последующие входные данные на основании их схожести с характеристиками учебных вариантов. Мы подробнее поговорим об этом в главе 12.

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

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

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


Рис. 10.5. Фишинг из Франции


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

На рис. 10.6 изображена сокращенная расшифровка сравнительно адресной атаки, которая началась с письма, полученного мной якобы от коллеги (назовем его Дж. П). Поскольку я уже видел подобное жульничество несколькими неделями ранее, а почтовый адрес выглядел довольно коварно – что-то из серии jp.princeton.edu0 gmail. com, – я решил подыграть.

(Орфография и пунктуация сохранены.)


Дж. П.: Вы готовы выполнить небольшое задание?

Б. К.: в чем дело?

Дж. П.: В общем, у меня будет встреча, мне нужно купить подарочные карты ebay. Сообщите, сможете ли вы быстро заехать в ближайший магазин, чтобы я сообщил вам количество и номинал карт для покупки. Предъявите счет для возмещения позже.

Спасибо

Б. К.: какой магазин? ближайший – винный.

Дж. П.: Хорошо, купите пять подарочных карт ebay по 200 $ за шт. = 1000 $. Вы можете найти их в любом ближайшем ближайшем магазине Сотрите серебряное тиснение с обратной стороны, чтобы узнать пин-код. Отправьте пин-коды каждой карты после покупки. Можете прямо сейчас этим заняться?

Б. К.: Не думаю, что в винном магазине продаются такие карточки, обычно я там просто пиво покупаю. Еще предложения?

Рис. 10.6. Слабая попытка фишинга


В итоге преступники сдались – видно, поняли, что я их раскусил. Эта атака получилась отчасти убедительной, потому что ее направляли на меня лично, используя имя моего коллеги и друга. Вот почему точно нацеленные атаки подобного рода порой называют адресным фишингом. Такой вид мошенничества – своего рода социотехника. Применяя ее, мошенники притворяются человеком, находящимся в каких-либо отношениях с жертвой (например, общим знакомым или сотрудником той же компании) и побуждают сделать глупость. Чем больше вы рассказываете о своей жизни в таких местах, как Facebook[94] и LinkedIn, тем проще злоумышленникам нацелиться на вас. Социальные сети помогают социотехникам.

В июле 2020 года Twitter подвергся возмутительной атаке: в аккаунтах некоторых известных личностей, таких как Билл Гейтс, Джефф Безос, Илон Маск, Барак Обама и Джо Байден, мошенники опубликовали разные варианты твитов на тему «Отправьте нам 1000 долларов в биткоинах, и мы вышлем вам обратно 2000 долларов». Трудно поверить, что хоть кто-то может на такое купиться, особенно если речь о владельцах биткоинов, но примерно 100 человек успели это сделать, перед тем как Twitter удалил этот контент. Впоследствии компания сообщила98:

Несколько наших сотрудников стали жертвой социотехнической операции – адресной фишинговой атаки с использованием телефона, произошедшей 15 июля 2020 года. Для успешной атаки злоумышленникам потребовалось получить доступ как к нашей внутренней сети, так и к определенным учетным данным сотрудников, что, в свою очередь, обеспечило им доступ к нашим внутренним инструментам поддержки. Не все сотрудники, которые изначально подверглись нападению, имели разрешения на использование инструментов управления учетными записями, но злоумышленники использовали их учетные данные, чтобы проникнуть в наши внутренние системы и получить информацию о наших процессах. Эти сведения затем позволили им атаковать еще ряд сотрудников, уже обладавших доступом к нашим инструментам поддержки учетных записей.

Обратите внимание, что мошенники смогли продвинуться от сотрудников без нужного доступа к тем, кто обладал таковым. Произошла атака типа «расширение прав».

Удалось быстро установить, что нападением руководил 17-летний подросток из Флориды. Кроме него, обвинения предъявили еще двум молодым людям.

Адресный фишинг или социотехнические приемы, при которых к вам якобы обращаются ваш генеральный директор или другие руководители высокого ранга, похоже, работают наиболее эффективно. Один популярный вариант данной атаки происходит в месяцы, предшествующие подаче деклараций о доходах, когда злоумышленники просят отправить налоговую информацию по каждому работнику – например, форму W-2 в США. В ней указываются точное имя, адрес, размер зарплаты и номер социального страхования, поэтому на ее основе можно составить подложное заявление о возврате налогов. Когда сотрудники и государственные инспекторы замечают обман, преступники уже давно получили деньги и скрылись".

Шпионское ПО — это программы, которые запускаются на вашем компьютере и отправляют ваши данные на определенный адрес. Некоторые из них носят явно злонамеренный характер, но иногда это просто коммерческая слежка. Например, большинство современных ОС автоматически проверяют наличие обновлений для установленного ПО. Вообще можно утверждать, что это хорошо, поскольку такие проверки напоминают вам, что нужно обновлять программное обеспечение и тем самым устранять ошибки в системе безопасности. Но с тем же успехом это можно назвать вторжением в частную жизнь: кому какое дело, что за ПО вы используете? Если обновления выполняются принудительно, то иногда возникают проблемы – слишком часто случается, что более новые версии программ весят больше, но не обязательно работают лучше. Иногда обновления нарушают устоявшееся поведение или добавляют новые ошибки. В течение семестра я стараюсь не ставить «апдейты» критически важного ПО, так как из-за них может измениться что-нибудь нужное мне для занятий.

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

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

Опасная программа может зашифровать файлы на вашем компьютере, и вы не сумеете пользоваться им, пока не заплатите за пароль для декодирования. Вирусы, применяемые в таких атаках, называются программами-вымогателями. В июне 2020 года подобному нападению подверглась медицинская школа Калифорнийского университета в Сан-Франциско (UCSF). В заявлении университета говорится100:

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

Вскоре после этого я получил письмо от своей научной организации с сообщением об атаке вымогателей, которая вполне могла затронуть данные обо мне. Учреждение пользовалось тогда услугами (например, облачными вычислениями) компании Blackband. Вот часть письма:

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

Мы продолжаем взаимодействовать с Blackband, чтобы определить, по какой причине нас уведомили не сразу после обнаружения взлома, а с задержкой…

…которая составила около двух месяцев – в этот период времени Blackband выплачивала выкуп. Учреждение, о котором идет речь, задержалось еще на две недели, прежде чем проинформировать меня и, предположительно, других сотрудников. Меня также смущают «заверения» плохих парней в том, что они уничтожили данные. Не напоминает ли это вам обещания шантажистов сжечь компрометирующие фотографии?

Более примитивная версия программы-вымогателя всего лишь выводит жуткий экран с сообщением о том, что ваш компьютер заражен вирусом, но вы можете избавиться от него: ничего не трогайте, просто позвоните по указанному бесплатному номеру, и за небольшую плату вас спасут. Это своего рода фиктивный антивирус[95]. Один мой родственник попался на такое мошенничество и заплатил несколько сотен долларов. К счастью, эмитент его кредитной карты отменил переводы, но так везет не всем. Если же вы заплатите биткоинами, а злоумышленники нарушат уговор, то вам вообще негде будет искать помощи.

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

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

10.7.2. Атаки на серверы

Атаки на серверы — не совсем ваша личная проблема, поскольку вы не способны их как-то предотвратить. Но это не означает, что вы не можете стать их жертвой.

Серверы следует тщательно программировать и настраивать, чтобы никакие клиентские запросы, даже самые хитроумные, не сумели получить закрытую информацию или разрешение на неавторизированный доступ. Но на серверах работают сложные большие программы, поэтому в них встречаются ошибки в коде и конфигурации, а злоумышленники умеют пользоваться и тем и другим. Как правило, серверы взаимодействуют с базами данных (БД), доступ к которым осуществляется через стандартный интерфейс SQL (structured query language – язык структурированных запросов). Одна из распространенных атак – внедрение SQL-кода. Если доступ не ограничен как положено, умный преступник может отправить запросы, которые раскроют структуру базы данных, извлекут закрытую информацию и даже запустят на сервере код злоумышленника, способный взять всю систему под контроль. Вполне понятно, как проводятся такие атаки и как от них защищаться, но они по-прежнему случаются удивительно часто.

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

Такие взломы сейчас происходят почти ежедневно, и иногда в больших масштабах. В марте 2017 года преступники скопировали терабайты личной информации о 150 миллионах человек с серверов Equifax – одного из трех крупнейших бюро кредитных историй в США. Подобные агентства хранят в своих БД громадный объем конфиденциальных сведений, так что серьезная проблема явно назревала. Компания Equifax пренебрегала процедурами безопасности – не поддерживала свои системы в актуальном состоянии для противостояния известным уязвимостям, – а после взлома тоже повела себя не очень достойно. Компания публично уведомила об утечке только в сентябре, причем до этого некоторые высокопоставленные руководители успели продать свои акции101.

В декабре 2019 года американская сеть круглосуточных магазинов Wawa объявила, что у нее украли информацию о большом количестве кредитных карт (около 30 миллионов) с помощью вредоносного ПО, которое проникло в кассовые терминалы102. Данные карт продавались в «теневом интернете» (даркнете).

В феврале 2020 года взломали компанию Clearview AI, предоставляющую ПО для распознавания лиц (в первую очередь правоохранительным органам, однако не исключительно им), и произошла утечка ее клиентской базы данных. Компания объявила, что больше ничего не похитили – ни снимки, ни записи о поисках личностей, – однако в репортажах тогда звучали намеки, что фотографии все-таки украли103.

Также в феврале 2020 года сеть отелей Marriott International объявила, что преступники получили доступ к сведениям о более чем 5 миллионах постояльцев, в том числе к их контактным данным и другой персональной информации – например, дате рождения104.

Серверы также могут стать объектом атаки типа «отказ в обслуживании», когда злоумышленники направляют огромный объем трафика на сайт и перегружают его. Часто это организуется с помощью бот-сетей. Взломанным машинам приказывают посылать запросы на определенные сайты в назначенное время, из-за чего создается координированный поток трафика. Атака, которая одновременно исходит из многих источников, называется «распределенный отказ в обслуживании» (DDoS). Например, в феврале 2020 года облачный сервис AWS от Amazon успешно справился с DDoS-атакой, которая, по словам сотрудников, оказалась самой крупной в истории: на пике интенсивность трафика достигала 2,3 Тбит/с105.

Большинство атак типа «отказ в обслуживании» имеют большой размах и нацелены на крупные серверы, но возможны и более мелкие нападения. Например, мой работодатель недавно заменил удобную систему планирования встреч, созданную внутри нашей организации, на коммерческую, которой давали доступ к онлайн-календа-рю пользователя, чтобы она искала и заполняла свободные временные интервалы. Компания называет это «безболезненным планированием». Перейдите по ссылке в Сеть для идентификации пользователя, нажмите на открытый слот, впишите адрес электронной почты для подтверждения – и все готово. Однако там ничего не проверяется, поэтому, если я угадаю ваш логин, то смогу анонимно заполнить все доступные слоты. Адрес электронной почты тоже допустимо вводить какой угодно, поэтому программа-календарь рискует стать средством отправки раздражающих анонимных сообщений любому человеку. Я бы сильно разочаровался, если бы какая-нибудь группа моих студентов создала проект с такой брешью в безопасности и защите конфиденциальности. От дорогого коммерческого продукта явно стоит ждать большего.

10.7.3. Атаки на передаваемую информацию

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

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

Чтобы не позволить мошенникам прослушивать содержимое потока данных или выдавать себя за одну из сторон, применяется протокол HTTPS – подвид HTTP, который шифрует трафик TCP/IP в обоих направлениях. HTTPS используется все обширнее, но пока еще не проник везде.

Возможен еще один тип атак – «через (незаконного) посредника»[96], когда злоумышленник перехватывает сообщения, изменяет их и отправляет так, словно они пришли непосредственно из их первоначального источника. (Примером может служить история графа Монте-Кристо, упомянутая в главе 8.) Нападения подобного рода тоже возможно предотвратить с помощью правильного шифрования. Брандмауэры на уровне страны[97] – это, по сути, еще один вариант атак через посредника, при которых замедляется трафик или изменяются результаты поиска.

Виртуальная частная сеть (VPN, Virtual Private Network) создает зашифрованный путь между двумя компьютерами и обеспечивает общую безопасность потока информации в обоих направлениях. Корпорации часто используют VPN, чтобы позволить сотрудникам работать из дома или в странах, где безопасности коммуникационных сетей нельзя доверять. Частные лица могут применять VPN, чтобы уменьшить опасность подключения в кофейнях и других местах с открытым Wi-Fi. Только обращайте внимание, кто управляет VPN и насколько они готовы воспротивиться давлению правительства, если оно потребует раскрыть информацию об их пользователях.

И вообще будьте бдительны насчет элементарной честности и компетентности поставщиков услуги. Так, в июле 2020 года ряд бесплатных VPN-сервисов, которые утверждали, что не записывают подключения, подверглись взлому. В результате утекло больше терабайта регистрационной информации о пользователях, а также дат, времени, IP-адресов и даже незашифрованных паролей106.

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

через посредника. Facebook[98] Messenger – это еще одно приложение для обмена сообщениями, но на данный момент оно не защищено сквозным шифрованием, хотя такая опция существует. Пока такой защиты нет, оно более уязвимо для атак.

Signal – это ПО с открытым исходным кодом, Whats-Арр – продукт Facebook[98], a iMessage принадлежит Apple. Эдвард Сноуден одобрил Signal, назвав ее наиболее предпочтительной системой для безопасного общения, и сам применяет ее.

Система для видеоконференций Zoom, которой сейчас пользуются многие из нас, утверждает, что обеспечивает сквозное шифрование совещаний с 256-битным AES[99]. Но в 2020 году Федеральная торговая комиссия США (FTC) подала жалобу, в которой утверждалось, что на самом деле Zoom хранил ключи шифрования, применял только AES-128 и незаметно устанавливал ПО, которое обходило механизм безопасности браузера Safari107.

10.8. Как защитить себя

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

Я разделяю средства защиты на три категории: те, что очень важны, те, что очень благоразумны, и те, что зависят от уровня вашей мнительности. (Чтобы вы знали, я довольно мнительный, и большинство людей не заходят так далеко.)


Важные.

Тщательно придумывайте пароли, чтобы никто не смог их угадать или быстро раскрыть, задействовав перебор вариантов с помощью компьютера. Вам нужен более сильный пароль, чем одно слово, дата вашего рождения, кличка домашнего питомца, имя родственника или близкого человека. Определенно не выбирайте вариант «пароль», который встречается удивительно часто. Фраза из нескольких слов, в которую входят заглавные и строчные буквы, цифры и специальные символы – вот достойный компромисс между безопасностью и простотой в применении109. Существует несколько сайтов, которые оценивают силу предлагаемого пароля. Есть общепринятое мнение, что время от времени пароли следует менять, однако я в этом не уверен. Частая смена может оказаться контрпродуктивной, особенно если вы вынуждены заниматься ею в неподходящее время. Тогда вас потянет внести явно шаблонные поправки – например, увеличить последние числа.

Никогда не используйте одинаковые пароли для важных сайтов (например, банка и почты). Это допустимо только для малоценных ресурсов вроде агрегаторов новостей или социальных сетей. Никогда не применяйте на работе те же пароли, что и для личных учетных записей. Не заходите на разные сайты через какой-то один вроде Facebook[100] или Google: если что-то пойдет не так, возникнет единая точка отказа. Кроме того, так вы просто выдаете сведения о себе. Если вы хотите проверить, не взломан ли уже какой-либо из паролей, зайдите на haveibeenpwned. com, где собирают информацию такого рода.

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

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

Как ни странно, саму SecurlD, компанию-производитель этих популярных устройств для двухфакторной авторизации (рис. 10.7), взломали в марте 2011 года. Преступники украли конфиденциальные данные, что сделало некоторые устройства SecurlD уязвимыми.


Рис. 10.7. Двухфакторное устройство RSA SecurlD


Не открывайте вложения от незнакомых отправителей, как и вложения, неожиданно присланные друзьями или коллегами. Запретите макросы Visual Basic в программе Microsoft Office. Если вас просят что-то принять, нажать или установить – сначала подумайте! Не скачивайте программы сомнительного происхождения. Будьте бдительны, когда загружаете и инсталлируете любое ПО (включая защитные расширения, упомянутые в этом разделе), если только оно не получено из доверенного источника. Все это верно не только для вашего компьютера, но и для вашего смартфона!

Не делайте ничего важного в местах, где есть открытый Wi-Fi, – например, не совершайте банковских операций в кофейнях. Убедитесь, что соединения используют HTTPS, но не забывайте, что HTTPS зашифровывает только содержимое. Каждый, кто подключен к пути передачи данных, сможет определить и отправителя, и получателя, а такие метаданные весьма полезны для идентификации людей.

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

Регулярно создавайте резервные копии ваших данных в безопасном месте. Это можно делать автоматически с помощью такого сервиса, как Time Machine от Apple, или вручную, если вы усердны. Систематически проводить резервное копирование в любом случае весьма разумно: тогда, если диск выйдет из строя, или вредоносное ПО сотрет на нем информацию, или зашифрует его с целью получения выкупа, это не станет для вас тяжким ударом. Если вы пользуетесь облачными сервисами для хранения важных документов и фотографий, то делайте резервное копирование локально – на случай, если вас заблокируют или поставщик услуг закроется.


Благоразумные.

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

Для борьбы с рекламой, отслеживанием и полагающимся на них вредоносным ПО применяйте такие расширения, как Adblock Plus, uBlock Origin и Privacy Badger. Ghostery поможет вам почти полностью избавиться от отслеживания через JavaScript. Принцип работы Adblock и аналогичных расширений заключается в том, что они фильтруют HTTP-запросы к URL-адресам в длинных списках рекламных сайтов110. Хотя рекламодатели утверждают, что пользователи блокировщиков рекламы каким-то образом обманывают их или воруют у них, объявления в Сети по-прежнему остаются одним из главных источников распространения опасных программ, поэтому правильно их просто отключить, чтобы избежать заражения. К тому же вы обнаружите, что ваш браузер теперь работает быстрее.

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

Вырубите службы определения местоположения на смартфоне, если вам не нужны карта или навигатор. Отключите HTML и JavaScript в вашей программе чтения почты.

Отключите службы операционной системы, которые вы не используете. Например, мой Mac предлагает мне разрешить общий доступ к принтерам, файлам и устройствам, а также позволить другим компьютерам входить в систему и удаленно управлять моей машиной. Windows имеет аналогичные настройки. Я выключаю их все.

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

Задайте пароли для разблокировки телефона и ноутбука. Если есть устройство для считывания отпечатков пальцев, применяйте его.


Для мнительных.

Используйте NoScript в вашем браузере, чтобы ограничить JavaScript.

Отключите куки-файлы на всех сайтах, кроме тех, которые вы явно занесли в белый список.

Выдумывайте адреса электронной почты для временной регистрации. Когда какой-нибудь сайт не позволяет мне получить доступ к какой-либо услуге или информации и настаивает на предоставлении адреса электронной почты, я использую сервисы mailinator.com или yop-mail. com.

Выключайте смартфон, когда не пользуетесь им. Включите на нем шифрование: это автоматическая функция, доступная на Android и более новых версиях iOS. То же самое проделайте с ноутбуком.

Скачайте браузер для анонимного просмотра Сети. (Подробнее об этом в главе 13.)

Установите Signal, WhatsApp или iMessage для безопасной связи. Но учтите, что они все равно могут передавать данные вредоносным программам, если вы не проявляете осторожность.


Поскольку мобильные телефоны все чаще становятся объектом атак, для них необходимы повышенные меры предосторожности. Будьте особенно внимательны с приложениями и другим контентом, который вы скачиваете. Так, в мае 2018 года агенты правительства Саудовской Аравии взломали смартфон Джеффа Безоса (основателя Amazon) с помощью вредоносного видео, которое пришло вместе с сообщением в WhatsApp111.

Не сомневайтесь – интернет вещей (ИВ) имеет аналогичные проблемы, а принять меры предосторожности будет сложнее, поскольку у вас почти нет контроля над относящимися к нему устройствами. Брюс Шнайер в своей книге «Нажмите здесь, чтобы убить всех»112 дает отличный обзор рисков, связанных с ИВ.

10.9. Краткие выводы

Всемирная паутина еще не существовала в 1990 году, а к сегодняшнему дню превратилась в неотъемлемую часть нашей жизни. Посредством поиска, онлайн-покупок, рейтинговых систем, сайтов со сравнениями цен и отзывами о товарах она изменила облик бизнеса, особенно на потребительском уровне. Она преобразила наше поведение – в частности, то, как мы ищем друзей, людей, с которыми у нас общие интересы, и даже спутников жизни. Теперь мы по-иному изучаем мир и получаем новости из других источников. Правда, если мы узнаём о текущих событиях и составляем мнения, пользуясь целевым набором ресурсов, которые приспосабливаются под наши интересы, это не очень хорошо. Есть такой термин – «информационный пузырь» (или «пузырь фильтров»), который подчеркивает, насколько сильно Сеть влияет на формирование наших мыслей и взглядов113.

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

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

Клевета – вот еще одна область, где возникает неопределенность с юрисдикцией. В некоторых странах допустимо подавать иск о защите репутации, даже если предполагаемый автор пасквиля никогда не появлялся там, но веб-сайт с наветами (хост которого может находиться где угодно) просто доступен для просмотра в пределах этого государства.

Отдельные виды деятельности считаются легальными в одной стране и нелегальными в другой. Известные примеры – порнография, азартные игры и критика власти. Как правительство обеспечивает соблюдение правил гражданами, когда они используют интернет и Всемирную паутину для действий, которые незаконны внутри государственных границ? Какие-то государства поддерживают только ограниченное количество интернет-каналов, ведущих в страну и из нее, что позволяет им блокировать, фильтровать или замедлять нежелательный трафик. Самый известный пример – «Великий Китайский брандмауэр», но он, конечно, не единственный.

Еще один метод – требовать от людей идентифицировать себя в Сети. Кажется, что он поможет предотвратить анонимные оскорбления и домогательства, но, очевидно, это также охладит пыл активистов и инакомыслящих. Как же нам снизить объем трафика, создаваемого анонимными троллями и ботами, одновременно сохранив анонимность там, где она необходима?

Попытки таких компаний, как Facebook[101] и Google, заставить своих пользователей указывать настоящие имена, встретили сильное сопротивление по уважительным причинам. У анонимности в интернете есть много недостатков – например, ксенофобные высказывания, травля и троллинг, и это убедительные аргументы против нее. Но для людей важно иметь возможность свободно выражать себя, не опасаясь репрессий.

Мы еще не нашли правильный баланс, если он вообще существует.

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

Часть IV