Здравствуйте, дорогие друзья. Сегодня поговорим о более тяжелой артиллерии в рамках OSINT, а именно, о применении технологии распознавания лиц от Social Links для Maltego.


Если не читали предыдущие статьи цикла о Maltego, то сейчас — самое время:


Во время тестирования функционала по поиску информации в различных соцсетях с применением Maltego (см. Часть 4) я удивился тому, что всего лишь по ФИО и фото из аккаунта в Инстаграм Maltego с ходу нашла мой аккаунт в LinkedIN.

Вот тут-то, я полагаю, и сработал механизм Face Recognition от Social Links. Мимо такой темы нельзя просто так взять и пройти! Нужно убедиться, насколько функционал точен и можно ли его применять полноценно в OSINT, или мой случай — единичный, а выдача будет забита похожими людьми.



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


Раз уж я проговорился, то пусть будет Дональд Трамп )

В первый раз подробно рассмотрим порядок действий, согласно инструкции от Social Links, для всех остальных случаев будем только анализировать результаты. Заявленный процент точности от SL на распознавание составляет 75%, что не мало.

Прим. Автора: в механизмах работы Maltego есть один не очень приятный параметр. Называется «Timeout» и равен 2 минутам. Он определяет, сколько Maltego будет ожидать отклика от стороннего API при выполнении Transforms.

Тут кроется неприятный момент. Этот параметр в настройках пользователь может увеличить, но механизма узнать, что он установил, для разработчиков Transform нет. А это значит, что при разработке сторонних Transform компании вроде Social Links вынуждены опираться на дефолтное значение. Почему это так важно, вы либо уже догадались, либо узнаете в выводах, в конце статьи.

Дональд Трамп




Заходим в аккаунт Social Links и создаем там профайл человека. Указываем имя и фамилию, страну и пол.



Есть еще большое поле «примечание» для заметок.

Добавляем фото. Выберем и обычные, и не совсем.



Все готово. Можно начинать!



Для поиска мы будем использовать Entitie — Search Profile by Face. Фото в аккаунт SL мы грузили, чтобы получить удобную прямую ссылку на него. Но если у вас она уже есть в другом месте, то можете использовать ее.



После запуска поиска по первому фото стало немного понятно, как работает система в целом. Ответственная за распознавание лиц нейросеть в Social Links делает через API запрос к соцсети на поиск всех аккаунтов по заданным имени и фамилии. После чего, уже по фото этих аккаунтов, делает сравнение через распознавание лиц с фото, которое мы указали в качестве эталона.
Итого, по перовой фотографии Трампа мы имеем:

  • Facebook — 1 аккаунт (маловато)
  • LinkedIn — 1 аккаунт (не его, но Трамп есть на фото совместно с хозяином аккаунта)
  • Instagram — 8 аккаунтов
  • ВКонтакте — 8 аккаунтов
  • Twitter — 7 аккаунтов
  • MySpace — 3 аккаунта
  • Foursquare — 6 аккаунтов

Стоит также отметить, что система смогла определить лицо Трампа даже на фотоколлажах и совместных фото.







По итогам работы с первым фото промахов на аккаунты с рандомными фото не замечено. После запуска поиска по 2 и 3 фото появилось несколько дополнительных аккаунтов. Левых снимков по-прежнему нет. Все вынесенные на граф аккаунты содержат изображение Трампа в том или ином виде. Даже фотошоп-арт не проскочил мимо.



Итого, после отработки Transforms по всем эталонным фото мы имеем:

  • Facebook — 2 аккаунта (Все еще маловато)
  • LinkedIn — 1 аккаунт
  • Instagram — 10 аккаунтов
  • ВКонтакте — 8 аккаунтов
  • Twitter — 10 аккаунтов
  • MySpace — 7 аккаунтов
  • Foursquare — 7 аккаунтов

Промахом в данном случае стоит считать только аккаунт в LinkedIN, так как он принадлежит Блэйну Кэлли (Blaine Kelly), но на фото он запечатлен совместно с Трампом, так что, по сути, это 30 на 70. Трамп же всё-таки есть. Итоговый граф на снимке экрана ниже.



Земфира Рамазанова



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

Тестовые фото ниже.



Фейков Земфиры, разумеется, поменьше, чем фейков Дональда Трампа, соответственно, информационная выдача чище.

Итого получилось найти:

  • Facebook — 5 аккаунтов
  • Instagram — 3 аккаунта
  • ВКонтакте — 2 аккаунта



Рандомных фото похожих на Земфиру людей не замечено. Полагаю, что это следствие того, что первичная выборка идет именно по ФИО. А если попадется аккаунт с именем Земфира и изображением левого человека или картинкой, то его уже отсеет система распознавания лиц.

Джеки Чан



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

Фото для теста:



Итого получилось найти:

  • Facebook — 9 аккаунтов
  • Instagram — 8 аккаунтов
  • ВКонтакте — 6 аккаунтов
  • Twitter — 4 аккаунта



Рандомных снимков старых азиатов нет. Информационная выдача достаточно точна. Если не считать кучи фейков с именем и фото Джеки Чана.

Как вы можете заметить, одинаково хорошо отыскиваются аккаунты с фото Джеки в любом возрасте.


Тэнди Ньютон (Thandie Newton)




Ну и напоследок, давайте проверим как система сработает при поиске фото людей негроидной расы.

Тут для поиска я выбрал актрису Тэнди Ньютон, знакомую всем нам по ролям в таких фильмах, как «Хроники Риддика», «Рок-н-рольщик», «Хан Соло. Звёздные войны: Истории» и, конечно же, «Мир Дикого Запада».

Тестовые фото:



Итого получилось найти:

  • Facebook — 2 аккаунта
  • Instagram — 3 аккаунта
  • Twitter — 6 аккаунтов
  • MySpace — 5 аккаунтов

Промахов в распознавании нет.



Итоги и выводы



Давайте подытожим. По результатам моих тестов и чтения документации по работе Transforms с механизмом Face Recognition от Social Links могу смело сказать, что они работают замечательно. Пока писал данную статью, даже успел закрыть один проект по OSINT с их применением.

Однако есть несколько НО про которые следует помнить при работе с ними:

  1. Ввиду большого количества фотографий в соцсетях и наличия параметра «Timeout» в настройках Maltego, мы не можем просто взять и сканировать все фото на выбранной площадке на предмет совпадения. Во-первых, это займет слишком много времени, во-вторых, мы ограничены окном ответа в 2 минуты от серверов SL, иначе Maltego разорвет соединение и завершит выполнение Transforms.

    Все вышесказанное приводит нас к тому, что перед фазой непосредственного распознавания лица объекта поиска нам приходится делать подготовительный этап. Он выражается в предварительном отборе аккаунтов соцсети по какому-либо параметру. В нашем случае это было автоматизировано в Transform — Search Profile by Face and Name в виде выборки по имени и фамилии человека.

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


  3. Еще одним мешающим фактором для корректной работы механизма распознавания лиц является степень «зашакаливания» фото. Как исходного образца, так и фото на аккаунте из выборки.

    Так что если у вас исходное фото с низким разрешением или такое фото на аккаунте, то не ждите хороших результатов. Разрешение образца должно быть чем больше, тем лучше, предпочитаемый формат файла *.jpg, но если будет PNG, то нейросеть не обидится.



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



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