合成身份欺诈

合成身份欺诈用例演练

1. 简介

合成身份盗用是一种欺诈类型,欺诈者通过结合真实和虚假的身份信息来开立账户或进行购买。真实信息(例如照片或护照号码)通常被盗用,并与虚假信息(例如虚假姓名、地址或出生日期)结合。欺诈者随后利用这种合成身份来开立信用卡或进行欺诈性购买。这种方法有时被称为“弗兰肯斯坦身份”,因为其身份信息是拼凑而成的。

2. 场景

身份欺诈是一种不断演变且普遍存在的欺诈形式,对个人、企业和整个经济体构成重大风险。身份欺诈的后果可能是毁灭性的,导致财务损失、信用记录受损以及恢复被盗身份的艰难过程。

这种类型的欺诈变得越来越重要,因为正在讨论的新立法将为受害者提供额外的财务保护,并由汇款和收款机构分摊责任。

身份欺诈是一种普遍且重大的威胁,需要银行的关注和积极措施。通过有效减轻身份欺诈,银行不仅保护客户并维护其信任,还有助于金融系统的整体安全和稳定。

3. 解决方案

Neo4j 是一种先进的图数据库,在检测合成身份方面非常有效。它可以建模复杂的关​​系、进行高效的链接分析并识别模式。这使其成为快速轻松地揭示合成身份欺诈中典型的可疑连接和行为的理想解决方案。

3.1. 图数据库如何提供帮助?

实施 Neo4j 可以帮助执行以前无法完成的分析。以下是场景示例:

  • 链接分析: Neo4j 支持高效的链接分析,以探索身份之间的连接,分析数据点之间的相互关系以识别合成身份集群。

  • 模式检测: Neo4j 可以在没有起点的情况下识别模式,这使其非常适合分析数据形状而不是数据本身。

  • 实时性: Neo4j 支持实时分析,可快速识别并响应合成身份欺诈。通过持续处理数据,图数据库可以近乎实时地检测可疑活动并生成警报。

4. 建模

本节将展示示例图上的 Cypher 查询示例。其目的是说明查询的样式,并提供在实际环境中组织数据的方式指南。我们将在一个包含多个节点的小型图上进行此操作。示例图将基于以下数据模型:

4.1. 数据模型

fs synthetic identity fraud data model

4.1.1 必需字段

以下是开始所需的字段:

Customer 节点

  • name:包含客户的姓名。这可以更改为客户 ID 或客户的其他标识符。

Passport 节点

  • number:包含 Customer 使用的护照号码

Phone 节点

  • number:包含 Customer 使用的电话号码

Email 节点

  • email:包含 Customer 使用的电子邮件地址

4.2. 演示数据

以下 Cypher 语句将在 Neo4j 数据库中创建示例图:

// Create all people nodes
CREATE (c1:Customer {name: "Michael"})
CREATE (c2:Customer {name: "Adam"})
CREATE (c3:Customer {name: "Alice"})
// Create email node
CREATE (email:Email {email: "michael@abc.com"})
// Create phone node
CREATE (phone:Phone {number: 7971020304})
// Create passport node
CREATE (passport:Passport {number: 123456789})


// Create email relationship
CREATE (c1)-[:HAS_EMAIL]->(email)<-[:HAS_EMAIL]-(c2)
// Create phone relationship
CREATE (c2)-[:HAS_PHONE]->(phone)<-[:HAS_PHONE]-(c3)
// Create passport relationship
CREATE (c3)-[:HAS_PASSPORT]->(passport)<-[:HAS_PASSPORT]-(c1)

4.3. Neo4j 方案

如果您调用

// Show neo4j scheme
CALL db.schema.visualization()

您将看到以下响应:

fs synthetic identity fraud schema

5. Cypher 查询

5.1. 识别共享相同电子邮件的客户

在此查询中,我们将识别所有共享相同电子邮件地址的用户。

  • Customer 节点应连接到相同的 Email 节点。

  • 关系的遍历方向已应用。

您可以通过几种不同的方式表达相同的查询:

