Cloned Boy
Professional
- Messages
- 870
- Reaction score
- 695
- Points
- 93
Анализ технологий антифрода без нарушения этических и юридических границ.
Базовые понятия:
Пример:
Проверяемые параметры:
Анализируемые данные:
Здесь Аккаунт1 и Аккаунт2 синхронно платят одним суммам — подозрительно.
Если аккаунт связан с узлом из черного списка (например, IP мошенника), его скоринг растет.
Выявления скрытых связей (аккаунты → карты → устройства).
Обнаружения аномалий (GNN, PageRank).
Присвоения риска (блокировка до ущерба).
Для легального применения:
Интересует конкретный алгоритм (например, как GNN обучают на графах)? Или примеры из банковских систем?
1. Что такое графовые алгоритмы в антифрод-системах?
Sift и подобные системы используют теорию графов для выявления связей между сущностями (пользователи, устройства, платежи), которые вручную обнаружить невозможно.Базовые понятия:
- Узел (Node): Пользователь, карта, IP-адрес, устройство.
- Ребро (Edge): Связь между узлами (например, «использовал карту» или «вошел с IP»).
- Вес ребра: Сила связи (количество транзакций, время взаимодействия).
2. Типы графов в Sift
2.1. Граф связей аккаунтов
Цель: Найти мультиаккаунтинг (один человек → несколько профилей).Пример:
- Узел Аккаунт1 связан с Картой123 и IP 8.8.8.8.
- Узел Аккаунт2 тоже использует Карту123 → система объединяет их в кластер мошенничества.
Python:
import networkx as nx
G = nx.Graph()
G.add_edge("Аккаунт1", "Карта123", weight=5) # 5 транзакций
G.add_edge("Аккаунт2", "Карта123", weight=1) # 1 транзакция
# Находим связанные узлы
fraud_cluster = nx.node_connected_component(G, "Аккаунт1")
print(fraud_cluster) # {'Аккаунт1', 'Аккаунт2', 'Карта123'}
2.2. Граф устройств
Цель: Обнаружить устройства, связанные с мошенничеством.Проверяемые параметры:
- Цифровой отпечаток (браузер, ОС, разрешение экрана).
- Совместное использование одного IP/прокси.
- 10 аккаунтов заходят с одного устройства, но используют разные карты → фрод-кольцо.
2.3. Граф транзакций
Цель: Выявить подозрительные денежные потоки.Анализируемые данные:
- Время транзакции (миллисекунды между операциями).
- Суммы (шаблоны: $9.99, $10.00 — тестовые платежи).
- Получатели (связи с черными списками).
Code:
graph LR
A[Аккаунт1] -->|$100| B[МагазинX]
A -->|$100| C[МагазинY]
D[Аккаунт2] -->|$100| B
D -->|$100| C
Здесь Аккаунт1 и Аккаунт2 синхронно платят одним суммам — подозрительно.
3. Ключевые алгоритмы
3.1. Обнаружение сообществ (Community Detection)
- Алгоритм Лувена или Girvan-Newman группирует узлы в кластеры.
- Применение: Находит группы аккаунтов, связанных общими картами/IP.
3.2. PageRank для важности узлов
- Адаптация Google PageRank: вычисляет «влиятельность» узла в графе.
- Пример: Карта, использованная в 50 аккаунтах, получает высокий вес → блокировка.
3.3. Выявление аномалий (Graph Neural Networks)
- GNN анализируют неочевидные связи (например, общие поведенческие паттерны).
4. Как Sift принимает решение?
- Строит граф на основе данных (аккаунты, устройства, платежи).
- Применяет алгоритмы для поиска кластеров/аномалий.
- Присваивает риск-скор:
- 0–30 — норма.
- 31–70 — проверка вручную.
- 71–100 — блокировка.
Если аккаунт связан с узлом из черного списка (например, IP мошенника), его скоринг растет.
5. Легальные аналоги для тестирования
Для исследований можно использовать:- NetworkX (Python): Построение графов.
- Neo4j: Графовая база данных.
- Данные из открытых источников: Например, социальные графы Twitter.
Python:
import networkx as nx
from community import community_louvain # Алгоритм Лувена
G = nx.Graph()
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 5), (5, 1)]) # Пример графа
partition = community_louvain.best_partition(G) # Находим сообщества
print(partition) # {1: 0, 2: 0, 3: 0, 4: 1, 5: 1} — два кластера
6. Как улучшается защита?
- Графы в реальном времени: Анализ связей до завершения транзакции.
- Обучение на синтетических данных: Имитация атак для тренировки моделей.
- Интеграция с биометрией: Добавление узлов «Face ID»/«Touch ID» в граф.
Вывод
Sift использует графовые алгоритмы для:


Для легального применения:
- Изучайте NetworkX, Neo4j.
- Анализируйте открытые datasets (например, транзакции Bitcoin).
Интересует конкретный алгоритм (например, как GNN обучают на графах)? Или примеры из банковских систем?