EagleEye, разпознаването на лица и OSINT

EagleEye, разпознаването на лица и OSINT

Преди няколко седмици попаднах на списък с интересни инструменти, свързани с етичното хакерство. Вниманието ми привлече EagleEye - не само защото беше първи в списъка, има интересно име, но и заради цялостната концепция и принципа му на работа.

Описанието, на авторите на EagleEye е лаконично - "Stalk your Friends. Find their Instagram, FB and Twitter Profiles using Image Recognition and Reverse Image Search". Това звучи доста технически и дори малко научно, но като цяло идеята зад разработката е много елегантна - ако разполагате със снимка на някого и знаете неговото име, чрез инструмента е възможно да се опитате да откриете публични (подчертавам - публични) FB и Twitter профили, свързани с търсения човек.

Търсене по снимка или видео кадър е често срещана функционалност на специализираните системи в редица холивудски екшъни. Действителността показва, че разпознаването на образи и изкуственият интелект са достигнали много високи нива (за наша радост все още сме далеч от SkyNet), но те все още не се използват масово при OSINT и етичното хакерство.

Кадър от сериала "Person of Interest" (източник на изображението - интернет)

Инсталирането на EagleEye (в примерите е използван Kali Linux) е сравнително лесно:

git clone https://github.com/ThoughtfulDev/EagleEye.git
./EagleEye/install.sh
wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz
tar zxvf geckodriver-v0.24.0-linux64.tar.gz
mv geckodriver /usr/bin

Някои от необходимите компоненти изискват време за приключване на процесите за тяхното комплириане и се налага да бъдете търпеливи. Ако инсталацията е била успешна можете да стартирате eagleeye.py и да прегледате програмните аргументи:

root@kali:~/EagleEye# ./eagle-eye.py --help

███████╗ █████╗  ██████╗ ██╗     ███████╗       ███████╗██╗   ██╗███████╗
██╔════╝██╔══██╗██╔════╝ ██║     ██╔════╝       ██╔════╝╚██╗ ██╔╝██╔════╝
█████╗  ███████║██║  ███╗██║     █████╗ Version █████╗   ╚████╔╝ █████╗  
██╔══╝  ██╔══██║██║   ██║██║     ██╔══╝   0.2   ██╔══╝    ╚██╔╝  ██╔══╝  
███████╗██║  ██║╚██████╔╝███████╗███████╗       ███████╗   ██║   ███████╗
╚══════╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝       ╚══════╝   ╚═╝   ╚══════╝
                root, you have been activated                                                                   
    
usage: eagle-eye.py [-h] [-sFB] [-sY] [-json [JSON]] [-fbList [FACEBOOKLIST]]

optional arguments:
  -h, --help            show this help message and exit
  -sFB, --skipfb        Skips the Facebook Search
  -sY, --skipyandex     Skips the Yandex Reverse Search
  -json [JSON], --json [JSON]
                        Generates a json report. Specify a Filename
  -fbList [FACEBOOKLIST], --facebookList [FACEBOOKLIST]
                        A file which contains Links to Facebook Profiles. '--
                        skipfb' options must be enabled to use this

Подбрах снимка на популярен български спортист от Google и я записах в директория ~/EagleEye/known.

Стартирането на EagleEye не изисква параметри, но се налага да въведете името на търсената личност (в примера Grigor Dimitrov) и стойност за параметъра jitters:

███████╗ █████╗  ██████╗ ██╗     ███████╗       ███████╗██╗   ██╗███████╗
██╔════╝██╔══██╗██╔════╝ ██║     ██╔════╝       ██╔════╝╚██╗ ██╔╝██╔════╝
█████╗  ███████║██║  ███╗██║     █████╗ Version █████╗   ╚████╔╝ █████╗  
██╔══╝  ██╔══██║██║   ██║██║     ██╔══╝   0.2   ██╔══╝    ╚██╔╝  ██╔══╝  
███████╗██║  ██║╚██████╔╝███████╗███████╗       ███████╗   ██║   ███████╗
╚══════╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝       ╚══════╝   ╚═╝   ╚══════╝
                root, you have been activated                                                                   
    
==> Enter the persons name to find on FB: Grigor Dimitrov
==> How many jitters, higher is better [max 100] (default=70): 70 

Инструментът стартира Firefox и проверява в FB за профили, свързани с посоченото име:

Зарежда се изображението от директория ~/EagleEye/known и се преминава към извличане на характерни признаци за лицевите характеристики, посредством OpenCV:

Извършва се търсене в Google за подобни изображения:

Стартира се и аналогично търсене в Yandex:

На база на анализираното изображение се реализира филтриране на резултатите и по този начин значително се намалява броя на неточните.

След приключване на изпълнението си EagleEye генерира доклад в PDF формат, съдържащ получените резултати:

Предполагам, че ще си помислите, че подобно търсене може да се извърши и ръчно и ще сте прави. Въпросът е колко бързо ще анализирате изображението, ще проверите за публични профили в FB, ще разгледате сходните изображения в Google и Yandex? Вижда се, че автоматизацията на подобни действия има редица предимства, а едно от най-силните е, че можете да използвате повече от едно изображение по което да се извърши цялото търсене.

Сега се върнете в началото на публикацията и погледнете версията на EagleEye. Виждате, че за толкова ранен етап реализираната функционалност е изключително сериозна и инструментът може да претърпи значителни подобрения, както и включване на нови функции.

Разбира се, получените резултати не са изчерпателни и винаги е целесъобразно да стартирате и други проверки с различни инструменти, например Social Mapper.