// Match all customers sharing an email
MATCH path=(c1:Customer)-[:HAS_EMAIL]->(email)<-[:HAS_EMAIL]-(c2:Customer)
RETURN path

在这里您可以看到,我们为 Customer 节点提供了标签,并指定了要遵循的确切关系。您也可以通过以下方式获得相同的结果:

// Match all customers sharing an email
MATCH path=(c1:Customer)-[]->(email:Email)<-[]-(c2:Customer)
RETURN path

这里的区别在于,这次我们没有指定要遵循的关系类型,但由于我们指定了 Email 节点标签,并且只有一个关系通向 Email 节点,因此我们得到了相同的响应。如果您的图包含连接客户和电子邮件的多个关系,则此查询将给出不正确的结果。

如果您像下面的查询一样在节点和关系上提供所有标签,则可以保证正确的遍历并确保不会得到任何不正确的结果。

// Match all people sharing an email
MATCH path=(c1:Customer)-[:HAS_EMAIL]->(:Email)<-[:HAS_EMAIL]-(c2:Customer)
RETURN path

5.2. 识别共享多个特征的客户

在此查询中,我们将识别与他人共享相同电子邮件、电话或护照号码的任何 Customer

  • Customer 节点应连接到相同的 Email 节点。

  • Customer 节点应连接到相同的 Phone 节点。

  • Customer 节点应连接到相同的 Passport 节点。

  • 关系的遍历方向已应用。

// Match all customers sharing an email, phone or passport number
MATCH path=(c1:Customer)-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]->(info)<-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]-(c2:Customer)
RETURN path

6. 图数据科学 (GDS)

6.1. 弱连接组件

弱连接组件 (WCC) 算法》识别有向图和无向图中连接节点的组。如果节点之间存在路径,则认为它们是连接的,并且由相互连接的所有节点形成一个组件。

使用此算法的原因是它能够识别具有相似属性(例如 EmailPhonePassport)的连接节点集群。它会生成一个可在未来调查中重复使用的社区 ID,为数据及其周围社区提供有价值的见解。

6.1.1 创建单部图

WCC 算法只能应用于只有一个节点标签的单部图。在我们的例子中,节点标签将是 Customer。我们必须修改图以使数据与 WCC 算法兼容。为此,我们可以使用下面的查询来建立一个名为 LINKED 的新关系,该关系将由算法使用。

// Match all customers sharing an email, phone or passport number
MATCH (c1:Customer)-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]->(info)<-[:HAS_EMAIL|HAS_PHONE|HAS_PASSPORT]-(c2:Customer)
WHERE ID(c1) > ID(c2)
CREATE (c1)-[:LINKED]->(c2)

上面的查询修改了数据模型并将其更新为如下所示:

fs synthetic identity fraud gds data model

6.1.2 图投影

要开始运行任何图数据科学算法,您首先需要投影图的一部分。这将使您能够有效地分析投影中的数据。

CALL gds.graph.project(
    // graph projection name
    'myGraph',
    // nodes to import into projection
    'Customer',
    // relationship to import into projection
    'LINKED'
)

6.1.2 GDS 流模式

使用 stream 执行模式时,算法将为每个节点提供组件 ID。这允许直接检查结果或在 Cypher 中进行后处理,而不会产生任何负面影响。通过对结果进行排序,属于同一组件的节点可以一起显示,以便于分析。

CALL gds.wcc.stream('myGraph')
YIELD nodeId, componentId
RETURN gds.util.asNode(nodeId).name AS name, componentId
ORDER BY componentId, name

6.1.3 GDS 写模式

通过使用“write”执行模式,您可以将每个节点的组件 ID 作为属性添加到 Neo4j 数据库中。您必须使用 writeProperty 配置参数指定新属性的名称。输出将显示一个包含额外指标的汇总行,类似于 stats 模式。使用 write 模式允许您将结果直接保存到数据库中。

CALL gds.wcc.write('myGraph', { writeProperty: 'componentId' })
YIELD nodePropertiesWritten, componentCount;
© . All rights reserved.