ДЗ-05: Entity Resolution та зв’язки — від сутностей до графа
Урок: Урок-05-Entity-Resolution
Час виконання: 1–2 години
Дедлайн: до наступного заняття
🔵 Базовий рівень (обов’язкове) — ~1 година
Не потребує встановлення жодних інструментів. Виконується у браузері.
Мета
- Зрозуміти entity resolution на практиці — знайти різні записи про одну й ту саму людину
- Навчитися будувати граф зв’язків вручну
- Застосувати шкалу впевненості (1–10) до реальних знахідок
- Виконати Collision Detection — переконатися, що ви досліджуєте правильну людину
Що потрібно зробити
Завдання 1 — Таблиця ідентифікаторів
Оберіть будь-яку публічну особу — підприємець, журналіст, місцевий політик, громадський активіст. Тільки публічна діяльність, тільки відкриті джерела.
Знайдіть мінімум 5 різних записів про цю людину в різних джерелах. Для кожного запишіть:
| Ідентифікатор | Значення | Джерело | Впевненість (1–10) |
|---|---|---|---|
| Повне ім’я | LinkedIn / ЗМІ / реєстр | ||
| Витік / публічний профіль | |||
| Телефон | Публічний сайт / реєстр | ||
| Нікнейм | GitHub / Telegram / Twitter | ||
| Компанія | ЄДРПОУ / LinkedIn | ||
| Адреса | Реєстр / сайт компанії |
Що тут важливо зрозуміти: один і той самий запис може мати різну оцінку впевненості залежно від джерела. Email із витоку бази даних — 7/10. Email, підтверджений LinkedIn і реєстром — 10/10.
Завдання 2 — Граф зв’язків у draw.io
Побудуйте граф у draw.io (безкоштовно, у браузері, без реєстрації):
- Мінімум 6 вузлів (особа, компанії, адреси, акаунти, події — будь-які сутності)
- Мінімум 8 ребер з підписом типу зв’язку (CEO, засновник, адреса, email, знайомий тощо)
- На кожному ребрі — оцінка впевненості (1–10)
Колірне кодування вузлів (рекомендовано):
- Синій — особа
- Жовтий — організація
- Зелений — локація
- Червоний — артефакт (email, IP, домен, телефон)
Що тут важливо зрозуміти: граф — це не просто малюнок. Кожне ребро — це перевірений факт з джерелом. Якщо джерела немає — ребро не малюється.
Завдання 3 — Collision Detection
Перевірте: чи є хтось інший з таким самим іменем у публічних джерелах?
Дайте відповіді на 3 питання:
- Скільки людей з таким іменем знайшлося у відкритих джерелах?
- Які 2 факти однозначно ідентифікують саме вашу людину (а не однофамільця)?
- Чи є хоча б один зв’язок у вашому графі, який ви б не включили через ризик collision? Чому?
Що тут важливо зрозуміти: collision — найпоширеніша помилка OSINT-аналітика. Перевірити альтернативну гіпотезу (“це інша людина”) так само важливо, як знайти зв’язок.
Формат виконання
- Таблиця ідентифікаторів — Markdown або Google Sheets (посилання)
- Граф — скріншот із draw.io (PNG або PDF)
- Відповіді на Collision Detection — 5–10 речень вільного тексту
Що саме потрібно здати
- Таблиця ідентифікаторів (мінімум 5 рядків, заповнені всі колонки)
- Скріншот графу (мінімум 6 вузлів, 8 ребер, підписані ребра)
- Відповіді на 3 питання Collision Detection
Acceptance Criteria 🔵
- Таблиця містить мінімум 5 ідентифікаторів з різних джерел
- Кожен ідентифікатор має оцінку впевненості 1–10 і назву джерела
- Граф має мінімум 6 вузлів і 8 ребер
- Кожне ребро підписане (тип зв’язку + впевненість)
- Collision Detection — наявні відповіді на всі 3 питання
- Досліджувана особа — публічна, всі дані з відкритих джерел
🔴 Просунутий рівень (бажане) — +30–40 хвилин
Потребує встановленого Docker. Якщо Docker не запускається — просунутий рівень не обов’язковий.
Мета
- Встановити Flowsint і запустити перше автоматичне розслідування
- Порівняти ручний граф (Базовий рівень) з автоматично побудованим
- Зрозуміти, що автоматизація доповнює, а не замінює аналітика
Що потрібно зробити
Встановлення Flowsint
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prodВідкрийте http://localhost:5173/register і створіть обліковий запис.
Встановлення займає 15–20 хвилин (Docker завантажує образи). Запустіть заздалегідь.
Завдання 4 — Flowsint: автоматичне розслідування
Використайте той самий суб’єкт, що досліджували у Базовому рівні.
- Додайте домен його компанії або email як сутність у Flowsint
- Запустіть усі доступні збагачувачі для цієї сутності
- Слідуйте мінімум за 2 новими вузлами, що з’явилися (наприклад: домен → IP → ASN)
- Зробіть скріншот фінального графу
Що тут важливо зрозуміти: Flowsint будує граф автоматично, але ви вирішуєте, які ребра заслуговують на довіру. Інструмент — помічник, не суддя.
Завдання 5 — Порівняльний аналіз
Напишіть 5–8 речень:
- Що Flowsint знайшов, чого не було у вашому ручному графі?
- Що знайшли ви руками, чого Flowsint не показав?
- Яка оцінка впевненості у нових автоматичних знахідок? Чому?
Формат виконання
- Скріншот графу Flowsint
- Порівняльний аналіз — 5–8 речень вільного тексту
Що саме потрібно здати
- Скріншот графу Flowsint (з мінімум 8 вузлами після збагачення)
- Порівняльний аналіз (ручний граф vs Flowsint)
Acceptance Criteria 🔴
- Flowsint встановлений і запущений
- Досліджена мінімум 1 сутність з 2+ збагачувачами
- Граф містить мінімум 8 вузлів після збагачення
- Порівняльний аналіз містить конкретні знахідки (не загальні слова)
- Нові автоматичні знахідки оцінені за шкалою впевненості 1–10
Примітка
- Досліджуйте лише публічних осіб і лише їх публічну діяльність
- Не публікуйте зібрані дані у відкритий доступ
- Якщо при встановленні Flowsint виникла помилка — опишіть її у здачі: це теж корисний досвід
- Оцінка впевненості нижче 5/10 — не включайте до фінального графу або позначайте окремо як «потребує перевірки»
← Урок-05-Entity-Resolution | Наступний урок: Урок-06-Теорія-графів →