Работа с графами ч.1: Визуализация данных OSINT

Работа с графами ч.1: Визуализация данных OSINT

Capy_B

Для обработки OSINT данных воспользуемся парсером данных из соц. сети ВКонтакте посредством API. Парсер, как и Gephi написан на кроссплатформенном Java и протестирован на Windows и Mac OS X.

В качестве цели возьмём группу мероприятия Positive Hack Days:

Переходим в альбомы группы и записываем ID:

Запускаем парсер, указываем ID, группу и папку назначения. Если выбрать чекбокс анализ стены, то парсер обработает стену группы и подписчиков, найдёт активность на стенах между подписчиками (узлами графа) и связи между ними (рёбра графа) будут иметь больший вес, что отразится на толщине рёбер. Эта процедура занимает ~ в 3-20 раз больше времени, в зависимости от величины группы, поэтому в данном мануале она опущена.

Запускаем парсер и в консоли видим лог работы:

Когда анализ завершится переходим в Gephi и открываем файл формата .gexf:

Парсер собирает сведения не только о подписчиках, но и о локациях, которые мы тоже не будем анализировать в графе, поскольку включение данной информации в обработку графа исказит его укладку центрируя её не на активных подписчиках, а на локациях. Например, у самого социально активного участника в графе 77 друзей (узлов), которые практически не будут видны, если рядом с ним появится локация «Россия» у которой ~1500 узлов.

 

После применения фильтра откроем меню статистического анализа и запустим все доступные компоненты:

Теперь нам нужно исключить из графа людей, у которых нет социальных связей с другими участниками, или есть, но только с одним из них, этот пункт не обязателен, но подобная фильтрация избавит нас от сложностей укладки графа на следующих этапах. Для этого сначала добавляем логический оператор «AND» и в его условия переносим фильтры «По значению – Type» и «Диапазон – Суммарная мощность», последний фильтруем от 2 до максимального. Мощность в графе это количество его рёбер, допустим если один человек дружит с тремя подписчиками, то суммарная мощность данного подписчика (узла) будет равна 4 (1 это он + 3 друга).

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

Теперь уложим граф, сначала воспользуемся алгоритмом «OpenOrd», чтобы узлы с наибольшими связями (модулярностью) уложились рядом:

Теперь уложим граф по алгоритму ForceAlias 2, поскольку на прошлом этапе мы «сдвинули» поближе модулярные узлы, укладка ForceAlias 2 займёт гораздо меньше времени. Пробуем найти параметры, которые будут оптимальны, поскольку для графов разной величины параметры сильно отличаются.

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

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

Теперь приступим к раскрашиванию, красить будем в 12 цветов, для этого сгенерируем палитру на нужное количество:

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

Теперь в меню просмотра мы можем сохранить граф и настроить параметры размера шрифта и размеру изображения:

Из «Лаборатории данных» вынесем сведения, которые нас интересуют в CSV формат для дальнейшего анализа в программах бизнес аналитики (например Tableau Desktop):

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

Report Page