С помощью инструментов с открытым исходным кодом исследователь интернета Лоуренс Александр (Lawrence Alexander) собрал и визуализировал данные по почти 20 500 прокремлёвским аккаунтам в Twitter, раскрыв огромный размах попыток манипулирования информацией в Рунете. В первой из двух частей своего анализа он объясняет, как он сделал это и что обнаружил.

«Эхо Рунета» ранее писало об усилиях российской «армии троллей» по наполнению социальных сетей и сайтов интернет-СМИ прокремлёвской риторикой. Twitter — не исключение, и многие пользователи заметили аккаунты в Twitter, которые публикуют одинаковые заявления во время и о последних новостях и событиях. Увеличивавшие активность во время вторжений России на Украину, эти «боты» были созданы таким образом, чтобы выглядеть как реальные пользователи Twitter, и даже имеют аватары.

Но свидетельства в этом анализе из двух частей указывают на их роль в широкой программе по дезинформации.

Алек Лун, журналист из США, пишущий о России, заметил, как через какие-то часы после убийства Бориса Немцова 27 февраля, группа аккаунтов в Twitter уже пыталась повлиять на изложение фактов:

Bots spread stories about Nemtsov's death like “Ukrainians killed him…he was stealing one of their girlfriends” pic.twitter.com/CNtNvsTPYI — Alec Luhn (@ASLuhn) February 28, 2015

Боты распространяют истории о смерти Немцова, например, «Немцова убили из ревности хохлы… (якобы увёл подругу у какого-то украинца)»

Используя программу с открытым исходным кодом NodeXL [анг], я собрал и импортировал полный список аккаунтов, публиковавших в точности эту фразу, в таблицу. Основываясь на этом списке, я также собрал и и импортировал расширенное сообщество пользователей Twitter, составленное из друзей и читателей каждого аккаунта. Это должен был быть интересный тест: если бы оскорбления Немцова были бы лишь незначительным случаем распространения слухов, они бы, вероятно, исходили лишь от нескольких десятком пользователей

Но когда программа закончила перебирать данные, был раскрыт полный масштаб сети: поразительно число в 2 900 аккаунтов. Это число, возможно, можно понять: чтобы фейковый аккаунт в Twitter вызывал доверие, ему необходимо множество читателей — что, в свою очередь, требует больше вспомогательных ботов.

Затем я воспользовался Gephi [анг], другой бесплатной программой по анализу данных, чтобы визуализировать данные в виде диаграммы сущность-связь. Разноцветные круги — называемые узлами — представляют Twitter-аккаунты, а пересекающиеся линии — рёбра — изображают связи вида читаю/читает между ними. Аккаунты сгруппированы в имеющие каждый свой цвет кластеры, основанные на модулярности, которая определяет тесно связанные между собой группы. Размер каждого узла основан на числе связей, которое аккаунт имеет с другими в сети.

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

Но этот анализ имел один ключевой вопрос: как можно быть уверенными, что эта сеть состоит в основном из ботов, а не из реальных людей?

NodeXL не просто собирает информацию о том, кто кого читает. Он также получает метаданные — находящиеся в открытом доступе детали о каждом Twitter-аккаунте и его поведении. Они показывают, что в сети из 2 900 аккаунтов 87% профилей не имеют информации о часовом поясе и 92% не добавляли ничего в «Избранное». Но в случайной выборке из 11 282 пользователей Twitter (основана на аккаунтах, публиковавших твиты со словом «and») только 51% не имел часового пояса и, что весьма показательно, только 15% не имели «избранных» записей (обе эти черты могут быть посчитаны признаками «человеческого» поведения).

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

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

Используя тот же метод, как и для анти-немцовских твитов, я собрал сети аккаунтов, основанных на использовании ключевых фраз, сообщения о которых нашёёл. Так открылись большие сообщества — или, в некоторых случаях, список включал только пользователей, показанных на скриншоте. Их я разделил на группы, обозначенные A, B, C и D (я подробнее расскажу о причине для этой группировки во второй части анализа).

@PressRuissa — пародийный аккаунт (сейчас его деятельность прекращена) на пророссийские СМИ, соединяя сатиру и комментарии по дезинформации и предвзятости. Один из его твитов стал изначальным источником для сети группы A:

The Russian tweeters reveal that “Novaya Gazeta covers up their bots’ activity” in a surprising unison. (via @nokato) pic.twitter.com/DSwcIKWpDg — Falcon News Intl. (@PressRuissa) March 13, 2015

Российские твитяне в удивительный унисон раскрывают, что «Новая газета прикрывает деятельность своих ботов». (от @nokato)

Группа B создана из различных источников подозреваемых аккаунтов-ботов, чьё поведение, как казалось, совпадает с предыдущими образцами. Некоторые были определены по тенденции переходить с русского языка на английский с by одним сообщением об ошибке «RSS in offline mode» — возможно, вызванной глюком в контролирующем их программном обеспечении.

RSS in offline mode — Леонид Верхратский (@GCL2BUugsq4n5JL) April 1, 2015

RSS в оффлайн-режиме

Что касается оставшихся источников, то твит Девина Эклза, аналитика центра CASE Ukraine, предоставил основу для группы C.

Pro-Russian bots on the offensive following attack on #Mariupol pic.twitter.com/AiH95Dp1wb — Devin Ackles (@DevinAckles) January 24, 2015

Пророссийские боты в наступлении после атаки на #Mariupol

И, наконец, Виталий Мороз из Internews Ukraine поделился скриншотом аккаунтов ботов, которые сформировали выборку для группы D.

Russian bots have disseminated the message of war: “I think Great War will start!” #RussiainvadedUkraine #russia pic.twitter.com/kCVDioIAGH — Vitaliy Moroz ENG (@vitaliymoroz) February 13, 2015

Российские боты распространили сообщение о войне: «Думаю начнется Большая война»

Все четыре группы были соединены в единый набор данных, в котором в результате оказалось 17 590 Twitter-аккаунтов. Как и для публиковавших антинемцовские твиты, метаданные подтвердили, что большая часть из них действительно является ботами. 93% не указали в профиле местоположения, 96% не имели информации о часовом поясе и 97% не имели записей в «Избранном».

Кроме того, несмотря на то, что каждый аккаунт в среднем опубликовал по 2 830 твитов, они почти никогда не взаимодействовали с другими пользователями Twitter через @ответы или @упоминания.

Любопытно, что многим ботам были даны по-западному звучащие имена, например, barnardgrant, terancebarnaby, terencecoward и duncanstarks.

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

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

В следующей статье я рассмотрю время создания ботов и то, как оно соотносится с политическими событиями в России и Украине.